{"auth":{"emailPassword":true,"oauth":{"google":true,"github":false},"requires":["NEXTAUTH_URL","NEXTAUTH_SECRET"]},"database":{"available":true,"provider":"postgres","requires":["DATABASE_URL"],"optional":["DIRECT_URL"]},"notifications":{"email":false,"providers":{"resend":false,"smtp":false},"requiresOneOf":["RESEND_API_KEY","SMTP_HOST+SMTP_USER"]},"documents":{"export":{"pdf":true,"docx":true,"csv":true}},"provisioning":{"autoProvisioning":true,"encryptedSecretStorage":true,"sandboxOverrides":{"auth":false,"database":false,"notifications":false},"supportedExportFormats":["env"]},"developerTools":{"localAutomation":true,"shell":{"available":true,"profile":"developer","allowedCommands":["awk","bash","cat","find","git","grep","head","ls","node","npm","npx","pnpm","pwd","python","python3","rg","sed","sh","tail","wc","yarn","zsh"],"timeout":{"defaultMs":120000,"maxMs":300000},"quotas":{"maxFindResults":80,"maxReadBytes":40000,"maxStdoutChars":60000,"maxBufferBytes":4194304,"maxConcurrentCommands":4}},"codebaseImport":{"local":true,"github":true,"endpoint":"/api/codebase/import","features":{"branchSelection":true,"refSelection":true,"sparseCheckout":true,"partialClone":true,"incrementalSync":true,"onboardingRiskGate":true}},"git":{"available":true,"endpoint":"/api/platform/git-tools","policy":{"allowClone":true,"allowCommit":true,"allowRebase":true,"githubOnlyClone":true,"branchNamePattern":"^[a-zA-Z0-9._/-]{1,120}$","maxTimeoutMs":180000}},"workspaceReviewQueue":{"available":true,"endpoint":"/api/platform/workspace-review-queue","features":{"sharedQueue":true,"teamHandoff":true,"ownershipMapping":true,"appConfigBacked":true}},"projectMemory":{"available":true,"endpoint":"/api/platform/project-memory","features":{"appConfigBacked":true,"generationFeedbackLoop":true,"promptHinting":true,"teamAccessible":true,"ownerReset":true}},"note":"Running locally; shell and filesystem actions are available."},"infrastructure":{"storage":{"objectStorage":false},"queue":{"available":true},"observability":{"available":false},"featureFlags":{"available":false},"blueprints":{"available":true,"endpoint":"/api/platform/infrastructure-blueprints","categories":[{"category":"saas","title":"SaaS Product Blueprint","description":"Multi-tenant product baseline with secure auth, durable data, lifecycle notifications, and monetization-safe operations.","appExamples":["B2B SaaS","Customer portal","Subscription app"],"managedServiceIds":["managed-auth","managed-database","managed-email","managed-storage","managed-queue","managed-observability"]},{"category":"internal-tool","title":"Internal Tool Blueprint","description":"Operational app baseline optimized for team workflows, RBAC, reporting, and dependable observability.","appExamples":["Ops dashboard","Back-office admin","Support tool"],"managedServiceIds":["managed-auth","managed-database","managed-doc-exports","managed-email","managed-observability"]},{"category":"api-only","title":"API-Only Service Blueprint","description":"Headless API baseline with strong contracts, queue-backed async processing, and observability-first operation.","appExamples":["Headless backend","Webhook service","Integration API"],"managedServiceIds":["managed-database","managed-queue","managed-observability","managed-email"]},{"category":"workflow-app","title":"Workflow Automation Blueprint","description":"Automation-first baseline with orchestration queues, human handoffs, notifications, and resilient state transitions.","appExamples":["Approval workflow","Automation orchestrator","Task routing platform"],"managedServiceIds":["managed-auth","managed-database","managed-queue","managed-email","managed-storage","managed-observability","managed-doc-exports"]}]}},"releaseControls":{"qualityGate":true,"featureGating":true,"rollback":true,"canary":true,"deployRule":"If a feature dependency is unavailable, gate that feature and keep core app online.","envContracts":{"deployable":true,"criticalServiceIds":[],"gatedServiceIds":[],"degradedServiceIds":["notifications","storage","queue","observability"]},"deployController":{"releaseable":true,"blockedServiceIds":[],"includedServiceIds":["auth","database","documents"],"excludedServiceIds":["notifications","storage","queue","observability"],"moduleFlags":{"APP_MODE_MODULE_AUTH":true,"APP_MODE_MODULE_DATABASE":true,"APP_MODE_MODULE_DOCUMENTS":true,"APP_MODE_MODULE_NOTIFICATIONS":false,"APP_MODE_MODULE_STORAGE":false,"APP_MODE_MODULE_QUEUE":false,"APP_MODE_MODULE_OBSERVABILITY":false}},"telemetry":{"enabled":false,"required":false,"sources":{"envJson":false,"file":false,"url":false}},"infraAdapters":{"enabled":false,"required":false,"sources":{"envJson":false,"file":false,"runOnEvaluate":false}},"opsAdapters":{"enabled":false,"required":false,"sources":{"envJson":false,"file":false,"runOnEvaluate":false}},"securityGates":{"enabled":false,"required":false,"sources":{"envJson":false,"file":false,"runOnEvaluate":false}},"deliveryTools":{"enabled":false,"required":false,"sources":{"envJson":false,"file":false,"runOnEvaluate":true}},"moduleMarketplace":{"enabled":false,"required":false,"endpoint":"/api/platform/module-marketplace","sources":{"envJson":false,"file":false,"runOnEvaluate":false}},"codeTools":{"enabled":false,"required":false,"sources":{"envJson":false,"file":false,"runOnEvaluate":false}},"featureGates":{"enabled":false,"required":false,"sources":{"envJson":false,"file":false}},"performanceScorecards":{"enabled":true,"required":false,"endpoint":"/api/platform/performance-scorecards","sources":{"envJson":false,"file":false,"latestDecisionBaseline":true},"releaseVersion":null,"baselineVersion":null},"thresholds":{"canary":{"enabled":true,"maxErrorRate":0.02,"minAvailability":0.995,"maxLatencyP95Ms":900},"rollback":{"enabled":true,"maxConsecutiveFailures":3,"severeErrorRateMultiplier":2}},"endpoints":{"health":"/api/platform/health","readiness":"/api/platform/readiness","releaseControls":"/api/platform/release-controls","deployController":"/api/platform/deploy-controller","moduleMarketplace":"/api/platform/module-marketplace","performanceScorecards":"/api/platform/performance-scorecards","auditTrail":"/api/platform/audit-trail"},"hooks":{"canaryEvaluate":"/api/platform/release-controls","rollbackTrigger":"/api/platform/release-controls"}},"runtimeAdapters":{"auth":{"serviceId":"auth","mode":"active","critical":false,"failStrategy":"fail-open","featureEnabled":true,"reason":"Auth contract checks passed."},"database":{"serviceId":"database","mode":"active","critical":false,"failStrategy":"fail-open","featureEnabled":true,"reason":"Database contract checks passed."},"documents":{"serviceId":"documents","mode":"active","critical":false,"failStrategy":"fail-open","featureEnabled":true,"reason":"Document Exports contract checks passed."},"notifications":{"serviceId":"notifications","mode":"degraded","critical":false,"failStrategy":"fail-open","featureEnabled":true,"reason":"Notifications is optional and running in degraded mode: requires one of (RESEND_API_KEY OR SMTP_HOST + SMTP_USER)"},"storage":{"serviceId":"storage","mode":"degraded","critical":false,"failStrategy":"fail-open","featureEnabled":true,"reason":"Object Storage is optional and running in degraded mode: missing: OBJECT_STORAGE_PROVIDER, OBJECT_STORAGE_BUCKET, OBJECT_STORAGE_REGION, OBJECT_STORAGE_ACCESS_KEY, OBJECT_STORAGE_SECRET_KEY"},"queue":{"serviceId":"queue","mode":"degraded","critical":false,"failStrategy":"fail-open","featureEnabled":true,"reason":"Queue is optional and running in degraded mode: missing: QUEUE_PROVIDER, QUEUE_URL"},"observability":{"serviceId":"observability","mode":"degraded","critical":false,"failStrategy":"fail-open","featureEnabled":true,"reason":"Observability is optional and running in degraded mode: requires one of (OTEL_EXPORTER_OTLP_ENDPOINT OR SENTRY_DSN)"}},"generatedAt":"2026-04-12T23:59:44.488Z","capabilities":{"auth":{"emailPassword":true,"oauth":{"google":true,"github":false},"requires":["NEXTAUTH_URL","NEXTAUTH_SECRET"]},"database":{"available":true,"provider":"postgres","requires":["DATABASE_URL"],"optional":["DIRECT_URL"]},"notifications":{"email":false,"providers":{"resend":false,"smtp":false},"requiresOneOf":["RESEND_API_KEY","SMTP_HOST+SMTP_USER"]},"documents":{"export":{"pdf":true,"docx":true,"csv":true}},"provisioning":{"autoProvisioning":true,"encryptedSecretStorage":true,"sandboxOverrides":{"auth":false,"database":false,"notifications":false},"supportedExportFormats":["env"]},"developerTools":{"localAutomation":true,"shell":{"available":true,"profile":"developer","allowedCommands":["awk","bash","cat","find","git","grep","head","ls","node","npm","npx","pnpm","pwd","python","python3","rg","sed","sh","tail","wc","yarn","zsh"],"timeout":{"defaultMs":120000,"maxMs":300000},"quotas":{"maxFindResults":80,"maxReadBytes":40000,"maxStdoutChars":60000,"maxBufferBytes":4194304,"maxConcurrentCommands":4}},"codebaseImport":{"local":true,"github":true,"endpoint":"/api/codebase/import","features":{"branchSelection":true,"refSelection":true,"sparseCheckout":true,"partialClone":true,"incrementalSync":true,"onboardingRiskGate":true}},"git":{"available":true,"endpoint":"/api/platform/git-tools","policy":{"allowClone":true,"allowCommit":true,"allowRebase":true,"githubOnlyClone":true,"branchNamePattern":"^[a-zA-Z0-9._/-]{1,120}$","maxTimeoutMs":180000}},"workspaceReviewQueue":{"available":true,"endpoint":"/api/platform/workspace-review-queue","features":{"sharedQueue":true,"teamHandoff":true,"ownershipMapping":true,"appConfigBacked":true}},"projectMemory":{"available":true,"endpoint":"/api/platform/project-memory","features":{"appConfigBacked":true,"generationFeedbackLoop":true,"promptHinting":true,"teamAccessible":true,"ownerReset":true}},"note":"Running locally; shell and filesystem actions are available."},"infrastructure":{"storage":{"objectStorage":false},"queue":{"available":true},"observability":{"available":false},"featureFlags":{"available":false},"blueprints":{"available":true,"endpoint":"/api/platform/infrastructure-blueprints","categories":[{"category":"saas","title":"SaaS Product Blueprint","description":"Multi-tenant product baseline with secure auth, durable data, lifecycle notifications, and monetization-safe operations.","appExamples":["B2B SaaS","Customer portal","Subscription app"],"managedServiceIds":["managed-auth","managed-database","managed-email","managed-storage","managed-queue","managed-observability"]},{"category":"internal-tool","title":"Internal Tool Blueprint","description":"Operational app baseline optimized for team workflows, RBAC, reporting, and dependable observability.","appExamples":["Ops dashboard","Back-office admin","Support tool"],"managedServiceIds":["managed-auth","managed-database","managed-doc-exports","managed-email","managed-observability"]},{"category":"api-only","title":"API-Only Service Blueprint","description":"Headless API baseline with strong contracts, queue-backed async processing, and observability-first operation.","appExamples":["Headless backend","Webhook service","Integration API"],"managedServiceIds":["managed-database","managed-queue","managed-observability","managed-email"]},{"category":"workflow-app","title":"Workflow Automation Blueprint","description":"Automation-first baseline with orchestration queues, human handoffs, notifications, and resilient state transitions.","appExamples":["Approval workflow","Automation orchestrator","Task routing platform"],"managedServiceIds":["managed-auth","managed-database","managed-queue","managed-email","managed-storage","managed-observability","managed-doc-exports"]}]}},"releaseControls":{"qualityGate":true,"featureGating":true,"rollback":true,"canary":true,"deployRule":"If a feature dependency is unavailable, gate that feature and keep core app online.","envContracts":{"deployable":true,"criticalServiceIds":[],"gatedServiceIds":[],"degradedServiceIds":["notifications","storage","queue","observability"]},"deployController":{"releaseable":true,"blockedServiceIds":[],"includedServiceIds":["auth","database","documents"],"excludedServiceIds":["notifications","storage","queue","observability"],"moduleFlags":{"APP_MODE_MODULE_AUTH":true,"APP_MODE_MODULE_DATABASE":true,"APP_MODE_MODULE_DOCUMENTS":true,"APP_MODE_MODULE_NOTIFICATIONS":false,"APP_MODE_MODULE_STORAGE":false,"APP_MODE_MODULE_QUEUE":false,"APP_MODE_MODULE_OBSERVABILITY":false}},"telemetry":{"enabled":false,"required":false,"sources":{"envJson":false,"file":false,"url":false}},"infraAdapters":{"enabled":false,"required":false,"sources":{"envJson":false,"file":false,"runOnEvaluate":false}},"opsAdapters":{"enabled":false,"required":false,"sources":{"envJson":false,"file":false,"runOnEvaluate":false}},"securityGates":{"enabled":false,"required":false,"sources":{"envJson":false,"file":false,"runOnEvaluate":false}},"deliveryTools":{"enabled":false,"required":false,"sources":{"envJson":false,"file":false,"runOnEvaluate":true}},"moduleMarketplace":{"enabled":false,"required":false,"endpoint":"/api/platform/module-marketplace","sources":{"envJson":false,"file":false,"runOnEvaluate":false}},"codeTools":{"enabled":false,"required":false,"sources":{"envJson":false,"file":false,"runOnEvaluate":false}},"featureGates":{"enabled":false,"required":false,"sources":{"envJson":false,"file":false}},"performanceScorecards":{"enabled":true,"required":false,"endpoint":"/api/platform/performance-scorecards","sources":{"envJson":false,"file":false,"latestDecisionBaseline":true},"releaseVersion":null,"baselineVersion":null},"thresholds":{"canary":{"enabled":true,"maxErrorRate":0.02,"minAvailability":0.995,"maxLatencyP95Ms":900},"rollback":{"enabled":true,"maxConsecutiveFailures":3,"severeErrorRateMultiplier":2}},"endpoints":{"health":"/api/platform/health","readiness":"/api/platform/readiness","releaseControls":"/api/platform/release-controls","deployController":"/api/platform/deploy-controller","moduleMarketplace":"/api/platform/module-marketplace","performanceScorecards":"/api/platform/performance-scorecards","auditTrail":"/api/platform/audit-trail"},"hooks":{"canaryEvaluate":"/api/platform/release-controls","rollbackTrigger":"/api/platform/release-controls"}},"runtimeAdapters":{"auth":{"serviceId":"auth","mode":"active","critical":false,"failStrategy":"fail-open","featureEnabled":true,"reason":"Auth contract checks passed."},"database":{"serviceId":"database","mode":"active","critical":false,"failStrategy":"fail-open","featureEnabled":true,"reason":"Database contract checks passed."},"documents":{"serviceId":"documents","mode":"active","critical":false,"failStrategy":"fail-open","featureEnabled":true,"reason":"Document Exports contract checks passed."},"notifications":{"serviceId":"notifications","mode":"degraded","critical":false,"failStrategy":"fail-open","featureEnabled":true,"reason":"Notifications is optional and running in degraded mode: requires one of (RESEND_API_KEY OR SMTP_HOST + SMTP_USER)"},"storage":{"serviceId":"storage","mode":"degraded","critical":false,"failStrategy":"fail-open","featureEnabled":true,"reason":"Object Storage is optional and running in degraded mode: missing: OBJECT_STORAGE_PROVIDER, OBJECT_STORAGE_BUCKET, OBJECT_STORAGE_REGION, OBJECT_STORAGE_ACCESS_KEY, OBJECT_STORAGE_SECRET_KEY"},"queue":{"serviceId":"queue","mode":"degraded","critical":false,"failStrategy":"fail-open","featureEnabled":true,"reason":"Queue is optional and running in degraded mode: missing: QUEUE_PROVIDER, QUEUE_URL"},"observability":{"serviceId":"observability","mode":"degraded","critical":false,"failStrategy":"fail-open","featureEnabled":true,"reason":"Observability is optional and running in degraded mode: requires one of (OTEL_EXPORTER_OTLP_ENDPOINT OR SENTRY_DSN)"}},"generatedAt":"2026-04-12T23:59:44.488Z"}}