{"ok":true,"success":true,"canonical":true,"marker":"CODEX878_CONFIG_REQUIRED_PROVIDER_AND_RUNTIME_GAPS","routeOwner":"backend/server.js","frontendRoot":"frontend/app","forbiddenFrontendRoot":"frontend/src/app","readOnly":true,"adminReadbackOnly":true,"noProviderRuntimeCall":true,"noExternalApiCall":true,"noLivePaidProviderKeysAdded":true,"noSecretValueEcho":true,"noDbMutation":true,"noDeletion":true,"noMoneyMovement":true,"noPaymentCapture":true,"noPayoutExecution":true,"noLogisticsBooking":true,"noGovernmentSubmission":true,"noObjectWrite":true,"noMalwareScanExecution":true,"noSubscriptionCharge":true,"fixedTradeChain":["listing","comparison","landed_cost","order","escrow","logistics","delivery","wallet","payout","receipt_audit"],"route":"/api/trade-core/erp/admin/config-required-provider-runtime/readback","status":"CONFIG_REQUIRED_RUNTIME_GAPS_REMAIN","implementedConfigGapCount":8,"configuredGapCount":0,"configRequiredGapCount":8,"implementedConfigGaps":[{"key":"external_payment_logistics_payout","route":"/api/trade-core/erp/config-required-provider-runtime/external-payment-logistics-payout/readiness","status":"PROVIDER_CONFIG_REQUIRED","missingCount":11},{"key":"bank_feeds","route":"/api/trade-core/erp/config-required-provider-runtime/bank-feeds/readiness","status":"PROVIDER_CONFIG_REQUIRED","missingCount":6},{"key":"sms_email","route":"/api/trade-core/erp/config-required-provider-runtime/sms-email/readiness","status":"PROVIDER_CONFIG_REQUIRED","missingCount":7},{"key":"object_storage_malware","route":"/api/trade-core/erp/config-required-provider-runtime/object-storage-malware/readiness","status":"PROVIDER_CONFIG_REQUIRED","missingCount":9},{"key":"statutory_government_submission","route":"/api/trade-core/erp/config-required-provider-runtime/statutory-government-submission/readiness","status":"PROVIDER_CONFIG_REQUIRED","missingCount":7},{"key":"subscription_billing_entitlement","route":"/api/trade-core/erp/config-required-provider-runtime/subscription-billing-entitlement/readiness","status":"PROVIDER_CONFIG_REQUIRED","missingCount":3},{"key":"frontend_route_guard","route":"/api/trade-core/erp/config-required-provider-runtime/frontend-route-guard/readiness","status":"ROUTE_GUARD_CONFIG_REQUIRED","missingCount":3},{"key":"demo_uat_cleanup_plan","route":"/api/trade-core/erp/config-required-provider-runtime/demo-uat-cleanup-plan/readiness","status":"CLEANUP_PLAN_CONFIG_REQUIRED_NO_DELETE","missingCount":4}],"providerKeysStillRequiredForLaunch":["ACHARIOTEER_AUTH_JWT_SECRET","ACHARIOTEER_CLEANUP_APPROVAL_TICKET","ACHARIOTEER_CLEANUP_APPROVER_ROLE","ACHARIOTEER_CLEANUP_BACKUP_SNAPSHOT_ID","ACHARIOTEER_CLEANUP_DRY_RUN_ONLY","ACHARIOTEER_FRONTEND_AUTH_ENFORCEMENT","ACHARIOTEER_ROUTE_GUARD_MODE","BANK_FEED_CLIENT_ID","BANK_FEED_CLIENT_SECRET","BANK_FEED_PROVIDER","BANK_FEED_WEBHOOK_SECRET","BANK_RECON_APPROVER_ROLE","BANK_STATEMENT_BUCKET","EMAIL_FROM","EMAIL_PROVIDER","EMAIL_PROVIDER_API_KEY","EMAIL_WEBHOOK_SECRET","LOGISTICS_PROVIDER","LOGISTICS_PROVIDER_API_KEY","LOGISTICS_PROVIDER_WEBHOOK_SECRET","MALWARE_SCAN_API_KEY","MALWARE_SCAN_PROVIDER","MALWARE_SCAN_WEBHOOK_SECRET","OBJECT_STORAGE_ACCESS_KEY_ID","OBJECT_STORAGE_BUCKET","OBJECT_STORAGE_KMS_KEY_ID","OBJECT_STORAGE_PROVIDER","OBJECT_STORAGE_REGION","OBJECT_STORAGE_SECRET_ACCESS_KEY","PAYMENT_MODE","PAYMENT_PROVIDER","PAYMENT_PROVIDER_PUBLIC_KEY","PAYMENT_PROVIDER_SECRET_KEY","PAYMENT_PROVIDER_WEBHOOK_SECRET","PAYOUT_PROVIDER","PAYOUT_PROVIDER_API_KEY","PAYOUT_PROVIDER_WEBHOOK_SECRET","SMS_PROVIDER","SMS_PROVIDER_API_KEY","SMS_SENDER_ID","STATUTORY_EINVOICE_API_KEY","STATUTORY_EWAYBILL_API_KEY","STATUTORY_GOV_PORTAL_CLIENT_ID","STATUTORY_GOV_PORTAL_CLIENT_SECRET","STATUTORY_GST_API_KEY","STATUTORY_SUBMISSION_PROVIDER","STATUTORY_SUBMISSION_WEBHOOK_SECRET","SUBSCRIPTION_BILLING_API_KEY","SUBSCRIPTION_BILLING_PROVIDER","SUBSCRIPTION_BILLING_WEBHOOK_SECRET"],"routes":["/api/trade-core/erp/config-required-provider-runtime/readiness","/api/trade-core/erp/admin/config-required-provider-runtime/readback","/api/trade-core/erp/config-required-provider-runtime/external-payment-logistics-payout/readiness","/api/trade-core/erp/config-required-provider-runtime/bank-feeds/readiness","/api/trade-core/erp/config-required-provider-runtime/sms-email/readiness","/api/trade-core/erp/config-required-provider-runtime/object-storage-malware/readiness","/api/trade-core/erp/config-required-provider-runtime/statutory-government-submission/readiness","/api/trade-core/erp/config-required-provider-runtime/subscription-billing-entitlement/readiness","/api/trade-core/erp/config-required-provider-runtime/frontend-route-guard/readiness","/api/trade-core/erp/config-required-provider-runtime/demo-uat-cleanup-plan/readiness"],"gaps":[{"ok":true,"success":true,"canonical":true,"marker":"CODEX878_CONFIG_REQUIRED_PROVIDER_AND_RUNTIME_GAPS","routeOwner":"backend/server.js","frontendRoot":"frontend/app","forbiddenFrontendRoot":"frontend/src/app","readOnly":true,"adminReadbackOnly":true,"noProviderRuntimeCall":true,"noExternalApiCall":true,"noLivePaidProviderKeysAdded":true,"noSecretValueEcho":true,"noDbMutation":true,"noDeletion":true,"noMoneyMovement":true,"noPaymentCapture":true,"noPayoutExecution":true,"noLogisticsBooking":true,"noGovernmentSubmission":true,"noObjectWrite":true,"noMalwareScanExecution":true,"noSubscriptionCharge":true,"fixedTradeChain":["listing","comparison","landed_cost","order","escrow","logistics","delivery","wallet","payout","receipt_audit"],"route":"/api/trade-core/erp/config-required-provider-runtime/external-payment-logistics-payout/readiness","key":"external_payment_logistics_payout","title":"External payment, logistics, and payout provider config readiness","status":"PROVIDER_CONFIG_REQUIRED","comparisonIds":[45,46,47,48,51],"sourceRoutes":["/api/trade-core/erp/payment/execution-readiness","/api/trade-core/erp/logistics/execution-readiness","/api/trade-core/erp/provider/settlement/readiness"],"providerConfigReadiness":{"requiredKeys":["PAYMENT_MODE","PAYMENT_PROVIDER","PAYMENT_PROVIDER_PUBLIC_KEY","PAYMENT_PROVIDER_SECRET_KEY","PAYMENT_PROVIDER_WEBHOOK_SECRET","LOGISTICS_PROVIDER","LOGISTICS_PROVIDER_API_KEY","LOGISTICS_PROVIDER_WEBHOOK_SECRET","PAYOUT_PROVIDER","PAYOUT_PROVIDER_API_KEY","PAYOUT_PROVIDER_WEBHOOK_SECRET"],"presentKeys":[],"missingKeys":["PAYMENT_MODE","PAYMENT_PROVIDER","PAYMENT_PROVIDER_PUBLIC_KEY","PAYMENT_PROVIDER_SECRET_KEY","PAYMENT_PROVIDER_WEBHOOK_SECRET","LOGISTICS_PROVIDER","LOGISTICS_PROVIDER_API_KEY","LOGISTICS_PROVIDER_WEBHOOK_SECRET","PAYOUT_PROVIDER","PAYOUT_PROVIDER_API_KEY","PAYOUT_PROVIDER_WEBHOOK_SECRET"],"presentCount":0,"missingCount":11,"allConfigured":false},"launchBlocker":"Live payment capture, carrier booking/tracking/POD, and payout rail execution remain disabled until provider mode, credentials, and webhook verification are configured.","requestReadback":{"method":"GET","path":"/api/trade-core/erp/admin/config-required-provider-runtime/readback"},"generatedAt":"2026-07-17T07:38:55.406Z"},{"ok":true,"success":true,"canonical":true,"marker":"CODEX878_CONFIG_REQUIRED_PROVIDER_AND_RUNTIME_GAPS","routeOwner":"backend/server.js","frontendRoot":"frontend/app","forbiddenFrontendRoot":"frontend/src/app","readOnly":true,"adminReadbackOnly":true,"noProviderRuntimeCall":true,"noExternalApiCall":true,"noLivePaidProviderKeysAdded":true,"noSecretValueEcho":true,"noDbMutation":true,"noDeletion":true,"noMoneyMovement":true,"noPaymentCapture":true,"noPayoutExecution":true,"noLogisticsBooking":true,"noGovernmentSubmission":true,"noObjectWrite":true,"noMalwareScanExecution":true,"noSubscriptionCharge":true,"fixedTradeChain":["listing","comparison","landed_cost","order","escrow","logistics","delivery","wallet","payout","receipt_audit"],"route":"/api/trade-core/erp/config-required-provider-runtime/bank-feeds/readiness","key":"bank_feeds","title":"External bank feeds and treasury statement ingestion config readiness","status":"PROVIDER_CONFIG_REQUIRED","comparisonIds":[13,74],"sourceRoutes":["/erp/treasury","/erp/banking","/erp/cash-management","/api/trade-core/erp/cash-management-execution/bank-reconciliation"],"providerConfigReadiness":{"requiredKeys":["BANK_FEED_PROVIDER","BANK_FEED_CLIENT_ID","BANK_FEED_CLIENT_SECRET","BANK_FEED_WEBHOOK_SECRET","BANK_STATEMENT_BUCKET","BANK_RECON_APPROVER_ROLE"],"presentKeys":[],"missingKeys":["BANK_FEED_PROVIDER","BANK_FEED_CLIENT_ID","BANK_FEED_CLIENT_SECRET","BANK_FEED_WEBHOOK_SECRET","BANK_STATEMENT_BUCKET","BANK_RECON_APPROVER_ROLE"],"presentCount":0,"missingCount":6,"allConfigured":false},"launchBlocker":"Bank feed ingestion, receipt matching, AP bank file submission, and treasury API sync remain disabled until bank/provider config is supplied.","requestReadback":{"method":"GET","path":"/api/trade-core/erp/admin/config-required-provider-runtime/readback"},"generatedAt":"2026-07-17T07:38:55.406Z"},{"ok":true,"success":true,"canonical":true,"marker":"CODEX878_CONFIG_REQUIRED_PROVIDER_AND_RUNTIME_GAPS","routeOwner":"backend/server.js","frontendRoot":"frontend/app","forbiddenFrontendRoot":"frontend/src/app","readOnly":true,"adminReadbackOnly":true,"noProviderRuntimeCall":true,"noExternalApiCall":true,"noLivePaidProviderKeysAdded":true,"noSecretValueEcho":true,"noDbMutation":true,"noDeletion":true,"noMoneyMovement":true,"noPaymentCapture":true,"noPayoutExecution":true,"noLogisticsBooking":true,"noGovernmentSubmission":true,"noObjectWrite":true,"noMalwareScanExecution":true,"noSubscriptionCharge":true,"fixedTradeChain":["listing","comparison","landed_cost","order","escrow","logistics","delivery","wallet","payout","receipt_audit"],"route":"/api/trade-core/erp/config-required-provider-runtime/sms-email/readiness","key":"sms_email","title":"SMS and email provider config readiness","status":"PROVIDER_CONFIG_REQUIRED","comparisonIds":[31,69,70],"sourceRoutes":["/erp/notifications","/api/trade-core/erp/notifications/readiness","/api/trade-core/notifications/readiness"],"providerConfigReadiness":{"requiredKeys":["SMS_PROVIDER","SMS_PROVIDER_API_KEY","SMS_SENDER_ID","EMAIL_PROVIDER","EMAIL_FROM","EMAIL_PROVIDER_API_KEY","EMAIL_WEBHOOK_SECRET"],"presentKeys":[],"missingKeys":["SMS_PROVIDER","SMS_PROVIDER_API_KEY","SMS_SENDER_ID","EMAIL_PROVIDER","EMAIL_FROM","EMAIL_PROVIDER_API_KEY","EMAIL_WEBHOOK_SECRET"],"presentCount":0,"missingCount":7,"allConfigured":false},"launchBlocker":"SMS/email dispatch remains disabled; notification tables/readbacks are present but outbound provider delivery is config-required.","requestReadback":{"method":"GET","path":"/api/trade-core/erp/admin/config-required-provider-runtime/readback"},"generatedAt":"2026-07-17T07:38:55.406Z"},{"ok":true,"success":true,"canonical":true,"marker":"CODEX878_CONFIG_REQUIRED_PROVIDER_AND_RUNTIME_GAPS","routeOwner":"backend/server.js","frontendRoot":"frontend/app","forbiddenFrontendRoot":"frontend/src/app","readOnly":true,"adminReadbackOnly":true,"noProviderRuntimeCall":true,"noExternalApiCall":true,"noLivePaidProviderKeysAdded":true,"noSecretValueEcho":true,"noDbMutation":true,"noDeletion":true,"noMoneyMovement":true,"noPaymentCapture":true,"noPayoutExecution":true,"noLogisticsBooking":true,"noGovernmentSubmission":true,"noObjectWrite":true,"noMalwareScanExecution":true,"noSubscriptionCharge":true,"fixedTradeChain":["listing","comparison","landed_cost","order","escrow","logistics","delivery","wallet","payout","receipt_audit"],"route":"/api/trade-core/erp/config-required-provider-runtime/object-storage-malware/readiness","key":"object_storage_malware","title":"Object storage and malware scanning config readiness","status":"PROVIDER_CONFIG_REQUIRED","comparisonIds":[68],"sourceRoutes":["/api/trade-core/documents/foundation","/api/trade-core/documents/admin/readiness","/api/trade-core/erp/provider/ocr/readiness"],"providerConfigReadiness":{"requiredKeys":["OBJECT_STORAGE_PROVIDER","OBJECT_STORAGE_BUCKET","OBJECT_STORAGE_REGION","OBJECT_STORAGE_ACCESS_KEY_ID","OBJECT_STORAGE_SECRET_ACCESS_KEY","OBJECT_STORAGE_KMS_KEY_ID","MALWARE_SCAN_PROVIDER","MALWARE_SCAN_API_KEY","MALWARE_SCAN_WEBHOOK_SECRET"],"presentKeys":[],"missingKeys":["OBJECT_STORAGE_PROVIDER","OBJECT_STORAGE_BUCKET","OBJECT_STORAGE_REGION","OBJECT_STORAGE_ACCESS_KEY_ID","OBJECT_STORAGE_SECRET_ACCESS_KEY","OBJECT_STORAGE_KMS_KEY_ID","MALWARE_SCAN_PROVIDER","MALWARE_SCAN_API_KEY","MALWARE_SCAN_WEBHOOK_SECRET"],"presentCount":0,"missingCount":9,"allConfigured":false},"launchBlocker":"External object storage, signed object access, KMS policy, and malware scanning callbacks remain provider-config-required.","requestReadback":{"method":"GET","path":"/api/trade-core/erp/admin/config-required-provider-runtime/readback"},"generatedAt":"2026-07-17T07:38:55.406Z"},{"ok":true,"success":true,"canonical":true,"marker":"CODEX878_CONFIG_REQUIRED_PROVIDER_AND_RUNTIME_GAPS","routeOwner":"backend/server.js","frontendRoot":"frontend/app","forbiddenFrontendRoot":"frontend/src/app","readOnly":true,"adminReadbackOnly":true,"noProviderRuntimeCall":true,"noExternalApiCall":true,"noLivePaidProviderKeysAdded":true,"noSecretValueEcho":true,"noDbMutation":true,"noDeletion":true,"noMoneyMovement":true,"noPaymentCapture":true,"noPayoutExecution":true,"noLogisticsBooking":true,"noGovernmentSubmission":true,"noObjectWrite":true,"noMalwareScanExecution":true,"noSubscriptionCharge":true,"fixedTradeChain":["listing","comparison","landed_cost","order","escrow","logistics","delivery","wallet","payout","receipt_audit"],"route":"/api/trade-core/erp/config-required-provider-runtime/statutory-government-submission/readiness","key":"statutory_government_submission","title":"Statutory government submission provider config readiness","status":"PROVIDER_CONFIG_REQUIRED","comparisonIds":[75],"sourceRoutes":["/api/trade-core/erp/compliance/statutory-filing/submit","/api/trade-core/erp/tax/statutory-compliance-evidence/readiness","/api/trade-core/erp/compliance/statutory-filing/readback"],"providerConfigReadiness":{"requiredKeys":["STATUTORY_SUBMISSION_PROVIDER","STATUTORY_GST_API_KEY","STATUTORY_EINVOICE_API_KEY","STATUTORY_EWAYBILL_API_KEY","STATUTORY_GOV_PORTAL_CLIENT_ID","STATUTORY_GOV_PORTAL_CLIENT_SECRET","STATUTORY_SUBMISSION_WEBHOOK_SECRET"],"presentKeys":[],"missingKeys":["STATUTORY_SUBMISSION_PROVIDER","STATUTORY_GST_API_KEY","STATUTORY_EINVOICE_API_KEY","STATUTORY_EWAYBILL_API_KEY","STATUTORY_GOV_PORTAL_CLIENT_ID","STATUTORY_GOV_PORTAL_CLIENT_SECRET","STATUTORY_SUBMISSION_WEBHOOK_SECRET"],"presentCount":0,"missingCount":7,"allConfigured":false},"launchBlocker":"Internal filing packet workflow exists, but government portal/API submission remains disabled until statutory provider configuration is supplied.","requestReadback":{"method":"GET","path":"/api/trade-core/erp/admin/config-required-provider-runtime/readback"},"generatedAt":"2026-07-17T07:38:55.406Z"},{"ok":true,"success":true,"canonical":true,"marker":"CODEX878_CONFIG_REQUIRED_PROVIDER_AND_RUNTIME_GAPS","routeOwner":"backend/server.js","frontendRoot":"frontend/app","forbiddenFrontendRoot":"frontend/src/app","readOnly":true,"adminReadbackOnly":true,"noProviderRuntimeCall":true,"noExternalApiCall":true,"noLivePaidProviderKeysAdded":true,"noSecretValueEcho":true,"noDbMutation":true,"noDeletion":true,"noMoneyMovement":true,"noPaymentCapture":true,"noPayoutExecution":true,"noLogisticsBooking":true,"noGovernmentSubmission":true,"noObjectWrite":true,"noMalwareScanExecution":true,"noSubscriptionCharge":true,"fixedTradeChain":["listing","comparison","landed_cost","order","escrow","logistics","delivery","wallet","payout","receipt_audit"],"route":"/api/trade-core/erp/config-required-provider-runtime/subscription-billing-entitlement/readiness","key":"subscription_billing_entitlement","title":"Subscription billing and entitlement runtime config readiness","status":"PROVIDER_CONFIG_REQUIRED","comparisonIds":[57,58,60],"sourceRoutes":["/api/trade-core/seller-subscription/plans","/api/trade-core/seller-subscription/status","/api/trade-core/erp/admin/seller-module-access","/api/trade-core/ecommerce/seller-plan-subscription/readiness"],"providerConfigReadiness":{"requiredKeys":["SUBSCRIPTION_BILLING_PROVIDER","SUBSCRIPTION_BILLING_API_KEY","SUBSCRIPTION_BILLING_WEBHOOK_SECRET","SELLER_MODULE_ACCESS_JSON","CODEX875_SELLER_MODULE_ACCESS_JSON","ENTITLEMENT_CONFIG_SOURCE"],"presentKeys":["CODEX875_SELLER_MODULE_ACCESS_JSON","ENTITLEMENT_CONFIG_SOURCE"],"missingKeys":["SUBSCRIPTION_BILLING_PROVIDER","SUBSCRIPTION_BILLING_API_KEY","SUBSCRIPTION_BILLING_WEBHOOK_SECRET","SELLER_MODULE_ACCESS_JSON"],"presentCount":2,"missingCount":4,"allConfigured":false,"groupedRequirements":[{"key":"seller_module_access_json_any","mode":"any","requiredAnyOf":["CODEX875_SELLER_MODULE_ACCESS_JSON","SELLER_MODULE_ACCESS_JSON"],"configuredKeys":["CODEX875_SELLER_MODULE_ACCESS_JSON"],"configured":true}],"effectiveMissingKeys":["SUBSCRIPTION_BILLING_PROVIDER","SUBSCRIPTION_BILLING_API_KEY","SUBSCRIPTION_BILLING_WEBHOOK_SECRET"],"effectiveMissingCount":3},"entitlementConfigReadback":{"authoritativeEntitlementConfigReady":true,"acceptedEntitlementEnvConfigured":true,"acceptedEntitlementEnvNames":["CODEX875_SELLER_MODULE_ACCESS_JSON","SELLER_MODULE_ACCESS_JSON"],"configuredEntitlementEnvNames":["CODEX875_SELLER_MODULE_ACCESS_JSON"],"entitlementConfigSourceReady":true,"runtimeFallbackMatchesWriteGate":true,"noSecretValueEcho":true},"subscriptionMarketplaceCompletionProof":{"marker":"CODEX883_SUBSCRIPTION_MARKETPLACE_COMPLETE","version":"codex883-subscription-marketplace-complete-v1","buyerSellerMarketplaceCommercialFlowReady":true,"commercialFlowStages":["buyer_browse","seller_paid_listing_gate","rfq_or_order_intent","seller_quotation_lifecycle","negotiation","commercial_approval","order_readback","provider_checkout_pending","delivery_readback","wallet_payout_receipt_readback"],"existingRouteAnchors":["/api/trade-core/listings/:moduleKey","/api/trade-core/seller-subscription/status","/api/trade-core/erp/admin/seller-module-access","/api/trade-core/erp/marketplace-commercial/seller-quotation-event","/api/trade-core/erp/marketplace/readback-dashboard","/api/trade-core/orders/mine"],"frontendEvidenceRoutes":["/textile/seller/subscription","/textile/seller/dashboard","/textile/seller/orders","/textile/buyer/orders","/textile"],"noDuplicateListingRoutes":true,"noDuplicateOrderRoutes":true,"noDuplicateRfqRoutes":true,"noFakePaymentSuccess":true,"noPaymentCapture":true,"noPayoutExecution":true,"noExternalApiCall":true},"launchBlocker":"Seller subscription plan/status and listing write gates exist; live charging and authoritative runtime entitlement activation remain config-required.","requestReadback":{"method":"GET","path":"/api/trade-core/erp/admin/config-required-provider-runtime/readback"},"generatedAt":"2026-07-17T07:38:55.406Z"},{"ok":true,"success":true,"canonical":true,"marker":"CODEX878_CONFIG_REQUIRED_PROVIDER_AND_RUNTIME_GAPS","routeOwner":"backend/server.js","frontendRoot":"frontend/app","forbiddenFrontendRoot":"frontend/src/app","readOnly":true,"adminReadbackOnly":true,"noProviderRuntimeCall":true,"noExternalApiCall":true,"noLivePaidProviderKeysAdded":true,"noSecretValueEcho":true,"noDbMutation":true,"noDeletion":true,"noMoneyMovement":true,"noPaymentCapture":true,"noPayoutExecution":true,"noLogisticsBooking":true,"noGovernmentSubmission":true,"noObjectWrite":true,"noMalwareScanExecution":true,"noSubscriptionCharge":true,"fixedTradeChain":["listing","comparison","landed_cost","order","escrow","logistics","delivery","wallet","payout","receipt_audit"],"route":"/api/trade-core/erp/config-required-provider-runtime/frontend-route-guard/readiness","key":"frontend_route_guard","title":"Frontend-wide route guard readiness","status":"ROUTE_GUARD_CONFIG_REQUIRED","comparisonIds":[25,72],"sourceRoutes":["/api/auth/login","/api/auth/me","/api/trade-core/erp/workflow-rbac/readiness","/api/trade-core/erp/rbac/readiness"],"providerConfigReadiness":{"requiredKeys":["ACHARIOTEER_IDENTITY_USERS_JSON","ACHARIOTEER_AUTH_JWT_SECRET","ACHARIOTEER_FRONTEND_AUTH_ENFORCEMENT","ACHARIOTEER_ROUTE_GUARD_MODE"],"presentKeys":["ACHARIOTEER_IDENTITY_USERS_JSON"],"missingKeys":["ACHARIOTEER_AUTH_JWT_SECRET","ACHARIOTEER_FRONTEND_AUTH_ENFORCEMENT","ACHARIOTEER_ROUTE_GUARD_MODE"],"presentCount":1,"missingCount":3,"allConfigured":false},"launchBlocker":"Backend auth is fail-closed without configured identity users, but uniform frontend-wide protected route enforcement still requires route-guard deployment/config verification.","requestReadback":{"method":"GET","path":"/api/trade-core/erp/admin/config-required-provider-runtime/readback"},"generatedAt":"2026-07-17T07:38:55.407Z"},{"ok":true,"success":true,"canonical":true,"marker":"CODEX878_CONFIG_REQUIRED_PROVIDER_AND_RUNTIME_GAPS","routeOwner":"backend/server.js","frontendRoot":"frontend/app","forbiddenFrontendRoot":"frontend/src/app","readOnly":true,"adminReadbackOnly":true,"noProviderRuntimeCall":true,"noExternalApiCall":true,"noLivePaidProviderKeysAdded":true,"noSecretValueEcho":true,"noDbMutation":true,"noDeletion":true,"noMoneyMovement":true,"noPaymentCapture":true,"noPayoutExecution":true,"noLogisticsBooking":true,"noGovernmentSubmission":true,"noObjectWrite":true,"noMalwareScanExecution":true,"noSubscriptionCharge":true,"fixedTradeChain":["listing","comparison","landed_cost","order","escrow","logistics","delivery","wallet","payout","receipt_audit"],"route":"/api/trade-core/erp/config-required-provider-runtime/demo-uat-cleanup-plan/readiness","key":"demo_uat_cleanup_plan","title":"Safe demo/UAT row cleanup plan readiness","status":"CLEANUP_PLAN_CONFIG_REQUIRED_NO_DELETE","comparisonIds":[73],"sourceRoutes":["/api/trade-core/orders","/api/trade-core/listings/yarn","/api/trade-core/erp/audit-timeline"],"providerConfigReadiness":{"requiredKeys":["ACHARIOTEER_CLEANUP_APPROVAL_TICKET","ACHARIOTEER_CLEANUP_BACKUP_SNAPSHOT_ID","ACHARIOTEER_CLEANUP_DRY_RUN_ONLY","ACHARIOTEER_CLEANUP_APPROVER_ROLE"],"presentKeys":[],"missingKeys":["ACHARIOTEER_CLEANUP_APPROVAL_TICKET","ACHARIOTEER_CLEANUP_BACKUP_SNAPSHOT_ID","ACHARIOTEER_CLEANUP_DRY_RUN_ONLY","ACHARIOTEER_CLEANUP_APPROVER_ROLE"],"presentCount":0,"missingCount":4,"allConfigured":false},"launchBlocker":"Historical demo/smoke/UAT rows require backup, dry-run candidate review, approval ticket, and rollback plan before any deletion is allowed.","cleanupPlan":["Take a verified database snapshot and record snapshot id.","Run SELECT-only candidate discovery for demo, smoke, test, sample, UAT, and CODEX-prefixed rows across trade orders, listings, RFQs, wallet, invoice, payout, receipt, document, and activity tables.","Review candidate counts by table and business owner; exclude rows linked to real seller, buyer, invoice, payout, receipt, or audit evidence.","Create a deletion script in a transaction with RETURNING backups into an archive table or external snapshot; keep dry-run enabled by default.","Execute only after written approval and off-peak maintenance window; verify /health, /api/trade-core/health, /api/rfq/health and row-count deltas afterward."],"requestReadback":{"method":"GET","path":"/api/trade-core/erp/admin/config-required-provider-runtime/readback"},"generatedAt":"2026-07-17T07:38:55.407Z"}],"generatedAt":"2026-07-17T07:38:55.407Z","adminReadback":true,"safeDemoUatCleanupPlan":{"ok":true,"success":true,"canonical":true,"marker":"CODEX878_CONFIG_REQUIRED_PROVIDER_AND_RUNTIME_GAPS","routeOwner":"backend/server.js","frontendRoot":"frontend/app","forbiddenFrontendRoot":"frontend/src/app","readOnly":true,"adminReadbackOnly":true,"noProviderRuntimeCall":true,"noExternalApiCall":true,"noLivePaidProviderKeysAdded":true,"noSecretValueEcho":true,"noDbMutation":true,"noDeletion":true,"noMoneyMovement":true,"noPaymentCapture":true,"noPayoutExecution":true,"noLogisticsBooking":true,"noGovernmentSubmission":true,"noObjectWrite":true,"noMalwareScanExecution":true,"noSubscriptionCharge":true,"fixedTradeChain":["listing","comparison","landed_cost","order","escrow","logistics","delivery","wallet","payout","receipt_audit"],"route":"/api/trade-core/erp/config-required-provider-runtime/demo-uat-cleanup-plan/readiness","key":"demo_uat_cleanup_plan","title":"Safe demo/UAT row cleanup plan readiness","status":"CLEANUP_PLAN_CONFIG_REQUIRED_NO_DELETE","comparisonIds":[73],"sourceRoutes":["/api/trade-core/orders","/api/trade-core/listings/yarn","/api/trade-core/erp/audit-timeline"],"providerConfigReadiness":{"requiredKeys":["ACHARIOTEER_CLEANUP_APPROVAL_TICKET","ACHARIOTEER_CLEANUP_BACKUP_SNAPSHOT_ID","ACHARIOTEER_CLEANUP_DRY_RUN_ONLY","ACHARIOTEER_CLEANUP_APPROVER_ROLE"],"presentKeys":[],"missingKeys":["ACHARIOTEER_CLEANUP_APPROVAL_TICKET","ACHARIOTEER_CLEANUP_BACKUP_SNAPSHOT_ID","ACHARIOTEER_CLEANUP_DRY_RUN_ONLY","ACHARIOTEER_CLEANUP_APPROVER_ROLE"],"presentCount":0,"missingCount":4,"allConfigured":false},"launchBlocker":"Historical demo/smoke/UAT rows require backup, dry-run candidate review, approval ticket, and rollback plan before any deletion is allowed.","cleanupPlan":["Take a verified database snapshot and record snapshot id.","Run SELECT-only candidate discovery for demo, smoke, test, sample, UAT, and CODEX-prefixed rows across trade orders, listings, RFQs, wallet, invoice, payout, receipt, document, and activity tables.","Review candidate counts by table and business owner; exclude rows linked to real seller, buyer, invoice, payout, receipt, or audit evidence.","Create a deletion script in a transaction with RETURNING backups into an archive table or external snapshot; keep dry-run enabled by default.","Execute only after written approval and off-peak maintenance window; verify /health, /api/trade-core/health, /api/rfq/health and row-count deltas afterward."],"requestReadback":{"method":"GET","path":"/api/trade-core/erp/admin/config-required-provider-runtime/readback"},"generatedAt":"2026-07-17T07:38:55.407Z"},"launchGate":"BLOCKED_PROVIDER_CONFIG_REQUIRED"}