Commit graph

5 commits

Author SHA1 Message Date
lekss361
496f18e16d feat(tradein): аккаунт praktika + лимит 15 оценок/мес, чистка брендинга PRINZIP в UI
Account quota (server-side, по X-Authenticated-User):
- новая таблица account_estimate_usage (миграция 076, идемпотентная)
- app/services/account_quota.py: 15 успешных оценок в календарный месяц на аккаунт
- enforcement в POST /estimate (429 при исчерпании) + GET /quota
- admin и kopylov — без лимита; нет заголовка (dev) → fail-open
- frontend: useQuota hook, счётчик «осталось N из 15», блок формы + баннер
  «Свяжитесь с Артёмом Копыловым» при исчерпании

Account praktika:
- caddy/users.caddy.snippet + auth/roles.yaml (роль pilot)

Брендинг PRINZIP убран только из UI (футер + css-коммент); таблица brands,
PDF white-label и скрейпер Яндекса (реальный застройщик PRINZIP) не тронуты.
2026-05-29 01:00:24 +03:00
252bc2de76 chore(security): sync admin hash в users.caddy.snippet (#588)
All checks were successful
Deploy / changes (push) Successful in 5s
Deploy / build-backend (push) Successful in 29s
Deploy / build-worker (push) Successful in 29s
Deploy / build-frontend (push) Successful in 34s
Deploy / deploy (push) Successful in 56s
2026-05-26 08:29:25 +00:00
c08e4d7811 feat(rbac): pilot scope → только /trade-in/** (#587)
All checks were successful
Deploy Trade-In / changes (push) Successful in 6s
Deploy / changes (push) Successful in 5s
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / build-backend (push) Successful in 26s
Deploy / build-backend (push) Successful in 28s
Deploy / build-worker (push) Successful in 28s
Deploy / build-frontend (push) Successful in 27s
Deploy Trade-In / deploy (push) Successful in 36s
Deploy / deploy (push) Successful in 55s
Decision 2026-05-26: pilot не видит landing/analytics/site-finder/concept, только Trade-In.
2026-05-26 07:40:44 +00:00
de1652a6d8 feat(security): добавить юзера kopylov в basic_auth gate (#433) 2026-05-23 09:07:50 +00:00
cc2d148967 feat(security): закрыть gendsgn.ru basic_auth gate (multi-user, 11 users) (#426)
All checks were successful
Deploy / changes (push) Successful in 5s
Deploy / build-worker (push) Successful in 30s
Deploy / build-frontend (push) Successful in 28s
Deploy / build-backend (push) Successful in 31s
Deploy / deploy (push) Successful in 53s
Pilot demo 28.05.2026: closed gendsgn.ru/* (включая trade-in/) basic_auth gate. /health и /preview/* остаются public через route { } wrapper (Caddy 2.x directive ordering fix).

11 users (admin + user1..user10), bcrypt cost=14, snippet в git (audit trail). Scripts: scripts/auth/{add,remove,list}_user.sh.

Fixup PR #426 (route{} wrap + log rotation + base64 busybox-compat + runbook audit log fix).
2026-05-23 08:16:10 +00:00