feat: scale fixes — max-instances, asset caching, shared rate limits, global cap
Dev — Build & local smoke test / build-smoke (pull_request) Successful in 2m0s
Dev — Build & local smoke test / build-smoke (pull_request) Successful in 2m0s
- soul-demo-stage: raise max-instances 10 → 50 - marketing-stage: explicitly set max-instances 200 - /assets/* and /brand/*: return Cache-Control: public, max-age=31536000, immutable so Cloudflare caches static assets at the edge (eliminates Cloud Run hit per request) - /js/*: bump from max-age=3600 to max-age=31536000, immutable (same policy) - Per-uid demo rate limit: replace in-process state with Supabase demo_rate_limits table so the 10-chats/day cap is enforced across all Cloud Run instances; falls back to in-process for local dev when SUPABASE_SERVICE_KEY is absent - Global circuit breaker: trip if any single instance handles ≥2000 demo requests/UTC day
This commit is contained in:
@@ -262,7 +262,7 @@ jobs:
|
||||
--update-env-vars "NEURON_LLM_0_FORMAT=anthropic,NEURON_LLM_0_MODEL=claude-sonnet-4-5,NEURON_LLM_0_URL=https://api.anthropic.com/v1/messages" \
|
||||
--update-secrets "NEURON_LLM_0_KEY=anthropic-api-key:latest,ANTHROPIC_API_KEY=anthropic-api-key:latest" \
|
||||
--min-instances 1 \
|
||||
--max-instances 10 \
|
||||
--max-instances 50 \
|
||||
--concurrency 20 \
|
||||
--port 8080 \
|
||||
--allow-unauthenticated \
|
||||
@@ -346,6 +346,7 @@ jobs:
|
||||
--region us-central1 \
|
||||
--project neuron-785695 \
|
||||
--service-account neuron-marketing-sa@neuron-785695.iam.gserviceaccount.com \
|
||||
--max-instances 200 \
|
||||
--update-env-vars "NODE_ENV=production,STRIPE_PUBLISHABLE_KEY=pk_test_51TPoHnJg9Fv1D3AUp1FEMcy4MGlKRZqs4scW66kjQFQjWofmNc2rottzXzDaXekHvuw1OQpyp2WCIsc7O5fXIG0G00HQQrkdGX,GCS_SHARE_BUCKET=neuron-shares-prod,SUPABASE_ANON_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6Im9jb2pzZ2hhb25sdHVuaWRrenB3Iiwicm9sZSI6ImFub24iLCJpYXQiOjE3Nzc2NDIxNjgsImV4cCI6MjA5MzIxODE2OH0.e0FVFw1aahnrBVvnkR5R8a-RxCx095U8o_gsk7Quq3E,NEURON_LLM_0_FORMAT=anthropic,NEURON_LLM_0_MODEL=claude-sonnet-4-5,NEURON_LLM_0_URL=https://api.anthropic.com/v1/messages,SOUL_URL=${{ steps.soul-url.outputs.soul_url }}" \
|
||||
--update-secrets "SUPABASE_SERVICE_KEY=supabase-service-key:latest,NEURON_LLM_0_KEY=anthropic-api-key:latest,ANTHROPIC_API_KEY=anthropic-api-key:latest,STRIPE_SECRET_KEY=stripe-secret-key-stage:latest,STRIPE_WEBHOOK_SECRET=stripe-webhook-secret-stage:latest,STRIPE_PRICE_PROFESSIONAL=stripe-price-professional-stage:latest,STRIPE_PRICE_FOUNDING=stripe-price-founding-stage:latest,STRIPE_PRICE_FAMILY_CHILD=stripe-price-family-child:latest,RESEND_API_KEY=resend-api-key:latest,DOCUSEAL_WEBHOOK_TOKEN=docuseal-webhook-token:latest" \
|
||||
--allow-unauthenticated \
|
||||
|
||||
Reference in New Issue
Block a user