CDF config, shared core

The part of .cdf/config.yaml that every Cognitive Delivery implementation must understand identically. Product-specific sections are deliberately NOT here: a product carries its own alongside these, which is why additionalProperties is true at the root.

Schema
config-core.schema.json, served as JSON at its $id: https://cognitive-delivery.github.io/contract/1.x/config-core.schema.json
Dialect
http://json-schema.org/draft-07/schema#
Root
object, open (additional properties are carried)
Stability
none stated at the root; every declared property carries its own
Properties
18 declared: 18 under the root, 0 in definitions

Properties

Every declared property under the root, in the schema's own order. [] is an array's items, .* the shape of every unnamed member, #name a definition. Objects carry additional properties unless a row says otherwise.

PathTypeRequiredDescriptionConstraintsStability
adoption_tierintegerHow much governance this workspace has adopted. Read by the Index, so it must mean the same thing everywhere.one of 1, 2, 3, 4
max 9007199254740991
stable
governanceobjectstable
governance.sourcestringstable
governance.refresh_modestringone of "on-open", "manual", "scheduled"stable
governance.profilestringstable
review_policyobjectWho must review, and whether the author may. Security-relevant: an implementation that ignored reviewer_cannot_be_implementer would let work approve itself.stable
review_policy.cross_model_review_requiredbooleanstable
review_policy.reviewer_cannot_be_implementerbooleanstable
review_policy.required_reviewersintegermin 0
max 9007199254740991
stable
provenanceobjectstable
provenance.required_fieldsarraystable
provenance.required_fields[]string
cdiobjectstable
cdi.enabledbooleanstable
cdi.aggregation_endpointstring | nullNull means local only. Null is the default and is a value, not an omission.stable
break_glassobjectThe exceptional override. Security-relevant: an implementation that widened this beyond one spec and one non-final gate would break the policy the framework states.stable
break_glass.modestringone of "self-service-logged", "two-person", "disabled"stable
break_glass.timeout_minutesintegermin 0
max 9007199254740991
stable
sealedarrayDotted paths of fields an upper layer has fixed. SEALING IS PART OF THE CONTRACT, and any implementation that ignores it fails conformance. A sealed field may not be relaxed by a downstream layer: a lower layer may match the sealed value or make it stricter, never looser. Ignoring this would let a workspace quietly undo a control its organisation set.stable
sealed[]stringA dotted path of lower-case segments (review_policy.reviewer_cannot_be_implementer). The runner also checks that a sealed path in a fixture resolves to a key the file carries.pattern ^[a-z][a-z0-9_]*(\.[a-z][a-z0-9_]*)*$