Skip to content

Environments & credentials

This page maps every environment and every credential the system uses. It lists each credential by name, purpose, and location only — no secret, service-role key, or raw VITE_ value appears here.

AppProductionStagingSupabase schema
Marketing sitesitecrate.castaging.sitecrate.capublic / staging
Adminadmin.sitecrate.castaging-admin.sitecrate.capublic / staging
Client sites{slug}.sitecrate.ca → real domain(no DB writes)

Both staging sites deploy automatically on every PR push, after lint + build pass. Staging is routed to the isolated staging schema purely by setting VITE_SUPABASE_SCHEMA=staging; production omits that var and falls back to 'public'.

ResourceDetail
HostNetlify (separate sites for prod / staging / each client)
DNSCloudflare — wildcard *.sitecrate.ca CNAME → apex-loadbalancer.netlify.com
SSLAuto-provisioned by Netlify per subdomain

Concrete Netlify site IDs are recorded in each repo’s CLAUDE.md and visible in the Netlify dashboard; they are operational identifiers, not reproduced on this public page.

VariableScopePurposeLives in
VITE_SUPABASE_URLclient (bundled)Supabase project URLNetlify env + GitHub secret + local .env
VITE_SUPABASE_ANON_KEYclient (bundled)Supabase anon key — intentionally publicNetlify env + GitHub secret + local .env
VITE_SUPABASE_SCHEMAclient (bundled)staging on staging only; unset in prodGitHub secret (staging job) / Netlify staging env
SUPABASE_SERVICE_ROLE_KEYserver onlysend-email resolves projects by tokenNetlify function env
RESEND_API_KEYserver onlyResend transactional emailNetlify function env + local .env
VariableScopePurposeLives in
VITE_SUPABASE_URLclientSupabase project URLNetlify env + GitHub secret + local .env
VITE_SUPABASE_ANON_KEYclientSupabase anon keyNetlify env + GitHub secret + local .env
VITE_SUPABASE_SCHEMAclientstaging on staging onlyGitHub secret (staging) / Netlify staging env
SUPABASE_SERVICE_ROLE_KEYserver onlyadmin-users.js user CRUDNetlify function env + GitHub secret
GOOGLE_CLIENT_IDserver onlyga-report.js GA4 OAuthNetlify function env + local .env
GOOGLE_CLIENT_SECRETserver onlyGA4 OAuthNetlify function env + local .env
GOOGLE_REFRESH_TOKENserver onlyGA4 OAuthNetlify function env + local .env
GA_PROPERTY_IDserver onlyGA4 property for reportingNetlify function env + local .env
RESEND_API_KEYserver onlyemail-log.js reads ResendNetlify function env + local .env
LocationHolds
Local .env (gitignored)Dev copies of all vars for the repo
~/.supabase/access-tokenSupabase Management API token (for ad-hoc SQL)
GitHub → repo SecretsCI/CD build + deploy vars
Netlify → site envRuntime + function env per site
Netlify accounts APIHow staging env vars are set (not via the dashboard)

One project (ref recorded in CLAUDE.md), region East US / North Virginia, two PostgREST-exposed schemas: public and staging. Full schema and the security model: Data model · RPCs & RLS.