Files
plp/.env.example
T
2026-09-15 21:44:39 +08:00

31 lines
1.3 KiB
Bash

# Copy this file to .env and replace test-only values for non-test environments.
NODE_ENV=production
APP_ENV=production
DEMO_SMS_CODE_ENABLED=false
DATABASE_URL=postgresql://drift:drift_test_only@127.0.0.1:55432/drift_bottle_test?schema=public
REDIS_URL=redis://127.0.0.1:56379
WEB_ORIGIN=http://localhost:3000
PHONE_ENCRYPTION_KEY=<base64-encoded-exactly-32-byte-key>
PHONE_HMAC_KEY=<independent-at-least-32-byte-secret>
VERIFICATION_CODE_HMAC_KEY=<independent-at-least-32-byte-secret>
REFRESH_TOKEN_HMAC_KEY=<independent-at-least-32-byte-secret>
LEASE_TOKEN_HMAC_KEY=<independent-at-least-32-byte-secret>
LEASE_TOKEN_ENCRYPTION_KEY=<base64-encoded-exactly-32-byte-key>
JWT_SECRET=<at-least-32-byte-secret>
JWT_ISSUER=drift-api
JWT_AUDIENCE=drift-web
ACCESS_TOKEN_TTL_SECONDS=900
REFRESH_TOKEN_TTL_SECONDS=2592000
REFRESH_ATTEMPT_IP_LIMIT=30
REFRESH_ATTEMPT_IP_WINDOW_SECONDS=60
REFRESH_RATE_LIMIT=60
SMS_CODE_TTL_SECONDS=300
REDIS_KEY_PREFIX=drift:auth:
# Overall pick retry budget and attempt cap; keep bounded to protect API latency/DB load.
MATCH_PICK_RETRY_BUDGET_MS=5000
MATCH_PICK_MAX_ATTEMPTS=64
# Each pick/winner-read transaction is capped and further reduced to its remaining budget.
MATCH_PICK_TRANSACTION_MAX_WAIT_MS=1000
MATCH_PICK_TRANSACTION_TIMEOUT_MS=2000
TRUST_PROXY=false