{
  "artifact_version": 1,
  "generated_at": "2026-04-20T15:22:23.567Z",
  "checked_at": "2026-04-20T15:22:23.566Z",
  "route": "/setup",
  "viewer_mode": "public",
  "host": "0.0.0.0:3000",
  "verification": {
    "overall": "ready_unverified",
    "label": "Ready but not fully verified",
    "summary": "Core checks are passing, but deeper validation or operator follow-up is still pending.",
    "ready": true,
    "fully_verified": false,
    "readiness_status": "needs_attention"
  },
  "runtime": {
    "node_version": "v20.19.2",
    "node_env": "production"
  },
  "categories": [
    {
      "id": "application",
      "title": "Core Readiness",
      "status": "pass",
      "summary": "OSuite responded to the verification request.",
      "what_was_checked": "The /setup page rendered and the server runtime reported process metadata.",
      "evidence_summary": "Behavior verified: the app process responded and exposed runtime metadata.",
      "pending_proof": "",
      "checks": [
        {
          "id": "app_reachable",
          "label": "Verify surface reachable",
          "status": "pass",
          "detail": "The Setup & Verify page rendered successfully.",
          "sub_detail": "",
          "likely_cause": "",
          "next_action": ""
        },
        {
          "id": "runtime",
          "label": "Runtime metadata",
          "status": "pass",
          "detail": "Application runtime is available.",
          "sub_detail": "",
          "likely_cause": "",
          "next_action": ""
        }
      ]
    },
    {
      "id": "database",
      "title": "Database Verification",
      "status": "pass",
      "summary": "Database connection and core schema checks passed.",
      "what_was_checked": "DATABASE_URL presence, a live connection from this deployment, and all required core tables.",
      "evidence_summary": "Database verified: connection succeeded and required core tables were present.",
      "pending_proof": "",
      "checks": [
        {
          "id": "database_url",
          "label": "DATABASE_URL",
          "status": "pass",
          "detail": "DATABASE_URL is present.",
          "sub_detail": "",
          "likely_cause": "",
          "next_action": ""
        },
        {
          "id": "db_connection",
          "label": "Connection test",
          "status": "pass",
          "detail": "Database connection succeeded.",
          "sub_detail": "",
          "likely_cause": "",
          "next_action": ""
        },
        {
          "id": "db_schema",
          "label": "Core schema",
          "status": "pass",
          "detail": "All 8 required tables are present.",
          "sub_detail": "",
          "likely_cause": "",
          "next_action": ""
        }
      ]
    },
    {
      "id": "configuration",
      "title": "Configuration",
      "status": "pass",
      "summary": "Required and recommended settings are present.",
      "what_was_checked": "Presence of required and advisory environment variables. Values are never shown here.",
      "evidence_summary": "Configuration presence checks passed for required and recommended settings.",
      "pending_proof": "",
      "checks": [
        {
          "id": "database_url",
          "label": "DATABASE_URL",
          "status": "pass",
          "detail": "DATABASE_URL is present.",
          "sub_detail": "Postgres connection string",
          "likely_cause": "",
          "next_action": ""
        },
        {
          "id": "nextauth_secret",
          "label": "NEXTAUTH_SECRET",
          "status": "pass",
          "detail": "NEXTAUTH_SECRET is present.",
          "sub_detail": "Session signing secret",
          "likely_cause": "",
          "next_action": ""
        },
        {
          "id": "nextauth_url",
          "label": "NEXTAUTH_URL",
          "status": "pass",
          "detail": "NEXTAUTH_URL is present.",
          "sub_detail": "Public URL of this OSuite instance",
          "likely_cause": "",
          "next_action": ""
        },
        {
          "id": "osuite_api_key",
          "label": "OSUITE_API_KEY",
          "status": "pass",
          "detail": "OSUITE_API_KEY is present.",
          "sub_detail": "Default API key for agent authentication",
          "likely_cause": "",
          "next_action": ""
        },
        {
          "id": "cron_secret",
          "label": "CRON_SECRET",
          "status": "pass",
          "detail": "CRON_SECRET is present.",
          "sub_detail": "Secret token protecting /api/cron/* routes from unauthorized invocation",
          "likely_cause": "",
          "next_action": ""
        }
      ]
    },
    {
      "id": "auth",
      "title": "Auth Readiness",
      "status": "pass",
      "summary": "At least one sign-in method is available.",
      "what_was_checked": "Whether at least one complete sign-in method exists and whether agent API authentication has a configured path.",
      "evidence_summary": "Auth ready: a normal operator sign-in path exists.",
      "pending_proof": "",
      "checks": [
        {
          "id": "signin_methods",
          "label": "Sign-in readiness",
          "status": "pass",
          "detail": "At least one sign-in method is configured.",
          "sub_detail": "",
          "likely_cause": "",
          "next_action": ""
        },
        {
          "id": "auth_github",
          "label": "GitHub OAuth",
          "status": "pass",
          "detail": "GitHub OAuth is configured.",
          "sub_detail": "",
          "likely_cause": "",
          "next_action": ""
        },
        {
          "id": "auth_local_password",
          "label": "Local admin password",
          "status": "pass",
          "detail": "OSUITE_LOCAL_ADMIN_PASSWORD is configured with SaaS break-glass access enabled.",
          "sub_detail": "",
          "likely_cause": "",
          "next_action": ""
        },
        {
          "id": "agent_api_access",
          "label": "Agent API access",
          "status": "pass",
          "detail": "Agent API authentication appears configured.",
          "sub_detail": "",
          "likely_cause": "",
          "next_action": ""
        }
      ]
    },
    {
      "id": "billing",
      "title": "Billing Readiness",
      "status": "pass",
      "summary": "Stripe keys, webhook signing, and hosted plan prices are configured.",
      "what_was_checked": "Stripe server key, publishable key, webhook signing secret, and monthly/annual plan price IDs.",
      "evidence_summary": "Hosted billing looks ready for checkout, webhook processing, and self-serve upgrades.",
      "pending_proof": "",
      "checks": [
        {
          "id": "stripe_secret_key",
          "label": "Stripe secret key",
          "status": "pass",
          "detail": "STRIPE_SECRET_KEY is present.",
          "sub_detail": "",
          "likely_cause": "",
          "next_action": ""
        },
        {
          "id": "stripe_publishable_key",
          "label": "Stripe publishable key",
          "status": "pass",
          "detail": "NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY is present.",
          "sub_detail": "",
          "likely_cause": "",
          "next_action": ""
        },
        {
          "id": "stripe_webhook_secret",
          "label": "Stripe webhook signing secret",
          "status": "pass",
          "detail": "STRIPE_WEBHOOK_SECRET is present.",
          "sub_detail": "",
          "likely_cause": "",
          "next_action": ""
        },
        {
          "id": "stripe_plan_prices_control",
          "label": "Control plan prices",
          "status": "pass",
          "detail": "STRIPE_PRICE_CONTROL and STRIPE_PRICE_CONTROL_ANNUAL are present.",
          "sub_detail": "",
          "likely_cause": "",
          "next_action": ""
        },
        {
          "id": "stripe_plan_prices_trust",
          "label": "Trust plan prices",
          "status": "pass",
          "detail": "STRIPE_PRICE_TRUST and STRIPE_PRICE_TRUST_ANNUAL are present.",
          "sub_detail": "",
          "likely_cause": "",
          "next_action": ""
        },
        {
          "id": "stripe_plan_prices_assurance",
          "label": "Assurance plan prices",
          "status": "pass",
          "detail": "STRIPE_PRICE_ASSURANCE and STRIPE_PRICE_ASSURANCE_ANNUAL are present.",
          "sub_detail": "",
          "likely_cause": "",
          "next_action": ""
        }
      ]
    },
    {
      "id": "deploy",
      "title": "Deploy Readiness",
      "status": "warn",
      "summary": "Deploy configuration has recommendations.",
      "what_was_checked": "NEXTAUTH_URL vs current host, realtime backend suitability for serverless or multi-instance deployment.",
      "evidence_summary": "Deploy checks passed.",
      "pending_proof": "",
      "checks": [
        {
          "id": "nextauth_url",
          "label": "NEXTAUTH_URL does not match deployment host",
          "status": "warn",
          "detail": "Configured: studio.osuite.ai — current: 0.0.0.0:3000",
          "sub_detail": "",
          "likely_cause": "",
          "next_action": "Set NEXTAUTH_URL to https://0.0.0.0:3000 in your deployment configuration and redeploy."
        },
        {
          "id": "realtime_backend",
          "label": "Realtime backend: Redis",
          "status": "pass",
          "detail": "Mission Control live stream is active.",
          "sub_detail": "",
          "likely_cause": "",
          "next_action": ""
        }
      ]
    },
    {
      "id": "sdk",
      "title": "SDK and Integration Verification",
      "status": "info",
      "summary": "Live validation paths are ready to run. Proof remains pending until you execute them.",
      "what_was_checked": "This section does not execute SDK calls. It verifies whether a live validation path is available and documents the exact next commands.",
      "evidence_summary": "Verification path available: OSuite can now guide live SDK checks.",
      "pending_proof": "Use the \"Run test\" button above to validate your API key and capture proof.",
      "checks": [
        {
          "id": "sdk_live_proof",
          "label": "Live validation proof",
          "status": "info",
          "detail": "No live validation proof has been captured yet.",
          "sub_detail": "Click \"Run test\" above with your API key to capture proof and upgrade to verified.",
          "likely_cause": "",
          "next_action": ""
        },
        {
          "id": "sdk_gate",
          "label": "Core verification gate",
          "status": "pass",
          "detail": "Core instance verification checks are passing.",
          "sub_detail": "",
          "likely_cause": "",
          "next_action": ""
        },
        {
          "id": "sdk_api_key_gate",
          "label": "API key available",
          "status": "pass",
          "detail": "An API authentication path is available.",
          "sub_detail": "",
          "likely_cause": "",
          "next_action": ""
        }
      ]
    }
  ],
  "workflow": [
    {
      "id": "core_instance",
      "title": "Core instance verification",
      "status": "pass",
      "summary": "OSuite rendered, required config is present, and database checks completed.",
      "proof": "Verified by page reachability, config presence checks, database connectivity, and core schema inspection.",
      "next_action": ""
    },
    {
      "id": "auth_operator",
      "title": "Operator and auth verification",
      "status": "pass",
      "summary": "At least one operator sign-in path is configured.",
      "proof": "Verified by checking complete sign-in provider configuration.",
      "next_action": ""
    },
    {
      "id": "billing_self_serve",
      "title": "Hosted billing verification",
      "status": "pass",
      "summary": "Stripe-backed self-serve billing is configured for this SaaS deployment.",
      "proof": "Verified by checking Stripe server key, publishable key, webhook signing secret, and all public plan prices.",
      "next_action": ""
    },
    {
      "id": "sdk_live",
      "title": "SDK and integration verification",
      "status": "pending",
      "summary": "Paste your API key above and click \"Run test\" to capture live proof.",
      "proof": "Use the connection test above to prove authenticated API access.",
      "next_action": "Use the \"Run test\" button at the top of this page to validate and capture proof automatically."
    },
    {
      "id": "proof_artifact",
      "title": "Verification proof artifact",
      "status": "pass",
      "summary": "A structured JSON artifact is available for the current verification view.",
      "proof": "The artifact records timestamp, mode, overall state, categories checked, per-check status, and next steps.",
      "next_action": "Download the proof artifact once you are ready to share or archive the current verification state."
    }
  ],
  "recommended_next_steps": [
    {
      "id": "run_sdk_validation",
      "title": "Validate your connection",
      "variant": "info",
      "summary": "Core verification passed. Use the \"Run test\" button at the top of this page to validate and capture proof.",
      "details": [
        "What this proves: real API ingress, authentication, and a live request path.",
        "Next action: paste your API key in the test panel above and click \"Run test\"."
      ],
      "code": "",
      "note": ""
    }
  ],
  "sdk_validation": {
    "base_url": "https://0.0.0.0:3000",
    "node_command": "node ./osuite-platform-intelligence/scripts/validate-integration.mjs \\\n  --base-url https://0.0.0.0:3000 \\\n  --api-key <api-key> \\\n  --full \\\n  --capture-setup-proof",
    "python_command": "pip install osuite\npython -c \"from osuite import Osuite; client = Osuite(base_url='https://0.0.0.0:3000', api_key='<api-key>'); print(client.ping())\"",
    "live_proof": null,
    "note": "These commands are guidance for live validation. The artifact does not claim they have already been executed."
  },
  "notice": "This page is intentionally safe to open before login. Some operator details stay hidden until you sign in."
}