credentials.toml reference#
credentials.toml never contains credential values. For the normal managed
local stack it contains only the schema version plus any provider references:
schema_version = 1
Hubu selects private profile-owned locations for its authentication, approval,
and reconciliation capabilities. The final managed hubu-server creates or
reuses those capabilities during stack start; there is no preliminary server.
After Hubu is ready, a Gongbu-owned bootstrap creates or reuses its internal
Hubu handoff and caller capabilities before Gongbu starts. Users do not choose,
copy, or configure those locations.
The current managed implementation stores these capabilities in private files under profile state. That is an internal compatibility detail, not a promise that the managed contract will remain file-based.
Never paste a bearer token, API key, approval capability, reconciliation capability, or credential-file content into this file.
Top-level field#
schema_version#
| Attribute | Value |
|---|---|
| Required | Always |
| Supplied by | Generated by Hubu |
| Type | Integer |
| Supported value | 1 |
| Sensitive | No |
All three source files must use a supported source schema version. Unknown fields are rejected.
[files] advanced and external overrides#
The [files] table is absent for the standard managed-local profile. It exists
for external-service topology and compatibility overrides where an operator
must supply a reference owned outside the managed bootstrap:
[files]
hubu_auth = "/absolute/path/to/hubu.auth-token"
hubu_approval = "/absolute/path/to/hubu.approval-token"
hubu_reconciliation = "/absolute/path/to/hubu.reconciliation-token"
gongbu_caller = "/absolute/path/to/gongbu.caller-token"
All configured paths must be safe and absolute, must identify distinct capabilities, and must never point at the source TOML or backend databases. Every explicit override is operator-owned and must provide an existing readable regular file. Only omitted, profile-derived managed destinations may be absent before first start and created by the final Hubu process.
files.hubu_auth#
Required when Hubu is external. This is the client-side authentication bearer used by the Hubu CLI and unified MCP protected calls. For a managed Hubu it is normally omitted and derived internally.
files.hubu_approval#
Required when Hubu is external. This is the human approval capability and must remain distinct from ordinary Hubu authentication. For a managed Hubu it is normally omitted and derived internally.
files.hubu_reconciliation#
Required when Hubu is external. Reconciliation authority is separate from authentication and approval authority. For a managed Hubu it is normally omitted and derived internally.
files.gongbu_caller#
Required when Gongbu is external, and when a managed Gongbu uses the explicit opaque bootstrap overrides below. This is the unified MCP client's caller capability; it authenticates the installation/service and carries no account or agent identity. For the normal managed handoff it is omitted and created at an internally selected location.
Rendering never reads, copies, compares, hashes, logs, or serializes the values behind these file references.
[opaque.<key>]#
Opaque tables name Gongbu-owned secret coordinates. The table key is a local
reference from providers.toml; it is not itself a secret.
[opaque.provider_image]
service = "gongbu.provider.example"
account = "local-image-provider"
The renderer checks the reference shape but never resolves the value. Gongbu owns secret loading and provider use.
opaque.<key>.service#
| Attribute | Value |
|---|---|
| Required | For every declared opaque reference |
| Supplied by | Defined by Gongbu credential setup or chosen by the operator |
| Meaning | Non-empty secret-service coordinate |
| Sensitive | Reference metadata; not the secret |
opaque.<key>.account#
| Attribute | Value |
|---|---|
| Required | For every declared opaque reference |
| Supplied by | Defined by Gongbu credential setup or chosen by the operator |
| Meaning | Non-empty account coordinate within the selected service |
Reserved managed-Gongbu override references#
The standard managed profile omits both reserved tables. The renderer derives fixed internal references and the launcher invokes Gongbu's managed bootstrap.
Declaring either reserved table opts into the advanced externally provisioned
Gongbu path. In that mode both tables and files.gongbu_caller are required,
the launcher does not perform the managed handoff, and Gongbu resolves the
opaque references through its normal secret backend.
opaque.gongbu_hubu#
Names the capability Gongbu uses to call Hubu's executor lifecycle interface.
[opaque.gongbu_hubu]
service = "gongbu.hubu"
account = "local-stack"
opaque.gongbu_caller#
Names the server-side capability Gongbu expects from its installation caller.
It and files.gongbu_caller are references on opposite sides of the same
authentication boundary. The renderer does not prove that their underlying
values match.
Provider credential references#
Live providers.toml targets use an opaque table key:
# credentials.toml
[opaque.provider_image]
service = "gongbu.provider.example"
account = "image-production"
# providers.toml
[[targets]]
credential = "provider_image"
Every referenced key must exist and contain non-empty service and account
fields. Multiple targets may intentionally share a credential, but provider
selection and revision semantics remain explicit in each target.
Rotation#
Managed credentials are not rotated by editing their hidden paths. The current start sequence creates or reuses them and fails closed if Gongbu handoff state conflicts. A future managed rotation or non-file storage change can replace that internal mechanism without adding locations to the source profile.
For an advanced external file reference, do not overwrite a value in place:
- Create a private replacement credential file.
- Change its absolute path in
credentials.toml. - Run doctor and render, then review the affected components and generation.
- Stop the whole managed stack, activate the reviewed generation, and start.
- Keep the previous credential until the new generation is verified.
- Rerun
hubu init codex --stack-profile ...when the handoff changes.
For an opaque reference, create a new secret item or coordinate according to
Gongbu's credential procedure, then change its service or account. Never
copy secret values into TOML.
Common mistakes#
- Adding
[files]to a normal managed profile even though the launcher owns location selection. - Pasting a token after
hubu_auth =instead of an absolute file path. - Reusing one capability for authentication, approval, and reconciliation.
- Configuring only one of the two reserved Gongbu override references.
- Assuming
files.gongbu_callerandopaque.gongbu_callerare interchangeable. - Referring to
[opaque.provider_image]ascredential = "opaque.provider_image"; usecredential = "provider_image".
/ docs