Repository navigation
0.19.0-alpha
Pre-release
Pre-release
·
43 commits
to main
since this release
Added
- A third, optional layer axis:
--host/-H(docs/HOST_LAYER_DESIGN.md) — raised by the
repo owner from a real deployment shape: a load-balanced Production environment where
individual servers need genuinely different config from each other, not just from other
clients/environments. Rejects the hyphenatedClient-Hostnaming workaround (e.g.
Acme-192.168.10.10) in favor of one more optionalextendshop,
.configtransform/Clients/<C>/<E>/Hosts/<H>/configtransform.json, reusing the
self-describing-layers chaining as-is.LayerPathResolver.Resolvegains an optionalhost
parameter (requiresclient+environment, mirroring the existingclient-requires-
environmentrule one level up); applies uniformly to a plain resolve,--dry-run/--diff,
--list(both modes), andset.setinto a new Host layer defaults itsextendsto the
matching Client/Environment layer, the same convention every other layer's default already
follows, one level deeper (SetTargetResolver).initgains a repeatable--hostflag
(quiet mode) and one more interactive prompt (asked only once a client was given), cross-
multiplying with every declared client × environment pair the same way clients already
cross-multiply with environments (InitPlanner), plus a matching case-insensitive-collision
check.-H(capital) is the short alias —-hstays--help, a deliberate, documented
tradeoff (docs/HOST_LAYER_DESIGN.md's decision log #2). Verified to need zero changes, by
reading the actual code rather than assuming:LayerChain'sextends-chain walk and
--list --resource's reverse lookup already treat directory depth as arbitrary, and every
format engine'sMergemethod only ever sees an ordered patch-path list, never a layer's
position in the tree. 31 new tests acrossConfigTransform.Core.Tests/
ConfigTransform.Cli.Tests.init --template's own--host-aware variant
(docs/HOST_LAYER_DESIGN.mddecision log #7) is deliberately deferred to a separate PR — the
fixed canned tree stays the minimal, no-decisions starter it's always been.