{"ok":true,"success":true,"data":{"service":"platphorm-sandbox","version":"2.0.0-phase2","environment":"production","status":"healthy","timestamp":"2026-06-03T06:31:51.414Z","uptime":447.97046452,"database":{"provider":"postgres","primary":"postgres","configured":true,"mode":"postgres","status":"configured","fallbackMode":"read_write_protected","fallbackConfigured":true,"publicSafe":true,"tables":["sandbox_workspaces","sandbox_sessions","sandbox_commands","sandbox_file_operations","sandbox_snapshots","sandbox_artifacts","sandbox_lifecycle_runs","sandbox_lifecycle_steps","sandbox_integration_sends","sandbox_eval_runs","sandbox_integration_status","sandbox_audit_events","sandbox_rate_limits","sandbox_health_snapshots","sandbox_public_reports","network_graph_snapshots"],"postgres":{"provider":"postgres","configured":true,"status":"configured","authMode":"connection_string","envSources":{"connectionString":"POSTGRES_URL","host":"POSTGRES_HOST","port":null,"database":"POSTGRES_DATABASE","user":"POSTGRES_USER","password":"[REDACTED]","sslmode":null},"requiredEnv":["Postgres connection string or component host/database/user/password credentials"],"missingEnv":[],"publicSafe":true,"message":"Postgres is configured as the primary Sandbox database. Query health is checked by the route that performs the read or write."},"supabase":{"provider":"supabase","configured":true,"status":"configured","fallbackMode":"read_write_protected","publicSafe":true,"message":"Supabase/Postgres environment is configured as a fallback when primary Postgres is unavailable."},"message":"Postgres is configured as the primary Sandbox database. Route-level reads and writes degrade honestly if the schema has not been migrated yet."},"provider":{"ok":true,"provider":"vercel","data":{"status":"ready","configured":true,"executionEnabled":false,"auth":{"method":"vercel-token","mode":"access_token","oidcAvailable":false,"accessTokenConfigured":"[REDACTED]","teamScoped":true},"sdk":"@vercel/sandbox","listProbe":[],"limits":{"commandTimeoutMs":30000,"sandboxTimeoutMs":300000,"maxCommandArgs":32,"maxCommandLength":240,"maxLogBytes":64000,"maxFileBytes":256000,"maxWorkspaceBytes":5000000,"maxSnapshotsPerSession":5,"maxPublicCreatesPerWindow":12,"maxPublicCommandsPerWindow":40,"rateLimitWindowMs":3600000},"runtimes":["node24","node22","python3.13"],"defaultRuntime":"node24","networkPolicyDefault":"deny-all","supportsSnapshots":true,"supportsFiles":true,"supportsCommandLogs":true}},"redis":{"status":"unsupported","message":"No Redis dependency is configured in this repo."},"mcpStatus":"local-json-rpc-available","traceStatus":"trace-linked; export best-effort through trace.platphormnews.com","routeComplianceScore":0.98,"observabilityComplianceScore":0.86,"discoveryStatus":"available","rssStatus":"available","sitemapStatus":"available","llmsStatus":"available","openapiStatus":"available","trustedDomainStatus":"platphormnews-only-by-default","lastNetworkSyncAt":null,"lastSitemapSyncAt":null,"lastFeedSyncAt":null,"traceEnabled":true,"traceExportEnabled":true,"traceContextAccepted":true,"traceContextPropagated":true,"lastTraceExportAt":null,"spansEmittedLast24h":null,"propagationTestStatus":"not-run","redactionStatus":"enabled","vercelMetadataCaptured":true,"ja4DigestPolicy":"captured-hashed","publicNoAuth":true,"integrations":[{"id":"platphorm-root","name":"PlatPhorm Root","baseUrl":"https://platphormnews.com","docsUrl":"https://platphormnews.com/api/network/graph","capabilities":["network graph","site endpoint validation"],"status":"unknown","lastCheckedAt":"2026-06-03T06:31:51.414Z","traceLink":"https://trace.platphormnews.com/services/sandbox/integrations/platphorm-root","metadata":{}},{"id":"spec","name":"Spec","baseUrl":"https://spec.platphormnews.com","docsUrl":"https://spec.platphormnews.com/api/docs","capabilities":["OpenAPI validation","schema examples"],"status":"unknown","lastCheckedAt":"2026-06-03T06:31:51.414Z","traceLink":"https://trace.platphormnews.com/services/sandbox/integrations/spec","metadata":{}},{"id":"evals","name":"Evals","baseUrl":"https://evals.platphormnews.com","docsUrl":"https://evals.platphormnews.com/api/docs","capabilities":["bounded eval runs","score summaries"],"status":"unknown","lastCheckedAt":"2026-06-03T06:31:51.414Z","traceLink":"https://trace.platphormnews.com/services/sandbox/integrations/evals","metadata":{}},{"id":"mcp","name":"MCP","baseUrl":"https://mcp.platphormnews.com","docsUrl":"https://mcp.platphormnews.com/api/mcp","capabilities":["tool discovery","JSON-RPC tool tests"],"status":"unknown","lastCheckedAt":"2026-06-03T06:31:51.414Z","traceLink":"https://trace.platphormnews.com/services/sandbox/integrations/mcp","metadata":{}},{"id":"claws","name":"Claws","baseUrl":"https://claws.platphormnews.com","docsUrl":"https://claws.platphormnews.com/api/docs","capabilities":["workflow dry-runs","remediation hooks"],"status":"unknown","lastCheckedAt":"2026-06-03T06:31:51.414Z","traceLink":"https://trace.platphormnews.com/services/sandbox/integrations/claws","metadata":{}},{"id":"json","name":"JSON","baseUrl":"https://json.platphormnews.com","docsUrl":"https://json.platphormnews.com/api/docs","capabilities":["JSON validation","formatting"],"status":"healthy","lastCheckedAt":"2026-06-03T06:31:51.414Z","traceLink":"https://trace.platphormnews.com/services/sandbox/integrations/json","metadata":{}},{"id":"xml","name":"XML","baseUrl":"https://xml.platphormnews.com","docsUrl":"https://xml.platphormnews.com/api/docs","capabilities":["XML validation","RSS/Atom/sitemap checks"],"status":"healthy","lastCheckedAt":"2026-06-03T06:31:51.414Z","traceLink":"https://trace.platphormnews.com/services/sandbox/integrations/xml","metadata":{}},{"id":"markdown","name":"Markdown","baseUrl":"https://markdown.platphormnews.com","docsUrl":"https://markdown.platphormnews.com/api/docs","capabilities":["Markdown validation","report parsing"],"status":"healthy","lastCheckedAt":"2026-06-03T06:31:51.414Z","traceLink":"https://trace.platphormnews.com/services/sandbox/integrations/markdown","metadata":{}},{"id":"browserops","name":"BrowserOps","baseUrl":"https://browserops.platphormnews.com","docsUrl":"https://browserops.platphormnews.com/api/docs","capabilities":["preview route checks","browser journeys"],"status":"unknown","lastCheckedAt":"2026-06-03T06:31:51.414Z","traceLink":"https://trace.platphormnews.com/services/sandbox/integrations/browserops","metadata":{}},{"id":"agentui","name":"AgentUI","baseUrl":"https://agentui.platphormnews.com","docsUrl":"https://agentui.platphormnews.com/api/docs","capabilities":["MCP tool render payloads","form validation"],"status":"unknown","lastCheckedAt":"2026-06-03T06:31:51.414Z","traceLink":"https://trace.platphormnews.com/services/sandbox/integrations/agentui","metadata":{}},{"id":"phorm","name":"Phorm","baseUrl":"https://phorm.platphormnews.com","docsUrl":"https://phorm.platphormnews.com/api/docs","capabilities":["interface prototypes","workflow UI prompts"],"status":"unknown","lastCheckedAt":"2026-06-03T06:31:51.414Z","traceLink":"https://trace.platphormnews.com/services/sandbox/integrations/phorm","metadata":{}},{"id":"fingerprint","name":"Fingerprint","baseUrl":"https://fingerprint.platphormnews.com","docsUrl":"https://fingerprint.platphormnews.com/api/docs","capabilities":["JA4 redaction checks","public-safe fingerprint summaries"],"status":"unknown","lastCheckedAt":"2026-06-03T06:31:51.414Z","traceLink":"https://trace.platphormnews.com/services/sandbox/integrations/fingerprint","metadata":{}},{"id":"trace","name":"Trace","baseUrl":"https://trace.platphormnews.com","docsUrl":"https://trace.platphormnews.com/api/docs","capabilities":["trace links","span export"],"status":"unknown","lastCheckedAt":"2026-06-03T06:31:51.414Z","traceLink":"https://trace.platphormnews.com/services/sandbox/integrations/trace","metadata":{}},{"id":"cli","name":"platphormctl CLI","baseUrl":"https://cli.platphormnews.com","docsUrl":"https://cli.platphormnews.com/api/docs","capabilities":["copyable commands","dry-run harnesses"],"status":"healthy","lastCheckedAt":"2026-06-03T06:31:51.414Z","traceLink":"https://trace.platphormnews.com/services/sandbox/integrations/cli","metadata":{}},{"id":"platphormctl","name":"platphormctl","baseUrl":"https://cli.platphormnews.com","docsUrl":"https://cli.platphormnews.com/api/docs","capabilities":["repeatable operator harness","evidence-producing CLI flows"],"status":"unknown","lastCheckedAt":"2026-06-03T06:31:51.414Z","traceLink":"https://trace.platphormnews.com/services/sandbox/integrations/platphormctl","metadata":{}},{"id":"monitor","name":"Monitor","baseUrl":"https://monitor.platphormnews.com","docsUrl":"https://monitor.platphormnews.com/api/docs","capabilities":["status publishing","availability summaries"],"status":"unknown","lastCheckedAt":"2026-06-03T06:31:51.414Z","traceLink":"https://trace.platphormnews.com/services/sandbox/integrations/monitor","metadata":{}},{"id":"docs","name":"Docs","baseUrl":"https://docs.platphormnews.com","docsUrl":"https://docs.platphormnews.com/api/docs","capabilities":["run reports","human-readable docs"],"status":"unknown","lastCheckedAt":"2026-06-03T06:31:51.414Z","traceLink":"https://trace.platphormnews.com/services/sandbox/integrations/docs","metadata":{}},{"id":"webhooks","name":"WebhookLab","baseUrl":"https://webhooks.platphormnews.com","docsUrl":"https://webhooks.platphormnews.com/api/docs","capabilities":["event delivery","signature replay","async evidence"],"status":"unknown","lastCheckedAt":"2026-06-03T06:31:51.414Z","traceLink":"https://trace.platphormnews.com/services/sandbox/integrations/webhooks","metadata":{}},{"id":"catalog","name":"Catalog","baseUrl":"https://catalog.platphormnews.com","docsUrl":"https://catalog.platphormnews.com/api/docs","capabilities":["capability publishing","workflow catalog"],"status":"unknown","lastCheckedAt":"2026-06-03T06:31:51.414Z","traceLink":"https://trace.platphormnews.com/services/sandbox/integrations/catalog","metadata":{}},{"id":"sheets","name":"Sheets","baseUrl":"https://sheets.platphormnews.com","docsUrl":"https://sheets.platphormnews.com/api/docs","capabilities":["structured report export","evidence rows"],"status":"unknown","lastCheckedAt":"2026-06-03T06:31:51.414Z","traceLink":"https://trace.platphormnews.com/services/sandbox/integrations/sheets","metadata":{}},{"id":"decks","name":"Decks","baseUrl":"https://decks.platphormnews.com","docsUrl":"https://decks.platphormnews.com/api/docs","capabilities":["executive summaries","presentation artifacts"],"status":"unknown","lastCheckedAt":"2026-06-03T06:31:51.414Z","traceLink":"https://trace.platphormnews.com/services/sandbox/integrations/decks","metadata":{}}]},"meta":{"generatedAt":"2026-06-03T06:31:51.415Z","traceId":"045e63a1cc8c4acb8425fb7ac0c40950","degraded":false,"source":"generated"},"warnings":[],"errors":[]}