Configuration Files
A developer or operator touches four kinds of files.
1. Server bootstrap
Section titled “1. Server bootstrap”/etc/infinity-config/config.yaml, selected with -f. Chassis identity keys plus storage:, per-hive sources:, auth:, and audit:. Development example:
service: configversion: 2.0.0-devsid: dev-localhost: ""port: "7123"zerotrust: false
storage: mode: bbolt bbolt: path: /var/lib/config
hives: cluster: sources: - name: dev-cluster backend: localdir path: /etc/infinity-config/data owns: ["**"] priority: 0 writable: trueProduction highlights:
storage: mode: etcd etcd: endpoints: [https://etcd-1:2379, https://etcd-2:2379, https://etcd-3:2379] leader_election: enabled: true ttl: 15s
hives: tenant: sources: - name: tenant-git backend: git url: https://git.example.com/platform/tenant-config.git branch: main owns: ["acme/**"] priority: 0 auth_username: x-access-token auth_token: ${env:GIT_TOKEN} - name: break-glass backend: postgres dsn: ${env:PG_DSN} table: infinity_config_overrides owns: ["**"] priority: 100 writable: true alert_on_write: pagerduty:break-glassSource descriptor fields: name, backend (fs|localdir|git|etcd|postgres), url/path/dsn/endpoints, branch, table, owns (path globs: "**", "prefix/**", exact), priority, writable, alert_on_write, poll_interval, local_open, auth_*, TLS settings.
Bootstrap changes require a restart — there is no live reload of the bootstrap itself.
2. Source content: flat-path documents
Section titled “2. Source content: flat-path documents”The one authoring format for fs, localdir, and git sources. Every *.yaml / *.yml anywhere under the source root is an independent document; folders and filenames carry no meaning. The only reserved keys are path: (colon-separated; "" = hive root) and match: (instance cohort labels):
hives: cluster: - path: "" region: eu - path: dc1:main:iam log: level: info - path: dc1:main:iam match: {ring: canary} log: level: debug tenant: - path: acme:forge:prod:tenant-a dbpools: main: dsn: vault:tenant-a-dsnlocaldir is the writable variant of the same format: server-side writes rewrite the entry in its owning file (comments are not preserved). Because the format is identical, a localdir tree can be pushed to git unchanged.
3. CUE schemas
Section titled “3. CUE schemas”Each hive has an embedded CUE schema; validation mode is per hive: strict (invalid → no snapshot / 422 on write), warn, or off — operator-overridable in the bootstrap. Escape hatches for unschema’d customer data: metadata, annotations, extensions, and x_kisai_* keys are always allowed.
Fetch the schema and a canonical example at runtime:
kis config schema clustercurl -H "X-Api-Key: $KEY" http://localhost:7123/hives/cluster/_meta/example4. API keys
Section titled “4. API keys”File-backed keys for machine access, referenced from auth: in the bootstrap:
config.svc config generate apikeys > /etc/infinity-config/apikeys.yamlJWT bearer auth validates against a JWKS endpoint (typically the IAM service’s /.well-known/jwks.json), and mTLS client certificates are accepted where zerotrust is on. Authorization is a per-hive expression policy over (subject, action, hive, path).