{"apiVersion": "openeyes.nails.web.v1", "boundary": "release_cockpit_read_only_no_external_execution", "cockpitContractPath": "/api/web/v1/plugins/nails/production-cutover:release-cockpit-contract", "cockpitPath": "/api/web/v1/plugins/nails/production-cutover:release-cockpit", "contract": {"additionalProperties": false, "contractVersion": 1, "methods": ["POST"], "name": "nails-production-cutover-release-cockpit", "optionalFields": ["goLiveReadinessStateDigest", "postCutoverStateDigest", "includeOfflineMvp"], "requiredFields": ["stateRoot"], "schemaDigest": "931143e303743003196cb3851bb7a32633fd2de53b3c45c8c6a1a31e0beb2d6c", "schemaId": "https://openeyes.local/plugins/nails/web/v1/production-cutover-release-cockpit-request.schema.json"}, "deployEnabled": false, "method": "GET", "network": false, "ok": true, "pluginId": "nails", "productionMutations": false, "route": "/api/web/v1/plugins/nails/production-cutover:release-cockpit-contract", "schema": {"$id": "https://openeyes.local/plugins/nails/web/v1/production-cutover-release-cockpit-request.schema.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": {"goLiveReadinessStateDigest": {"description": "Optional confirmed go-live readiness state digest to pin the cockpit view.", "pattern": "^[a-f0-9]{64}$", "type": "string"}, "includeOfflineMvp": {"description": "Whether to include the local offline MVP / Maliang API input context panel. Defaults to true.", "type": "boolean"}, "postCutoverStateDigest": {"description": "Optional confirmed post-cutover state digest to pin the cockpit view.", "pattern": "^[a-f0-9]{64}$", "type": "string"}, "stateRoot": {"description": "Local state root containing post-cutover and go-live readiness audit state.", "minLength": 1, "type": "string"}}, "required": ["stateRoot"], "title": "Nails Production Cutover Release Cockpit Request v1", "type": "object"}, "sourceStateQueries": {"goLiveReadinessStateQuery": {"contractPath": "/api/web/v1/plugins/nails/production-cutover:go-live-readiness-state-query-contract", "network": false, "path": "/api/web/v1/plugins/nails/production-cutover:go-live-readiness-state-query", "stateNamespace": "state/plugins/nails/production-cutover-go-live-readiness"}, "offlineMvpReadiness": {"contractPath": "/api/web/v1/plugins/nails/offline-contract-mvp:readiness-contract", "network": false, "optionalContext": true, "path": "/api/web/v1/plugins/nails/offline-contract-mvp:readiness"}, "postCutoverStateQuery": {"contractPath": "/api/web/v1/plugins/nails/production-cutover:post-cutover-state-query-contract", "network": false, "path": "/api/web/v1/plugins/nails/production-cutover:post-cutover-state-query", "stateNamespace": "state/plugins/nails/production-cutover-post-cutover-state"}}, "submitEnabled": false, "uploadEnabled": false}