Knowledge Portal · engineering documentation

Skip to content

ZAIXOS Engineering Platform — Configuration Architecture ​

Document type: Technical Specification
Version: 1.0 · Phase: 12-3
Status: Permanent technical authority
Related: PLATFORM_CONFIGURATION_REFERENCE.md


Purpose ​

Define the configuration hierarchy, precedence rules, schema ownership, and validation binding for all platform configuration artifacts in product repositories.


Configuration layers ​

LayerFileMutabilityOwnerPurpose
L-C0Platform release defaultsImmutable at pinD-PBundled in package
L-C1.zaixos/platform.ymlProduct editableD-RDeclarative intent
L-C2.zaixos/platform.lockProduct editable (controlled)D-RExact pin + checksum
L-C3.zaixos/extensions/manifest.ymlProduct editableD-RExtension registry
L-C4Composer composer.json requireProduct editableD-RFetch mechanism
L-C5IDE session stateEphemeralD-TNot platform config

Configuration hierarchy diagram ​

┌─────────────────────────────────────┐
│ L-C0 Platform release defaults       │  (in vendor/package)
└─────────────────┬───────────────────┘
                  │ constrains
┌─────────────────▼───────────────────┐
│ L-C1 platform.yml                    │  versionConstraint, adapter id, mounts
└─────────────────┬───────────────────┘
                  │ pinned by
┌─────────────────▼───────────────────┐
│ L-C2 platform.lock                   │  exact versions + checksum (authoritative)
└─────────────────┬───────────────────┘
                  │ extended by
┌─────────────────▼───────────────────┐
│ L-C3 extensions/manifest.yml         │  registered product extensions
└─────────────────────────────────────┘

Precedence rules ​

ConflictResolution
lock vs yaml versionlock wins on production branches; CI warns on yaml/lock drift
extension vs platform constraintPlatform constraints A–B always win
extension vs default manifest IDPlatform default wins on ID collision — validation fails
adapter mount path vs defaultyaml mount wins if certified path schema valid
composer vs lockMust match — validation fails if diverged

Schema versioning ​

SchemaFieldCurrent version
Platform configconfigSchema in platform.yml1
Platform locklockSchemaVersion1
ExtensionsschemaVersion in manifest.yml1
Adapter metadataschemaVersion in manifest.json1

Schema MAJOR bump → platform MAJOR + migration guide.


Configuration validation pipeline ​

Load platform.yml → JSON Schema validate
Load platform.lock → JSON Schema validate
Cross-validate lock satisfies yaml
Load extensions manifest → JSON Schema validate
Verify registered paths exist
Verify extension IDs unique vs platform defaults
Emit ConfigValidationReport

Bound to VALIDATION_ARCHITECTURE.md ConfigSchemaTest.


Environment dimensions ​

DimensionConfig sourceNotes
Production release branchlock exact + failClosed trueRequired
Development branchyaml constraint may floatlock warning allowed
CISame as target branch policyInvokes validation suite
Local IDEReads materialized mount onlyNo platform.yml hot reload

Sensitive configuration ​

DataStorageRule
API keysNot in platform configProduct .env
Clinic IDsProduct configNot platform
Platform checksumsplatform.lockIntegrity only
Adapter pathsplatform.ymlPublic

Feature flags (Experimental) ​

Optional block in platform.yml:

yaml
experimental:
  gitTemplateBootstrap: false
  cliAutoMaterialize: false
  orgTeamRulesBridge: false

Experimental flags default false. Production CI must not require Experimental flags.


Configuration ownership boundaries ​

ActionAllowed actor
Create platform.ymlProduct integrator
Bump platform.lockProduct integrator + validation green
Add extension entryProduct developer + architect review
Edit vendor platform filesForbidden
Disable validation.failClosedForbidden on release branches

Relationship to materialization ​

Materialization reads:

  1. platform.lock → versions
  2. platform.yml → mount strategy, adapter id
  3. extensions/manifest.yml → merge set

Output updates platform.lock.checksum and materializedAt.


Configuration Architecture v1.0 — Phase 12-3.

ZAIXOS Knowledge Portal — public engineering docs at /docs · Staff operations at /admin