{"apiVersion": "openeyes.nails.web.v1", "checks": ["token_check", "record", "preflight", "submit_plan", "submit_request", "api_input_workflow", "handoff_package", "status", "receipts", "no_network"], "contract": {"additionalProperties": false, "contractVersion": 1, "name": "nails-maliang-exports-readiness-request", "optionalFields": ["payloadDigest"], "requiredFields": ["stateRoot"], "schemaDigest": "96df52a8a82742c3c6b699af29672b7d46c5f4266f72dbfc9a66a68fff2cb3ca", "schemaId": "https://openeyes.local/plugins/nails/web/v1/maliang-exports-readiness-request.schema.json"}, "endpointMap": {"preflight": {"contractPath": "/api/web/v1/plugins/nails/maliang-exports:preflight-contract", "method": "POST", "network": false, "path": "/api/web/v1/plugins/nails/maliang-exports:preflight"}, "receipts": {"contractPath": "/api/web/v1/plugins/nails/maliang-exports:receipts-contract", "method": "POST", "network": false, "path": "/api/web/v1/plugins/nails/maliang-exports:receipts"}, "status": {"contractPath": "/api/web/v1/plugins/nails/maliang-exports:status-contract", "method": "POST", "network": false, "path": "/api/web/v1/plugins/nails/maliang-exports:status"}, "submit": {"contractPath": "/api/web/v1/plugins/nails/maliang-exports:submit-request-contract", "enabled": false, "method": "POST", "network": false, "path": "/api/web/v1/plugins/nails/maliang-exports:submit-request", "planContractPath": "/api/web/v1/plugins/nails/maliang-exports:submit-plan-contract", "planPath": "/api/web/v1/plugins/nails/maliang-exports:submit-plan"}, "token": {"contractPath": "/api/web/v1/plugins/nails/maliang-exports:token-check-contract", "method": "GET", "network": false, "path": "/api/web/v1/plugins/nails/maliang-exports:token-check"}}, "localWrapperPathsContract": {"apiInputPackage": "/api/web/v1/plugins/nails/maliang-exports:api-input-package", "apiInputPackageContract": "/api/web/v1/plugins/nails/maliang-exports:api-input-package-contract", "apiInputWorkflow": "/api/web/v1/plugins/nails/maliang-exports:api-input-workflow", "apiInputWorkflowContract": "/api/web/v1/plugins/nails/maliang-exports:api-input-workflow-contract", "apiInputWorkflowVerify": "/api/web/v1/plugins/nails/maliang-exports:api-input-workflow-verify", "apiInputWorkflowVerifyContract": "/api/web/v1/plugins/nails/maliang-exports:api-input-workflow-verify-contract", "externalRuntimeHandoffVerify": "/api/web/v1/plugins/nails/maliang-exports:external-runtime-handoff-verify", "externalRuntimeHandoffVerifyContract": "/api/web/v1/plugins/nails/maliang-exports:external-runtime-handoff-verify-contract", "externalRuntimePreflightReceiptVerify": "/api/web/v1/plugins/nails/maliang-exports:external-runtime-preflight-receipt-verify", "externalRuntimePreflightReceiptVerifyContract": "/api/web/v1/plugins/nails/maliang-exports:external-runtime-preflight-receipt-verify-contract", "externalRuntimeReceiptVerify": "/api/web/v1/plugins/nails/maliang-exports:external-runtime-receipt-verify", "externalRuntimeReceiptVerifyContract": "/api/web/v1/plugins/nails/maliang-exports:external-runtime-receipt-verify-contract", "handoffPackage": "/api/web/v1/plugins/nails/maliang-exports:handoff-package", "handoffPackageContract": "/api/web/v1/plugins/nails/maliang-exports:handoff-package-contract", "manifest": "/api/web/v1/plugins/nails/maliang-exports:manifest", "manifestContract": "/api/web/v1/plugins/nails/maliang-exports:manifest-contract", "objectContractReport": "/api/web/v1/plugins/nails/maliang-exports:object-contract-report", "objectContractReportContract": "/api/web/v1/plugins/nails/maliang-exports:object-contract-report-contract", "payload": "/api/web/v1/plugins/nails/maliang-exports:payload", "payloadContract": "/api/web/v1/plugins/nails/maliang-exports:payload-contract", "preflight": "/api/web/v1/plugins/nails/maliang-exports:preflight", "preflightContract": "/api/web/v1/plugins/nails/maliang-exports:preflight-contract", "query": "/api/web/v1/plugins/nails/maliang-exports:query", "queryContract": "/api/web/v1/plugins/nails/maliang-exports:query-contract", "readiness": "/api/web/v1/plugins/nails/maliang-exports:readiness", "readinessContract": "/api/web/v1/plugins/nails/maliang-exports:readiness-contract", "receipts": "/api/web/v1/plugins/nails/maliang-exports:receipts", "receiptsContract": "/api/web/v1/plugins/nails/maliang-exports:receipts-contract", "runtimeResourceReadReceiptVerify": "/api/web/v1/plugins/nails/maliang-exports:runtime-resource-read-receipt-verify", "runtimeResourceReadReceiptVerifyContract": "/api/web/v1/plugins/nails/maliang-exports:runtime-resource-read-receipt-verify-contract", "status": "/api/web/v1/plugins/nails/maliang-exports:status", "statusContract": "/api/web/v1/plugins/nails/maliang-exports:status-contract", "submitGateReport": "/api/web/v1/plugins/nails/maliang-exports:submit-gate-report", "submitGateReportContract": "/api/web/v1/plugins/nails/maliang-exports:submit-gate-report-contract", "submitPlan": "/api/web/v1/plugins/nails/maliang-exports:submit-plan", "submitPlanContract": "/api/web/v1/plugins/nails/maliang-exports:submit-plan-contract", "submitRequest": "/api/web/v1/plugins/nails/maliang-exports:submit-request", "submitRequestContract": "/api/web/v1/plugins/nails/maliang-exports:submit-request-contract", "tokenCheck": "/api/web/v1/plugins/nails/maliang-exports:token-check", "tokenCheckContract": "/api/web/v1/plugins/nails/maliang-exports:token-check-contract"}, "method": "GET", "network": false, "ok": true, "pluginId": "nails", "readinessPath": "/api/web/v1/plugins/nails/maliang-exports:readiness", "responseLinksContract": {"apiInputPackageRequest": {"body": {"payloadDigest": "<payloadDigest>"}, "method": "POST", "network": false, "path": "/api/web/v1/plugins/nails/maliang-exports:api-input-package", "requiresStateRoot": true, "submitEnabled": false, "uploadEnabled": false}, "apiInputWorkflowRequest": {"contractPath": "/api/web/v1/plugins/nails/maliang-exports:api-input-workflow-contract", "digestField": "apiInputWorkflowDigest", "expectedDigest": "c0f3235f74a31c0080d4b3a547099c4653c903cdc98340afe266aac0bc3345ee", "method": "GET", "network": false, "path": "/api/web/v1/plugins/nails/maliang-exports:api-input-workflow", "requiresStateRoot": false, "responseFields": ["apiInputWorkflow", "apiInputWorkflowDigest", "standardEndpointOrder"]}, "apiInputWorkflowVerificationBinding": {"actualDigest": "80d6bdda37ea74f1a3092d369a125b76a4e764df02f5e2459e510190b9eeab31", "actualDigestField": "apiInputWorkflowVerifyRequest.verificationDigest", "expectedDigest": "80d6bdda37ea74f1a3092d369a125b76a4e764df02f5e2459e510190b9eeab31", "expectedDigestSource": "maliang-exports:api-input-workflow-verify.verificationDigest", "network": false, "status": "local_workflow_verification_bound", "verificationEvidenceField": "apiInputWorkflowVerifyRequest.verificationEvidence", "verified": true}, "apiInputWorkflowVerificationDigest": "80d6bdda37ea74f1a3092d369a125b76a4e764df02f5e2459e510190b9eeab31", "apiInputWorkflowVerifyRequest": {"body": {"expectedDigest": "c0f3235f74a31c0080d4b3a547099c4653c903cdc98340afe266aac0bc3345ee"}, "bodyFields": ["expectedDigest"], "contractPath": "/api/web/v1/plugins/nails/maliang-exports:api-input-workflow-verify-contract", "digestField": "apiInputWorkflowDigest", "expectedDigest": "c0f3235f74a31c0080d4b3a547099c4653c903cdc98340afe266aac0bc3345ee", "method": "POST", "network": false, "path": "/api/web/v1/plugins/nails/maliang-exports:api-input-workflow-verify", "verifiedField": "verified"}, "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": "<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}, "handoffPackageRequest": {"body": {"payloadDigest": "<payloadDigest>"}, "method": "POST", "network": false, "path": "/api/web/v1/plugins/nails/maliang-exports:handoff-package", "requiresStateRoot": true}, "manifestRequest": {"body": {"payloadDigest": "<payloadDigest>"}, "method": "POST", "network": false, "path": "/api/web/v1/plugins/nails/maliang-exports:manifest", "requiresStateRoot": true}, "onlinePilotReviewPackageRequest": {"body": {"payloadDigest": "<payloadDigest>"}, "condition": "external_authorization_required_before_submit", "method": "POST", "network": false, "path": "/api/web/v1/plugins/nails/online-pilot:review-package", "requiresStateRoot": true}, "payloadRequest": {"body": {"payloadDigest": "<payloadDigest>"}, "method": "POST", "network": false, "path": "/api/web/v1/plugins/nails/maliang-exports:payload", "requiresStateRoot": true}, "preflightRequest": {"body": {"payloadDigest": "<payloadDigest>"}, "method": "POST", "network": false, "path": "/api/web/v1/plugins/nails/maliang-exports:preflight", "requiresStateRoot": true}, "readinessRequest": {"body": {"payloadDigest": "<payloadDigest>"}, "method": "POST", "network": false, "path": "/api/web/v1/plugins/nails/maliang-exports:readiness", "requiresStateRoot": true}, "receiptsRequest": {"body": {"payloadDigest": "<payloadDigest>"}, "method": "POST", "network": false, "path": "/api/web/v1/plugins/nails/maliang-exports:receipts", "requiresStateRoot": true}, "statusRequest": {"body": {"payloadDigest": "<payloadDigest>"}, "method": "POST", "network": false, "path": "/api/web/v1/plugins/nails/maliang-exports:status", "requiresStateRoot": true}, "submitGateReportRequest": {"body": {"payloadDigest": "<payloadDigest>"}, "method": "POST", "network": false, "path": "/api/web/v1/plugins/nails/maliang-exports:submit-gate-report", "requiresStateRoot": true}, "submitPlanRequest": {"body": {"payloadDigest": "<payloadDigest>"}, "method": "POST", "network": false, "path": "/api/web/v1/plugins/nails/maliang-exports:submit-plan", "requiresStateRoot": true}, "submitRequest": {"body": {"payloadDigest": "<payloadDigest>"}, "method": "POST", "network": false, "path": "/api/web/v1/plugins/nails/maliang-exports:submit-request", "requiresStateRoot": true}, "tokenCheckRequest": {"body": {}, "method": "GET", "network": false, "path": "/api/web/v1/plugins/nails/maliang-exports:token-check", "requiresStateRoot": false}}, "route": "/api/web/v1/plugins/nails/maliang-exports:readiness-contract", "schema": {"$id": "https://openeyes.local/plugins/nails/web/v1/maliang-exports-readiness-request.schema.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": {"payloadDigest": {"description": "Optional payload digest to summarize; when omitted, the latest local Maliang export record is used.", "pattern": "^[a-f0-9]{64}$", "type": "string"}, "stateRoot": {"description": "Local state root that contains state/plugins/nails/maliang.", "minLength": 1, "type": "string"}}, "required": ["stateRoot"], "title": "Nails Maliang Exports Readiness Request v1", "type": "object"}, "standardEndpointOrder": ["token", "preflight", "submit", "status", "receipts"], "stateNamespace": "state/plugins/nails/maliang"}