Дмитрий
2a6b476d6d
fix(billing): единый источник runway — дашборд = биллинг (F3)
...
Дашборд считал «хватит на дни» от legacy balance_leads (≈0 для рублёвых тенантов)
и расходился с биллингом. Введён общий RunwayCalculator; оба контроллера считают
runway от affordable leads (рубли→лиды по тарифу, BalanceToLeadsConverter). Фронт
DashboardView больше не режет число дней до 7 сегментов полосы. TDD: 4 Pest нового
сервиса + обновлён DashboardSummary + 1 vitest.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-17 14:07:22 +03:00
Дмитрий
2a34ee880a
fix(security): закрыть открытые эндпоинты + SSRF-гард webhook перед go-live
...
- /api/dashboard/summary, /api/managers, /api/lead-statuses: были без auth
(tenant_id параметром) → auth:sanctum (+tenant); tenant_id из authed-user,
не из параметра — закрывает кросс-tenant утечку KPI/списка пользователей
- ManagerController: явный where(tenant_id) поверх RLS (BYPASSRLS-роли/тесты)
- WebhookUrlGuard + webhooks/test: SSRF-блок private/reserved/loopback IP
(cloud-metadata 169.254.169.254 и пр.); update()/delivery — follow-up
- TDD: +EndpointAuthHardeningTest(5) +WebhookSsrfGuardTest(10); обновлены
Dashboard/Lookups/LeadStatuses тесты под auth
- регрессия tests/Feature 960/964 (2 фейла pre-existing: Vite-manifest env +
RouteSupplierLeadJobBilling idempotency — оба фейлят и на чистом base)
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-21 19:15:05 +03:00
Дмитрий
07d73870ba
refactor(projects): remove archive feature, drop archived_at column (schema v8.27)
2026-05-21 08:24:25 +03:00
Дмитрий
b4138bbc82
feat(deals): sweep 14->5 funnel slugs — controllers, mocks, stories, tests
2026-05-18 03:42:41 +03:00
Дмитрий
283db070e1
fix(dashboard): activity-бакеты в MSK + deltaBlock для leads + test hardening (J3 review fixup)
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-16 11:41:09 +03:00
Дмитрий
7705f022c1
fix(dashboard): runway_days опирается на фикс. 7д-окно, не на range (J3 review fixup)
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-16 11:41:09 +03:00
Дмитрий
e64eb4dbe0
feat(dashboard): GET /api/dashboard/summary — агрегат KPI/баланса/активности (audit J3)
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-16 11:41:08 +03:00