2483 lines
74 KiB
JSON
2483 lines
74 KiB
JSON
{
|
|
"schemaVersion": 2,
|
|
"registries": [
|
|
{
|
|
"registryId": "FE-REG-ROUTE",
|
|
"owner": "feature-frontend-routing-release-recovery-runtime",
|
|
"source": "src/features/installed-feature-contracts.ts",
|
|
"rowCount": 27,
|
|
"contract": {
|
|
"requiredFields": [
|
|
"routeId",
|
|
"path",
|
|
"layoutGroup",
|
|
"paramsSchema",
|
|
"searchSchema",
|
|
"access",
|
|
"loadingSurface",
|
|
"errorSurface",
|
|
"chunkId",
|
|
"title",
|
|
"navigationLabel",
|
|
"navigationOrder"
|
|
],
|
|
"fieldTypes": {
|
|
"routeId": "string",
|
|
"path": "string",
|
|
"layoutGroup": "string",
|
|
"paramsSchema": "string|null",
|
|
"searchSchema": "string|null",
|
|
"access": "string",
|
|
"loadingSurface": "string",
|
|
"errorSurface": "string",
|
|
"chunkId": "string",
|
|
"title": "string",
|
|
"navigationLabel": "string|null",
|
|
"navigationOrder": "integer|null"
|
|
},
|
|
"uniqueFields": [
|
|
"routeId",
|
|
"path",
|
|
"chunkId"
|
|
],
|
|
"allowedValues": {
|
|
"access": [
|
|
"public",
|
|
"session-required"
|
|
],
|
|
"layoutGroup": [
|
|
"PUBLIC",
|
|
"STUDIO"
|
|
],
|
|
"paramsSchema": [
|
|
null,
|
|
"NotFoundSplat",
|
|
"ReferenceResourceParams",
|
|
"TechLogExploreKindParams",
|
|
"TechLogSlugParams",
|
|
"TechLogVersionParams",
|
|
"TechLogDocumentIdParams",
|
|
"TechLogPublicationEventIdParams",
|
|
"TechLogStudioSplat"
|
|
],
|
|
"searchSchema": [
|
|
null,
|
|
"ReferenceResourceListQuery",
|
|
"TechLogHomeSearch",
|
|
"TechLogExploreSearch",
|
|
"TechLogExploreKindSearch",
|
|
"TechLogSearchQuery",
|
|
"TechLogCaseStateSearch"
|
|
],
|
|
"loadingSurface": [
|
|
"app-shell",
|
|
"example-page",
|
|
"reference-resource-list",
|
|
"reference-resource-detail",
|
|
"reference-resource-form",
|
|
"reference-resource-status",
|
|
"none"
|
|
],
|
|
"errorSurface": [
|
|
"route-boundary",
|
|
"feature-boundary",
|
|
"not-found"
|
|
]
|
|
},
|
|
"references": [
|
|
{
|
|
"field": "routeId",
|
|
"registryId": "FE-REG-ROUTE-RUNTIME",
|
|
"targetField": "routeId"
|
|
},
|
|
{
|
|
"field": "paramsSchema",
|
|
"registryId": "FE-REG-SCHEMA",
|
|
"targetField": "schemaId"
|
|
},
|
|
{
|
|
"field": "searchSchema",
|
|
"registryId": "FE-REG-SCHEMA",
|
|
"targetField": "schemaId"
|
|
}
|
|
],
|
|
"keyField": "routeId",
|
|
"breakingFields": [
|
|
"routeId",
|
|
"path",
|
|
"layoutGroup",
|
|
"paramsSchema",
|
|
"searchSchema",
|
|
"access",
|
|
"chunkId"
|
|
]
|
|
},
|
|
"rows": {
|
|
"NOT_FOUND": {
|
|
"access": "public",
|
|
"chunkId": "route-not-found",
|
|
"errorSurface": "not-found",
|
|
"layoutGroup": "PUBLIC",
|
|
"loadingSurface": "none",
|
|
"navigationLabel": null,
|
|
"navigationOrder": null,
|
|
"paramsSchema": "NotFoundSplat",
|
|
"path": "*",
|
|
"routeId": "NOT_FOUND",
|
|
"searchSchema": null,
|
|
"title": "페이지를 찾을 수 없습니다."
|
|
},
|
|
"TECH_LOG_CASE": {
|
|
"access": "public",
|
|
"chunkId": "route-tech-log-case",
|
|
"errorSurface": "feature-boundary",
|
|
"layoutGroup": "PUBLIC",
|
|
"loadingSurface": "app-shell",
|
|
"navigationLabel": null,
|
|
"navigationOrder": null,
|
|
"paramsSchema": "TechLogSlugParams",
|
|
"path": "/cases/:slug",
|
|
"routeId": "TECH_LOG_CASE",
|
|
"searchSchema": "TechLogCaseStateSearch",
|
|
"title": "Case"
|
|
},
|
|
"TECH_LOG_EXPLORE": {
|
|
"access": "public",
|
|
"chunkId": "route-tech-log-explore",
|
|
"errorSurface": "feature-boundary",
|
|
"layoutGroup": "PUBLIC",
|
|
"loadingSurface": "app-shell",
|
|
"navigationLabel": "탐색",
|
|
"navigationOrder": 10,
|
|
"paramsSchema": null,
|
|
"path": "/explore",
|
|
"routeId": "TECH_LOG_EXPLORE",
|
|
"searchSchema": "TechLogExploreSearch",
|
|
"title": "탐색"
|
|
},
|
|
"TECH_LOG_EXPLORE_KIND": {
|
|
"access": "public",
|
|
"chunkId": "route-tech-log-explore-kind",
|
|
"errorSurface": "feature-boundary",
|
|
"layoutGroup": "PUBLIC",
|
|
"loadingSurface": "app-shell",
|
|
"navigationLabel": null,
|
|
"navigationOrder": null,
|
|
"paramsSchema": "TechLogExploreKindParams",
|
|
"path": "/explore/:kind",
|
|
"routeId": "TECH_LOG_EXPLORE_KIND",
|
|
"searchSchema": "TechLogExploreKindSearch",
|
|
"title": "유형별 탐색"
|
|
},
|
|
"TECH_LOG_HOME": {
|
|
"access": "public",
|
|
"chunkId": "route-tech-log-home",
|
|
"errorSurface": "feature-boundary",
|
|
"layoutGroup": "PUBLIC",
|
|
"loadingSurface": "app-shell",
|
|
"navigationLabel": null,
|
|
"navigationOrder": null,
|
|
"paramsSchema": null,
|
|
"path": "/",
|
|
"routeId": "TECH_LOG_HOME",
|
|
"searchSchema": "TechLogHomeSearch",
|
|
"title": "TechLog"
|
|
},
|
|
"TECH_LOG_PROFILE": {
|
|
"access": "public",
|
|
"chunkId": "route-tech-log-profile",
|
|
"errorSurface": "feature-boundary",
|
|
"layoutGroup": "PUBLIC",
|
|
"loadingSurface": "app-shell",
|
|
"navigationLabel": "프로필",
|
|
"navigationOrder": 40,
|
|
"paramsSchema": null,
|
|
"path": "/profile",
|
|
"routeId": "TECH_LOG_PROFILE",
|
|
"searchSchema": null,
|
|
"title": "프로필"
|
|
},
|
|
"TECH_LOG_PROJECT": {
|
|
"access": "public",
|
|
"chunkId": "route-tech-log-project",
|
|
"errorSurface": "feature-boundary",
|
|
"layoutGroup": "PUBLIC",
|
|
"loadingSurface": "app-shell",
|
|
"navigationLabel": null,
|
|
"navigationOrder": null,
|
|
"paramsSchema": "TechLogSlugParams",
|
|
"path": "/projects/:slug",
|
|
"routeId": "TECH_LOG_PROJECT",
|
|
"searchSchema": null,
|
|
"title": "프로젝트"
|
|
},
|
|
"TECH_LOG_PROJECT_ACTIVITY": {
|
|
"access": "public",
|
|
"chunkId": "route-tech-log-project-activity",
|
|
"errorSurface": "feature-boundary",
|
|
"layoutGroup": "PUBLIC",
|
|
"loadingSurface": "app-shell",
|
|
"navigationLabel": null,
|
|
"navigationOrder": null,
|
|
"paramsSchema": "TechLogSlugParams",
|
|
"path": "/projects/:slug/activity",
|
|
"routeId": "TECH_LOG_PROJECT_ACTIVITY",
|
|
"searchSchema": null,
|
|
"title": "프로젝트 활동"
|
|
},
|
|
"TECH_LOG_PROJECT_DECISIONS": {
|
|
"access": "public",
|
|
"chunkId": "route-tech-log-project-decisions",
|
|
"errorSurface": "feature-boundary",
|
|
"layoutGroup": "PUBLIC",
|
|
"loadingSurface": "app-shell",
|
|
"navigationLabel": null,
|
|
"navigationOrder": null,
|
|
"paramsSchema": "TechLogSlugParams",
|
|
"path": "/projects/:slug/decisions",
|
|
"routeId": "TECH_LOG_PROJECT_DECISIONS",
|
|
"searchSchema": null,
|
|
"title": "프로젝트 결정"
|
|
},
|
|
"TECH_LOG_PROJECT_RECORDS": {
|
|
"access": "public",
|
|
"chunkId": "route-tech-log-project-records",
|
|
"errorSurface": "feature-boundary",
|
|
"layoutGroup": "PUBLIC",
|
|
"loadingSurface": "app-shell",
|
|
"navigationLabel": null,
|
|
"navigationOrder": null,
|
|
"paramsSchema": "TechLogSlugParams",
|
|
"path": "/projects/:slug/records",
|
|
"routeId": "TECH_LOG_PROJECT_RECORDS",
|
|
"searchSchema": null,
|
|
"title": "프로젝트 기록"
|
|
},
|
|
"TECH_LOG_PROJECTS": {
|
|
"access": "public",
|
|
"chunkId": "route-tech-log-projects",
|
|
"errorSurface": "feature-boundary",
|
|
"layoutGroup": "PUBLIC",
|
|
"loadingSurface": "app-shell",
|
|
"navigationLabel": "프로젝트",
|
|
"navigationOrder": 20,
|
|
"paramsSchema": null,
|
|
"path": "/projects",
|
|
"routeId": "TECH_LOG_PROJECTS",
|
|
"searchSchema": null,
|
|
"title": "프로젝트"
|
|
},
|
|
"TECH_LOG_QUESTION": {
|
|
"access": "public",
|
|
"chunkId": "route-tech-log-question",
|
|
"errorSurface": "feature-boundary",
|
|
"layoutGroup": "PUBLIC",
|
|
"loadingSurface": "app-shell",
|
|
"navigationLabel": null,
|
|
"navigationOrder": null,
|
|
"paramsSchema": "TechLogSlugParams",
|
|
"path": "/questions/:slug",
|
|
"routeId": "TECH_LOG_QUESTION",
|
|
"searchSchema": null,
|
|
"title": "Open Question"
|
|
},
|
|
"TECH_LOG_REFERENCE": {
|
|
"access": "public",
|
|
"chunkId": "route-tech-log-reference",
|
|
"errorSurface": "feature-boundary",
|
|
"layoutGroup": "PUBLIC",
|
|
"loadingSurface": "app-shell",
|
|
"navigationLabel": null,
|
|
"navigationOrder": null,
|
|
"paramsSchema": "TechLogSlugParams",
|
|
"path": "/references/:slug",
|
|
"routeId": "TECH_LOG_REFERENCE",
|
|
"searchSchema": null,
|
|
"title": "Reference"
|
|
},
|
|
"TECH_LOG_RELEASE": {
|
|
"access": "public",
|
|
"chunkId": "route-tech-log-release",
|
|
"errorSurface": "feature-boundary",
|
|
"layoutGroup": "PUBLIC",
|
|
"loadingSurface": "app-shell",
|
|
"navigationLabel": null,
|
|
"navigationOrder": null,
|
|
"paramsSchema": "TechLogVersionParams",
|
|
"path": "/releases/:version",
|
|
"routeId": "TECH_LOG_RELEASE",
|
|
"searchSchema": null,
|
|
"title": "변경 기록"
|
|
},
|
|
"TECH_LOG_RELEASES": {
|
|
"access": "public",
|
|
"chunkId": "route-tech-log-releases",
|
|
"errorSurface": "feature-boundary",
|
|
"layoutGroup": "PUBLIC",
|
|
"loadingSurface": "app-shell",
|
|
"navigationLabel": "변경 기록",
|
|
"navigationOrder": 30,
|
|
"paramsSchema": null,
|
|
"path": "/releases",
|
|
"routeId": "TECH_LOG_RELEASES",
|
|
"searchSchema": null,
|
|
"title": "변경 기록"
|
|
},
|
|
"TECH_LOG_SEARCH": {
|
|
"access": "public",
|
|
"chunkId": "route-tech-log-search",
|
|
"errorSurface": "feature-boundary",
|
|
"layoutGroup": "PUBLIC",
|
|
"loadingSurface": "app-shell",
|
|
"navigationLabel": null,
|
|
"navigationOrder": null,
|
|
"paramsSchema": null,
|
|
"path": "/search",
|
|
"routeId": "TECH_LOG_SEARCH",
|
|
"searchSchema": "TechLogSearchQuery",
|
|
"title": "검색"
|
|
},
|
|
"TECH_LOG_STUDIO_DOCUMENT_EDIT": {
|
|
"access": "public",
|
|
"chunkId": "route-tech-log-studio-document-edit",
|
|
"errorSurface": "feature-boundary",
|
|
"layoutGroup": "STUDIO",
|
|
"loadingSurface": "app-shell",
|
|
"navigationLabel": null,
|
|
"navigationOrder": null,
|
|
"paramsSchema": "TechLogDocumentIdParams",
|
|
"path": "/studio/documents/:id/edit",
|
|
"routeId": "TECH_LOG_STUDIO_DOCUMENT_EDIT",
|
|
"searchSchema": null,
|
|
"title": "문서 편집"
|
|
},
|
|
"TECH_LOG_STUDIO_DOCUMENT_NEW": {
|
|
"access": "public",
|
|
"chunkId": "route-tech-log-studio-document-new",
|
|
"errorSurface": "feature-boundary",
|
|
"layoutGroup": "STUDIO",
|
|
"loadingSurface": "app-shell",
|
|
"navigationLabel": "새 문서",
|
|
"navigationOrder": 30,
|
|
"paramsSchema": null,
|
|
"path": "/studio/documents/new",
|
|
"routeId": "TECH_LOG_STUDIO_DOCUMENT_NEW",
|
|
"searchSchema": null,
|
|
"title": "새 문서"
|
|
},
|
|
"TECH_LOG_STUDIO_DOCUMENT_PREVIEW": {
|
|
"access": "public",
|
|
"chunkId": "route-tech-log-studio-document-preview",
|
|
"errorSurface": "feature-boundary",
|
|
"layoutGroup": "STUDIO",
|
|
"loadingSurface": "app-shell",
|
|
"navigationLabel": null,
|
|
"navigationOrder": null,
|
|
"paramsSchema": "TechLogDocumentIdParams",
|
|
"path": "/studio/documents/:id/preview",
|
|
"routeId": "TECH_LOG_STUDIO_DOCUMENT_PREVIEW",
|
|
"searchSchema": null,
|
|
"title": "Public Preview"
|
|
},
|
|
"TECH_LOG_STUDIO_DOCUMENT_PUBLISH": {
|
|
"access": "public",
|
|
"chunkId": "route-tech-log-studio-document-publish",
|
|
"errorSurface": "feature-boundary",
|
|
"layoutGroup": "STUDIO",
|
|
"loadingSurface": "app-shell",
|
|
"navigationLabel": null,
|
|
"navigationOrder": null,
|
|
"paramsSchema": "TechLogDocumentIdParams",
|
|
"path": "/studio/documents/:id/publish",
|
|
"routeId": "TECH_LOG_STUDIO_DOCUMENT_PUBLISH",
|
|
"searchSchema": null,
|
|
"title": "게시"
|
|
},
|
|
"TECH_LOG_STUDIO_DOCUMENT_VALIDATION": {
|
|
"access": "public",
|
|
"chunkId": "route-tech-log-studio-document-validation",
|
|
"errorSurface": "feature-boundary",
|
|
"layoutGroup": "STUDIO",
|
|
"loadingSurface": "app-shell",
|
|
"navigationLabel": null,
|
|
"navigationOrder": null,
|
|
"paramsSchema": "TechLogDocumentIdParams",
|
|
"path": "/studio/documents/:id/validation",
|
|
"routeId": "TECH_LOG_STUDIO_DOCUMENT_VALIDATION",
|
|
"searchSchema": null,
|
|
"title": "문서 검증"
|
|
},
|
|
"TECH_LOG_STUDIO_DOCUMENTS": {
|
|
"access": "public",
|
|
"chunkId": "route-tech-log-studio-documents",
|
|
"errorSurface": "feature-boundary",
|
|
"layoutGroup": "STUDIO",
|
|
"loadingSurface": "app-shell",
|
|
"navigationLabel": "작업본",
|
|
"navigationOrder": 10,
|
|
"paramsSchema": null,
|
|
"path": "/studio/documents",
|
|
"routeId": "TECH_LOG_STUDIO_DOCUMENTS",
|
|
"searchSchema": null,
|
|
"title": "작업본"
|
|
},
|
|
"TECH_LOG_STUDIO_HOME": {
|
|
"access": "public",
|
|
"chunkId": "route-tech-log-studio-home",
|
|
"errorSurface": "feature-boundary",
|
|
"layoutGroup": "STUDIO",
|
|
"loadingSurface": "app-shell",
|
|
"navigationLabel": null,
|
|
"navigationOrder": null,
|
|
"paramsSchema": null,
|
|
"path": "/studio",
|
|
"routeId": "TECH_LOG_STUDIO_HOME",
|
|
"searchSchema": null,
|
|
"title": "TechLog Studio"
|
|
},
|
|
"TECH_LOG_STUDIO_NOT_FOUND": {
|
|
"access": "public",
|
|
"chunkId": "route-tech-log-studio-not-found",
|
|
"errorSurface": "not-found",
|
|
"layoutGroup": "STUDIO",
|
|
"loadingSurface": "none",
|
|
"navigationLabel": null,
|
|
"navigationOrder": null,
|
|
"paramsSchema": "TechLogStudioSplat",
|
|
"path": "/studio/*",
|
|
"routeId": "TECH_LOG_STUDIO_NOT_FOUND",
|
|
"searchSchema": null,
|
|
"title": "Studio 화면을 찾을 수 없습니다"
|
|
},
|
|
"TECH_LOG_STUDIO_PUBLICATION_PREVIEW": {
|
|
"access": "public",
|
|
"chunkId": "route-tech-log-studio-publication-preview",
|
|
"errorSurface": "feature-boundary",
|
|
"layoutGroup": "STUDIO",
|
|
"loadingSurface": "app-shell",
|
|
"navigationLabel": null,
|
|
"navigationOrder": null,
|
|
"paramsSchema": "TechLogPublicationEventIdParams",
|
|
"path": "/studio/publications/:publicationEventId/preview",
|
|
"routeId": "TECH_LOG_STUDIO_PUBLICATION_PREVIEW",
|
|
"searchSchema": null,
|
|
"title": "게시 Snapshot"
|
|
},
|
|
"TECH_LOG_STUDIO_PUBLICATIONS": {
|
|
"access": "public",
|
|
"chunkId": "route-tech-log-studio-publications",
|
|
"errorSurface": "feature-boundary",
|
|
"layoutGroup": "STUDIO",
|
|
"loadingSurface": "app-shell",
|
|
"navigationLabel": "게시 기록",
|
|
"navigationOrder": 20,
|
|
"paramsSchema": null,
|
|
"path": "/studio/publications",
|
|
"routeId": "TECH_LOG_STUDIO_PUBLICATIONS",
|
|
"searchSchema": null,
|
|
"title": "게시 기록"
|
|
},
|
|
"TECH_LOG_TOPIC": {
|
|
"access": "public",
|
|
"chunkId": "route-tech-log-topic",
|
|
"errorSurface": "feature-boundary",
|
|
"layoutGroup": "PUBLIC",
|
|
"loadingSurface": "app-shell",
|
|
"navigationLabel": null,
|
|
"navigationOrder": null,
|
|
"paramsSchema": "TechLogSlugParams",
|
|
"path": "/topics/:slug",
|
|
"routeId": "TECH_LOG_TOPIC",
|
|
"searchSchema": null,
|
|
"title": "Topic"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"registryId": "FE-REG-ROUTE-RUNTIME",
|
|
"owner": "feature-frontend-routing-release-recovery-runtime",
|
|
"source": "src/features/installed-feature-contracts.ts",
|
|
"rowCount": 27,
|
|
"contract": {
|
|
"requiredFields": [
|
|
"routeId",
|
|
"moduleId",
|
|
"paramsCodec",
|
|
"searchCodec"
|
|
],
|
|
"fieldTypes": {
|
|
"routeId": "string",
|
|
"moduleId": "string",
|
|
"paramsCodec": "string",
|
|
"searchCodec": "string"
|
|
},
|
|
"uniqueFields": [
|
|
"routeId",
|
|
"moduleId"
|
|
],
|
|
"allowedValues": {},
|
|
"references": [
|
|
{
|
|
"field": "routeId",
|
|
"registryId": "FE-REG-ROUTE",
|
|
"targetField": "routeId"
|
|
},
|
|
{
|
|
"field": "paramsCodec",
|
|
"registryId": "FE-REG-SCHEMA",
|
|
"targetField": "schemaId"
|
|
},
|
|
{
|
|
"field": "searchCodec",
|
|
"registryId": "FE-REG-SCHEMA",
|
|
"targetField": "schemaId"
|
|
}
|
|
],
|
|
"keyField": "routeId",
|
|
"breakingFields": [
|
|
"routeId",
|
|
"moduleId",
|
|
"paramsCodec",
|
|
"searchCodec"
|
|
]
|
|
},
|
|
"rows": {
|
|
"NOT_FOUND": {
|
|
"moduleId": "route-not-found",
|
|
"paramsCodec": "NotFoundSplat",
|
|
"routeId": "NOT_FOUND",
|
|
"searchCodec": "none"
|
|
},
|
|
"TECH_LOG_CASE": {
|
|
"moduleId": "route-tech-log-case",
|
|
"paramsCodec": "TechLogSlugParams",
|
|
"routeId": "TECH_LOG_CASE",
|
|
"searchCodec": "TechLogCaseStateSearch"
|
|
},
|
|
"TECH_LOG_EXPLORE": {
|
|
"moduleId": "route-tech-log-explore",
|
|
"paramsCodec": "none",
|
|
"routeId": "TECH_LOG_EXPLORE",
|
|
"searchCodec": "TechLogExploreSearch"
|
|
},
|
|
"TECH_LOG_EXPLORE_KIND": {
|
|
"moduleId": "route-tech-log-explore-kind",
|
|
"paramsCodec": "TechLogExploreKindParams",
|
|
"routeId": "TECH_LOG_EXPLORE_KIND",
|
|
"searchCodec": "TechLogExploreKindSearch"
|
|
},
|
|
"TECH_LOG_HOME": {
|
|
"moduleId": "route-tech-log-home",
|
|
"paramsCodec": "none",
|
|
"routeId": "TECH_LOG_HOME",
|
|
"searchCodec": "TechLogHomeSearch"
|
|
},
|
|
"TECH_LOG_PROFILE": {
|
|
"moduleId": "route-tech-log-profile",
|
|
"paramsCodec": "none",
|
|
"routeId": "TECH_LOG_PROFILE",
|
|
"searchCodec": "none"
|
|
},
|
|
"TECH_LOG_PROJECT": {
|
|
"moduleId": "route-tech-log-project",
|
|
"paramsCodec": "TechLogSlugParams",
|
|
"routeId": "TECH_LOG_PROJECT",
|
|
"searchCodec": "none"
|
|
},
|
|
"TECH_LOG_PROJECT_ACTIVITY": {
|
|
"moduleId": "route-tech-log-project-activity",
|
|
"paramsCodec": "TechLogSlugParams",
|
|
"routeId": "TECH_LOG_PROJECT_ACTIVITY",
|
|
"searchCodec": "none"
|
|
},
|
|
"TECH_LOG_PROJECT_DECISIONS": {
|
|
"moduleId": "route-tech-log-project-decisions",
|
|
"paramsCodec": "TechLogSlugParams",
|
|
"routeId": "TECH_LOG_PROJECT_DECISIONS",
|
|
"searchCodec": "none"
|
|
},
|
|
"TECH_LOG_PROJECT_RECORDS": {
|
|
"moduleId": "route-tech-log-project-records",
|
|
"paramsCodec": "TechLogSlugParams",
|
|
"routeId": "TECH_LOG_PROJECT_RECORDS",
|
|
"searchCodec": "none"
|
|
},
|
|
"TECH_LOG_PROJECTS": {
|
|
"moduleId": "route-tech-log-projects",
|
|
"paramsCodec": "none",
|
|
"routeId": "TECH_LOG_PROJECTS",
|
|
"searchCodec": "none"
|
|
},
|
|
"TECH_LOG_QUESTION": {
|
|
"moduleId": "route-tech-log-question",
|
|
"paramsCodec": "TechLogSlugParams",
|
|
"routeId": "TECH_LOG_QUESTION",
|
|
"searchCodec": "none"
|
|
},
|
|
"TECH_LOG_REFERENCE": {
|
|
"moduleId": "route-tech-log-reference",
|
|
"paramsCodec": "TechLogSlugParams",
|
|
"routeId": "TECH_LOG_REFERENCE",
|
|
"searchCodec": "none"
|
|
},
|
|
"TECH_LOG_RELEASE": {
|
|
"moduleId": "route-tech-log-release",
|
|
"paramsCodec": "TechLogVersionParams",
|
|
"routeId": "TECH_LOG_RELEASE",
|
|
"searchCodec": "none"
|
|
},
|
|
"TECH_LOG_RELEASES": {
|
|
"moduleId": "route-tech-log-releases",
|
|
"paramsCodec": "none",
|
|
"routeId": "TECH_LOG_RELEASES",
|
|
"searchCodec": "none"
|
|
},
|
|
"TECH_LOG_SEARCH": {
|
|
"moduleId": "route-tech-log-search",
|
|
"paramsCodec": "none",
|
|
"routeId": "TECH_LOG_SEARCH",
|
|
"searchCodec": "TechLogSearchQuery"
|
|
},
|
|
"TECH_LOG_STUDIO_DOCUMENT_EDIT": {
|
|
"moduleId": "route-tech-log-studio-document-edit",
|
|
"paramsCodec": "TechLogDocumentIdParams",
|
|
"routeId": "TECH_LOG_STUDIO_DOCUMENT_EDIT",
|
|
"searchCodec": "none"
|
|
},
|
|
"TECH_LOG_STUDIO_DOCUMENT_NEW": {
|
|
"moduleId": "route-tech-log-studio-document-new",
|
|
"paramsCodec": "none",
|
|
"routeId": "TECH_LOG_STUDIO_DOCUMENT_NEW",
|
|
"searchCodec": "none"
|
|
},
|
|
"TECH_LOG_STUDIO_DOCUMENT_PREVIEW": {
|
|
"moduleId": "route-tech-log-studio-document-preview",
|
|
"paramsCodec": "TechLogDocumentIdParams",
|
|
"routeId": "TECH_LOG_STUDIO_DOCUMENT_PREVIEW",
|
|
"searchCodec": "none"
|
|
},
|
|
"TECH_LOG_STUDIO_DOCUMENT_PUBLISH": {
|
|
"moduleId": "route-tech-log-studio-document-publish",
|
|
"paramsCodec": "TechLogDocumentIdParams",
|
|
"routeId": "TECH_LOG_STUDIO_DOCUMENT_PUBLISH",
|
|
"searchCodec": "none"
|
|
},
|
|
"TECH_LOG_STUDIO_DOCUMENT_VALIDATION": {
|
|
"moduleId": "route-tech-log-studio-document-validation",
|
|
"paramsCodec": "TechLogDocumentIdParams",
|
|
"routeId": "TECH_LOG_STUDIO_DOCUMENT_VALIDATION",
|
|
"searchCodec": "none"
|
|
},
|
|
"TECH_LOG_STUDIO_DOCUMENTS": {
|
|
"moduleId": "route-tech-log-studio-documents",
|
|
"paramsCodec": "none",
|
|
"routeId": "TECH_LOG_STUDIO_DOCUMENTS",
|
|
"searchCodec": "none"
|
|
},
|
|
"TECH_LOG_STUDIO_HOME": {
|
|
"moduleId": "route-tech-log-studio-home",
|
|
"paramsCodec": "none",
|
|
"routeId": "TECH_LOG_STUDIO_HOME",
|
|
"searchCodec": "none"
|
|
},
|
|
"TECH_LOG_STUDIO_NOT_FOUND": {
|
|
"moduleId": "route-tech-log-studio-not-found",
|
|
"paramsCodec": "TechLogStudioSplat",
|
|
"routeId": "TECH_LOG_STUDIO_NOT_FOUND",
|
|
"searchCodec": "none"
|
|
},
|
|
"TECH_LOG_STUDIO_PUBLICATION_PREVIEW": {
|
|
"moduleId": "route-tech-log-studio-publication-preview",
|
|
"paramsCodec": "TechLogPublicationEventIdParams",
|
|
"routeId": "TECH_LOG_STUDIO_PUBLICATION_PREVIEW",
|
|
"searchCodec": "none"
|
|
},
|
|
"TECH_LOG_STUDIO_PUBLICATIONS": {
|
|
"moduleId": "route-tech-log-studio-publications",
|
|
"paramsCodec": "none",
|
|
"routeId": "TECH_LOG_STUDIO_PUBLICATIONS",
|
|
"searchCodec": "none"
|
|
},
|
|
"TECH_LOG_TOPIC": {
|
|
"moduleId": "route-tech-log-topic",
|
|
"paramsCodec": "TechLogSlugParams",
|
|
"routeId": "TECH_LOG_TOPIC",
|
|
"searchCodec": "none"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"registryId": "FE-REG-API",
|
|
"owner": "feature-frontend-api-client-response-envelope-contract",
|
|
"source": "src/features/installed-feature-contracts.ts",
|
|
"rowCount": 3,
|
|
"contract": {
|
|
"requiredFields": [
|
|
"method",
|
|
"path",
|
|
"operationId",
|
|
"auth",
|
|
"timeoutMs",
|
|
"idempotency",
|
|
"retry",
|
|
"requestSource",
|
|
"requestSchema",
|
|
"responseSchema",
|
|
"owner"
|
|
],
|
|
"fieldTypes": {
|
|
"method": "string",
|
|
"path": "string",
|
|
"operationId": "string",
|
|
"auth": "string",
|
|
"timeoutMs": "integer|null",
|
|
"idempotency": "string",
|
|
"retry": "string",
|
|
"requestSource": "string",
|
|
"requestSchema": "string",
|
|
"responseSchema": "string",
|
|
"owner": "string"
|
|
},
|
|
"uniqueFields": [
|
|
"operationId"
|
|
],
|
|
"allowedValues": {
|
|
"method": [
|
|
"GET",
|
|
"POST",
|
|
"PUT",
|
|
"PATCH",
|
|
"DELETE"
|
|
],
|
|
"auth": [
|
|
"none",
|
|
"external-session"
|
|
],
|
|
"idempotency": [
|
|
"safe",
|
|
"keyed",
|
|
"none"
|
|
],
|
|
"retry": [
|
|
"runtime",
|
|
"never"
|
|
],
|
|
"requestSource": [
|
|
"none",
|
|
"search",
|
|
"body"
|
|
]
|
|
},
|
|
"references": [
|
|
{
|
|
"field": "requestSchema",
|
|
"registryId": "FE-REG-SCHEMA",
|
|
"targetField": "schemaId"
|
|
},
|
|
{
|
|
"field": "responseSchema",
|
|
"registryId": "FE-REG-SCHEMA",
|
|
"targetField": "schemaId"
|
|
}
|
|
],
|
|
"keyField": "operationId",
|
|
"breakingFields": [
|
|
"method",
|
|
"path",
|
|
"operationId",
|
|
"auth",
|
|
"idempotency",
|
|
"requestSource",
|
|
"requestSchema",
|
|
"responseSchema"
|
|
]
|
|
},
|
|
"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-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
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"registryId": "FE-REG-SCHEMA",
|
|
"owner": "feature-frontend-contract-schema-registry",
|
|
"source": "src/features/installed-feature-contracts.ts",
|
|
"rowCount": 19,
|
|
"contract": {
|
|
"requiredFields": [
|
|
"schemaId",
|
|
"boundary",
|
|
"owner",
|
|
"runtime"
|
|
],
|
|
"fieldTypes": {
|
|
"schemaId": "string",
|
|
"boundary": "string",
|
|
"owner": "string",
|
|
"runtime": "string"
|
|
},
|
|
"uniqueFields": [
|
|
"schemaId"
|
|
],
|
|
"allowedValues": {
|
|
"boundary": [
|
|
"route-params",
|
|
"route-search",
|
|
"route-search-api-request",
|
|
"api-request",
|
|
"api-response"
|
|
],
|
|
"runtime": [
|
|
"zod"
|
|
]
|
|
},
|
|
"references": [],
|
|
"keyField": "schemaId",
|
|
"breakingFields": [
|
|
"schemaId",
|
|
"boundary",
|
|
"runtime"
|
|
]
|
|
},
|
|
"rows": {
|
|
"CreateReferenceResourceCommand": {
|
|
"boundary": "api-request",
|
|
"direction": "REQUEST",
|
|
"owner": "feature-frontend-reference-feature-vertical-slice",
|
|
"runtime": "zod",
|
|
"schemaId": "CreateReferenceResourceCommand",
|
|
"schemaVersion": 1,
|
|
"unknownFieldPolicy": "REJECT_UNKNOWN"
|
|
},
|
|
"none": {
|
|
"boundary": "route-params",
|
|
"owner": "feature-frontend-routing-release-recovery-runtime",
|
|
"runtime": "zod",
|
|
"schemaId": "none"
|
|
},
|
|
"NoRequest": {
|
|
"boundary": "api-request",
|
|
"direction": "REQUEST",
|
|
"owner": "feature-frontend-reference-feature-vertical-slice",
|
|
"runtime": "zod",
|
|
"schemaId": "NoRequest",
|
|
"schemaVersion": 1,
|
|
"unknownFieldPolicy": "REJECT_UNKNOWN"
|
|
},
|
|
"NotFoundSplat": {
|
|
"boundary": "route-params",
|
|
"owner": "feature-frontend-routing-release-recovery-runtime",
|
|
"runtime": "zod",
|
|
"schemaId": "NotFoundSplat"
|
|
},
|
|
"ReferenceResourceListPayload": {
|
|
"boundary": "api-response",
|
|
"direction": "RESPONSE",
|
|
"owner": "feature-frontend-reference-feature-vertical-slice",
|
|
"runtime": "zod",
|
|
"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",
|
|
"schemaVersion": 1,
|
|
"unknownFieldPolicy": "REJECT_UNKNOWN"
|
|
},
|
|
"ReferenceResourceParams": {
|
|
"boundary": "route-params",
|
|
"direction": "REQUEST",
|
|
"owner": "feature-frontend-reference-feature-vertical-slice",
|
|
"runtime": "zod",
|
|
"schemaId": "ReferenceResourceParams",
|
|
"schemaVersion": 1,
|
|
"unknownFieldPolicy": "REJECT_UNKNOWN"
|
|
},
|
|
"ReferenceResourcePayload": {
|
|
"boundary": "api-response",
|
|
"direction": "RESPONSE",
|
|
"owner": "feature-frontend-reference-feature-vertical-slice",
|
|
"runtime": "zod",
|
|
"schemaId": "ReferenceResourcePayload",
|
|
"schemaVersion": 1,
|
|
"unknownFieldPolicy": "STRIP_UNKNOWN"
|
|
},
|
|
"TechLogCaseStateSearch": {
|
|
"boundary": "route-search",
|
|
"direction": "REQUEST",
|
|
"owner": "feature-tech-log",
|
|
"runtime": "zod",
|
|
"schemaId": "TechLogCaseStateSearch",
|
|
"schemaVersion": 1,
|
|
"unknownFieldPolicy": "STRIP_UNKNOWN"
|
|
},
|
|
"TechLogDocumentIdParams": {
|
|
"boundary": "route-params",
|
|
"direction": "REQUEST",
|
|
"owner": "feature-tech-log",
|
|
"runtime": "zod",
|
|
"schemaId": "TechLogDocumentIdParams",
|
|
"schemaVersion": 1,
|
|
"unknownFieldPolicy": "REJECT_UNKNOWN"
|
|
},
|
|
"TechLogExploreKindParams": {
|
|
"boundary": "route-params",
|
|
"direction": "REQUEST",
|
|
"owner": "feature-tech-log",
|
|
"runtime": "zod",
|
|
"schemaId": "TechLogExploreKindParams",
|
|
"schemaVersion": 1,
|
|
"unknownFieldPolicy": "REJECT_UNKNOWN"
|
|
},
|
|
"TechLogExploreKindSearch": {
|
|
"boundary": "route-search",
|
|
"direction": "REQUEST",
|
|
"owner": "feature-tech-log",
|
|
"runtime": "zod",
|
|
"schemaId": "TechLogExploreKindSearch",
|
|
"schemaVersion": 1,
|
|
"unknownFieldPolicy": "STRIP_UNKNOWN"
|
|
},
|
|
"TechLogExploreSearch": {
|
|
"boundary": "route-search",
|
|
"direction": "REQUEST",
|
|
"owner": "feature-tech-log",
|
|
"runtime": "zod",
|
|
"schemaId": "TechLogExploreSearch",
|
|
"schemaVersion": 1,
|
|
"unknownFieldPolicy": "STRIP_UNKNOWN"
|
|
},
|
|
"TechLogHomeSearch": {
|
|
"boundary": "route-search",
|
|
"direction": "REQUEST",
|
|
"owner": "feature-tech-log",
|
|
"runtime": "zod",
|
|
"schemaId": "TechLogHomeSearch",
|
|
"schemaVersion": 1,
|
|
"unknownFieldPolicy": "STRIP_UNKNOWN"
|
|
},
|
|
"TechLogPublicationEventIdParams": {
|
|
"boundary": "route-params",
|
|
"direction": "REQUEST",
|
|
"owner": "feature-tech-log",
|
|
"runtime": "zod",
|
|
"schemaId": "TechLogPublicationEventIdParams",
|
|
"schemaVersion": 1,
|
|
"unknownFieldPolicy": "REJECT_UNKNOWN"
|
|
},
|
|
"TechLogSearchQuery": {
|
|
"boundary": "route-search",
|
|
"direction": "REQUEST",
|
|
"owner": "feature-tech-log",
|
|
"runtime": "zod",
|
|
"schemaId": "TechLogSearchQuery",
|
|
"schemaVersion": 1,
|
|
"unknownFieldPolicy": "STRIP_UNKNOWN"
|
|
},
|
|
"TechLogSlugParams": {
|
|
"boundary": "route-params",
|
|
"direction": "REQUEST",
|
|
"owner": "feature-tech-log",
|
|
"runtime": "zod",
|
|
"schemaId": "TechLogSlugParams",
|
|
"schemaVersion": 1,
|
|
"unknownFieldPolicy": "REJECT_UNKNOWN"
|
|
},
|
|
"TechLogStudioSplat": {
|
|
"boundary": "route-params",
|
|
"direction": "REQUEST",
|
|
"owner": "feature-tech-log",
|
|
"runtime": "zod",
|
|
"schemaId": "TechLogStudioSplat",
|
|
"schemaVersion": 1,
|
|
"unknownFieldPolicy": "REJECT_UNKNOWN"
|
|
},
|
|
"TechLogVersionParams": {
|
|
"boundary": "route-params",
|
|
"direction": "REQUEST",
|
|
"owner": "feature-tech-log",
|
|
"runtime": "zod",
|
|
"schemaId": "TechLogVersionParams",
|
|
"schemaVersion": 1,
|
|
"unknownFieldPolicy": "REJECT_UNKNOWN"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"registryId": "FE-REG-ENV",
|
|
"owner": "feature-frontend-env-runtime-config-contract",
|
|
"source": "src/contracts/env.ts",
|
|
"rowCount": 14,
|
|
"contract": {
|
|
"requiredFields": [
|
|
"phase",
|
|
"classification",
|
|
"required",
|
|
"defaultValue"
|
|
],
|
|
"fieldTypes": {
|
|
"phase": "string",
|
|
"classification": "string",
|
|
"required": "boolean",
|
|
"defaultValue": "string|integer|boolean|null"
|
|
},
|
|
"uniqueFields": [],
|
|
"allowedValues": {
|
|
"phase": [
|
|
"build",
|
|
"runtime"
|
|
],
|
|
"classification": [
|
|
"public",
|
|
"public-sensitive",
|
|
"public-metadata",
|
|
"compile-time"
|
|
]
|
|
},
|
|
"references": [],
|
|
"keyField": null,
|
|
"breakingFields": [
|
|
"phase",
|
|
"classification",
|
|
"required"
|
|
]
|
|
},
|
|
"rows": {
|
|
"API_BASE_URL": {
|
|
"classification": "public-sensitive",
|
|
"defaultValue": null,
|
|
"phase": "runtime",
|
|
"required": true
|
|
},
|
|
"APP_ENV": {
|
|
"classification": "public",
|
|
"defaultValue": null,
|
|
"phase": "runtime",
|
|
"required": true
|
|
},
|
|
"AUTH_MODE": {
|
|
"classification": "public",
|
|
"defaultValue": "external",
|
|
"phase": "runtime",
|
|
"required": true
|
|
},
|
|
"CAPABILITY_OVERRIDES": {
|
|
"classification": "public",
|
|
"defaultValue": null,
|
|
"phase": "runtime",
|
|
"required": false
|
|
},
|
|
"CONFIG_SCHEMA_VERSION": {
|
|
"classification": "public",
|
|
"defaultValue": null,
|
|
"phase": "runtime",
|
|
"required": true
|
|
},
|
|
"MAX_RETRY_ATTEMPTS": {
|
|
"classification": "public",
|
|
"defaultValue": 2,
|
|
"phase": "runtime",
|
|
"required": false
|
|
},
|
|
"RELEASE_MANIFEST_URL": {
|
|
"classification": "public",
|
|
"defaultValue": "/release-manifest.json",
|
|
"phase": "runtime",
|
|
"required": true
|
|
},
|
|
"REQUEST_TIMEOUT_MS": {
|
|
"classification": "public",
|
|
"defaultValue": 10000,
|
|
"phase": "runtime",
|
|
"required": false
|
|
},
|
|
"TELEMETRY_ENABLED": {
|
|
"classification": "public",
|
|
"defaultValue": false,
|
|
"phase": "runtime",
|
|
"required": true
|
|
},
|
|
"TELEMETRY_ENDPOINT": {
|
|
"classification": "public-sensitive",
|
|
"defaultValue": null,
|
|
"phase": "runtime",
|
|
"required": false
|
|
},
|
|
"VITE_BUILD_ID": {
|
|
"classification": "public-metadata",
|
|
"defaultValue": null,
|
|
"phase": "build",
|
|
"required": true
|
|
},
|
|
"VITE_COMMIT_SHA": {
|
|
"classification": "public-metadata",
|
|
"defaultValue": "local",
|
|
"phase": "build",
|
|
"required": false
|
|
},
|
|
"VITE_ROUTER_BASE_PATH": {
|
|
"classification": "compile-time",
|
|
"defaultValue": "/",
|
|
"phase": "build",
|
|
"required": true
|
|
},
|
|
"VITE_RUNTIME_CONFIG_URL": {
|
|
"classification": "compile-time",
|
|
"defaultValue": "/config.json",
|
|
"phase": "build",
|
|
"required": true
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"registryId": "FE-REG-STORAGE",
|
|
"owner": "feature-frontend-storage-registry-contract",
|
|
"source": "src/contracts/storage-keys.ts",
|
|
"rowCount": 5,
|
|
"contract": {
|
|
"requiredFields": [
|
|
"logicalName",
|
|
"physicalKey",
|
|
"backend",
|
|
"classification",
|
|
"schemaVersion",
|
|
"valueCodec",
|
|
"ttl",
|
|
"migration",
|
|
"quotaFallback"
|
|
],
|
|
"fieldTypes": {
|
|
"logicalName": "string",
|
|
"physicalKey": "string",
|
|
"backend": "string",
|
|
"classification": "string",
|
|
"schemaVersion": "integer",
|
|
"valueCodec": "string",
|
|
"ttl": "integer|string|null",
|
|
"migration": "string",
|
|
"quotaFallback": "string"
|
|
},
|
|
"uniqueFields": [
|
|
"logicalName",
|
|
"physicalKey"
|
|
],
|
|
"allowedValues": {
|
|
"backend": [
|
|
"memory",
|
|
"sessionStorage",
|
|
"localStorage",
|
|
"disabled",
|
|
"forbidden"
|
|
],
|
|
"classification": [
|
|
"public-preference",
|
|
"opaque-cache",
|
|
"sensitive-forbidden"
|
|
],
|
|
"valueCodec": [
|
|
"color-scheme-v1",
|
|
"opaque-string-v1",
|
|
"none"
|
|
],
|
|
"migration": [
|
|
"discard"
|
|
],
|
|
"quotaFallback": [
|
|
"memory",
|
|
"no-persist",
|
|
"feature-disable"
|
|
]
|
|
},
|
|
"references": [],
|
|
"keyField": "logicalName",
|
|
"breakingFields": [
|
|
"logicalName",
|
|
"physicalKey",
|
|
"backend",
|
|
"classification",
|
|
"schemaVersion",
|
|
"valueCodec",
|
|
"migration"
|
|
]
|
|
},
|
|
"rows": {
|
|
"AUTH_TOKEN": {
|
|
"backend": "forbidden",
|
|
"classification": "sensitive-forbidden",
|
|
"logicalName": "AUTH_TOKEN",
|
|
"migration": "discard",
|
|
"name": "auth-token",
|
|
"physicalKey": "ca-frontend:auth:v1:auth-token",
|
|
"quotaFallback": "feature-disable",
|
|
"schemaVersion": 1,
|
|
"scope": "auth",
|
|
"ttl": null,
|
|
"valueCodec": "none"
|
|
},
|
|
"CACHE_INVALIDATION_PULSE": {
|
|
"backend": "localStorage",
|
|
"classification": "opaque-cache",
|
|
"logicalName": "CACHE_INVALIDATION_PULSE",
|
|
"migration": "discard",
|
|
"name": "pulse",
|
|
"physicalKey": "ca-frontend:cache-invalidation:v1:pulse",
|
|
"quotaFallback": "no-persist",
|
|
"schemaVersion": 1,
|
|
"scope": "cache-invalidation",
|
|
"ttl": null,
|
|
"valueCodec": "opaque-string-v1"
|
|
},
|
|
"CHUNK_RELOAD_GUARD": {
|
|
"backend": "sessionStorage",
|
|
"classification": "opaque-cache",
|
|
"logicalName": "CHUNK_RELOAD_GUARD",
|
|
"migration": "discard",
|
|
"name": "chunk-reload-guard",
|
|
"physicalKey": "ca-frontend:release:v1:chunk-reload-guard",
|
|
"quotaFallback": "no-persist",
|
|
"schemaVersion": 1,
|
|
"scope": "release",
|
|
"ttl": "session",
|
|
"valueCodec": "opaque-string-v1"
|
|
},
|
|
"COLOR_SCHEME": {
|
|
"backend": "localStorage",
|
|
"classification": "public-preference",
|
|
"logicalName": "COLOR_SCHEME",
|
|
"migration": "discard",
|
|
"name": "color-scheme",
|
|
"physicalKey": "ca-frontend:preference:v1:color-scheme",
|
|
"quotaFallback": "memory",
|
|
"schemaVersion": 1,
|
|
"scope": "preference",
|
|
"ttl": null,
|
|
"valueCodec": "color-scheme-v1"
|
|
},
|
|
"QUERY_PERSISTENCE": {
|
|
"backend": "disabled",
|
|
"classification": "sensitive-forbidden",
|
|
"logicalName": "QUERY_PERSISTENCE",
|
|
"migration": "discard",
|
|
"name": "query-persistence",
|
|
"physicalKey": "ca-frontend:cache:v1:query-persistence",
|
|
"quotaFallback": "feature-disable",
|
|
"schemaVersion": 1,
|
|
"scope": "cache",
|
|
"ttl": null,
|
|
"valueCodec": "none"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"registryId": "FE-REG-ERROR",
|
|
"owner": "feature-frontend-error-classification-boundary-contract",
|
|
"source": "src/contracts/errors.ts",
|
|
"rowCount": 38,
|
|
"contract": {
|
|
"requiredFields": [
|
|
"kind",
|
|
"defaultRetryable",
|
|
"severity",
|
|
"userMessageKey",
|
|
"action",
|
|
"telemetryEvent",
|
|
"redaction"
|
|
],
|
|
"fieldTypes": {
|
|
"kind": "string",
|
|
"defaultRetryable": "boolean",
|
|
"severity": "string",
|
|
"userMessageKey": "string",
|
|
"action": "string",
|
|
"telemetryEvent": "string",
|
|
"redaction": "array"
|
|
},
|
|
"uniqueFields": [
|
|
"kind"
|
|
],
|
|
"allowedValues": {
|
|
"severity": [
|
|
"info",
|
|
"warning",
|
|
"error"
|
|
],
|
|
"action": [
|
|
"retry",
|
|
"reauth",
|
|
"navigate",
|
|
"reload-once",
|
|
"contact-support",
|
|
"none"
|
|
]
|
|
},
|
|
"references": [],
|
|
"keyField": "kind",
|
|
"breakingFields": [
|
|
"kind",
|
|
"userMessageKey",
|
|
"action",
|
|
"telemetryEvent"
|
|
]
|
|
},
|
|
"rows": {
|
|
"API_CONTRACT_MISMATCH": {
|
|
"action": "contact-support",
|
|
"defaultRetryable": false,
|
|
"kind": "API_CONTRACT_MISMATCH",
|
|
"redaction": [
|
|
"authorization",
|
|
"body",
|
|
"cause",
|
|
"headers",
|
|
"query",
|
|
"stack",
|
|
"storageValue",
|
|
"url"
|
|
],
|
|
"severity": "error",
|
|
"telemetryEvent": "app.boot.failed",
|
|
"userMessageKey": "error.api_contract_mismatch"
|
|
},
|
|
"ASSET_MISMATCH": {
|
|
"action": "reload-once",
|
|
"defaultRetryable": false,
|
|
"kind": "ASSET_MISMATCH",
|
|
"redaction": [
|
|
"authorization",
|
|
"body",
|
|
"cause",
|
|
"headers",
|
|
"query",
|
|
"stack",
|
|
"storageValue",
|
|
"url"
|
|
],
|
|
"severity": "error",
|
|
"telemetryEvent": "release.mismatch.detected",
|
|
"userMessageKey": "error.asset_mismatch"
|
|
},
|
|
"AUTH_INTEGRATION_FAILURE": {
|
|
"action": "contact-support",
|
|
"defaultRetryable": false,
|
|
"kind": "AUTH_INTEGRATION_FAILURE",
|
|
"redaction": [
|
|
"authorization",
|
|
"body",
|
|
"cause",
|
|
"headers",
|
|
"query",
|
|
"stack",
|
|
"storageValue",
|
|
"url"
|
|
],
|
|
"severity": "error",
|
|
"telemetryEvent": "api.request.failed",
|
|
"userMessageKey": "error.auth_integration_failure"
|
|
},
|
|
"AUTH_REQUIRED": {
|
|
"action": "reauth",
|
|
"defaultRetryable": false,
|
|
"kind": "AUTH_REQUIRED",
|
|
"redaction": [
|
|
"authorization",
|
|
"body",
|
|
"cause",
|
|
"headers",
|
|
"query",
|
|
"stack",
|
|
"storageValue",
|
|
"url"
|
|
],
|
|
"severity": "info",
|
|
"telemetryEvent": "api.request.failed",
|
|
"userMessageKey": "error.auth_required"
|
|
},
|
|
"BOOT_CONFIG_FAILURE": {
|
|
"action": "contact-support",
|
|
"defaultRetryable": false,
|
|
"kind": "BOOT_CONFIG_FAILURE",
|
|
"redaction": [
|
|
"authorization",
|
|
"body",
|
|
"cause",
|
|
"headers",
|
|
"query",
|
|
"stack",
|
|
"storageValue",
|
|
"url"
|
|
],
|
|
"severity": "error",
|
|
"telemetryEvent": "app.boot.failed",
|
|
"userMessageKey": "error.boot_config_failure"
|
|
},
|
|
"BUILD_MISMATCH": {
|
|
"action": "reload-once",
|
|
"defaultRetryable": false,
|
|
"kind": "BUILD_MISMATCH",
|
|
"redaction": [
|
|
"authorization",
|
|
"body",
|
|
"cause",
|
|
"headers",
|
|
"query",
|
|
"stack",
|
|
"storageValue",
|
|
"url"
|
|
],
|
|
"severity": "error",
|
|
"telemetryEvent": "release.mismatch.detected",
|
|
"userMessageKey": "error.build_mismatch"
|
|
},
|
|
"CHUNK_LOAD_FAILURE": {
|
|
"action": "reload-once",
|
|
"defaultRetryable": false,
|
|
"kind": "CHUNK_LOAD_FAILURE",
|
|
"redaction": [
|
|
"authorization",
|
|
"body",
|
|
"cause",
|
|
"headers",
|
|
"query",
|
|
"stack",
|
|
"storageValue",
|
|
"url"
|
|
],
|
|
"severity": "error",
|
|
"telemetryEvent": "release.mismatch.detected",
|
|
"userMessageKey": "error.chunk_load_failure"
|
|
},
|
|
"CONFIG_MISMATCH": {
|
|
"action": "contact-support",
|
|
"defaultRetryable": false,
|
|
"kind": "CONFIG_MISMATCH",
|
|
"redaction": [
|
|
"authorization",
|
|
"body",
|
|
"cause",
|
|
"headers",
|
|
"query",
|
|
"stack",
|
|
"storageValue",
|
|
"url"
|
|
],
|
|
"severity": "error",
|
|
"telemetryEvent": "app.boot.failed",
|
|
"userMessageKey": "error.config_mismatch"
|
|
},
|
|
"CONFLICT": {
|
|
"action": "retry",
|
|
"defaultRetryable": false,
|
|
"kind": "CONFLICT",
|
|
"redaction": [
|
|
"authorization",
|
|
"body",
|
|
"cause",
|
|
"headers",
|
|
"query",
|
|
"stack",
|
|
"storageValue",
|
|
"url"
|
|
],
|
|
"severity": "warning",
|
|
"telemetryEvent": "api.request.failed",
|
|
"userMessageKey": "error.conflict"
|
|
},
|
|
"CONTENT_TYPE_MISMATCH": {
|
|
"action": "contact-support",
|
|
"defaultRetryable": false,
|
|
"kind": "CONTENT_TYPE_MISMATCH",
|
|
"redaction": [
|
|
"authorization",
|
|
"body",
|
|
"cause",
|
|
"headers",
|
|
"query",
|
|
"stack",
|
|
"storageValue",
|
|
"url"
|
|
],
|
|
"severity": "error",
|
|
"telemetryEvent": "api.request.failed",
|
|
"userMessageKey": "error.content_type_mismatch"
|
|
},
|
|
"DEPLOY_MISMATCH": {
|
|
"action": "reload-once",
|
|
"defaultRetryable": false,
|
|
"kind": "DEPLOY_MISMATCH",
|
|
"redaction": [
|
|
"authorization",
|
|
"body",
|
|
"cause",
|
|
"headers",
|
|
"query",
|
|
"stack",
|
|
"storageValue",
|
|
"url"
|
|
],
|
|
"severity": "error",
|
|
"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,
|
|
"kind": "ENVELOPE_MISMATCH",
|
|
"redaction": [
|
|
"authorization",
|
|
"body",
|
|
"cause",
|
|
"headers",
|
|
"query",
|
|
"stack",
|
|
"storageValue",
|
|
"url"
|
|
],
|
|
"severity": "error",
|
|
"telemetryEvent": "api.request.failed",
|
|
"userMessageKey": "error.envelope_mismatch"
|
|
},
|
|
"FORBIDDEN": {
|
|
"action": "navigate",
|
|
"defaultRetryable": false,
|
|
"kind": "FORBIDDEN",
|
|
"redaction": [
|
|
"authorization",
|
|
"body",
|
|
"cause",
|
|
"headers",
|
|
"query",
|
|
"stack",
|
|
"storageValue",
|
|
"url"
|
|
],
|
|
"severity": "warning",
|
|
"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,
|
|
"kind": "MALFORMED_JSON",
|
|
"redaction": [
|
|
"authorization",
|
|
"body",
|
|
"cause",
|
|
"headers",
|
|
"query",
|
|
"stack",
|
|
"storageValue",
|
|
"url"
|
|
],
|
|
"severity": "error",
|
|
"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,
|
|
"kind": "NETWORK_UNREACHABLE",
|
|
"redaction": [
|
|
"authorization",
|
|
"body",
|
|
"cause",
|
|
"headers",
|
|
"query",
|
|
"stack",
|
|
"storageValue",
|
|
"url"
|
|
],
|
|
"severity": "warning",
|
|
"telemetryEvent": "api.request.failed",
|
|
"userMessageKey": "error.network_unreachable"
|
|
},
|
|
"NOT_FOUND": {
|
|
"action": "navigate",
|
|
"defaultRetryable": false,
|
|
"kind": "NOT_FOUND",
|
|
"redaction": [
|
|
"authorization",
|
|
"body",
|
|
"cause",
|
|
"headers",
|
|
"query",
|
|
"stack",
|
|
"storageValue",
|
|
"url"
|
|
],
|
|
"severity": "info",
|
|
"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,
|
|
"kind": "QUERY_CACHE_FAILURE",
|
|
"redaction": [
|
|
"authorization",
|
|
"body",
|
|
"cause",
|
|
"headers",
|
|
"query",
|
|
"stack",
|
|
"storageValue",
|
|
"url"
|
|
],
|
|
"severity": "error",
|
|
"telemetryEvent": "query.cache.failed",
|
|
"userMessageKey": "error.query_cache_failure"
|
|
},
|
|
"RATE_LIMITED": {
|
|
"action": "retry",
|
|
"defaultRetryable": true,
|
|
"kind": "RATE_LIMITED",
|
|
"redaction": [
|
|
"authorization",
|
|
"body",
|
|
"cause",
|
|
"headers",
|
|
"query",
|
|
"stack",
|
|
"storageValue",
|
|
"url"
|
|
],
|
|
"severity": "warning",
|
|
"telemetryEvent": "api.request.failed",
|
|
"userMessageKey": "error.rate_limited"
|
|
},
|
|
"RELEASE_MANIFEST_FAILURE": {
|
|
"action": "contact-support",
|
|
"defaultRetryable": false,
|
|
"kind": "RELEASE_MANIFEST_FAILURE",
|
|
"redaction": [
|
|
"authorization",
|
|
"body",
|
|
"cause",
|
|
"headers",
|
|
"query",
|
|
"stack",
|
|
"storageValue",
|
|
"url"
|
|
],
|
|
"severity": "error",
|
|
"telemetryEvent": "app.boot.failed",
|
|
"userMessageKey": "error.release_manifest_failure"
|
|
},
|
|
"RELEASE_MISMATCH": {
|
|
"action": "reload-once",
|
|
"defaultRetryable": false,
|
|
"kind": "RELEASE_MISMATCH",
|
|
"redaction": [
|
|
"authorization",
|
|
"body",
|
|
"cause",
|
|
"headers",
|
|
"query",
|
|
"stack",
|
|
"storageValue",
|
|
"url"
|
|
],
|
|
"severity": "error",
|
|
"telemetryEvent": "release.mismatch.detected",
|
|
"userMessageKey": "error.release_mismatch"
|
|
},
|
|
"RENDER_FAILURE": {
|
|
"action": "reload-once",
|
|
"defaultRetryable": false,
|
|
"kind": "RENDER_FAILURE",
|
|
"redaction": [
|
|
"authorization",
|
|
"body",
|
|
"cause",
|
|
"headers",
|
|
"query",
|
|
"stack",
|
|
"storageValue",
|
|
"url"
|
|
],
|
|
"severity": "error",
|
|
"telemetryEvent": "ui.render.failed",
|
|
"userMessageKey": "error.render_failure"
|
|
},
|
|
"REQUEST_ABORTED": {
|
|
"action": "none",
|
|
"defaultRetryable": false,
|
|
"kind": "REQUEST_ABORTED",
|
|
"redaction": [
|
|
"authorization",
|
|
"body",
|
|
"cause",
|
|
"headers",
|
|
"query",
|
|
"stack",
|
|
"storageValue",
|
|
"url"
|
|
],
|
|
"severity": "info",
|
|
"telemetryEvent": "api.request.failed",
|
|
"userMessageKey": "error.request_aborted"
|
|
},
|
|
"REQUEST_TIMEOUT": {
|
|
"action": "retry",
|
|
"defaultRetryable": true,
|
|
"kind": "REQUEST_TIMEOUT",
|
|
"redaction": [
|
|
"authorization",
|
|
"body",
|
|
"cause",
|
|
"headers",
|
|
"query",
|
|
"stack",
|
|
"storageValue",
|
|
"url"
|
|
],
|
|
"severity": "warning",
|
|
"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,
|
|
"kind": "SCHEMA_MISMATCH",
|
|
"redaction": [
|
|
"authorization",
|
|
"body",
|
|
"cause",
|
|
"headers",
|
|
"query",
|
|
"stack",
|
|
"storageValue",
|
|
"url"
|
|
],
|
|
"severity": "error",
|
|
"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,
|
|
"kind": "SERVER_FAILURE",
|
|
"redaction": [
|
|
"authorization",
|
|
"body",
|
|
"cause",
|
|
"headers",
|
|
"query",
|
|
"stack",
|
|
"storageValue",
|
|
"url"
|
|
],
|
|
"severity": "error",
|
|
"telemetryEvent": "api.request.failed",
|
|
"userMessageKey": "error.server_failure"
|
|
},
|
|
"STORAGE_QUOTA_EXCEEDED": {
|
|
"action": "none",
|
|
"defaultRetryable": false,
|
|
"kind": "STORAGE_QUOTA_EXCEEDED",
|
|
"redaction": [
|
|
"authorization",
|
|
"body",
|
|
"cause",
|
|
"headers",
|
|
"query",
|
|
"stack",
|
|
"storageValue",
|
|
"url"
|
|
],
|
|
"severity": "warning",
|
|
"telemetryEvent": "storage.operation.failed",
|
|
"userMessageKey": "error.storage_quota_exceeded"
|
|
},
|
|
"STORAGE_UNAVAILABLE": {
|
|
"action": "none",
|
|
"defaultRetryable": false,
|
|
"kind": "STORAGE_UNAVAILABLE",
|
|
"redaction": [
|
|
"authorization",
|
|
"body",
|
|
"cause",
|
|
"headers",
|
|
"query",
|
|
"stack",
|
|
"storageValue",
|
|
"url"
|
|
],
|
|
"severity": "warning",
|
|
"telemetryEvent": "storage.operation.failed",
|
|
"userMessageKey": "error.storage_unavailable"
|
|
},
|
|
"TELEMETRY_FAILURE": {
|
|
"action": "none",
|
|
"defaultRetryable": false,
|
|
"kind": "TELEMETRY_FAILURE",
|
|
"redaction": [
|
|
"authorization",
|
|
"body",
|
|
"cause",
|
|
"headers",
|
|
"query",
|
|
"stack",
|
|
"storageValue",
|
|
"url"
|
|
],
|
|
"severity": "info",
|
|
"telemetryEvent": "telemetry.delivery.dropped",
|
|
"userMessageKey": "error.telemetry_failure"
|
|
},
|
|
"UNKNOWN_CLIENT_FAILURE": {
|
|
"action": "contact-support",
|
|
"defaultRetryable": false,
|
|
"kind": "UNKNOWN_CLIENT_FAILURE",
|
|
"redaction": [
|
|
"authorization",
|
|
"body",
|
|
"cause",
|
|
"headers",
|
|
"query",
|
|
"stack",
|
|
"storageValue",
|
|
"url"
|
|
],
|
|
"severity": "warning",
|
|
"telemetryEvent": "api.request.failed",
|
|
"userMessageKey": "error.unknown_client_failure"
|
|
},
|
|
"UNKNOWN_FAILURE": {
|
|
"action": "contact-support",
|
|
"defaultRetryable": false,
|
|
"kind": "UNKNOWN_FAILURE",
|
|
"redaction": [
|
|
"authorization",
|
|
"body",
|
|
"cause",
|
|
"headers",
|
|
"query",
|
|
"stack",
|
|
"storageValue",
|
|
"url"
|
|
],
|
|
"severity": "error",
|
|
"telemetryEvent": "api.request.failed",
|
|
"userMessageKey": "error.unknown_failure"
|
|
},
|
|
"VALIDATION_REJECTED": {
|
|
"action": "none",
|
|
"defaultRetryable": false,
|
|
"kind": "VALIDATION_REJECTED",
|
|
"redaction": [
|
|
"authorization",
|
|
"body",
|
|
"cause",
|
|
"headers",
|
|
"query",
|
|
"stack",
|
|
"storageValue",
|
|
"url"
|
|
],
|
|
"severity": "info",
|
|
"telemetryEvent": "api.request.failed",
|
|
"userMessageKey": "error.validation_rejected"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"registryId": "FE-REG-QUERY-INVALIDATION",
|
|
"owner": "feature-frontend-server-state-caching-contract",
|
|
"source": "src/features/installed-feature-contracts.ts",
|
|
"rowCount": 1,
|
|
"contract": {
|
|
"requiredFields": [
|
|
"topicId",
|
|
"namespace.namespaceId",
|
|
"namespace.namespaceVersion"
|
|
],
|
|
"fieldTypes": {
|
|
"topicId": "string",
|
|
"namespace.namespaceId": "string",
|
|
"namespace.namespaceVersion": "integer"
|
|
},
|
|
"uniqueFields": [],
|
|
"allowedValues": {},
|
|
"references": [],
|
|
"keyField": null,
|
|
"breakingFields": [
|
|
"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": {
|
|
"[\"qinv.01k10f7m3w9p6r2c8v5n4x\"]": {
|
|
"topicId": "qinv.01k10f7m3w9p6r2c8v5n4x",
|
|
"topicVersion": 1
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"registryId": "FE-REG-TELEMETRY",
|
|
"owner": "feature-frontend-diagnostics-telemetry-runtime",
|
|
"source": "src/contracts/telemetry.ts",
|
|
"rowCount": 5,
|
|
"contract": {
|
|
"requiredFields": [
|
|
"eventName",
|
|
"trigger",
|
|
"requiredAttributes",
|
|
"optionalAttributes",
|
|
"forbiddenAttributes",
|
|
"sampling",
|
|
"delivery"
|
|
],
|
|
"fieldTypes": {
|
|
"eventName": "string",
|
|
"trigger": "string",
|
|
"requiredAttributes": "array",
|
|
"optionalAttributes": "array",
|
|
"forbiddenAttributes": "array",
|
|
"sampling": "string",
|
|
"delivery": "string"
|
|
},
|
|
"uniqueFields": [
|
|
"eventName"
|
|
],
|
|
"allowedValues": {
|
|
"delivery": [
|
|
"best-effort"
|
|
]
|
|
},
|
|
"references": [],
|
|
"keyField": "eventName",
|
|
"breakingFields": [
|
|
"eventName",
|
|
"requiredAttributes",
|
|
"forbiddenAttributes",
|
|
"delivery"
|
|
]
|
|
},
|
|
"rows": {
|
|
"api.request.failed": {
|
|
"delivery": "best-effort",
|
|
"eventName": "api.request.failed",
|
|
"forbiddenAttributes": [
|
|
"access_token",
|
|
"authorization_header",
|
|
"cookie",
|
|
"email",
|
|
"query_string",
|
|
"raw_url",
|
|
"raw_user_id",
|
|
"refresh_token",
|
|
"request_body",
|
|
"response_body",
|
|
"stack_in_user_message",
|
|
"storage_value",
|
|
"user_name"
|
|
],
|
|
"optionalAttributes": [
|
|
"duration_bucket",
|
|
"operation_id"
|
|
],
|
|
"requiredAttributes": [
|
|
"attempt_count_bucket",
|
|
"error_kind",
|
|
"http_status_group",
|
|
"route_id"
|
|
],
|
|
"sampling": "all",
|
|
"trigger": "terminal API failure"
|
|
},
|
|
"app.boot.failed": {
|
|
"delivery": "best-effort",
|
|
"eventName": "app.boot.failed",
|
|
"forbiddenAttributes": [
|
|
"access_token",
|
|
"authorization_header",
|
|
"cookie",
|
|
"email",
|
|
"query_string",
|
|
"raw_url",
|
|
"raw_user_id",
|
|
"refresh_token",
|
|
"request_body",
|
|
"response_body",
|
|
"stack_in_user_message",
|
|
"storage_value",
|
|
"user_name"
|
|
],
|
|
"optionalAttributes": [],
|
|
"requiredAttributes": [
|
|
"build_id",
|
|
"config_schema_version",
|
|
"error_kind"
|
|
],
|
|
"sampling": "all",
|
|
"trigger": "boot validation failure"
|
|
},
|
|
"release.mismatch.detected": {
|
|
"delivery": "best-effort",
|
|
"eventName": "release.mismatch.detected",
|
|
"forbiddenAttributes": [
|
|
"access_token",
|
|
"authorization_header",
|
|
"cookie",
|
|
"email",
|
|
"query_string",
|
|
"raw_url",
|
|
"raw_user_id",
|
|
"refresh_token",
|
|
"request_body",
|
|
"response_body",
|
|
"stack_in_user_message",
|
|
"storage_value",
|
|
"user_name"
|
|
],
|
|
"optionalAttributes": [],
|
|
"requiredAttributes": [
|
|
"active_release_id",
|
|
"build_id",
|
|
"mismatch_kind"
|
|
],
|
|
"sampling": "all",
|
|
"trigger": "release tuple mismatch"
|
|
},
|
|
"telemetry.delivery.dropped": {
|
|
"delivery": "best-effort",
|
|
"eventName": "telemetry.delivery.dropped",
|
|
"forbiddenAttributes": [
|
|
"access_token",
|
|
"authorization_header",
|
|
"cookie",
|
|
"email",
|
|
"query_string",
|
|
"raw_url",
|
|
"raw_user_id",
|
|
"refresh_token",
|
|
"request_body",
|
|
"response_body",
|
|
"stack_in_user_message",
|
|
"storage_value",
|
|
"user_name"
|
|
],
|
|
"optionalAttributes": [],
|
|
"requiredAttributes": [
|
|
"queue_size_bucket",
|
|
"reason"
|
|
],
|
|
"sampling": "internal-counter",
|
|
"trigger": "queue or sink failure"
|
|
},
|
|
"ui.render.failed": {
|
|
"delivery": "best-effort",
|
|
"eventName": "ui.render.failed",
|
|
"forbiddenAttributes": [
|
|
"access_token",
|
|
"authorization_header",
|
|
"cookie",
|
|
"email",
|
|
"query_string",
|
|
"raw_url",
|
|
"raw_user_id",
|
|
"refresh_token",
|
|
"request_body",
|
|
"response_body",
|
|
"stack_in_user_message",
|
|
"storage_value",
|
|
"user_name"
|
|
],
|
|
"optionalAttributes": [],
|
|
"requiredAttributes": [
|
|
"build_id",
|
|
"component_boundary",
|
|
"route_id"
|
|
],
|
|
"sampling": "all",
|
|
"trigger": "React boundary catch"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"registryId": "FE-REG-RELEASE",
|
|
"owner": "feature-frontend-release-cache-rollback-contract",
|
|
"source": "src/contracts/release-tokens.ts",
|
|
"rowCount": 9,
|
|
"contract": {
|
|
"requiredFields": [
|
|
"token",
|
|
"source",
|
|
"compatibilityRole"
|
|
],
|
|
"fieldTypes": {
|
|
"token": "string",
|
|
"source": "string",
|
|
"compatibilityRole": "string"
|
|
},
|
|
"uniqueFields": [
|
|
"token"
|
|
],
|
|
"allowedValues": {},
|
|
"references": [],
|
|
"keyField": "token",
|
|
"breakingFields": [
|
|
"token",
|
|
"source",
|
|
"compatibilityRole"
|
|
]
|
|
},
|
|
"rows": {
|
|
"apiContractVersion": {
|
|
"compatibilityRole": "legacy V1 scalar; superseded by contractSetDigest",
|
|
"source": "frontend/backend agreement",
|
|
"token": "apiContractVersion"
|
|
},
|
|
"appVersion": {
|
|
"compatibilityRole": "human release label",
|
|
"source": "manifest",
|
|
"token": "appVersion"
|
|
},
|
|
"assetManifestHash": {
|
|
"compatibilityRole": "chunk integrity and mismatch detection",
|
|
"source": "build output",
|
|
"token": "assetManifestHash"
|
|
},
|
|
"buildId": {
|
|
"compatibilityRole": "asset and HTML coherence",
|
|
"source": "CI build",
|
|
"token": "buildId"
|
|
},
|
|
"builtAt": {
|
|
"compatibilityRole": "diagnostics only; never cache identity",
|
|
"source": "CI",
|
|
"token": "builtAt"
|
|
},
|
|
"commitSha": {
|
|
"compatibilityRole": "source traceability",
|
|
"source": "VCS",
|
|
"token": "commitSha"
|
|
},
|
|
"configSchemaVersion": {
|
|
"compatibilityRole": "boot compatibility",
|
|
"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",
|
|
"token": "releaseId"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|