types.StoreConfig
Backend selects the persistence engine.
- "boltdb" - the default. Single-file embedded KV store, mature path with the most production miles.
- "sqlite" - WAL-mode SQLite backend. Single-file under DataDir, embedded, no external service needed.
- "postgres" - external PostgreSQL backend. POC: validates the managed-DB / multi-writer model against SQLite/Bolt on the orchestrator side. Requires store.postgres.connection_string (or PG* env vars; see StorePostgresConfig).
Empty defaults to "boltdb" so existing config files keep working untouched. Validate() rejects any other value with a precise error.
gc object
DeletedJobsRetention is how long to keep soft-deleted jobs before permanent deletion. Default: 7 days. Increase for longer audit history.
Possible values: [-9223372036854776000, 9223372036854776000, 1, 1000, 1000000, 1000000000, 60000000000, 3600000000000]
LostNodesRetention is how long to keep lost node records after they're marked as lost. Default: 7 days. Measured from when the node transitions to Lost state. Independent of node_manager.lost_timeout.
Possible values: [-9223372036854776000, 9223372036854776000, 1, 1000, 1000000, 1000000000, 60000000000, 3600000000000]
TerminalExecutionsRetention is how long to keep terminal execution records (complete/failed/stopped). Default: 7 days. Increase for longer execution history.
Possible values: [-9223372036854776000, 9223372036854776000, 1, 1000, 1000000, 1000000000, 60000000000, 3600000000000]
postgres object
Postgres carries the connection settings used when Backend == "postgres". Ignored for other backends.
ConnectionString is the libpq DSN (URI or keyword form). When set, takes precedence over the structured fields below.
Structured connection fields. Used when ConnectionString is empty. Any blank field falls back to the matching PG* env var.
MaxOpenConns caps the size of the connection pool. Tune to your database's connection budget — small managed instances often cap at 30-100 total connections, so scaling to multiple orchestrator replicas requires sizing this down accordingly.
Password is the postgres credential; prefer the PGPASSWORD env var (or any libpq pgpass file) over committing this to YAML.
Schema selects the Postgres schema. Honoured regardless of whether ConnectionString or structured fields are used.
{
"backend": "string",
"gc": {
"deleted_jobs_retention": -9223372036854776000,
"lost_nodes_retention": -9223372036854776000,
"terminal_executions_retention": -9223372036854776000
},
"postgres": {
"connection_string": "string",
"database": "string",
"host": "string",
"max_open_conns": 0,
"password": "string",
"port": 0,
"schema": "string",
"sslmode": "string",
"user": "string"
}
}