Deprecate a contract version
Moves one contract version from ACTIVE to DEPRECATED, so producers stop sending facts under it. No request body.
Rules
- Allowed to the namespace owner (the producer service the namespace is bound to) or to a caller holding
catalog:deprecate. Anyone else is refused before the version is read, so a missing version is not revealed to them. In multi-tenant mode the owner is the producer’s service credential for the tenant. - Idempotent: the transition and a version already
DEPRECATEDboth answer200; only the transition is audited. - The deprecation is irreversible: to send facts again, register a new version.
- It applies to every tenant, since one contract catalog serves the whole environment, and takes effect on ingestion within 30 seconds; after that a fact under this version answers
422SF-0019. - Facts already stored under it stay readable.
Responses
200the contract version, nowDEPRECATED.403SF-0005not the owner and nocatalog:deprecate;SF-0014missing permission;SF-0027,SF-0028multi-tenant credential refusals.404SF-0017no such version.503SF-0094retry later.
Autorizações
JWT issued by the identity provider. A producer calls with a service credential issued for the tenant it sends facts for; a reader calls with a user token or a service credential. The tenant is always taken from the token, never from the request path, query or body.
Parâmetros de caminho
Producer service that owns the fact type.
"payments-api"
Namespace of the fact type.
"acme.payments"
Fact type name.
"payments.payment_confirmed"
Semantic version of the contract (major.minor.patch).
"1.0.0"
Resposta
The contract version, now DEPRECATED: the transition, or a replay on a version that was already deprecated.
When this version was registered. RFC 3339, UTC.
Content hash verified at registration (the prefix sha256: plus 64 hex characters); the authoritative integrity value of this version.
Namespace of the fact type, bound to the producer that registered in it first.
"acme.checkout"
Producer service that owns the fact type.
"checkout-api"
References facts of this type carry, each with the scope and sensitivity its reference type had at registration.
Payload schema as stored: member order, whitespace and number spelling may differ from what was sent, so check integrity with hash, never by rehashing this.
Semantic version of this contract (major.minor.patch).
"1.0.0"
Lifecycle status: a DEPRECATED version refuses new facts and never returns to ACTIVE. Allowed values: ACTIVE, DEPRECATED.
ACTIVE, DEPRECATED Owning team or squad, as registered; informational and audited, never an identity.
"checkout-squad"
Fact type name, chosen by the producer.
"checkout.order_placed"
How a new version is checked against the earlier versions of its major. Allowed values: TRANSITIVE.
TRANSITIVE 
