record the 2026-09-25 SMS deploy: 0580aec is live, Kavenegar on, test user 17 to purge
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
27
CLAUDE.md
27
CLAUDE.md
@@ -294,9 +294,12 @@ reliably pull the final answer out of a solution and produced ~40% broken output
|
||||
- Grades 8–12 are fully covered: every node holds a four-question quiz. 39 of the 145
|
||||
nodes in grades 3/6/7 (the other team's books) still hold fewer than four; none is
|
||||
empty, so every node still plays.
|
||||
- Kavenegar is unconfigured, so `POST /api/auth/otp/request` returns 503. With `DEBUG=0`
|
||||
there is no way to log into the API without creating an `OTPCode` row in the admin
|
||||
(`/admin/accounts/otpcode/add/`) — this is how to hand a tester a working login.
|
||||
- Kavenegar is live on the server since 2026-09-25 (`/api/health` → `sms: true`), so every
|
||||
OTP request costs real credit. Real SMS *delivery* to a phone was not yet observed by us;
|
||||
sending is plain `sms/send` from the account's default line, not a `verify/lookup`
|
||||
template, so numbers that block promotional SMS may never get the code. An `OTPCode`
|
||||
row made in the admin (`/admin/accounts/otpcode/add/`) still hands a tester a login
|
||||
without SMS.
|
||||
|
||||
## The server: read this before running anything on it
|
||||
|
||||
@@ -396,6 +399,24 @@ preferred setup, because there is then no key to leak. **Never let the server ru
|
||||
`django-insecure-…` fallback from `config/settings.py`: that string is committed here, so
|
||||
anyone who can read this repo can forge a token for any user.**
|
||||
|
||||
## وضعیت ۲۰۲۶-۰۹-۲۵ (عصر) — پیامکِ واقعی روشن شد
|
||||
|
||||
**روی سرور:** `0580aec` دیپلوی و سرویس واقعاً ریاستارت شد (۱۲:۳۲). `KAVENEGAR_API_KEY`
|
||||
در `.env` سرور و لوکال است (حسابِ Master، ~۳۲۶ هزار ریال اعتبار در آن روز). بکاپهای پیش از آن:
|
||||
`.deploy-backups/env-before-kavenegar-20260925-122959` و
|
||||
`db-before-otp-hardening-20260925-122959.sqlite3`.
|
||||
|
||||
- **از این به بعد هر درخواستِ OTP پول است.** برای همین: شماره به `09XXXXXXXXX` نرمال
|
||||
میشود و غیرِ موبایلِ ایران ۴۰۰ میگیرد؛ cooldown و سقفِ روزانهی هر شماره (۱۰) و سقفِ
|
||||
روزانهی کلِ سامانه (۳۰۰، ضدِ SMS pumping) در دیتابیس شمرده میشوند نه کشِ per-worker.
|
||||
جزئیات در بندِ ۱۷ِ `docs/security-before-production.md`، تستها در `accounts/tests_otp_limits.py`.
|
||||
- مسیرِ کاملِ کاربرِ تازه روی سرورِ زنده سبز شد، **بدونِ پیامکِ واقعی**: کد مستقیم در
|
||||
دیتابیس ساخته شد. کاربرِ تستیِ آن **کاربرِ ۱۷ با شمارهی `09000000001`** (نام «کاربر
|
||||
تست»، یک جزیره تمامشده) روی پروداکشن مانده و مثلِ دادهی دمو پیش از کاربرِ واقعی باید پاک شود.
|
||||
- رسیدنِ پیامک به یک گوشیِ واقعی را هنوز ما ندیدهایم؛ اولین تستِ سینیور همین است.
|
||||
- ⚠️ زیاد SSH زدن پشتِ سرِ هم یک بار «Permission denied» با رمزِ درست داد؛ با
|
||||
`ControlMaster` (سوکت در مسیرِ کوتاهِ `/tmp`، macOS سقفِ ۱۰۴ بایت دارد) یک اتصال باز کنید.
|
||||
|
||||
## وضعیت ۲۰۲۶-۰۹-۲۵ — این را اول بخوان
|
||||
|
||||
کیفیتِ دستیار و گیرِ نقشه (جزئیات و دلیلها در `docs/architecture.md`). **۵۷۹ تست سبز.**
|
||||
|
||||
Reference in New Issue
Block a user