feat(harmony_config): unified config layer (ADR-020) — ConfigClient, ConfigClass, masking #304

Merged
johnride merged 4 commits from pr/harmony-config-layer into master 2026-05-29 16:15:56 +00:00

4 Commits

Author SHA1 Message Date
f37ab6aba1 feat: harmony_config densification of code and comments, remove much bloat
All checks were successful
Run Check Script / check (pull_request) Successful in 2m21s
2026-05-29 12:12:41 -04:00
d0f9ba8d0f Merge branch 'master' into pr/harmony-config-layer 2026-05-29 11:07:27 -04:00
aa709aa68b fix(harmony_config): migrate example-harmony-sso call site to ConfigClient
All checks were successful
Run Check Script / check (pull_request) Successful in 2m52s
The ConfigManager->ConfigClient rename in this PR updates its in-tree
consumer so master stays green. Minimal 2-line call-site fix; the
example's full ADR-020 rework lands in the example PR.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-28 13:46:48 -04:00
08b55ee36d feat(harmony_config): unified config layer — ConfigClient, ConfigClass, masking
Net-diff PR (2 of 4) splitting feat/unified-config-and-secrets.
harmony_config + harmony_config_derive; compiles against master's harmony_secret.

- ConfigClass + #[config(secret)] derive; class plumbed through ConfigSource
- ConfigManager -> ConfigClient rename + for_namespace + Builder
- per-class secret masking: input echoes '*', output renders '****'
- get_or_prompt persists to every writable source
- SQLite dropped from the canonical chain (cleartext-at-rest) + namespaced
- prompt banner; serde-rename caveat docs; store-error logging
- docs: ADR-020-1 names OPENBAO_URL/VAULT_ADDR; ROADMAP/01 + firewall_pair rename

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-28 13:45:12 -04:00