{"ok":true,"data":{"service":"pentest","version":"1.0.0","environment":"preview","status":"ok","timestamp":"2026-11-11T20:42:22.918Z","database":{"status":"ok","configured":true,"message":"Neon query succeeded"},"mcp":{"status":"ok","endpoint":"/api/mcp"},"routeComplianceScore":35,"discoveryStatus":"ok","rssStatus":"ok","sitemapStatus":"ok","llmsStatus":"ok","openapiStatus":"ok","trustedDomainStatus":"platphormnews.com only by default","traceEnabled":true,"traceExportEnabled":false,"traceContextAccepted":true,"traceContextPropagated":true,"redactionStatus":"x-vercel-ja4-digest and IP-like headers are hashed/redacted","vercelMetadataCaptured":true,"providerSelection":{"version":1,"service":{"id":"pentest","name":"JC PenTest Harness","purpose":"Evidence-first, human-in-the-loop web cockpit for the Jean-Claude multi-model pentest harness.","productionUrl":"https://pentest.platphormnews.com","defaultSiteUrl":"https://pentest.platphormnews.com","trustedDomainSuffix":".platphormnews.com"},"selected":{"platform":"platphorm","deployment":"vercel","database":"neon-postgres","storage":"local-plus-platphorm-files","sandbox":"vercel-sandbox","webhooks":"vercel-functions","aiGateway":"vercel-ai-gateway"},"providers":{"platform":{"id":"platphorm","label":"PlatPhorm","kind":"operator-platform","status":"selected","authEnv":"PLATPHORM_API_KEY","baseDomain":"platphormnews.com","services":[{"id":"docs","label":"PlatPhorm Docs","url":"https://docs.platphormnews.com","capability":"publish reports and operator documentation"},{"id":"sheets","label":"PlatPhorm Sheets","url":"https://sheets.platphormnews.com","capability":"export structured findings and scorecards"},{"id":"files","label":"PlatPhorm Files","url":"https://files.platphormnews.com","capability":"store protected run artifacts"},{"id":"trace","label":"PlatPhorm Trace","url":"https://trace.platphormnews.com","capability":"trace and span inspection"},{"id":"webhooklab","label":"PlatPhorm WebhookLab","url":"https://webhooklab.platphormnews.com","capability":"webhook simulation and delivery verification"},{"id":"sandbox","label":"PlatPhorm Sandbox","url":"https://sandbox.platphormnews.com","capability":"safe replay and validation handoff"}]},"deployment":{"id":"vercel","label":"Vercel","kind":"serverless-web","status":"selected","productionUrl":"https://pentest.platphormnews.com","capabilities":["nextjs","functions","webhooks","sandbox","ai-gateway","oidc","edge-network"],"envAny":["VERCEL_OIDC_TOKEN","VERCEL_TOKEN","VERCEL_URL","VERCEL_PROJECT_PRODUCTION_URL"],"notes":"Current production target. Keep provider-specific behavior behind adapters and config."},"database":{"id":"neon-postgres","label":"Neon Postgres","kind":"postgres","status":"selected","envAny":["DATABASE_URL","POSTGRES_URL","DATABASE_URL_UNPOOLED","POSTGRES_URL_NON_POOLING"],"notes":"Primary persistent backend for run, finding, scorecard, event, and audit state."},"storage":{"id":"local-plus-platphorm-files","label":"Local storage plus PlatPhorm Files","kind":"hybrid-artifact-storage","status":"selected","envAny":["PLATPHORM_API_KEY"],"notes":"Local function state remains honest and ephemeral; protected artifact upload can hand off to PlatPhorm Files."},"sandbox":{"id":"vercel-sandbox","label":"Vercel Sandbox","kind":"ephemeral-execution","status":"selected","envAny":["VERCEL_OIDC_TOKEN","VERCEL_TOKEN"],"notes":"Current sandbox adapter for scoped job execution and artifact capture."},"webhooks":{"id":"vercel-functions","label":"Vercel Functions Webhooks","kind":"http-functions","status":"selected","envAny":["VERCEL","VERCEL_URL"],"notes":"Current webhook receiver/delivery surface for the Next.js app."},"aiGateway":{"id":"vercel-ai-gateway","label":"Vercel AI Gateway","kind":"model-gateway","status":"selected","envAny":["VERCEL_OIDC_TOKEN","AI_GATEWAY_API_KEY"],"notes":"Current provider-neutral model gateway for Vercel-hosted and local pulled environments."}}},"integrations":[{"id":"vercel","label":"Vercel","status":"configured","summary":"Current production target. Keep provider-specific behavior behind adapters and config."},{"id":"neon-postgres","label":"Neon Postgres","status":"configured","summary":"Primary persistent backend for run, finding, scorecard, event, and audit state."},{"id":"vercel-ai-gateway","label":"Vercel AI Gateway","status":"degraded","summary":"Current provider-neutral model gateway for Vercel-hosted and local pulled environments."},{"id":"vercel-sandbox","label":"Vercel Sandbox","status":"degraded","summary":"Current sandbox adapter for scoped job execution and artifact capture."},{"id":"vercel-functions","label":"Vercel Functions Webhooks","status":"configured","summary":"Current webhook receiver/delivery surface for the Next.js app."},{"id":"local-plus-platphorm-files","label":"Local storage plus PlatPhorm Files","status":"configured","summary":"Local function state remains honest and ephemeral; protected artifact upload can hand off to PlatPhorm Files."},{"id":"platphorm-docs","label":"PlatPhorm Docs","status":"configured","summary":"publish reports and operator documentation"},{"id":"platphorm-sheets","label":"PlatPhorm Sheets","status":"configured","summary":"export structured findings and scorecards"},{"id":"platphorm-files","label":"PlatPhorm Files","status":"configured","summary":"store protected run artifacts"},{"id":"platphorm-trace","label":"PlatPhorm Trace","status":"configured","summary":"trace and span inspection"},{"id":"platphorm-webhooklab","label":"PlatPhorm WebhookLab","status":"configured","summary":"webhook simulation and delivery verification"},{"id":"platphorm-sandbox","label":"PlatPhorm Sandbox","status":"configured","summary":"safe replay and validation handoff"}]}}