docs(sprint1): чек-лист прогресса стабилизации
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
parent
6098c03e1a
commit
a15100f3bc
33
docs/sprint1-progress.md
Normal file
33
docs/sprint1-progress.md
Normal file
|
|
@ -0,0 +1,33 @@
|
||||||
|
# Спринт 1 — стабилизация (P0 код/инфра)
|
||||||
|
|
||||||
|
Автономная работа. После каждого пункта: `dotnet build` (SDK 8.0.126), релевантные тесты,
|
||||||
|
коммит порцией, отметка `[x]` здесь, коммит прогресса.
|
||||||
|
|
||||||
|
> Сборка: POS-проект (`food-market.pos`, net8.0-windows) на Linux не собирается — это
|
||||||
|
> ожидаемо (нужен Windows SDK). Эталон сборки — `dotnet build src/food-market.api/food-market.api.csproj`
|
||||||
|
> + solution-сборка тестовых проектов.
|
||||||
|
|
||||||
|
## Чек-лист
|
||||||
|
|
||||||
|
1. [ ] **P0-3 Rate-limit** — `Microsoft.AspNetCore.RateLimiting` (sliding window) на
|
||||||
|
`/connect/token` и `/api/auth/signup`. 5/мин/IP, 20/час/IP. Тест: 6-я попытка за минуту → 429.
|
||||||
|
2. [ ] **P0-4 Health checks** — `/health/live` (alive) + `/health/ready` (DB ping + миграции
|
||||||
|
применены). docker-compose healthcheck → `/health/ready`.
|
||||||
|
3. [ ] **P0-5 Permission-based authz** — `PermissionHandler` + `[RequiresPermission("...")]`
|
||||||
|
читающий флаги `RolePermissions`. Заменить `[Authorize(Roles=...)]` в каталоге/документах.
|
||||||
|
E2E: кастомная роль без `ProductsEdit` → 403 на PUT товара.
|
||||||
|
4. [ ] **P0-1 OpenIddict prod-ключи** — signing+encryption сертификаты из пути в конфиге,
|
||||||
|
persistent self-signed если файла нет. Dev-поведение не ломать. Документировать.
|
||||||
|
5. [ ] **P0-6 Авто-бэкап** — `deploy/food-market-backup.service` + `.timer`, скрипт
|
||||||
|
backup+ротация 30 дней, `docs/backup-restore.md`. Только артефакты в репо.
|
||||||
|
6. [ ] **P0-8** — `deploy/.env.example` + `docs/secrets.md`.
|
||||||
|
7. [ ] **P0-9** — `docs/release-checklist.md`.
|
||||||
|
8. [ ] **P1-20 Unit-тесты** — `tests/food-market.UnitTests`: `StockService.ApplyMovement`,
|
||||||
|
расчёт Cost в `SuppliesController.Post`, валидация платежа `RetailSalesController.Post`,
|
||||||
|
multi-tenant query filter.
|
||||||
|
9. [ ] **P1-21 Integration-тесты** — Testcontainers.PostgreSql + WebApplicationFactory:
|
||||||
|
signup-flow, supply post→unpost, retail overselling, tenant isolation A vs B, permission-проверки.
|
||||||
|
|
||||||
|
## Лог
|
||||||
|
|
||||||
|
(заполняется по ходу)
|
||||||
Loading…
Reference in a new issue