Технический долг Среза 1: dev-seed под DEBUG, /docs и CORS в проде, / и 405, .dockerignore, аудит входа, дата перевода по МСК, seed не возвращает снятые права #9

Closed
opened 2026-10-05 12:10:20 +03:00 by aep · 0 comments
Owner

Bounded-задача параллельно Срезу 2a (решение владельца 05.10.2026). Закрывает OQ-60, OQ-61, OQ-62 (редирект //), OQ-64, OQ-65, OQ-66, OQ-82 и два follow-up из #8 (UTC→МСК для effective_date, повторный seed возвращает снятые права).

Дизайн (согласован в чате):

  1. seed --dev работает только при DEBUG=true, иначе отказ с текстом.
  2. /docs, /openapi.json, /redoc выключены при DEBUG=false; CORS при DEBUG=false — из настройки CORS_ORIGINS (пусто = запрет кросс-доменных), в dev *.
  3. GET / отдаёт SPA без редиректа на //; неверный метод на существующий маршрут API — 405, несуществующий путь API — 404.
  4. .dockerignore: api/.env.*.
  5. Аудит LOGIN (первая выдача dev-токена; первый успешный запрос пользователя после старта процесса) и LOGIN_FAILED (401/403 аутентификации) в audit_event, раздел SESSION.
  6. «Сегодня» для effective_date — дата в Europe/Moscow.
  7. Seed матрицы role_permission выполняется только когда таблица пуста; иначе пропускается с сообщением (снятые администратором права не возвращаются).

Не входит: уникальность email без регистра (OQ-59 — DBML v5.15 в 2c).

Bounded-задача параллельно Срезу 2a (решение владельца 05.10.2026). Закрывает OQ-60, OQ-61, OQ-62 (редирект `//`), OQ-64, OQ-65, OQ-66, OQ-82 и два follow-up из #8 (UTC→МСК для `effective_date`, повторный seed возвращает снятые права). Дизайн (согласован в чате): 1. `seed --dev` работает только при `DEBUG=true`, иначе отказ с текстом. 2. `/docs`, `/openapi.json`, `/redoc` выключены при `DEBUG=false`; CORS при `DEBUG=false` — из настройки `CORS_ORIGINS` (пусто = запрет кросс-доменных), в dev `*`. 3. `GET /` отдаёт SPA без редиректа на `//`; неверный метод на существующий маршрут API — 405, несуществующий путь API — 404. 4. `.dockerignore`: `api/.env.*`. 5. Аудит `LOGIN` (первая выдача dev-токена; первый успешный запрос пользователя после старта процесса) и `LOGIN_FAILED` (401/403 аутентификации) в `audit_event`, раздел `SESSION`. 6. «Сегодня» для `effective_date` — дата в `Europe/Moscow`. 7. Seed матрицы `role_permission` выполняется только когда таблица пуста; иначе пропускается с сообщением (снятые администратором права не возвращаются). Не входит: уникальность email без регистра (OQ-59 — DBML v5.15 в 2c).
aep closed this issue 2026-10-05 19:18:45 +03:00
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: RSHB/arm-core#9
No description provided.