Files
esh-pfi-infrastructure/stacks/muninn-gate/conf/muninn-gate.example.yaml
T
vh 0441995ac8 docs(muninn-gate): sync example to reality — mimir-inbox key control scope + staging live (#377)
The mimir-inbox deploy changed two things the committed example documents:
the mimir-inbox key gained the control scope (2026-08-01, for cancel/retry),
and the staging root is no longer a placeholder — it's the real shared dir on
corviduo-dev, path-agreement probe PASS (muninn-dev). Bind was already correct
at :8090 (the stale :8080 was only in the gate repo's own example).
2026-08-01 14:36:31 -07:00

35 lines
1.7 KiB
YAML

# muninn-gate mounted config — REDACTED EXAMPLE (committed).
# The real file (with bearer-key secrets) lives on corviduo-dev at
# /opt/docker/conf/muninn-gate/muninn-gate.yaml and is gitignored.
#
# Schema is CLOSED: an unknown field (top-level or per-key) is a BOOT FAILURE,
# not a warning. Read once at boot; every validation failure aborts before the
# socket binds. Four top-level fields only.
# Absolute, existing directory, same volume as the personal muninn watcher.
# Byte-identical to the watcher's view: /data/state/ingestion in both containers.
ingestion_root: /data/state/ingestion
# Submit-path allowlist (non-empty; each absolute, existing, a directory).
# Canonicalized at boot. Ratified 2026-07-30. Real shared dir as of 2026-08-01
# (mimir-inbox — the writer — deployed on corviduo-dev:8091): 1000:1000 0755,
# writer rw / gate+watcher ro. Path-agreement probe PASS (muninn-dev, same
# inode+bytes across writer/gate/watcher; admission byte-identity preserving).
staging_roots:
- /mnt/muninn-staging/mimir-inbox
# Bearer credentials. `name` = non-secret caller identity, recorded as
# `submitted_by`. Flat scopes (no hierarchy/inheritance): read | submit | control.
# Names AND key values must both be unique; a padded key fails boot.
keys:
- name: mimir-inbox
key: <64-hex-secret, provisioned by infra-ops>
scopes: [read, submit, control] # control added 2026-08-01 for mimir-dev cancel/retry
- name: ops-curl
key: <different 64-hex-secret>
scopes: [read, submit, control]
# WG-internal address — observability only, NOT read by the app. Keep consistent
# with the launcher's --host/--port (the launcher is authoritative).
bind: 10.250.50.152:8090