{"apiVersion": "openeyes.nails.web.v1", "contract": {"additionalProperties": false, "contractVersion": 1, "goLiveEvidenceOptionalFields": ["evidenceDigest", "notes"], "goLiveEvidenceRequiredFields": ["criterionId", "evidenceId", "referenceUri", "reviewerRole", "status"], "methods": ["POST"], "name": "nails-production-cutover-go-live-readiness-report", "optionalFields": ["goLiveEvidence"], "requiredFields": ["launchAuditReport", "launchAuditReportDigest"], "schemaDigest": "31d6044542be212dac9cecf7cb0155ebb8a28e86545eeabfd3ab1daee3b26d3a", "schemaId": "https://openeyes.local/plugins/nails/web/v1/production-cutover-go-live-readiness-report-request.schema.json"}, "deployEnabled": false, "goLiveEvidencePolicy": {"acceptedStatuses": ["accepted", "approved", "pass", "verified"], "evidenceDigest": {"digestAlgorithm": "sha256", "pattern": "^[a-f0-9]{64}$", "requiredForAcceptedEvidence": true}, "network": false, "productionMutations": false, "referenceUri": {"allowedSchemes": ["oss", "gs"], "localPathForbidden": true, "queryOrFragmentForbidden": true, "secretBearingValuesForbidden": true}, "requiredEvidence": [{"criterionId": "maliang_runtime_principal", "evidenceId": "runtime_principal_post_cutover_review", "network": false, "productionMutations": false, "reviewerRole": "maliang-platform-reviewer", "status": "external_go_live_evidence_required", "story": "Maliang Nails runtime principal, token source, and external execution identity are approved for this post-cutover release."}, {"criterionId": "oss_resource_policy", "evidenceId": "bucket_policy_and_object_acl_review", "network": false, "productionMutations": false, "reviewerRole": "storage-policy-reviewer", "status": "external_go_live_evidence_required", "story": "Stable OSS/GCS object URI policy, bucket policy, and object ACL bindings are confirmed for Maliang Nails runtime access."}, {"criterionId": "post_cutover_monitoring", "evidenceId": "live_monitoring_window_review", "network": false, "productionMutations": false, "reviewerRole": "production-observer", "status": "external_go_live_evidence_required", "story": "Post-cutover monitoring window confirms route, active pointer, Maliang API input, and receipt behavior under live observation."}, {"criterionId": "production_owner_go_live_signoff", "evidenceId": "owner_online_release_signoff", "network": false, "productionMutations": false, "reviewerRole": "production-owner", "status": "external_go_live_evidence_required", "story": "Production owner explicitly accepts the audited cutover evidence and authorizes online release posture."}]}, "method": "GET", "network": false, "ok": true, "pluginId": "nails", "productionMutations": false, "reportBoundary": {"deployEnabled": false, "mode": "go_live_readiness_report_only_no_external_execution", "network": false, "productionMutations": false, "readsLocalState": false, "submitEnabled": false, "uploadEnabled": false, "writesLocalState": false}, "reportContractPath": "/api/web/v1/plugins/nails/production-cutover:go-live-readiness-report-contract", "reportPath": "/api/web/v1/plugins/nails/production-cutover:go-live-readiness-report", "route": "/api/web/v1/plugins/nails/production-cutover:go-live-readiness-report-contract", "schema": {"$id": "https://openeyes.local/plugins/nails/web/v1/production-cutover-go-live-readiness-report-request.schema.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": {"goLiveEvidence": {"description": "Optional external go-live evidence rows. Missing rows are reported as blockers rather than inferred.", "items": {"additionalProperties": false, "properties": {"criterionId": {"minLength": 1, "type": "string"}, "evidenceDigest": {"pattern": "^[a-f0-9]{64}$", "type": "string"}, "evidenceId": {"minLength": 1, "type": "string"}, "notes": {"type": "string"}, "referenceUri": {"description": "Stable non-secret review artifact URI.", "minLength": 1, "type": "string"}, "reviewerRole": {"description": "Role label only; do not include personal contact information.", "minLength": 1, "type": "string"}, "status": {"minLength": 1, "type": "string"}}, "required": ["criterionId", "evidenceId", "referenceUri", "reviewerRole", "status"], "type": "object"}, "type": "array"}, "launchAuditReport": {"description": "Response body from production-cutover:launch-audit-report.", "type": "object"}, "launchAuditReportDigest": {"description": "Canonical sha256 of {launchAuditReport: <report>}.", "pattern": "^[a-f0-9]{64}$", "type": "string"}}, "required": ["launchAuditReport", "launchAuditReportDigest"], "title": "Nails Production Cutover Go-Live Readiness Report Request v1", "type": "object"}, "sourceLaunchAuditReport": {"contractPath": "/api/web/v1/plugins/nails/production-cutover:launch-audit-report-contract", "deployEnabled": false, "digestAlgorithm": "canonical_sha256_of_launch_audit_report", "network": false, "path": "/api/web/v1/plugins/nails/production-cutover:launch-audit-report", "productionMutations": false, "requiredLaunchAuditReady": true}, "submitEnabled": false, "uploadEnabled": false}