{"apiVersion": "openeyes.nails.web.v1", "boundary": "real_evidence_entry_confirmed_local_manifest_write_only", "confirmedWriteContractPath": "/api/web/v1/plugins/nails/production-cutover:real-evidence-entry-confirmed-write-contract", "confirmedWritePath": "/api/web/v1/plugins/nails/production-cutover:real-evidence-entry-confirmed-write", "contract": {"additionalProperties": false, "contractVersion": 1, "methods": ["POST"], "name": "nails-production-cutover-real-evidence-entry-confirmed-write", "optionalFields": ["realEvidenceManifest", "replaceExisting", "compactOutputFiles"], "requiredFields": ["startBundle", "evidenceEntryId", "pathScope", "evidencePaths"], "schemaDigest": "99765353a62ba9e142db8e8fb907e48259ddbedcb8637bff57d45899c53871b9", "schemaId": "https://openeyes.local/plugins/nails/web/v1/production-cutover-real-evidence-entry-confirmed-write-request.schema.json"}, "deployEnabled": false, "links": {"externalEvidencePacket": {"contractPath": "/api/web/v1/plugins/nails/production-cutover:go-live-external-evidence-packet-contract", "method": "POST", "network": false, "path": "/api/web/v1/plugins/nails/production-cutover:go-live-external-evidence-packet"}, "stagingExecutionPacketAudit": {"bodyTemplate": {"envMode": "process", "outputDir": "<startBundle>/staging-execution-runbook/packet-audit-<unique>", "realEvidenceManifest": "<updated realEvidenceManifestPath>", "startBundle": "<startBundle>"}, "contractPath": "/api/web/v1/plugins/nails/production-cutover:staging-execution-packet-audit-contract", "method": "POST", "network": false, "path": "/api/web/v1/plugins/nails/production-cutover:staging-execution-packet-audit"}}, "method": "GET", "network": false, "ok": true, "pluginId": "nails", "productionMutations": false, "route": "/api/web/v1/plugins/nails/production-cutover:real-evidence-entry-confirmed-write-contract", "schema": {"$id": "https://openeyes.local/plugins/nails/web/v1/production-cutover-real-evidence-entry-confirmed-write-request.schema.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": {"compactOutputFiles": {"default": false, "description": "Accepted for API symmetry; manifest output is canonical JSON.", "type": "boolean"}, "evidenceEntryId": {"description": "Entry id from the real-evidence manifest, such as provider_collector_return.", "minLength": 1, "type": "string"}, "evidencePaths": {"description": "Concrete existing evidence paths. start_bundle paths must resolve inside the start bundle.", "items": {"minLength": 1, "type": "string"}, "maxItems": 20, "minItems": 1, "type": "array"}, "pathScope": {"description": "Use start_bundle for evidence files copied into the start bundle; use local for local-only evidence files.", "enum": ["start_bundle", "local"], "type": "string"}, "realEvidenceManifest": {"description": "Optional manifest path. Defaults to <startBundle>/real-evidence-manifest.json.", "minLength": 1, "type": "string"}, "replaceExisting": {"default": false, "description": "When false, non-placeholder existing entry paths are not overwritten.", "type": "boolean"}, "startBundle": {"description": "Local go-live start bundle directory.", "minLength": 1, "type": "string"}}, "required": ["startBundle", "evidenceEntryId", "pathScope", "evidencePaths"], "title": "Nails Production Cutover Real Evidence Entry Confirmed Write Request v1", "type": "object"}, "sideEffects": "local_real_evidence_manifest_file_only", "sourceManifest": {"defaultPath": "<startBundle>/real-evidence-manifest.json", "kind": "nails.real_staging_evidence_manifest", "network": false}, "submitEnabled": false, "uploadEnabled": false, "writeBoundary": {"deployEnabled": false, "mode": "real_evidence_entry_confirmed_local_manifest_write", "network": false, "productionMutations": false, "readsLocalFiles": true, "secretMaterialReturned": false, "submitEnabled": false, "uploadEnabled": false, "writesLocalFiles": true, "writesLocalState": false}}