Language: English Español
This is a developer-facing summary of the schema versioning policy. The full architectural decision is in ADR-0074.
The semantic-first client contract is documented in Semantic Auth Graph Client Contract. It is the current path for external consumers that should no longer depend on GUIDs in the default payload.
AuthorizationGraph carries "schemaVersion": "MAJOR.MINOR.PATCH".>=1.0.0 <2.0.0) in package metadata.AUTH_205).You almost never need to think about the version. You bump your SDK on a normal cadence; the rules above keep production safe in between.
featureFlags[] criteria typeWhen in doubt, the schema owner bumps higher. False-MAJOR is annoying; false-MINOR is an incident.
umsSchemaCompatibility. Don’t widen the range unless you’ve tested against a new MAJOR.SchemaMinorMismatchEvent — server emits a newer MINOR. Consider updating soon.SchemaServerOlderEvent — your SDK is newer than the server. Usually safe but track UMS server upgrades.UnknownFieldsObservedEvent — server is sending fields you can’t use. Update at your next opportunity.DeprecatedFieldUsageEvent — your code reads a field marked for removal. Migrate before next MAJOR.AUTH_205 — your SDK can’t safely interpret what the server sent. Either the server upgraded (you should too) or the server downgraded (talk to your UMS operator).When you propose a graph change, document the bump category in the PR description:
Schema impact: MINOR — adds optional
context.user.localefield.
CI validates that the schema’s declared schemaVersion matches the change category by running golden fixtures from the previous version against the new schema.
For MAJOR changes:
compatibility-matrix.md.For deprecations:
"deprecated": true and "x-deprecation-removed-in": "2.0.0".| Release | Action |
|---|---|
| Schema 1.4.0 (MINOR) | Add context.tenant.legalName (new). Mark context.tenant.name as deprecated: true, replacement is legalName. |
| Schema 1.5.0 (MINOR) | SDKs reading name emit DeprecatedFieldUsageEvent. |
| Schema 1.6.0 (MINOR) | Same — last grace period. |
| Schema 2.0.0 (MAJOR) | context.tenant.name removed. Old SDKs (<2.0.0 compat) hit AUTH_205. Migration guide published. |
Minimum window: two MINORs or six months, whichever is longer.
src/libs/sdk/contracts/SCHEMA_VERSIONING.md — operational summary inside the source tree