Skip to content

D38 — Server configuration via YAML (internal/config, gopkg.in/yaml.v3)

Decision. cartographer serve --config file.yaml (or CARTOGRAPHER_CONFIG) loads internal/config.Config with precedence CLI flags > env > YAML > default; kbs: [] accumulates across levels, scalar fields follow the standard precedence. New direct dependency gopkg.in/yaml.v3 (infrastructure config does not have internal/okf's stdlib-only constraint). Rationale. Flags/env do not scale beyond a few scalar options: kbs: [] with mixed remote/path and the git/audit config require nested structure. YAML is consistent with config.example.yaml mounted from a ConfigMap; the flag>env>YAML precedence preserves full backward compatibility with pure flag/env usage. Details: docs/deployment.md §Configuration: flags, env, YAML.