Files
sase.tr/apps/api/.env.example
Semih Yesilyurt 29e10b432f feat(notifications): visible unsubscribe footer link in lifecycle mails
- inject signed unsubscribeUrl into every optional-workflow Novu payload
  (templates render it via {{#if unsubscribeUrl}} footer)
- add 'conversion' campaign workflow to OPTIONAL_WORKFLOWS + email_marketing
  category so its one-click tokens validate and opt-outs suppress it
- declare UNSUBSCRIBE_SECRET/URL_BASE/EMAIL in env schema (""→undefined
  preprocess against the url().optional() boot-crash trap), .env.example and
  both compose env blocks
- fix confirmation-page settings link (?tab=notifications)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-14 16:35:47 +03:00

31 lines
1.3 KiB
Plaintext

NODE_ENV=development
PORT=4000
DATABASE_URL=postgresql://sase:YOUR_PASSWORD@127.0.0.1:5432/sase
REDIS_HOST=127.0.0.1
REDIS_PORT=6379
REDIS_PASSWORD=YOUR_REDIS_PASSWORD
BETTER_AUTH_SECRET=YOUR_MIN_32_CHAR_RANDOM_SECRET
BETTER_AUTH_URL=http://localhost:4000
MINIO_ENDPOINT=http://127.0.0.1:9000
MINIO_ACCESS_KEY=minioadmin
MINIO_SECRET_KEY=YOUR_MINIO_PASSWORD
MINIO_BUCKET_NAME=sase-schemas
MINIO_PUBLIC_URL=https://storage.sase.tr/sase-schemas
MINIO_USE_SSL=false
CORS_ORIGIN=http://localhost:3000,https://v2.sase.tr
ML_PREDICTION_ENABLED=false
# Novu — lifecycle/transactional email automation (Tailscale-only; sends via Postal).
# Leave NOVU_API_KEY empty in dev → triggers are logged & skipped. Prod key: Bitwarden "Novu admin (bildirim.semih.ai)" → PROD_API_KEY
NOVU_API_URL=https://api.bildirim.semih.ai
NOVU_API_KEY=
# Public marketing-site origin for CTA targets
APP_PUBLIC_URL=https://sase.tr
# HMAC secret for signed track.sase.tr click links (Bitwarden "mailtrack tracking (track.sase.tr)"). Empty → no click tracking.
MAILTRACK_SECRET=
# Unsubscribe links (List-Unsubscribe header + mail footer). Empty secret → mailto-only header, no footer link (dev default).
UNSUBSCRIBE_SECRET=
# Defaults to <APP_PUBLIC_URL>/api/email/unsubscribe when empty.
UNSUBSCRIBE_URL_BASE=
UNSUBSCRIBE_EMAIL=unsubscribe@sase.tr