Files
orca/cloud/apps/billing/wrangler.dev.jsonc
T
Neil ff64af20b0 fix(cloud-setup): the composer follows its setup session; billing reaches the control plane for GitHub
- The composer read the setup session with a bare readCloudSetupSession() call in render. The React
  Compiler memoizes that on the session id, so the panel kept its first (empty) read: rows never
  moved past 'In browser', the finished session never auto-started the workspace, and the GitHub
  row stayed 'Needed' after the browser said 'You're all set'. Read it through
  useCloudSetupSession (useSyncExternalStore with a per-poll cached snapshot) instead.
- Billing asked the control plane for the GitHub install URL with a plain fetch to its workers.dev
  origin. Same-account Workers can't do that (Cloudflare error 1042), so every setup GitHub step
  showed 'Orca Cloud setup is unavailable'. Bind the control plane as a service (SANDBOX_CONTROL)
  in the dev config and send the request through it when bound.

Found by the NP-4 end-to-end run (np4-e2e) on m4air against staging.
2026-11-10 14:32:37 -08:00

50 lines
2.8 KiB
JSON

{
"$schema": "node_modules/wrangler/config-schema.json",
// DEV deployment only (workers.dev, no custom domain, Stripe TEST MODE). Deploy:
// wrangler d1 migrations apply BILLING_DB --remote -c wrangler.dev.jsonc
// wrangler deploy -c wrangler.dev.jsonc
// Secrets (wrangler secret put <NAME> -c wrangler.dev.jsonc, never here): STRIPE_SECRET_KEY (sk_test_/rk_test_),
// STRIPE_WEBHOOK_SECRET (the test-mode endpoint's whsec_), CONTROL_PLANE_TOKEN (shared with
// orca-sandbox-control-dev), BILLING_DEV_JWKS (operator key set for e2e until auth mints billing tokens).
"name": "orca-billing-dev",
"main": "src/index.ts",
"compatibility_date": "2026-11-01",
"workers_dev": true,
"d1_databases": [
{
"binding": "BILLING_DB",
"database_name": "orca-billing-dev",
"database_id": "12aa0820-642a-4174-8504-f42d32043959",
"migrations_dir": "migrations"
}
],
// Same-account Workers cannot call each other over workers.dev (error 1042): the GitHub install URL
// for the setup chain goes to the control plane through this binding (SANDBOX_CONTROL_URL names the origin).
"services": [{ "binding": "SANDBOX_CONTROL", "service": "orca-sandbox-control-dev" }],
// Retries Stripe meter reports that failed inline.
"triggers": { "crons": ["*/10 * * * *"] },
"vars": {
"BILLING_ENV": "dev",
"STRIPE_API_VERSION": "2025-09-30.clover",
"STRIPE_METER_EVENT_NAME": "orca_sandbox_seconds",
// Stripe TEST MODE objects in acct_1Or7xeKb73TzRkjk (scripts/stripe-test-setup.ts).
"STRIPE_PRICE_TEAM_MONTHLY": "price_1UZmKpKb73TzRkjk33aiB2th",
"STRIPE_PRICE_TEAM_ANNUAL": "price_1UZmKpKb73TzRkjkS7qv85NI",
// $1.00 per sandbox hour, billed by the minute (unit_amount_decimal 1.666666666667, divide_by 60).
"STRIPE_PRICE_OVERAGE": "price_1UaDDzKb73TzRkjkznGWUEoC",
"STRIPE_PORTAL_CONFIGURATION": "bpc_1UZmKvKb73TzRkjk59rIuHbx",
"BILLING_RETURN_URL": "https://orca-billing-dev.lovecast.workers.dev/return",
"BILLING_JWT_AUDIENCE": "orca-billing",
"BILLING_JWKS_URL": "https://login.onorca.dev/.well-known/jwks.json",
"BILLING_AUTH_ISSUER": "https://login.onorca.dev",
// Dev only: also accept Orca Cloud auth STAGING tokens and pull seat counts from staging auth
// (secret MEMBERSHIP_SYNC_TOKEN must equal staging's ORCA_CLOUD_BILLING_MEMBERSHIP_TOKEN).
"BILLING_STAGING_JWKS_URL": "https://auth-staging.onorca.dev/.well-known/jwks.json",
"BILLING_STAGING_AUTH_ISSUER": "https://auth-staging.onorca.dev",
"AUTH_INTERNAL_URL": "https://auth-staging.onorca.dev",
// Cloud setup sessions: pages on staging auth, GitHub install URLs from the dev control plane.
"CLOUD_SETUP_PAGES_URL": "https://auth-staging.onorca.dev",
"SANDBOX_CONTROL_URL": "https://orca-sandbox-control-dev.lovecast.workers.dev"
}
}