Configuration Schema
The YAML configuration has the following top-level structure.
topology: string
template: boolean
lab:
name: string
domain: string
safety:
isolatedLab: boolean
allowProductionTarget: boolean
evidenceRoot: string
cacheRoot: string
sources:
<source-name>:
uri: string
sha256: string
publisher: string
version: string
architecture: x64 | x86 | neutral
sizeBytes: integer
licenseAccepted: boolean
cacheFile: string
signatureRelativePath: string # required for ISO media
architectureRelativePath: string # optional signed ISO payload proof
architectureVerification: signedVersionResource # optional EXE bootstrapper proof
sql:
instanceName: string
serviceAccount: string
sysAdminAccounts: string[]
installDirectory: string
mecm:
siteCode: string
siteName: string
sqlServer: string
siteServerFqdn: string
productId: string
smsInstallDir: string
prerequisitePath: string
testClient:
name: string
domain: string
markerAcceptance:
enabled: boolean
labOnly: boolean
siteCode: string
siteServerFqdn: string
targetFqdn: string
targetResourceId: integer
Required source names
The following source names are required for a full run:
sqlServermecmadkadkWinPeodbcDriver18vcRedistX64vcRedistX86
Validation rules
safety.isolatedLabmust betrue, orsafety.allowProductionTargetmust be explicitlytrue.template: trueallows placeholder values;template: false(or omitted) requires real values.licenseAcceptedmust betruefor every source before acquisition runs.sha256must be a 64-character hexadecimal string.- Every non-template source requires a positive
sizeBytes, an expected publisher, a native product version, and anx64,x86, orneutralarchitecture.sources.mecm.versionis the four-componentProductVersionof its signedsetup.exe, not a Current Branch label. architectureRelativePathis ISO-only and validates the separate signed payload’s PE architecture.architectureVerification: signedVersionResourceis executable-only and accepts a signed x86 launcher for an x64 payload only when signed version-resource identities unambiguously namex64. A source may select at most one of these architecture proofs, and only when its declared architecture isx64orx86.mecm.siteCodemust match^[A-Z0-9]{3}$.mecm.sqlServerandmecm.siteServerFqdnmust match the lab domain.testClient.nameandtestClient.domainmust identify a separate, domain-joined client.- Enabled marker acceptance requires
labOnly: trueand these exact values:siteCode: LAB,siteServerFqdn: LABZ1-CM01.test.gell.one,targetFqdn: RING0IVY24-01.test.gell.one, andtargetResourceId: 16777219.
Runtime-only inputs
The private YAML path and source provenance are supplied outside the schema:
| Input | Contract |
|---|---|
SETUPCM_CONFIG or -ConfigPath | Path to the non-template YAML staged separately from source. |
SETUPCM_SOURCE_COMMIT or -SourceCommit | Full 40-character commit used to create the staged source archive; mandatory for Marker. |
Neither value is copied into component evidence except the validated commit. The private configuration body, source URIs, and vault locations are never evidence fields.