What is left to configure. Reuses `credentials::load_brokers`/`load_feeds`
curl --request GET \ --url http://localhost:3001/admin/setup-status \ --header 'Authorization: Bearer <token>'import requests
url = "http://localhost:3001/admin/setup-status"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.json())use reqwest;
#[tokio::main]pub async fn main() { let url = "http://localhost:3001/admin/setup-status";
let mut headers = reqwest::header::HeaderMap::new(); headers.insert("Authorization", "Bearer <token>".parse().unwrap());
let client = reqwest::Client::new(); let response = client.get(url) .headers(headers) .send() .await;
let results = response.unwrap() .json::<serde_json::Value>() .await .unwrap();
dbg!(results);}— the exact decode path reload_connections uses — so this checklist
cannot report a connection “configured” that the reload path would
actually refuse to register, or the reverse.
Authorizations
Section titled “Authorizations”Responses
Section titled “Responses”OK
The checklist an operator (or the cockpit’s own onboarding banner) reads to answer “what is left to configure” — nothing else in this system can answer that question in one call today.
object
"default" iff the admin console is still guarded by the built-in
dev password rather than an operator-chosen one — see
admin_password_state.
One connection’s classification, for the checklist below. Deliberately
the same three strings RedactedCredentials uses
(configured/unconfigured/error) rather than a boolean — “stored but
the master key can’t open it” is a different operator problem from
“never configured”, and collapsing them here would hide exactly the
misconfiguration this checklist exists to surface.
object
object
One connection’s classification, for the checklist below. Deliberately
the same three strings RedactedCredentials uses
(configured/unconfigured/error) rather than a boolean — “stored but
the master key can’t open it” is a different operator problem from
“never configured”, and collapsing them here would hide exactly the
misconfiguration this checklist exists to surface.
object
Whether a master key is configured. Never the key itself, nor even
whether it is valid — an invalid key surfaces the same way every
other credential-reading endpoint surfaces it, as a 500 from
resolve_master_key, not folded into this field.
Example generated
{ "admin_password": "example", "brokers": [ { "code": "example", "state": "example" } ], "catalog": { "instruments": 1, "state": "example" }, "database": "example", "feeds": [ { "code": "example", "state": "example" } ], "master_key": "example", "portfolios": 1}