What a v1 COTS consumer must accept from a v1.x COTS producer.
This document is normative for the discipline's specifications. It states, in concrete terms, what a consumer of a given version can rely on when it receives a COTS from a producer of the same major version.
- Every field declared as mandatory in the schema MUST be present in every COTS of the corresponding version. The conformance suite verifies this.
- Every field declared as optional in the schema MAY be absent. Consumers must not throw on missing optional fields; they must treat the absence as "the producer did not record this datum."
- Every field declared as enum in the schema MUST take one of the declared values. A producer MUST NOT emit an unknown enum value.
- Every field declared as URI in the schema MUST be a syntactically valid URI.
- Every
SourceArtifactMUST be uniquely identified by itsid. Two COTSs from the same producer MUST NOT share anid. - Every
DecisionRecordMUST be uniquely identified by itsid. - Every
EvidenceItemMUST be uniquely identified by itsidand MUST reference at least oneSourceArtifactviasource_id.
- Every
claim_idreferenced by anEvidenceItemMUST resolve to aClaimin the same COTS. - Every
basis_idreferenced by aDecisionRecordMUST resolve to aDecisionBasisin the same COTS. - Every
evidence_chain_refreferenced by aDecisionRecordMUST resolve to an entry in theevidence.evidence_chainarray. - Every
source_idreferenced by anEvidenceItemMUST resolve to an entry in theinputs.source_artifactsarray.
- Every
produced_atMUST be a valid ISO-8601 timestamp. - Every
valid_fromMUST be before or equal tovalid_until. - Every
valid_untilthat is not null MUST be after theproduced_atof the COTS that references the artifact (the artifact must be valid at the time of the decision).
- The content of fields. A producer can put any text in a
decision_textfield. The discipline does not assert that the text is correct; it asserts that the text is recorded. - The correctness of provenance. A producer can record a Provenance that is wrong. The discipline records the Provenance; the conformance suite verifies the Provenance is well-formed.
- The completeness of evidence. A producer can record a partial evidence chain. The discipline records what the producer recorded; the conformance suite verifies that the recorded evidence satisfies the schema.
The compatibility guarantees are themselves versioned. The current guarantees apply to v0.1 and later pre-release versions. When v1.0 is released, the guarantees are tightened (the wire format becomes normative; the conformance suite is promoted to a release-gate).
cots/README.md-- the COTS spec.versioning.md-- the versioning policy.compatibility-test-suite.md-- the test cases the conformance suite runs against this spec.