Navigator has three operating modes but only two parsed deployment profiles. “Dev” is the local KIND lane, including its
disposable navigator dev staging integration surface; the wire value is dev. All three managed GKE rows use
production, even when a config, namespace, or hostname ends in -staging. “Test” is the dev profile with
NAVIGATOR_CI_HARNESS=1, not a third parsed value. Exact means exact: staging, test, Dev, Production, or any
value with surrounding whitespace is an error. Production is selected by exact production, empty, or unset, so an
absent selector is production-safe.
The -staging suffix remains a deployment identity and release ring in deployments/ directory names, Kubernetes
namespaces, data planes, and public hosts. It never becomes a weaker runtime profile. Set both NAVIGATOR_ENVIRONMENT
and NAVIGATOR_CREDENTIAL_ENVIRONMENT to production in deployments/neon-law-stg/config.toml; the runtime also
fences provider endpoints, so the proving ring keeps production boot checks while its isolated data plane holds sample
matters.
The data rule is small but not flat: every boot applies the same embedded, environment-blind canonical seed —
jurisdictions above all, the reference table every entity and licensure record points at — and a boot carrying sample
matters additionally and idempotently applies the compiled fixture (three synthetic matters, their participants, and the
rows used by the portal walkthrough). Tests may add rows inside their isolated schemas.