Skip to content

What is left to configure. Reuses `credentials::load_brokers`/`load_feeds`

GET
/admin/setup-status
curl --request GET \
--url http://localhost:3001/admin/setup-status \
--header 'Authorization: Bearer <token>'

— 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.

OK

Media typeapplication/json

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
admin_password
required

"default" iff the admin console is still guarded by the built-in dev password rather than an operator-chosen one — see admin_password_state.

string
brokers
required
Array<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
code
required
string
state
required
string
catalog
required
object
instruments
required
integer format: int64
state
required
string
database
required
string
feeds
required
Array<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
code
required
string
state
required
string
master_key
required

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.

string
portfolios
required
integer format: int64

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
}