{"apiVersion": "openeyes.nails.web.v1", "boundary": "go_live_provider_quality_completion_local_only", "collectionExecutionEnabled": false, "completionBoundary": {"acceptsConfirmationRecordUri": true, "acceptsInlineConfirmationRecord": true, "advancesLocalGoLiveTracker": true, "collectionExecutionEnabled": false, "confirmsProviderQualityEvidence": true, "deployEnabled": false, "liveCollectionEnabled": false, "mode": "provider_quality_completion_local_files_and_audit_state", "network": false, "preparesOnlinePilotAuthorizationHandoff": true, "preparesOnlinePilotBridge": true, "productionMutations": false, "readsLocalFiles": true, "secretMaterialReturned": false, "submitEnabled": false, "uploadEnabled": false, "writesLocalAuditState": true, "writesLocalFiles": true}, "completionContractPath": "/api/web/v1/plugins/nails/production-cutover:provider-quality-contract", "completionPath": "/api/web/v1/plugins/nails/production-cutover:provider-quality", "contract": {"additionalProperties": false, "confirmationRecordInputModes": ["local_path", "inline_json", "uri"], "contractVersion": 1, "inputModes": ["local_path", "inline_json", "uri"], "methods": ["POST"], "name": "nails-production-cutover-provider-quality", "objectUriReader": {"acceptedSchemes": ["gs", "oss"], "bucketAllowlistEnv": ["MALIANG_NAILS_RESOURCE_BUCKETS", "NAILS_AUDIT_EVIDENCE_BUCKET", "NAILS_SOURCE_ASSETS_BUCKET", "NAILS_DESIGN_PACKAGES_BUCKET", "NAILS_PUBLIC_ASSETS_BUCKET"], "defaultMode": "local_object_uri_mirror", "gcsModeEnv": "NAILS_WEB_GCS_URI_READ_ENABLED=1", "mirrorRootField": "objectUriMirrorRoot", "payloadKind": "json"}, "optionalFields": ["confirmationRecord", "confirmationRecordInline", "confirmationRecordUri", "objectUriMirrorRoot", "providerCollectorImport", "qualityEvidenceReview", "stateRoot", "outputDir", "envMode", "replace", "compactOutputFiles"], "requiredFields": ["startBundle"], "schemaDigest": "628e14baf01ab8b25fe53df5d353c0c425707f9b0a0a6c0fa771373032a512f1", "schemaId": "https://openeyes.local/plugins/nails/web/v1/production-cutover-provider-quality-request.schema.json"}, "deployEnabled": false, "links": {"maliangApiInputCandidate": {"contractPath": "/api/web/v1/plugins/nails/production-cutover:maliang-api-input-candidate-contract", "method": "POST", "network": false, "path": "/api/web/v1/plugins/nails/production-cutover:maliang-api-input-candidate"}, "onlinePilotAuthorizationRequest": {"artifact": "<startBundle>/latest-online-pilot-authorization-request.json", "network": false, "nextCommand": "scripts/nails_complete_go_live_online_pilot_authorization.py"}}, "liveCollectionEnabled": false, "localStateMutations": true, "localWrapper": {"collectionExecutionEnabled": false, "commandTemplate": "rtk python scripts/nails_complete_go_live_provider_quality.py --start-bundle <startBundle> --confirmation-record <provider-quality-confirmation.json> --output-dir <outputDir>", "deployEnabled": false, "liveCollectionEnabled": false, "localStateMutations": true, "network": false, "productionMutations": false, "script": "scripts/nails_complete_go_live_provider_quality.py", "steps": ["verify external provider-quality confirmation record", "write the approved local provider-quality audit ledger entry", "advance provider_quality_confirmed", "prepare online-pilot bridge and authorization handoff", "advance online_pilot_bridge"], "submitEnabled": false, "uploadEnabled": false}, "method": "GET", "network": false, "ok": true, "pluginId": "nails", "productionMutations": false, "route": "/api/web/v1/plugins/nails/production-cutover:provider-quality-contract", "schema": {"$id": "https://openeyes.local/plugins/nails/web/v1/production-cutover-provider-quality-request.schema.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "oneOf": [{"not": {"anyOf": [{"required": ["confirmationRecordInline"]}, {"required": ["confirmationRecordUri"]}]}, "required": ["confirmationRecord"]}, {"not": {"anyOf": [{"required": ["confirmationRecord"]}, {"required": ["confirmationRecordUri"]}]}, "required": ["confirmationRecordInline"]}, {"not": {"anyOf": [{"required": ["confirmationRecord"]}, {"required": ["confirmationRecordInline"]}]}, "required": ["confirmationRecordUri"]}], "properties": {"compactOutputFiles": {"default": false, "description": "Write compact JSON artifacts when true.", "type": "boolean"}, "confirmationRecord": {"description": "External provider-quality reviewer confirmation record path to verify and bind into the local provider-quality ledger.", "minLength": 1, "type": "string"}, "confirmationRecordInline": {"description": "Inline external provider-quality reviewer confirmation record for Web API callers that cannot share a local confirmationRecord path. The API materializes it under the start bundle before running the local completion wrapper.", "type": "object"}, "confirmationRecordUri": {"description": "Stable gs:// or oss:// URI for an external provider-quality reviewer confirmation record. The URI bucket is restricted by the runtime object URI allowlist.", "minLength": 1, "type": "string"}, "envMode": {"default": "process", "description": "Environment mode used by local provider-quality and online-pilot authorization command templates.", "enum": ["fixture", "process"], "type": "string"}, "objectUriMirrorRoot": {"description": "Optional local object-uri mirror root used outside GCS JSON API mode. Defaults under the start bundle.", "minLength": 1, "type": "string"}, "outputDir": {"description": "Optional empty local output directory for provider quality completion artifacts. When supplied it must resolve inside the start bundle.", "minLength": 1, "type": "string"}, "providerCollectorImport": {"description": "Optional provider collector import report inside the start bundle. Defaults to the latest collector return completion output.", "minLength": 1, "type": "string"}, "qualityEvidenceReview": {"description": "Optional crawl/provider quality review report inside the start bundle. Defaults to the latest collector return completion output.", "minLength": 1, "type": "string"}, "replace": {"default": false, "description": "Allow replacing provider_quality_confirmed and online_pilot_bridge stage entries when advancing the local go-live tracker.", "type": "boolean"}, "startBundle": {"description": "Local go-live start bundle whose Maliang API-input candidate has been prepared.", "minLength": 1, "type": "string"}, "stateRoot": {"description": "Optional local audit-state root inside the start bundle. Defaults to the provider collector import state root.", "minLength": 1, "type": "string"}}, "required": ["startBundle"], "title": "Nails Production Cutover Provider Quality Completion Request v1", "type": "object"}, "sideEffects": "local_provider_quality_ledger_and_bridge_files", "submitEnabled": false, "uploadEnabled": false}