-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy path.env.example
More file actions
79 lines (69 loc) · 2.7 KB
/
Copy path.env.example
File metadata and controls
79 lines (69 loc) · 2.7 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
DATABASE_URL=postgresql://postgres:postgres@localhost:5432/telemetry
PORT=3001
HOST=0.0.0.0
NODE_ENV=development
# --- Production (Railway / VPS) ---
# NODE_ENV=production
# HEALTH_CHECK_DATABASE=true
# HEALTH_DETAILED=true
# TELEMETRY_API_VERSION=1.6.2 # optional override; build sets version from CHANGELOG
# CORS_ORIGINS=https://telemetry-tracker.com
# TELEMETRY_DASHBOARD_ORIGIN=https://telemetry-tracker.com
# INGEST_ALLOW_UNAUTHENTICATED=false
# Ingest PII scrubbing
#
# Default: ENABLED when unset (hosted cloud + self-host).
# Self-host override: set TELEMETRY_INGEST_PII_SCRUB=false to store payloads as sent.
# See docs/PII-SCRUBBING.md.
# TELEMETRY_INGEST_PII_SCRUB=false
# TELEMETRY_INGEST_PII_SCRUB_MAX_DEPTH=8
# TELEMETRY_INGEST_PII_SCRUB_MAX_NODES=500
# Dashboard auth
# TELEMETRY_ALLOW_REGISTRATION=true
# TELEMETRY_ALLOW_UNAUTHENTICATED_READS=true # legacy only; omit in production
# Stripe billing + webhooks (API only — never on dashboard)
# STRIPE_SECRET_KEY=sk_test_...
# STRIPE_WEBHOOK_SECRET=whsec_...
# STRIPE_PRICE_PRO=price_...
# STRIPE_PRICE_BUSINESS=price_...
# Optional email (invites + password reset + notifications + contact)
# RESEND_API_KEY=re_...
# TELEMETRY_EMAIL_FROM=Telemetry Tracker <noreply@tacko.io>
# CONTACT_INBOX_EMAIL=info@tacko.io
# Optional observability / tuning
# SENTRY_DSN=
# RATE_LIMIT_INGEST_MAX=3000
# RATE_LIMIT_AUTH_MAX=30
# RATE_LIMIT_API_MAX=300
# Workspace brief private service (Phase 3A+)
# TELEMETRY_AI_BRIEF_URL=https://ai.internal
# TELEMETRY_AI_BRIEF_SECRET=<32 random bytes, base64 encoded>
# TELEMETRY_AI_BRIEF_TOTAL_BUDGET_MS=2000
# TELEMETRY_AI_BRIEF_ATTEMPT_TIMEOUT_MS=2000
# TELEMETRY_AI_BRIEF_MAX_RETRIES=1
# TELEMETRY_AI_BRIEF_RETRY_MIN_REMAINING_MS=250
# TELEMETRY_BRIEF_SERVED_META_TTL_MS=1800000
# TELEMETRY_BRIEF_SERVED_META_MAX_PER_USER_ORG=5
# TELEMETRY_BRIEF_CACHE_TTL_MS=900000
# TELEMETRY_BRIEF_CACHE_MAX_ENTRIES=200
# TELEMETRY_AI_BRIEF_CIRCUIT_FAILURE_THRESHOLD=5
# TELEMETRY_AI_BRIEF_CIRCUIT_WINDOW_MS=60000
# TELEMETRY_AI_BRIEF_CIRCUIT_COOLDOWN_MS=30000
# BRIEF_REQUEST_UNTIL_BUCKET_MS=60000
# RUN_BRIEF_INTEGRATION_TESTS=true
# Workspace brief async generation (Phase Async-A)
# BRIEF_COMPLETED_RETENTION_DAYS=30
# BRIEF_STALE_MAX_DISPLAY_DAYS=7
# TELEMETRY_AI_BRIEF_WORKER_TOTAL_BUDGET_MS=60000
# TELEMETRY_AI_BRIEF_WORKER_ATTEMPT_TIMEOUT_MS=60000
# TELEMETRY_AI_BRIEF_WORKER_LEASE_MS=60000
# BRIEF_WORKER_POLL_MS=1000
# Alert webhook delivery worker (#225)
# ALERT_WEBHOOK_WORKER_POLL_MS=1000
# Lease is clamped to at least POST timeout + margin (8000 + 5000 ms).
# ALERT_WEBHOOK_WORKER_LEASE_MS=30000
# Avatar storage (Cloudflare R2 — S3-compatible, private bucket)
# R2_ACCOUNT_ID=
# R2_ACCESS_KEY_ID=
# R2_SECRET_ACCESS_KEY=
# R2_BUCKET_NAME=telemetry-avatars