diff --git a/README.md b/README.md index 547a09d..983d607 100644 --- a/README.md +++ b/README.md @@ -93,6 +93,7 @@ push می‌کنه ← Grafana از Loki می‌خونه. جزئیاتِ بیش - بین اپ‌ها به‌جای FK واقعی از ارجاع سبک (`user_id`, `object_id` + `label`) استفاده شده تا هر اپ در آینده قابل جدا شدن باشد. - `POST /api/ai/ask` فعلاً پاسخ stub برمی‌گرداند؛ محل اتصال مدل واقعی در `ai_tutor/views.py` (تابع `generate_tutor_answer`) مشخص شده. - `DEV_MASTER_OTP` (کد `0000`) فقط برای تست در توسعه است — **پیش از دیپلوی پروداکشن باید حذف یا به `DEBUG` مقیّد شود.** +- **لاگِ ساختاریافته**: همه‌ی درخواست‌های `/api/` به‌صورتِ JSON لاگ می‌شن (متد/مسیر/وضعیت/مدت/کاربر، بدونِ بدنه/هدر/سکرت)؛ قابلِ مشاهده و جست‌وجو در Grafana (بخشِ Docker بالا). ## قبل از دیپلوی پروداکشن @@ -100,8 +101,10 @@ push می‌کنه ← Grafana از Loki می‌خونه. جزئیاتِ بیش `DEBUG` روی `False` است) - [x] `DEV_MASTER_OTP` و برگردوندنِ `devOtp` توی پاسخ، فقط وقتی `DEBUG=True` فعالن؛ در پروداکشن غیرفعالن -- [x] rate limit (`ScopedRateThrottle`) روی `auth/otp/request` (۵/ساعت) و - `auth/login` (۱۰/ساعت) اضافه شد +- [x] rate limit (throttle) روی endpointهای احرازهویت و بقیه‌ی endpointهای + حساسِ پروژه (پرداخت، خرید اشتراک، تخفیف، AI، محتوا، خانواده، + پشتیبانی، affiliate، …) پیاده‌سازی شده؛ برای کاربرهای مهمان بر + اساسِ IP کلید می‌خوره تا چرخشِ حساب مهمان دورش نزنه - [x] IDOR در `GET /api/home` و `GET /api/progress/nodes` اصلاح شد: قبلاً بدون هیچ توکنی، با فرستادنِ `userId` دلخواه می‌شد آمار/پیشرفتِ هر کاربرِ دیگه‌ای رو خوند؛ حالا auth اجباریه و فقط خودِ کاربر یا والدِ