Skip to content

Bootstrap (talmi.yaml)

The bootstrap file is the trusted, host-local entry point. A JSON Schema is available for editor validation - see Validation.

# talmi.yaml
grade: prod                      # free-form label for your environment

store:
  type: postgres                 # memory | postgres
  dsn: env:TALMI_STORE_DSN       # required for postgres
  connect_timeout: 10s           # 0 = default

audit:
  enabled: true
  type: postgres                 # postgres | memory | noop
  dsn: env:TALMI_AUDIT_DSN
  retention: 90d                 # 0/unset = keep forever
  connect_timeout: 10s
  sinks: [ stdout ]              # optional: export each event

signing:
  algorithm: ES256               # ES256 (default) | HS256
  key: file:/run/secrets/session-signing-key.pem

auth: # enables the admin API (optional)
  login_issuer: gh-login       # a github-oauth issuer
  session_issuer: talmi-session  # a talmi-session issuer
  session_ttl: 8h
  server: https://github.com
  client_id: Iv1.xxxxxxxx
  scopes: [ read:org ]

source:                          # where the sourced tree comes from (optional)
# ...local includes or a github block; see Config sources

issuers: { include: [ "issuers.d/*.yaml" ] }
realms: { include: [ "realms.d/*.yaml" ] }
rules: { include: [ "rules.d/*.yaml" ] }

Sections

Section Purpose
store Lease registry. memory (default) or postgres with a dsn. connect_timeout bounds the initial connect.
audit Audit log. enabled, type, dsn, retention (a duration; 0/unset keeps forever), sinks.
signing Session JWT signing key. ES256 (EC PEM) or HS256 (raw secret).
auth Admin API. Names a login_issuer and session_issuer, plus OAuth server/client_id/scopes and session_ttl.
source Local includes or a remote GitHub source. See Config sources.
issuers / realms / rules Glob includes for the sourced tree.

Every secret-bearing value (dsn, key, provider credentials) is a secret.Ref, not an inline literal.

Postgres is not auto-migrated by the app; run migrations out of band (see Deployment).