Skip to main content
Read and update server configuration.

tai config env

Read and update the stored env.

tai config env get

Read the stored env config, the operator’s secret-key marks and the stored keys the deployment sets. A stored key the deployment sets (deployment_keys) keeps the deployment’s value; a write may remove it, never set it to a new value. Example: tai config env get

tai config env set

Merge KEY=VALUE pairs into the stored env and reload the fleet. A hot-class key is re-read in place. A recycle-class key rolls a worker recycle across the fleet (the response carries the recycle rows; when the roll converged and the worker that took the write needs its own restart, it recycles itself after replying, and its supervisor starts it again). A key that locates the worker bus (a bus URL or the bus namespace), a deployment / boot-identity (X-band) key and a key the deployment sets are refused under any spelling of their names, naming the key: a bus key or a key the deployment sets changes in the deployment’s environment. A write whose resulting stored env would set one name under two spellings is refused, naming both: to rename a spelling, remove the old one in the same write. Values may come from command-line KEY=VALUE arguments, --env-file, and --stdin combined; at least one assignment is required. The same key from more than one source (or twice in one source) is an error — no silent precedence. Argv exposes a value via ps/shell history, so a secret should ride --env-file or --stdin. Example: tai config env set LOG_LEVEL=debug --env-file secrets.env

tai config lint

Lint config OFFLINE: a manifest file’s shape plus required-settings resolution. Validates the manifest file against the Manifest model (a broken manifest fails loudly with the model error) and checks that every required registered setting resolves from the environment. No server is started. Example: tai config lint config/manifest.yml

tai config mode

Read the active config backend mode (file or an external provider’s mode). Example: tai config mode

tai config profile

Manage versioned settings profiles.

tai config profile apply

Apply a profile — replace the stored env with its band, reload, and recycle the fleet. Prints the {hot, recycle, refused, fanout} report plus the per-kind fresh list (names + worker identities only, never env values). DESTRUCTIVE: it replaces the whole stored env band. Example: tai config profile apply staging

tai config profile delete

Soft-delete a profile, keeping its version history for audit. Example: tai config profile delete staging

tai config profile diff

Preview a profile against the CURRENT stored env — {added, removed, changed, recycle_keys, refused_keys}. Values are real; this is a preview, not the apply report. Example: tai config profile diff staging

tai config profile list

List the settings profiles (reserved @ snapshots excluded). Example: tai config profile list

tai config profile rollback

Re-point a profile’s active version to version (a store re-point). The live process is realigned by a later apply, not by this. Example: tai config profile rollback staging 2

tai config profile set

Create or update a profile (whole-body replace). The env band is the given KEY=VALUE entries; --secret-key marks which keys are secret. A reserved @-prefixed name is rejected up front. The band may come from command-line KEY=VALUE arguments, --env-file, and --stdin combined; with no source at all the band is empty (a whole-body replace clears the stored env), but a given --env-file or --stdin that yields no assignment is an error. The same key from more than one source (or twice in one source) is an error — no silent precedence. Argv exposes a value via ps/shell history, so a secret should ride --env-file or --stdin. Example: tai config profile set staging LOG_LEVEL=debug --env-file secrets.env --secret-key API_KEY

tai config profile show

Show a profile’s active body — {description, env, secret_keys} with real env values. This authed door round-trips values; masking is display-side only. Example: tai config profile show staging

tai config profile versions

List a profile’s version history, or — with --version — show one version’s full body. Full bodies carry real env values; this door is secret-fenced. Example: tai config profile versions staging / ... versions staging --version 3

tai config reload

Soft-restart this process from its manifest, fanning out to every worker. Refreshes env, resets settings caches, and re-initializes from the manifest in-process (no pod restart), then propagates to the fleet; --target restricts the fan-out to named workers, and only they are judged for a restart. The soft restart carries every hot key in place. An applied worker’s row names the recycle-class keys whose value differs from the one it bound (awaiting_respawn); a worker whose reload was refused at its epoch build (the build discarded before its swap) replies failed naming the keys still drifted after the discard (awaiting_respawn); any other failed reload, a failed discard among them, carries none. Every worker whose reload built and reports such a key is then restarted one at a time through the deployment’s supervisor, the answering worker last, after the reply once the roll converged. A worker whose reload was refused at its epoch build is never restarted: the stored config did not build on it and a restart may fail the same way, so it keeps serving its current config, its restart withheld. Any worker other than the answering one whose state is unknown (its reload failed otherwise or did not finish, it has no row, its reply is malformed, or the bus was unreachable) is asked once it is ready, and restarted unless its reply confirms it clean or states a refused build (its restart then withheld). The answering worker is never asked: when its own state is unknown, it needs its own restart, run after the reply once the roll converged. The response is the per-worker fleet report, the restart roll it ran (recycle, null when the roll had no worker to visit: every addressed worker confirmed no recycle-class key, or the only ones naming one were refused at their epoch build) and the workers still awaiting a respawn after it (awaiting_respawn). Example: tai config reload

tai config settings-schema

List the registered settings groups with their resolved field values. Example: tai config settings-schema --json