DATABASE_URL="postgresql://postgres:postgres@localhost:5432/gold_bank?schema=public" # Must match API_PORT in the repo-root .env (source of truth for all dev # ports). NestJS/Prisma only load .env from this app's own directory, so this # value is kept in sync manually rather than read from the root file. PORT=3000 # Customer app sessions (security hotfix stage 2). # Separate from JWT_SECRET so an admin token can never validate as a customer # token. Falls back to JWT_SECRET, then to a dev-only string, when unset. JWT_CUSTOMER_SECRET= # Customer token lifetime. The reference issued a token that never expired. JWT_CUSTOMER_EXPIRES_IN=30d # --------------------------------------------------------------------------- # SMS gateway — Trez panel (port of henza_server/app/Models/Sms.php:57-82) # --------------------------------------------------------------------------- # Trez: NEVER commit real values. The reference hardcoded its live production # credentials in the source (SEC-12); those are treated as compromised and are # not reused. Set the real values in .env, which is gitignored. # # The server always starts (D20). A misconfigured provider only warns, and # outside production OTP codes are then logged locally instead. # With nothing set, the relay driver SENDS REAL SMS (D26) — set # SMS_PROVIDER=none on a development machine that must not. # "relay" (default, D26), "trez", or "none" to disable sending entirely. SMS_PROVIDER=relay # relay — all optional; URL and secret have built-in defaults. SMS_RELAY_URL= SMS_RELAY_SECRET= # The "host" field; blank sends this machine's first external IPv4. SMS_RELAY_HOST= # "kave" (default, Kavenegar) or "default" to let the gateway pick the line. SMS_RELAY_PLATFORM= # trez — only used with SMS_PROVIDER=trez. # Defaults to the reference endpoint when unset; override for staging. SMS_TREZ_URL= # Required for trez: SMS_TREZ_USERNAME= SMS_TREZ_PASSWORD= # The panel's sender line — the `PhoneNumber` form field. SMS_TREZ_SENDER_LINE= # Comma-separated admin numbers for order/document notifications. The reference # hardcoded six mobile numbers across its controllers (STUB-05); empty means # no admin notifications are sent. SMS_ADMIN_RECIPIENTS= # Accounting integration (D27) — configured in the admin panel; these two only # protect the stored token and control the background worker. ACCOUNTING_SECRET_KEY= # "off" keeps this instance out of the background sync. ACCOUNTING_WORKER=