{"apiVersion": "openeyes.nails.web.v1", "boundary": "go_live_staging_runner_bundle_uri_manifest_local_only", "collectionExecutionEnabled": false, "completionBoundary": {"acceptsSignedUrls": false, "acceptsStableObjectUriPrefixes": true, "collectionExecutionEnabled": false, "deployEnabled": false, "liveCollectionEnabled": false, "mode": "staging_runner_bundle_uri_manifest_local_files_only", "network": false, "preparesMaliangRunnerReceiptReturnUris": true, "preparesStableObjectUriUploadPlan": true, "productionMutations": false, "readsLocalFiles": true, "secretMaterialReturned": false, "submitEnabled": false, "uploadEnabled": false, "writesLocalAuditState": false, "writesLocalFiles": true}, "completionContractPath": "/api/web/v1/plugins/nails/production-cutover:staging-runner-bundle-manifest-contract", "completionPath": "/api/web/v1/plugins/nails/production-cutover:staging-runner-bundle-manifest", "contract": {"additionalProperties": false, "contractVersion": 1, "inputModes": ["staging_handoff_latest", "staging_handoff_path", "explicit_runner_bundle"], "methods": ["POST"], "name": "nails-production-cutover-staging-runner-bundle-manifest", "optionalFields": ["stagingHandoff", "runnerBundle", "outputDir", "compactOutputFiles"], "requiredFields": ["startBundle", "runnerBundleUriPrefix"], "requiredRunnerArtifacts": ["external-runtime-handoff-packet.json", "external-runtime-handoff.json", "maliang-request.json", "runtime-resource-access-policy.json", "verifier-requests.json", "receipt-templates/resource-read-receipt.template.json", "receipt-templates/preflight-receipt.template.json", "receipt-templates/execution-receipt.template.json", "README.md", "receipts/README.md", "import-command.txt", "summary.json", "manifest.json"], "runnerBundleUriPrefixSchemes": ["gs", "oss"], "schemaDigest": "4ddd5c0db395dc2dbc9605baf6a0dccd46bef35201118ea3e4a9e210af24f5fb", "schemaId": "https://openeyes.local/plugins/nails/web/v1/production-cutover-staging-runner-bundle-manifest-request.schema.json", "signedUrlsAccepted": false}, "deployEnabled": false, "links": {"stagingHandoff": {"contractPath": "/api/web/v1/plugins/nails/production-cutover:staging-handoff-contract", "method": "POST", "network": false, "path": "/api/web/v1/plugins/nails/production-cutover:staging-handoff"}, "stagingReceiptImport": {"contractPath": "/api/web/v1/plugins/nails/production-cutover:staging-receipt-import-contract", "method": "POST", "network": false, "path": "/api/web/v1/plugins/nails/production-cutover:staging-receipt-import"}}, "liveCollectionEnabled": false, "localStateMutations": false, "localWrapper": {"collectionExecutionEnabled": false, "deployEnabled": false, "fixtureStateMutations": true, "liveCollectionEnabled": false, "localStateMutations": false, "network": false, "productionMutations": false, "repoStateMutations": false, "script": null, "steps": ["load latest staging handoff completion or explicit runner bundle", "hash every local runner bundle artifact", "map artifacts to stable gs:// or oss:// object URIs", "emit receipt return URI templates for staging receipt import", "write local URI manifest under the start bundle"], "submitEnabled": false, "uploadEnabled": false}, "method": "GET", "network": false, "ok": true, "pluginId": "nails", "productionMutations": false, "route": "/api/web/v1/plugins/nails/production-cutover:staging-runner-bundle-manifest-contract", "schema": {"$id": "https://openeyes.local/plugins/nails/web/v1/production-cutover-staging-runner-bundle-manifest-request.schema.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": {"compactOutputFiles": {"default": false, "description": "Acknowledge compact JSON artifact output.", "type": "boolean"}, "outputDir": {"description": "Optional local output directory for the generated URI manifest. When supplied it must resolve inside the start bundle and outside the runner bundle.", "minLength": 1, "type": "string"}, "runnerBundle": {"description": "Optional explicit local runner bundle directory. Defaults to runnerBundleDir from the staging handoff completion.", "minLength": 1, "type": "string"}, "runnerBundleUriPrefix": {"description": "Stable gs:// or oss:// prefix where the runner bundle artifacts will be published by an external uploader.", "minLength": 1, "pattern": "^(gs|oss)://[^/?#]+/.+[^/?#]$", "type": "string"}, "stagingHandoff": {"description": "Optional staging handoff completion path. Defaults to <startBundle>/latest-staging-handoff-completion.json.", "minLength": 1, "type": "string"}, "startBundle": {"description": "Local go-live start bundle whose staging handoff prepared a Maliang staging runner bundle.", "minLength": 1, "type": "string"}}, "required": ["startBundle", "runnerBundleUriPrefix"], "title": "Nails Production Cutover Staging Runner Bundle Manifest Request v1", "type": "object"}, "sideEffects": "local_staging_runner_bundle_uri_manifest_file", "submitEnabled": false, "uploadEnabled": false}