Files
soroush.asadi fdf4235fbd
CI/CD / CI - API (dotnet build + engine sim) (push) Successful in 50s
CI/CD / CI - Web (tsc + next build) (push) Successful in 1m11s
CI/CD / Deploy - local stack (db + server + web) (push) Successful in 34s
feat(auth): real SMS OTP via Kavenegar (replaces the mock 1234 code)
- OtpService: generates a 5-digit code, stores it (in-memory, 120s TTL, max 5
  tries, single-use), and sends it via Kavenegar verify/lookup
  (template "hokmotp", %token = code). Normalizes +98/98 → 09xxxxxxxxx.
- /api/auth/otp/request + /verify now use it. No SMS_API_KEY ⇒ dev mode
  (accepts a fixed code, returns devCode for local testing).
- Config: Sms section (appsettings) + Sms__* compose mapping + SMS_* in the
  ENV_FILE template.

Security: sanitized deploy/ENV_FILE.example back to placeholders (it had picked
up real secrets) and added /deploy/ENV_FILE.local to .gitignore as the real
master copy (never committed).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-12 23:50:33 +03:30

72 lines
1015 B
Plaintext

# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
# local secrets master copy (real ENV_FILE values — NEVER commit)
/deploy/ENV_FILE.local
*.env.local
# dependencies
/node_modules
/.pnp
.pnp.*
.yarn/*
!.yarn/patches
!.yarn/plugins
!.yarn/releases
!.yarn/versions
# testing
/coverage
# next.js
/.next/
/out/
# capacitor copied web assets + machine-specific android files
/android/app/src/main/assets/public
/android/local.properties
/android/gradle-mirror.init.gradle
# production
/build
# built mobile artifacts (APK/AAB) + release signing secrets
/dist
/android/keystore.properties
*.jks
*.keystore
# misc
.DS_Store
*.pem
# debug
npm-debug.log*
yarn-debug.log*
yarn-error.log*
.pnpm-debug.log*
# env files (can opt-in for committing if needed)
.env*
!.env.example
# vercel
.vercel
# typescript
*.tsbuildinfo
next-env.d.ts
# .NET (server/)
[Bb]in/
[Oo]bj/
*.user
*.db
*.db-shm
*.db-wal
# store screenshot artifacts
/scripts/shots/
/store-assets/
/scripts/promo/