3.8 KiB
Artifact Compatibility Evaluation Contract
This contract defines deterministic pre-mutation evaluation for ISO payloads, model packs, update bundles, and trust bundles. Signature and object verification occur separately; compatibility cannot turn an untrusted artifact into a trusted one.
Installed Context
The evaluator receives a locally derived, non-secret context containing product category, internal tier, platform version, Ubuntu release, architecture, hardware profile/capabilities, available bytes, installed security floor, current revocation-list version/age, and current artifact inventory. Missing required context fails closed; it is never replaced by a network lookup.
Evaluation Order
Evaluation stops at the first failure in this order so every implementation returns the same primary reason:
ARTIFACT_SCHEMA_UNSUPPORTED— manifest or signature-envelope schema is not supported.TRUST_POLICY_UNSUPPORTED— declared trust policy cannot be evaluated.KEY_UNKNOWN,KEY_REVOKED, orREVOCATION_POLICY_STALE— signer is not currently acceptable.MANIFEST_DIGEST_MISMATCH— envelope digest does not match canonical manifest bytes.SIGNATURE_INVALID— detached signature does not verify the canonical manifest bytes.OBJECT_DIGEST_MISMATCH— any declared object is absent, different in size, or fails SHA-256.ARCHITECTURE_INCOMPATIBLE— target architecture is neither installed architecture normulti.CATEGORY_INCOMPATIBLE— installed category is not explicitly allowed.TIER_INCOMPATIBLE— installed internal tier is not explicitly allowed.PLATFORM_VERSION_INCOMPATIBLE— current/from/to rules reject the installed version.SECURITY_FLOOR_VIOLATION— activation would move below the installed signed floor.UBUNTU_RELEASE_INCOMPATIBLE— base release is outside the declared target.HARDWARE_PROFILE_INCOMPATIBLEorCAPABILITY_MISSING— required local hardware is absent.SPACE_INSUFFICIENT— available staging/rollback space is belowrequired_free_bytes.ROLLBACK_PREREQUISITE_MISSING— required snapshot/backup/last-known-good state is not verified.ACTION_GRAPH_INVALID— actions are unordered, duplicated, cyclic, or reference absent objects.
Only a result of COMPATIBLE permits staging. Staging still cannot mutate the active installation;
activation is a separately authorized durable operation.
Category and Tier Invariants
workstationcategory accepts only tierworkstation.servercategory accepts onlystarter,basic,pro, ormax.- A Workstation artifact listing a Server tier, or Server artifact listing
workstation, is invalid even when both values separately appear in their allowlists. - Offline Server S/M permits only
starterandbasic; Offline Server L/Max permits onlyproandmax. Online Universal Server may permit all four Server tiers. - Compatibility never grants entitlement. License evaluation can further restrict an otherwise compatible artifact.
Version Rules
platform_versions and update from_versions use a single approved semantic-version range grammar;
prerelease versions match only when explicitly named. to_version is exact. Downgrade is any target
lower than current and is rejected unless both the manifest and a separately signed break-glass
authorization permit it. String or lexical version comparison is forbidden.
Test Vector Policy
Files under test-vectors/ are intentionally non-production examples. Repeated hexadecimal values,
example.invalid, test key IDs, and zero-value signatures MUST never be accepted as release data.
Structural/compatibility vectors may use them; cryptographic positive vectors require a dedicated
published test key and real signature before Gate 1 approval.