Implement config endpoint

This commit is contained in:
Daniel García 2022-09-08 17:38:00 +02:00
parent ddfac5e34b
commit 818b254cef
No known key found for this signature in database
GPG Key ID: FC8A7D14C3CD543A
1 changed files with 22 additions and 1 deletions

View File

@ -16,7 +16,7 @@ pub fn routes() -> Vec<Route> {
let mut device_token_routes = routes![clear_device_token, put_device_token]; let mut device_token_routes = routes![clear_device_token, put_device_token];
let mut eq_domains_routes = routes![get_eq_domains, post_eq_domains, put_eq_domains]; let mut eq_domains_routes = routes![get_eq_domains, post_eq_domains, put_eq_domains];
let mut hibp_routes = routes![hibp_breach]; let mut hibp_routes = routes![hibp_breach];
let mut meta_routes = routes![alive, now, version]; let mut meta_routes = routes![alive, now, version, config];
let mut routes = Vec::new(); let mut routes = Vec::new();
routes.append(&mut accounts::routes()); routes.append(&mut accounts::routes());
@ -200,3 +200,24 @@ pub fn now() -> Json<String> {
fn version() -> Json<&'static str> { fn version() -> Json<&'static str> {
Json(crate::VERSION.unwrap_or_default()) Json(crate::VERSION.unwrap_or_default())
} }
#[get("/config")]
fn config() -> Json<Value> {
let domain = crate::CONFIG.domain();
Json(json!({
"version": crate::VERSION,
"gitHash": env!("GIT_REV"),
"server": {
"name": "Vaultwarden",
"url": "https://github.com/dani-garcia/vaultwarden"
},
"environment": {
"vault": domain,
"api": format!("{domain}/api"),
"identity": format!("{domain}/identity"),
"admin": format!("{domain}/admin"),
"notifications": format!("{domain}/notifications"),
"sso": "",
},
}))
}