38 lines
1.8 KiB
JSON
38 lines
1.8 KiB
JSON
{
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"$id": "ca-skeleton-frontend/release-verification.schema.json",
|
|
"title": "artifacts/release/verification.json",
|
|
"description": "pnpm verify:release 산출물. release-cache 가 생산하고 compat-governance 가 version tuple 호환 판정에 소비한다. FE-GATE-015 의 'mismatch detected / coherent set passes' 판정 근거.",
|
|
"type": "object",
|
|
"additionalProperties": true,
|
|
"required": ["checkedAt", "activeReleaseId", "releaseTuple", "coherent"],
|
|
"properties": {
|
|
"checkedAt": { "type": "string", "format": "date-time" },
|
|
"activeReleaseId": {
|
|
"type": "string",
|
|
"description": "현재 활성 release. hub §11.1 telemetry allowlist 의 active_release_id 와 같은 값이지만, telemetry attribute 명명(snake_case)과 artifact 필드 명명(camelCase)은 별개 규약이다."
|
|
},
|
|
"releaseTuple": {
|
|
"type": "object",
|
|
"description": "coherence 판정 대상 조합. 하나라도 서로 다른 release 를 가리키면 DEPLOY_MISMATCH 다.",
|
|
"required": ["htmlReleaseId", "assetManifestHash", "configVersion", "releaseManifestId"],
|
|
"additionalProperties": true,
|
|
"properties": {
|
|
"htmlReleaseId": { "type": "string" },
|
|
"assetManifestHash": { "type": "string" },
|
|
"configVersion": { "type": "string" },
|
|
"releaseManifestId": { "type": "string" },
|
|
"apiContractVersion": { "type": "string" }
|
|
}
|
|
},
|
|
"coherent": {
|
|
"type": "boolean",
|
|
"description": "true 면 FE-GATE-015 PASS."
|
|
},
|
|
"mismatchKind": {
|
|
"enum": ["DEPLOY_MISMATCH", "RELEASE_MANIFEST_FAILURE", "CONFIG_INCOMPATIBLE", null],
|
|
"description": "coherent=false 일 때의 실패 종류. raw payload 는 담지 않는다."
|
|
}
|
|
}
|
|
}
|