Sadmin
|
d5a270f3af
|
B22: прикладное логирование vector.* + администрирование в доках (по образцу РВС)
- backend/logging_setup.py: setup_logging() (stdout INFO + файл /tmp/vector/vector.log,
ротация 5×2 МБ, VectorLOGLEVEL/VectorLOGFILE/VectorLOGDIR), get_logger('vector.*')
- события: vector.analyze (матрасчёт с длительностью), vector.auth (login_ok/failed/
lockout), vector.audit (каждая запись), vector.contour (ok/failed/rejected),
vector.operations (operation_complete), vector.geocode (успех/timeout/ошибка)
- существующие логгеры переведены в namespace vector.* (geo, geo.osm, rules, water, admin)
- README §13а: таблица наблюдаемых событий + правила (без ПДн/секретов)
- SETUP_GUIDE: §15 RPO/RTO + backup≠restore, §16 grep по vector.*, §17 диагностика
по цепочкам (БД, 500, fallback-зоны, вход), §17а чек-лист передачи проекта
- DEPLOY.md: вместо устаревшего дубля — ссылка на актуальные доки + шпаргалка стенда
- тесты: 239 passed
|
2026-09-25 09:38:39 +03:00 |
|
Sadmin
|
628a1d4536
|
E1 (B21): RBAC-ядро — подразделения МЧС, роли/права, сессии, auth-журнал
- Модель данных: mchs_units (РЦУ РЧС → ОУМЧС → Г(Р)ОЧС, kind+parent_id),
users +8 колонок (unit_id, position, status, lockout, must_change_password,
created_by, updated_at), roles/permissions/role_permissions/user_roles
(M2M матрица), sessions (server-side, token_hash=sha256(secret)),
auth_events, security_settings.
- Alembic 007_e1_rbac: схема + сид 4 ролей / 9 прав / матрицы (9/6/3/1) /
10 настроек безопасности; downgrade → upgrade идемпотентен (проверено на
pg16-контейнере, сид не дублируется).
- auth.py: login с lockout (5 неудач → 15 мин) и auth-журналом; server-side
сессии (JWT несёт secret, в БД — sha256-хэш; max_concurrent_sessions);
/me с permissions (user_roles → role_permissions, fallback legacy-роль);
/change-password (мин. длина из settings, отзыв сессий); /logout.
require_permission(code) — атомарные права (fallback legacy-роли).
- Обратная совместимость: require_roles не тронут, старые JWT без sid
продолжают работать.
- Тесты E1 (9): login/logout/lockout/me-права/смена пароля/журнал.
SQLite in-memory (StaticPool + компиляторы UUID/JSONB/ARRAY).
202 passed, 5 skipped.
|
2026-09-09 21:11:38 +03:00 |
|