feat(config): vars schema + the §3 resolution engine
Phase 3 foundation (docs §3): env-filtered, proximity-first config inheritance down the group tree. - Migration 0048: `vars` (polymorphic group|app owner via two nullable FKs + CHECK exactly-one, env scope, JSONB value, explicit tombstone) + `apps.environment` (the env marker the resolver filters on — 'an environment is an app'). - config_resolver: a shared chain-walk CTE (mirrors effective_app_role) that walks app → ancestor groups, env-filters in SQL, plus a pure Rust resolution pass implementing the §3 semantics SQL can't — per-key proximity-first, @E-over-* within a level, map deep-merge, tombstone suppression, and provenance for --explain. Verified: 8 unit tests (incl. the §3.2 proximity-beats-env-specificity call, deep-merge, tombstone, boundary) + the candidate-fetch CTE against live Postgres (env-filter drops a non-matching @production value; nearer level shadows farther). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -31,6 +31,7 @@ pub mod auth_api;
|
||||
pub mod auth_bootstrap;
|
||||
pub mod auth_middleware;
|
||||
pub mod authz;
|
||||
pub mod config_resolver;
|
||||
pub mod cron_scheduler;
|
||||
pub mod dead_letter_repo;
|
||||
pub mod dead_letter_service;
|
||||
|
||||
Reference in New Issue
Block a user