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