Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 16 additions & 13 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,20 @@
#
# cp .env.example .env
# $EDITOR .env
#
# Document every environment variable the crate, its tests, or its examples
# read — including optional ones — with a placeholder value and a comment
# saying what it is for. `.env.example` is the contract; `.env` is the secret.

# Log filter for the `tracing`/`env_logger` style ecosystem.
# RUST_LOG=info

# Backtraces for local debugging: 1 for a short backtrace, "full" for all frames.
# RUST_BACKTRACE=1

# Example of a credential a live/network-gated test would need. Tests that
# require one must skip cleanly when it is unset.
# EXAMPLE_API_KEY=replace-me
# MongoDB stores mutable contacts, campaigns, and unsubscribe preferences.
MONGODB_URI=mongodb://localhost:27017
MONGODB_DATABASE=marketing
# ClickHouse stores immutable campaign lifecycle analytics.
CLICKHOUSE_URL=http://localhost:8123
CLICKHOUSE_DATABASE=marketing
# TinyFlows webhook trigger for email-marketing lifecycle events.
TINYFLOWS_WEBHOOK_URL=http://localhost:8787/webhooks/email-marketing
# Public API base used when creating unsubscribe URLs.
PUBLIC_BASE_URL=http://localhost:3000
Comment on lines +15 to +16

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Document DASHBOARD_ORIGIN in the environment template

For any deployment where the dashboard is not http://localhost:5173, following the documented copy-and-edit setup leaves the hidden DASHBOARD_ORIGIN setting at its localhost default, while the router uses that value as its sole allowed CORS origin. Browser mutations from the deployed dashboard are therefore rejected even when every variable shown here is configured; add this optional variable and its purpose to the template.

AGENTS.md reference: AGENTS.md:L270-L271

Useful? React with 👍 / 👎.

# Google OAuth credentials and registered authorization-code callback.
GOOGLE_CLIENT_ID=replace-with-google-client-id
GOOGLE_CLIENT_SECRET=replace-with-google-client-secret
GOOGLE_REDIRECT_URL=http://localhost:3000/api/auth/google/callback
# Long random secret used to sign dashboard JWT sessions.
JWT_SECRET=replace-with-a-long-random-secret
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -23,3 +23,8 @@ worktrees/*
.idea/
.vscode/
*.swp

# Vite dependencies and generated dashboard build artifacts.
/dashboard/node_modules/
/dashboard/dist/
/dashboard/*.tsbuildinfo
Loading
Loading