{"activationEnabled": false, "apiVersion": "openeyes.nails.web.v1", "checks": ["verified_design_package", "publishable_private_candidate", "public_catalog_projection", "mock_activation_rollback_withdraw", "production_cutover_boundary"], "contract": {"additionalProperties": false, "contractVersion": 1, "name": "nails-public-release-readiness-report-request", "optionalFields": ["stateDigest"], "requiredFields": ["stateRoot"], "schemaDigest": "84a095ba0a29849b52c03642a79c57726c527c266ee23381da2206f69b0474b2", "schemaId": "https://openeyes.local/plugins/nails/web/v1/public-release-readiness-report-request.schema.json"}, "links": {"authorizedSubmitPreviewRequest": {"approvalLedgerFallback": {"contractPath": "/api/web/v1/plugins/nails/online-pilot:approval-ledger-contract", "digestFields": ["authorizationRequirementsDigest", "approvalEvidencePolicyDigest", "nextGateRequestsDigest", "authorizationRequestBundleVerificationDigest"], "mode": "used_when_approvalEvidence_is_omitted", "network": false, "path": "/api/web/v1/plugins/nails/online-pilot:approval-ledger", "requiresStateRoot": true, "sourceField": "currentApprovalEvidence"}, "bodyFields": ["stateRoot", "payloadDigest", "approvalEvidence", "authorizationRequirementsDigest", "approvalEvidencePolicyDigest", "nextGateRequestsDigest", "authorizationRequestBundleVerificationDigest"], "bodyTemplate": {"approvalEvidence": "<online-pilot:evidence-packet.approvalEvidenceTemplate>", "approvalEvidencePolicyDigest": "<online-pilot:evidence-packet.approvalEvidencePolicyDigest>", "authorizationRequestBundleVerificationDigest": "<online-pilot:authorization-request-bundle-verify.verificationDigest>", "authorizationRequirementsDigest": "<online-pilot:evidence-packet.authorizationRequirementsDigest>", "nextGateRequestsDigest": "<online-pilot:evidence-packet.nextGateRequestsDigest>", "payloadDigest": "<row.payloadDigest>", "stateRoot": "<stateRoot>"}, "contractPath": "/api/web/v1/plugins/nails/online-pilot:authorized-submit-preview-contract", "deployEnabled": false, "method": "POST", "network": false, "path": "/api/web/v1/plugins/nails/online-pilot:authorized-submit-preview", "requiresStateRoot": true, "sourceFields": {"approvalEvidence": "online-pilot:evidence-packet.approvalEvidenceTemplate", "approvalEvidencePolicyDigest": "online-pilot:evidence-packet.approvalEvidencePolicyDigest", "authorizationRequestBundleVerificationDigest": "online-pilot:authorization-request-bundle-verify.verificationDigest", "authorizationRequirementsDigest": "online-pilot:evidence-packet.authorizationRequirementsDigest", "nextGateRequestsDigest": "online-pilot:evidence-packet.nextGateRequestsDigest", "payloadDigest": "online-pilot:review-package.payloadDigest", "stateRoot": "caller.localStateRoot"}, "submitEnabled": false, "uploadEnabled": false}, "designPackageRequest": {"bodyFields": ["stateDigest"], "method": "POST", "network": false, "path": "/api/web/v1/plugins/nails/design-packages:get", "requiresStateRoot": true}, "maliangHandoffPackageRequest": {"bodyFields": ["payloadDigest"], "method": "POST", "network": false, "optionalWhen": "releaseIdMatchesMaliangExportRecord", "path": "/api/web/v1/plugins/nails/maliang-exports:handoff-package", "requiresStateRoot": true}, "maliangReadinessRequest": {"bodyFields": ["payloadDigest"], "method": "POST", "network": false, "optionalWhen": "releaseIdMatchesMaliangExportRecord", "path": "/api/web/v1/plugins/nails/maliang-exports:readiness", "requiresStateRoot": true}, "mockActivationRollbackWithdrawRegression": {"network": false, "suggestedTests": ["tests/test_nails_public_release_integration.ts", "tests/test_public_release_catalog.ts", "test_nails_offline_mvp.NailsOfflineMvpTests.test_nails_offline_ports_complete_public_candidate_and_maliang_dry_run"]}, "onlinePilotReviewPackageRequest": {"bodyFields": ["payloadDigest"], "condition": "external_authorization_required_before_submit", "method": "POST", "network": false, "path": "/api/web/v1/plugins/nails/online-pilot:review-package", "requiresStateRoot": true}, "submitGateReportRequest": {"bodyFields": ["payloadDigest"], "method": "POST", "network": false, "optionalWhen": "releaseIdMatchesMaliangExportRecord", "path": "/api/web/v1/plugins/nails/maliang-exports:submit-gate-report", "requiresStateRoot": true}}, "method": "GET", "network": false, "ok": true, "pluginId": "nails", "productionMutations": false, "readinessReportPath": "/api/web/v1/plugins/nails/public-release:readiness-report", "route": "/api/web/v1/plugins/nails/public-release:readiness-report-contract", "schema": {"$id": "https://openeyes.local/plugins/nails/web/v1/public-release-readiness-report-request.schema.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": {"stateDigest": {"description": "Optional verified design package state digest to audit; when omitted, the latest valid package is used.", "pattern": "^[a-f0-9]{64}$", "type": "string"}, "stateRoot": {"description": "Local state root that contains a verified design package and offline publishable candidate evidence.", "minLength": 1, "type": "string"}}, "required": ["stateRoot"], "title": "Nails Public Release Readiness Report Request v1", "type": "object"}, "stateNamespace": "state/plugins/nails/candidates", "submitEnabled": false, "uploadEnabled": false}