Repository navigation
Expand file tree
/
Copy path.env.example
More file actions
101 lines (86 loc) · 4.89 KB
/
Copy path.env.example
File metadata and controls
101 lines (86 loc) · 4.89 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
# App Environment (local | development | production | self-hosted)
# Replaces: VITE_ENVIRONMENT, VITE_APP_ENVIRONMENT (deprecated — still work as fallbacks)
VITE_APP_ENV=local
# API
VITE_API_URL=http://localhost:8080/v1
# Auth
VITE_AUTH_ENABLED=false
VITE_AUTH_PROVIDER=supabase # flexprice | supabase
VITE_SUPABASE_URL=https://your-project-id.supabase.co
VITE_SUPABASE_ANON_KEY=your-anon-key-here
# Note: VITE_SUPABASE_ENABLED deprecated — use VITE_AUTH_ENABLED (still works as fallback)
#
# IMPORTANT, when VITE_AUTH_PROVIDER=supabase — the Supabase project needs every
# origin this app is served from listed under Authentication > URL Configuration >
# Redirect URLs, including each region dashboard, localhost, and a wildcard for
# Vercel preview deployments. GoTrue validates the redirect the app sends it and,
# when it does not match, silently substitutes the project's Site URL instead of
# returning an error — so a missing entry shows up only as a link in an email
# pointing at the wrong host. Site URL itself should name the primary production
# dashboard, so that fallback is at least a reachable origin.
#
# The paths the app asks to be redirected to are RouteNames.signupConfirmation
# (/auth/signup/confirmation) and RouteNames.resetPassword (/auth/reset-password);
# see src/utils/auth/authRedirect.ts.
# PostHog
# Replaces: VITE_APP_PUBLIC_POSTHOG_KEY, VITE_APP_PUBLIC_POSTHOG_HOST (deprecated — still work as fallbacks)
VITE_POSTHOG_ENABLED=false
VITE_POSTHOG_KEY=your-posthog-key-here
VITE_POSTHOG_HOST=https://app.posthog.com
# Paddle
VITE_PADDLE_ENABLED=false
VITE_PADDLE_CLIENT_TOKEN=your-paddle-token-here
# --- Support chat -----------------------------------------------------------
# Enable AT MOST ONE provider. If both are enabled, Intercom wins and Pylon is
# ignored (a warning is logged in non-production builds).
# Intercom
# Replaces: VITE_APP_INTERCOM_APP_ID (deprecated — still works as fallback)
VITE_INTERCOM_ENABLED=false
VITE_INTERCOM_APP_ID=your-intercom-app-id-here
# Pylon — https://docs.usepylon.com/pylon-docs/chat-widget/chat-setup
# App ID comes from the Pylon dashboard under Chat Widget settings.
# Identity verification is optional. Enable this only when "HMAC email hash" is on in
# the Pylon dashboard; the backend signs it at POST /users/chat/verify
# (chat_support.identity_secret must match). When false, email_hash is omitted.
VITE_PYLON_ENABLED=false
VITE_PYLON_APP_ID=your-pylon-app-id-here
VITE_PYLON_IDENTITY_VERIFICATION_ENABLED=false
# Reo
VITE_REO_ENABLED=false
VITE_REO_CLIENT_ID=your-reo-client-id-here
# Region URLs
VITE_DASHBOARD_URL_INDIA=
VITE_DASHBOARD_URL_US=
# SAML SSO
# Single-tenant deployments: set this to the tenant id so the SSO button always
# shows on login without a ?sso= link. A ?sso= URL param overrides it. Leave empty
# for multi-tenant deployments (button then requires the param).
VITE_SSO_TENANT_ID=
# Integrations
VITE_GOOGLE_SHEETS_WEB_APP_URL=
# AWS account ID that owns Flexprice's marketplace-metering role. Rendered into the
# AWS Marketplace trust-policy template, and into the GCP Marketplace WIF setup script's
# --account-id, the tenant pastes/runs on their own side.
VITE_FLEXPRICE_AWS_ACCOUNT_ID=
# Flexprice's AWS IAM role name. Rendered into the GCP Marketplace WIF setup script's
# --attribute-condition — must match the role the GCP-reporting worker actually runs as.
VITE_FLEXPRICE_AWS_ROLE_NAME=
# Webhooks
# Portal provider: flexprice (custom portal) | svix (hosted Svix) | unset (hosted Svix by default).
# When unset, a non-empty VITE_SVIX_URL selects the custom (Flexprice) portal instead.
VITE_WEBHOOK_PROVIDER=
# Public origin of the self-hosted Svix API (browser-reachable). No trailing slash.
# Leave empty when using hosted Svix (the portal auto-detects hosted vs self-hosted).
VITE_SVIX_URL=
# Restricted Envs (JSON: { [tenant_id]: { [env_id]: ISO date | "suspended" } })
VITE_RESTRICTED_ENVS=
# Tenant feature allowlist (comma-separated tenant IDs or JSON array)
# Enables gated UI such as the customer org_type metadata filter (parent / child).
VITE_TENANT_FEATURE_ALLOWLIST=
# VITE_PLATFORM_CONFIG={"revenue":{"enabled":false},"production":{"enabled":true},"signup":{"enabled":true},"contact_us":{"enabled":true},"onboarding":{"enabled":true},"guides":{"enabled":true},"sidebar_documentation":{"enabled":true},"api_reference":{"enabled":true}}
# Typography — optional JSON: {"primary":"…","fallback":"…"} (see src/config/config.ts). Omitted = Qanelas (src/assets/fonts/qanelas) + system UI.
# VITE_FONT_CONFIG={"primary":"Qanelas","fallback":"ui-sans-serif, system-ui, sans-serif"}
# Latin / Google stack instead of Qanelas:
# VITE_FONT_CONFIG={"primary":"Inter","fallback":"ui-sans-serif, system-ui, sans-serif"}
# Arabic-first (IBM Plex Sans Arabic + Tajawal are preloaded in src/index.css Google Fonts import):
# VITE_FONT_CONFIG={"primary":"IBM Plex Sans Arabic","fallback":"Tajawal, Inter, ui-sans-serif, system-ui, sans-serif"}