fix: baseline invalidation registry contracts
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"snapshotDigest": "53468eada148a7afc821b0885b8a53bf47978bfd17adf26b424054beedcce608",
|
||||
"snapshotDigest": "96b95ef1d50cce36e9fca8a98776a9e2e9e3a5dca24a6288ad83bf29c94aebd8",
|
||||
"owner": "frontend-platform",
|
||||
"reason": "Make the reference feature route access policy explicitly session-required",
|
||||
"approvedAt": "2026-08-01T07:18:30.000Z"
|
||||
"reason": "Baseline canonical invalidation graph and topic-version contracts after FE-REG-QUERY retirement",
|
||||
"approvedAt": "2026-08-01T15:15:45.537Z"
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
"registryId": "FE-REG-ROUTE",
|
||||
"owner": "feature-frontend-routing-release-recovery-runtime",
|
||||
"source": "src/features/installed-feature-contracts.ts",
|
||||
"rowCount": 9,
|
||||
"rowCount": 10,
|
||||
"contract": {
|
||||
"requiredFields": [
|
||||
"routeId",
|
||||
@@ -121,6 +121,19 @@
|
||||
"searchSchema": null,
|
||||
"title": "인증 연동"
|
||||
},
|
||||
"EXAMPLES_PLATFORM": {
|
||||
"access": "public",
|
||||
"chunkId": "route-examples-platform",
|
||||
"errorSurface": "route-boundary",
|
||||
"loadingSurface": "example-page",
|
||||
"navigationLabel": "플랫폼 구성",
|
||||
"navigationOrder": 15,
|
||||
"paramsSchema": null,
|
||||
"path": "/examples/platform",
|
||||
"routeId": "EXAMPLES_PLATFORM",
|
||||
"searchSchema": null,
|
||||
"title": "플랫폼 구성"
|
||||
},
|
||||
"EXAMPLES_STATES": {
|
||||
"access": "public",
|
||||
"chunkId": "route-examples-states",
|
||||
@@ -218,7 +231,7 @@
|
||||
"registryId": "FE-REG-ROUTE-RUNTIME",
|
||||
"owner": "feature-frontend-routing-release-recovery-runtime",
|
||||
"source": "src/features/installed-feature-contracts.ts",
|
||||
"rowCount": 9,
|
||||
"rowCount": 10,
|
||||
"contract": {
|
||||
"requiredFields": [
|
||||
"routeId",
|
||||
@@ -275,6 +288,12 @@
|
||||
"routeId": "EXAMPLES_AUTH",
|
||||
"searchCodec": "none"
|
||||
},
|
||||
"EXAMPLES_PLATFORM": {
|
||||
"moduleId": "platform-overview-page",
|
||||
"paramsCodec": "none",
|
||||
"routeId": "EXAMPLES_PLATFORM",
|
||||
"searchCodec": "none"
|
||||
},
|
||||
"EXAMPLES_STATES": {
|
||||
"moduleId": "state-gallery-page",
|
||||
"paramsCodec": "none",
|
||||
@@ -408,41 +427,101 @@
|
||||
"rows": {
|
||||
"CREATE_REFERENCE_RESOURCE": {
|
||||
"auth": "external-session",
|
||||
"authProfileId": "REFERENCE_EXTERNAL_BEARER",
|
||||
"contractVersion": 2,
|
||||
"csrfProfileId": "NO_CSRF_BEARER",
|
||||
"idempotency": "keyed",
|
||||
"idempotencyKeyPolicy": "REQUIRED",
|
||||
"mapperId": "ReferenceResourceMapper",
|
||||
"maxEncodedSearchBytes": 0,
|
||||
"maxResponseBytes": 32768,
|
||||
"method": "POST",
|
||||
"operationId": "CREATE_REFERENCE_RESOURCE",
|
||||
"owner": "feature-frontend-reference-feature-vertical-slice",
|
||||
"path": "/api/reference-resources",
|
||||
"pathParameterNames": [],
|
||||
"pathSchema": "NoRequest",
|
||||
"protocol": "REST",
|
||||
"providerId": "PRIMARY_API",
|
||||
"replayPolicy": "KEYED_COMMAND",
|
||||
"requestSchema": "CreateReferenceResourceCommand",
|
||||
"requestSource": "body",
|
||||
"responseMediaTypes": [
|
||||
"application/json"
|
||||
],
|
||||
"responseSchema": "ReferenceResourcePayload",
|
||||
"retry": "runtime",
|
||||
"semantics": "COMMAND",
|
||||
"successStatuses": [
|
||||
200,
|
||||
201
|
||||
],
|
||||
"timeoutMs": null
|
||||
},
|
||||
"GET_REFERENCE_RESOURCE": {
|
||||
"auth": "external-session",
|
||||
"authProfileId": "REFERENCE_EXTERNAL_BEARER",
|
||||
"contractVersion": 2,
|
||||
"csrfProfileId": "NO_CSRF_BEARER",
|
||||
"idempotency": "safe",
|
||||
"idempotencyKeyPolicy": "NONE",
|
||||
"mapperId": "ReferenceResourceMapper",
|
||||
"maxEncodedSearchBytes": 0,
|
||||
"maxResponseBytes": 32768,
|
||||
"method": "GET",
|
||||
"operationId": "GET_REFERENCE_RESOURCE",
|
||||
"owner": "feature-frontend-form-page-platform",
|
||||
"owner": "feature-frontend-reference-feature-vertical-slice",
|
||||
"path": "/api/reference-resources/{resourceId}",
|
||||
"pathParameterNames": [
|
||||
"resourceId"
|
||||
],
|
||||
"pathSchema": "ReferenceResourceParams",
|
||||
"protocol": "REST",
|
||||
"providerId": "PRIMARY_API",
|
||||
"replayPolicy": "SAFE",
|
||||
"requestSchema": "NoRequest",
|
||||
"requestSource": "none",
|
||||
"responseMediaTypes": [
|
||||
"application/json"
|
||||
],
|
||||
"responseSchema": "ReferenceResourcePayload",
|
||||
"retry": "runtime",
|
||||
"semantics": "QUERY",
|
||||
"successStatuses": [
|
||||
200
|
||||
],
|
||||
"timeoutMs": null
|
||||
},
|
||||
"LIST_REFERENCE_RESOURCES": {
|
||||
"auth": "external-session",
|
||||
"authProfileId": "REFERENCE_EXTERNAL_BEARER",
|
||||
"contractVersion": 2,
|
||||
"csrfProfileId": "NO_CSRF_BEARER",
|
||||
"idempotency": "safe",
|
||||
"idempotencyKeyPolicy": "NONE",
|
||||
"mapperId": "ReferenceResourceListMapper",
|
||||
"maxEncodedSearchBytes": 4096,
|
||||
"maxResponseBytes": 262144,
|
||||
"method": "GET",
|
||||
"operationId": "LIST_REFERENCE_RESOURCES",
|
||||
"owner": "feature-frontend-reference-feature-vertical-slice",
|
||||
"path": "/api/reference-resources",
|
||||
"pathParameterNames": [],
|
||||
"pathSchema": "NoRequest",
|
||||
"protocol": "REST",
|
||||
"providerId": "PRIMARY_API",
|
||||
"replayPolicy": "SAFE",
|
||||
"requestSchema": "ReferenceResourceListQuery",
|
||||
"requestSource": "search",
|
||||
"responseMediaTypes": [
|
||||
"application/json"
|
||||
],
|
||||
"responseSchema": "ReferenceResourceListPayload",
|
||||
"retry": "runtime",
|
||||
"semantics": "QUERY",
|
||||
"successStatuses": [
|
||||
200
|
||||
],
|
||||
"timeoutMs": null
|
||||
}
|
||||
}
|
||||
@@ -491,9 +570,12 @@
|
||||
"rows": {
|
||||
"CreateReferenceResourceCommand": {
|
||||
"boundary": "api-request",
|
||||
"direction": "REQUEST",
|
||||
"owner": "feature-frontend-reference-feature-vertical-slice",
|
||||
"runtime": "zod",
|
||||
"schemaId": "CreateReferenceResourceCommand"
|
||||
"schemaId": "CreateReferenceResourceCommand",
|
||||
"schemaVersion": 1,
|
||||
"unknownFieldPolicy": "REJECT_UNKNOWN"
|
||||
},
|
||||
"none": {
|
||||
"boundary": "route-params",
|
||||
@@ -503,9 +585,12 @@
|
||||
},
|
||||
"NoRequest": {
|
||||
"boundary": "api-request",
|
||||
"direction": "REQUEST",
|
||||
"owner": "feature-frontend-reference-feature-vertical-slice",
|
||||
"runtime": "zod",
|
||||
"schemaId": "NoRequest"
|
||||
"schemaId": "NoRequest",
|
||||
"schemaVersion": 1,
|
||||
"unknownFieldPolicy": "REJECT_UNKNOWN"
|
||||
},
|
||||
"NotFoundSplat": {
|
||||
"boundary": "route-params",
|
||||
@@ -515,27 +600,39 @@
|
||||
},
|
||||
"ReferenceResourceListPayload": {
|
||||
"boundary": "api-response",
|
||||
"direction": "RESPONSE",
|
||||
"owner": "feature-frontend-reference-feature-vertical-slice",
|
||||
"runtime": "zod",
|
||||
"schemaId": "ReferenceResourceListPayload"
|
||||
"schemaId": "ReferenceResourceListPayload",
|
||||
"schemaVersion": 1,
|
||||
"unknownFieldPolicy": "STRIP_UNKNOWN"
|
||||
},
|
||||
"ReferenceResourceListQuery": {
|
||||
"boundary": "route-search-api-request",
|
||||
"direction": "REQUEST",
|
||||
"owner": "feature-frontend-reference-feature-vertical-slice",
|
||||
"runtime": "zod",
|
||||
"schemaId": "ReferenceResourceListQuery"
|
||||
"schemaId": "ReferenceResourceListQuery",
|
||||
"schemaVersion": 1,
|
||||
"unknownFieldPolicy": "REJECT_UNKNOWN"
|
||||
},
|
||||
"ReferenceResourceParams": {
|
||||
"boundary": "route-params",
|
||||
"direction": "REQUEST",
|
||||
"owner": "feature-frontend-reference-feature-vertical-slice",
|
||||
"runtime": "zod",
|
||||
"schemaId": "ReferenceResourceParams"
|
||||
"schemaId": "ReferenceResourceParams",
|
||||
"schemaVersion": 1,
|
||||
"unknownFieldPolicy": "REJECT_UNKNOWN"
|
||||
},
|
||||
"ReferenceResourcePayload": {
|
||||
"boundary": "api-response",
|
||||
"direction": "RESPONSE",
|
||||
"owner": "feature-frontend-reference-feature-vertical-slice",
|
||||
"runtime": "zod",
|
||||
"schemaId": "ReferenceResourcePayload"
|
||||
"schemaId": "ReferenceResourcePayload",
|
||||
"schemaVersion": 1,
|
||||
"unknownFieldPolicy": "STRIP_UNKNOWN"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -585,12 +682,6 @@
|
||||
"phase": "runtime",
|
||||
"required": true
|
||||
},
|
||||
"API_CONTRACT_VERSION": {
|
||||
"classification": "public",
|
||||
"defaultValue": null,
|
||||
"phase": "runtime",
|
||||
"required": true
|
||||
},
|
||||
"APP_ENV": {
|
||||
"classification": "public",
|
||||
"defaultValue": null,
|
||||
@@ -603,6 +694,12 @@
|
||||
"phase": "runtime",
|
||||
"required": true
|
||||
},
|
||||
"CAPABILITY_OVERRIDES": {
|
||||
"classification": "public",
|
||||
"defaultValue": null,
|
||||
"phase": "runtime",
|
||||
"required": false
|
||||
},
|
||||
"CONFIG_SCHEMA_VERSION": {
|
||||
"classification": "public",
|
||||
"defaultValue": null,
|
||||
@@ -795,7 +892,7 @@
|
||||
"registryId": "FE-REG-ERROR",
|
||||
"owner": "feature-frontend-error-classification-boundary-contract",
|
||||
"source": "src/contracts/errors.ts",
|
||||
"rowCount": 31,
|
||||
"rowCount": 38,
|
||||
"contract": {
|
||||
"requiredFields": [
|
||||
"kind",
|
||||
@@ -1041,6 +1138,24 @@
|
||||
"telemetryEvent": "release.mismatch.detected",
|
||||
"userMessageKey": "error.deploy_mismatch"
|
||||
},
|
||||
"DUPLICATE_IN_FLIGHT": {
|
||||
"action": "none",
|
||||
"defaultRetryable": false,
|
||||
"kind": "DUPLICATE_IN_FLIGHT",
|
||||
"redaction": [
|
||||
"authorization",
|
||||
"body",
|
||||
"cause",
|
||||
"headers",
|
||||
"query",
|
||||
"stack",
|
||||
"storageValue",
|
||||
"url"
|
||||
],
|
||||
"severity": "info",
|
||||
"telemetryEvent": "api.request.failed",
|
||||
"userMessageKey": "error.duplicate_in_flight"
|
||||
},
|
||||
"ENVELOPE_MISMATCH": {
|
||||
"action": "contact-support",
|
||||
"defaultRetryable": false,
|
||||
@@ -1077,6 +1192,24 @@
|
||||
"telemetryEvent": "api.request.failed",
|
||||
"userMessageKey": "error.forbidden"
|
||||
},
|
||||
"IDENTITY_INTERN_LIMIT_EXCEEDED": {
|
||||
"action": "retry",
|
||||
"defaultRetryable": false,
|
||||
"kind": "IDENTITY_INTERN_LIMIT_EXCEEDED",
|
||||
"redaction": [
|
||||
"authorization",
|
||||
"body",
|
||||
"cause",
|
||||
"headers",
|
||||
"query",
|
||||
"stack",
|
||||
"storageValue",
|
||||
"url"
|
||||
],
|
||||
"severity": "warning",
|
||||
"telemetryEvent": "api.request.failed",
|
||||
"userMessageKey": "error.identity_intern_limit_exceeded"
|
||||
},
|
||||
"MALFORMED_JSON": {
|
||||
"action": "contact-support",
|
||||
"defaultRetryable": false,
|
||||
@@ -1095,6 +1228,24 @@
|
||||
"telemetryEvent": "api.request.failed",
|
||||
"userMessageKey": "error.malformed_json"
|
||||
},
|
||||
"MAPPING_CONTRACT_VIOLATION": {
|
||||
"action": "contact-support",
|
||||
"defaultRetryable": false,
|
||||
"kind": "MAPPING_CONTRACT_VIOLATION",
|
||||
"redaction": [
|
||||
"authorization",
|
||||
"body",
|
||||
"cause",
|
||||
"headers",
|
||||
"query",
|
||||
"stack",
|
||||
"storageValue",
|
||||
"url"
|
||||
],
|
||||
"severity": "error",
|
||||
"telemetryEvent": "api.request.failed",
|
||||
"userMessageKey": "error.mapping_contract_violation"
|
||||
},
|
||||
"NETWORK_UNREACHABLE": {
|
||||
"action": "retry",
|
||||
"defaultRetryable": true,
|
||||
@@ -1131,6 +1282,24 @@
|
||||
"telemetryEvent": "api.request.failed",
|
||||
"userMessageKey": "error.not_found"
|
||||
},
|
||||
"PAGINATION_CONTRACT_VIOLATION": {
|
||||
"action": "contact-support",
|
||||
"defaultRetryable": false,
|
||||
"kind": "PAGINATION_CONTRACT_VIOLATION",
|
||||
"redaction": [
|
||||
"authorization",
|
||||
"body",
|
||||
"cause",
|
||||
"headers",
|
||||
"query",
|
||||
"stack",
|
||||
"storageValue",
|
||||
"url"
|
||||
],
|
||||
"severity": "error",
|
||||
"telemetryEvent": "api.request.failed",
|
||||
"userMessageKey": "error.pagination_contract_violation"
|
||||
},
|
||||
"QUERY_CACHE_FAILURE": {
|
||||
"action": "retry",
|
||||
"defaultRetryable": false,
|
||||
@@ -1257,6 +1426,42 @@
|
||||
"telemetryEvent": "api.request.failed",
|
||||
"userMessageKey": "error.request_timeout"
|
||||
},
|
||||
"RESPONSE_BODY_LIMIT": {
|
||||
"action": "contact-support",
|
||||
"defaultRetryable": false,
|
||||
"kind": "RESPONSE_BODY_LIMIT",
|
||||
"redaction": [
|
||||
"authorization",
|
||||
"body",
|
||||
"cause",
|
||||
"headers",
|
||||
"query",
|
||||
"stack",
|
||||
"storageValue",
|
||||
"url"
|
||||
],
|
||||
"severity": "error",
|
||||
"telemetryEvent": "api.request.failed",
|
||||
"userMessageKey": "error.response_body_limit"
|
||||
},
|
||||
"RESULT_LIMIT_EXCEEDED": {
|
||||
"action": "contact-support",
|
||||
"defaultRetryable": false,
|
||||
"kind": "RESULT_LIMIT_EXCEEDED",
|
||||
"redaction": [
|
||||
"authorization",
|
||||
"body",
|
||||
"cause",
|
||||
"headers",
|
||||
"query",
|
||||
"stack",
|
||||
"storageValue",
|
||||
"url"
|
||||
],
|
||||
"severity": "error",
|
||||
"telemetryEvent": "api.request.failed",
|
||||
"userMessageKey": "error.result_limit_exceeded"
|
||||
},
|
||||
"SCHEMA_MISMATCH": {
|
||||
"action": "contact-support",
|
||||
"defaultRetryable": false,
|
||||
@@ -1275,6 +1480,24 @@
|
||||
"telemetryEvent": "api.request.failed",
|
||||
"userMessageKey": "error.schema_mismatch"
|
||||
},
|
||||
"SCOPE_GENERATION_CHANGED": {
|
||||
"action": "none",
|
||||
"defaultRetryable": false,
|
||||
"kind": "SCOPE_GENERATION_CHANGED",
|
||||
"redaction": [
|
||||
"authorization",
|
||||
"body",
|
||||
"cause",
|
||||
"headers",
|
||||
"query",
|
||||
"stack",
|
||||
"storageValue",
|
||||
"url"
|
||||
],
|
||||
"severity": "info",
|
||||
"telemetryEvent": "api.request.failed",
|
||||
"userMessageKey": "error.scope_generation_changed"
|
||||
},
|
||||
"SERVER_FAILURE": {
|
||||
"action": "retry",
|
||||
"defaultRetryable": true,
|
||||
@@ -1404,68 +1627,116 @@
|
||||
}
|
||||
},
|
||||
{
|
||||
"registryId": "FE-REG-QUERY",
|
||||
"registryId": "FE-REG-QUERY-INVALIDATION",
|
||||
"owner": "feature-frontend-server-state-caching-contract",
|
||||
"source": "src/features/installed-feature-contracts.ts",
|
||||
"rowCount": 1,
|
||||
"contract": {
|
||||
"requiredFields": [
|
||||
"namespace",
|
||||
"serialization",
|
||||
"identity",
|
||||
"invalidation",
|
||||
"invalidationTopic",
|
||||
"crossContext",
|
||||
"version",
|
||||
"persistence"
|
||||
"topicId",
|
||||
"namespace.namespaceId",
|
||||
"namespace.namespaceVersion"
|
||||
],
|
||||
"fieldTypes": {
|
||||
"namespace": "array",
|
||||
"serialization": "string",
|
||||
"identity": "string",
|
||||
"invalidation": "string",
|
||||
"invalidationTopic": "string",
|
||||
"crossContext": "string",
|
||||
"version": "integer",
|
||||
"persistence": "string"
|
||||
},
|
||||
"uniqueFields": [
|
||||
"namespace",
|
||||
"invalidationTopic"
|
||||
],
|
||||
"allowedValues": {
|
||||
"crossContext": [
|
||||
"invalidate-only"
|
||||
],
|
||||
"persistence": [
|
||||
"disabled"
|
||||
]
|
||||
"topicId": "string",
|
||||
"namespace.namespaceId": "string",
|
||||
"namespace.namespaceVersion": "integer"
|
||||
},
|
||||
"uniqueFields": [],
|
||||
"allowedValues": {},
|
||||
"references": [],
|
||||
"keyField": null,
|
||||
"breakingFields": [
|
||||
"namespace",
|
||||
"serialization",
|
||||
"identity",
|
||||
"invalidationTopic",
|
||||
"crossContext",
|
||||
"version",
|
||||
"persistence"
|
||||
"topics",
|
||||
"namespaces",
|
||||
"edges"
|
||||
],
|
||||
"rowsPath": "edges",
|
||||
"rowKeyFields": [
|
||||
"topicId",
|
||||
"namespace.namespaceId",
|
||||
"namespace.namespaceVersion"
|
||||
],
|
||||
"uniqueFieldSets": [
|
||||
[
|
||||
"topicId",
|
||||
"namespace.namespaceId",
|
||||
"namespace.namespaceVersion"
|
||||
]
|
||||
],
|
||||
"snapshotProjection": {
|
||||
"singletonRowKey": "invalidation-graph",
|
||||
"canonicalArrayKeyFields": {
|
||||
"topics": [
|
||||
"$value"
|
||||
],
|
||||
"namespaces": [
|
||||
"namespaceId",
|
||||
"namespaceVersion"
|
||||
],
|
||||
"edges": [
|
||||
"topicId",
|
||||
"namespace.namespaceId",
|
||||
"namespace.namespaceVersion"
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"rows": {
|
||||
"invalidation-graph": {
|
||||
"edges": [
|
||||
{
|
||||
"namespace": {
|
||||
"namespaceId": "reference-resource",
|
||||
"namespaceVersion": 1
|
||||
},
|
||||
"topicId": "qinv.01k10f7m3w9p6r2c8v5n4x"
|
||||
}
|
||||
],
|
||||
"namespaces": [
|
||||
{
|
||||
"namespaceId": "reference-resource",
|
||||
"namespaceVersion": 1
|
||||
}
|
||||
],
|
||||
"topics": [
|
||||
"qinv.01k10f7m3w9p6r2c8v5n4x"
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"registryId": "FE-REG-QUERY-INVALIDATION-TOPIC-VERSION",
|
||||
"owner": "feature-frontend-server-state-caching-contract",
|
||||
"source": "src/features/installed-feature-contracts.ts",
|
||||
"rowCount": 1,
|
||||
"contract": {
|
||||
"requiredFields": [
|
||||
"topicId",
|
||||
"topicVersion"
|
||||
],
|
||||
"fieldTypes": {
|
||||
"topicId": "string",
|
||||
"topicVersion": "integer"
|
||||
},
|
||||
"uniqueFields": [
|
||||
"topicId"
|
||||
],
|
||||
"allowedValues": {},
|
||||
"references": [],
|
||||
"keyField": null,
|
||||
"breakingFields": [
|
||||
"topicId",
|
||||
"topicVersion"
|
||||
],
|
||||
"rowKeyFields": [
|
||||
"topicId"
|
||||
]
|
||||
},
|
||||
"rows": {
|
||||
"REFERENCE_RESOURCE": {
|
||||
"crossContext": "invalidate-only",
|
||||
"identity": "no-pii-token-or-raw-url",
|
||||
"invalidation": "reference resource namespace after successful mutation",
|
||||
"invalidationTopic": "qinv.01k10f7m3w9p6r2c8v5n4x",
|
||||
"namespace": [
|
||||
"reference-resource",
|
||||
1
|
||||
],
|
||||
"persistence": "disabled",
|
||||
"serialization": "canonical-object-order",
|
||||
"version": 1
|
||||
"[\"qinv.01k10f7m3w9p6r2c8v5n4x\"]": {
|
||||
"topicId": "qinv.01k10f7m3w9p6r2c8v5n4x",
|
||||
"topicVersion": 1
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -1655,7 +1926,7 @@
|
||||
"registryId": "FE-REG-RELEASE",
|
||||
"owner": "feature-frontend-release-cache-rollback-contract",
|
||||
"source": "src/contracts/release-tokens.ts",
|
||||
"rowCount": 8,
|
||||
"rowCount": 9,
|
||||
"contract": {
|
||||
"requiredFields": [
|
||||
"token",
|
||||
@@ -1681,7 +1952,7 @@
|
||||
},
|
||||
"rows": {
|
||||
"apiContractVersion": {
|
||||
"compatibilityRole": "schema compatibility",
|
||||
"compatibilityRole": "legacy V1 scalar; superseded by contractSetDigest",
|
||||
"source": "frontend/backend agreement",
|
||||
"token": "apiContractVersion"
|
||||
},
|
||||
@@ -1715,6 +1986,11 @@
|
||||
"source": "runtime config schema",
|
||||
"token": "configSchemaVersion"
|
||||
},
|
||||
"contractSetDigest": {
|
||||
"compatibilityRole": "release coherence for multi-package contracts",
|
||||
"source": "compiled external contract package set",
|
||||
"token": "contractSetDigest"
|
||||
},
|
||||
"releaseId": {
|
||||
"compatibilityRole": "rollback target",
|
||||
"source": "deploy system",
|
||||
|
||||
@@ -407,17 +407,25 @@
|
||||
"namespace.namespaceVersion"
|
||||
]
|
||||
],
|
||||
"snapshotProjection": {
|
||||
"singletonRowKey": "invalidation-graph",
|
||||
"canonicalArrayKeyFields": {
|
||||
"topics": ["$value"],
|
||||
"namespaces": ["namespaceId", "namespaceVersion"],
|
||||
"edges": [
|
||||
"topicId",
|
||||
"namespace.namespaceId",
|
||||
"namespace.namespaceVersion"
|
||||
]
|
||||
}
|
||||
},
|
||||
"consumers": [
|
||||
{
|
||||
"path": "src/bootstrap/runtime-adapters.ts",
|
||||
"token": "indexInvalidationRegistry(INVALIDATION_REGISTRY)"
|
||||
}
|
||||
],
|
||||
"breakingFields": [
|
||||
"topicId",
|
||||
"namespace.namespaceId",
|
||||
"namespace.namespaceVersion"
|
||||
]
|
||||
"breakingFields": ["topics", "namespaces", "edges"]
|
||||
},
|
||||
{
|
||||
"registryId": "FE-REG-QUERY-INVALIDATION-TOPIC-VERSION",
|
||||
|
||||
Reference in New Issue
Block a user