{"apiVersion": "openeyes.nails.web.v1", "boundary": "go_live_external_release_receipt_completion_local_only", "collectionExecutionEnabled": false, "completionBoundary": {"advancesLocalGoLiveTracker": true, "collectionExecutionEnabled": false, "deployEnabled": false, "externalReleaseAction": false, "finalizesAllStagesReady": true, "liveCollectionEnabled": false, "localStateMutations": false, "mode": "external_release_action_receipt_completion_local_files_only", "network": false, "productionMutations": false, "readsLocalFiles": true, "registersExternalReleaseActionReceipt": true, "requiresExplicitStateRoot": false, "requiresExternalReleaseActionCompletedBeforeCall": true, "requiresReleaseCockpitReviewCompletion": true, "secretMaterialReturned": false, "submitEnabled": false, "uploadEnabled": false, "validatesExternalReleaseReceipt": true, "validatesReleaseCockpitDigest": true, "writesLocalAuditState": false, "writesLocalFiles": true}, "completionContractPath": "/api/web/v1/plugins/nails/production-cutover:external-release-action-receipt-contract", "completionPath": "/api/web/v1/plugins/nails/production-cutover:external-release-action-receipt", "contract": {"additionalProperties": false, "contractVersion": 1, "methods": ["POST"], "name": "nails-production-cutover-external-release-action-receipt", "optionalFields": ["outputDir", "replace", "compactOutputFiles"], "requiredFields": ["startBundle", "externalReleaseReceipt"], "schemaDigest": "74c58a8907302388c15d899e94cd7d90b8698e106ca9db5a45bd212c4ffc29a8", "schemaId": "https://openeyes.local/plugins/nails/web/v1/external-release-action-receipt-completion-request.schema.json"}, "deployEnabled": false, "externalReleaseAction": false, "links": {"expectedReceipt": {"artifact": "<startBundle>/external-release-receipt.json", "boundary": "external_release_action_receipt_non_secret_no_local_side_effects", "externalReleaseActionCompletedMustBeTrue": true, "kind": "nails.external_release_action_receipt", "releaseCockpitDigestRequired": true, "secretMaterialReturnedMustBeFalse": true}, "releaseCockpitReview": {"contractPath": "/api/web/v1/plugins/nails/production-cutover:release-cockpit-review-contract", "localStateMutations": false, "method": "POST", "network": false, "path": "/api/web/v1/plugins/nails/production-cutover:release-cockpit-review"}}, "liveCollectionEnabled": false, "localStateMutations": false, "localWrapper": {"collectionExecutionEnabled": false, "commandTemplate": "rtk python scripts/nails_complete_go_live_external_release_receipt.py --start-bundle <startBundle> --external-release-receipt <external-release-receipt.json> --output-dir <outputDir>", "defaultReceiptPath": "<startBundle>/external-release-receipt.json", "deployEnabled": false, "externalReleaseAction": false, "liveCollectionEnabled": false, "localStateMutations": false, "network": false, "productionMutations": false, "requiresExternalReleaseActionCompletedBeforeCall": true, "script": "scripts/nails_complete_go_live_external_release_receipt.py", "steps": ["load latest release cockpit review completion", "validate non-secret external release action receipt", "bind receipt to releaseCockpitDigest", "register external_release_action_receipt", "advance local go-live tracker to all-stages-ready"], "submitEnabled": false, "uploadEnabled": false}, "method": "GET", "network": false, "ok": true, "pluginId": "nails", "productionMutations": false, "requiresExternalReleaseActionCompletedBeforeCall": true, "route": "/api/web/v1/plugins/nails/production-cutover:external-release-action-receipt-contract", "schema": {"$id": "https://openeyes.local/plugins/nails/web/v1/external-release-action-receipt-completion-request.schema.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": {"compactOutputFiles": {"default": false, "description": "Write compact JSON artifacts when true.", "type": "boolean"}, "externalReleaseReceipt": {"description": "Path to the non-secret receipt JSON returned after the operator completed the approved external release action.", "minLength": 1, "type": "string"}, "outputDir": {"description": "Optional empty local output directory for external release receipt completion artifacts. When supplied it must resolve inside the start bundle.", "minLength": 1, "type": "string"}, "replace": {"default": false, "description": "Allow replacing the external_release_action_receipt stage entry when advancing the local go-live tracker.", "type": "boolean"}, "startBundle": {"description": "Local go-live start bundle whose release cockpit review has prepared the external release receipt template.", "minLength": 1, "type": "string"}}, "required": ["startBundle", "externalReleaseReceipt"], "title": "Nails External Release Action Receipt Completion Request v1", "type": "object"}, "sideEffects": "local_sanitized_external_release_receipt_registration", "submitEnabled": false, "uploadEnabled": false}