test: verify clean production bootstrap

This commit is contained in:
ik
2026-09-06 14:34:05 +07:00
parent 66fb1625da
commit 0f075469c8
9 changed files with 90 additions and 16 deletions
+10 -12
View File
@@ -2,7 +2,7 @@
Этот файл — рабочий источник правды по развитию проекта. После завершения задачи её чекбокс меняется с `[ ]` на `[x]`, рядом добавляется ссылка на коммит или короткое подтверждение проверки. Новые задачи добавляются в соответствующий этап, а не хранятся только в переписке.
Последняя сверка плана со спецификацией, кодом и UI/UX-аудитом: 5 сентября 2026 года.
Последняя сверка плана со спецификацией, кодом и UI/UX-аудитом: 6 сентября 2026 года.
Обозначения:
@@ -59,7 +59,7 @@
- [x] Добавить health/readiness-проверки PostgreSQL, MinIO, API и импорта; отразить их в Compose (`/health` без зависимостей, `/ready` с компонентами и режимом обязательного импорта).
- [x] Добавить структурированные JSON-логи без пользовательских секретов и персональных технических данных (whitelist полей, redaction, request ID; Uvicorn access-log отключён).
- [x] Добавить Gitea Actions CI: backend tests, Astro check/build, E2E и применение всех миграций на чистой PostgreSQL; сохранять логи Compose и Playwright-артефакты при падении (`.gitea/workflows/ci.yml`).
- [ ] Добавить отдельный тест полного bootstrap: пустые volumes → миграции → seed → readiness → основной E2E.
- [x] Добавить отдельный тест полного bootstrap: пустые production volumes → миграции `0010` → seed без демо-уловов → readiness → браузерная отправка и проверка moderation API (`deploy/test-production-bootstrap.sh`, 6 сентября 2026).
- [x] Сделать seed устойчивым к частично заполненной БД: справочники досеиваются независимо, демо-уловы идемпотентны и принудительно отключены в production; повторный/частичный запуск покрыт конфигурационными и интеграционными проверками.
- [ ] Проверить списочные API по требованию раздела 12: пагинация, предсказуемая сортировка и валидация фильтров для справочников, импортов, модерации и внешнего staging.
- [ ] Проверить необходимые индексы PostgreSQL и планы запросов для activity, модерации, дедупликации и очистки rate limit; зафиксировать допустимый бюджет запросов пилота.
@@ -79,7 +79,7 @@
- [ ] Добавить smoke-проверку административной очереди внешних источников на desktop/mobile без публикации реальных записей.
- [ ] Обновить README: архитектура, все переменные окружения, импорт, модерация, backup/restore, эксплуатация логов и известные ограничения.
- [ ] Выбрать лицензию кода и политику использования данных.
- [ ] Завершить production-профиль для `rf4spotter.ru`: Compose, Caddy/TLS, закрытые внутренние сервисы, CORS, resource limits, fail-fast секреты, backup/restore и runbook добавлены; остаются полный bootstrap и проверка на целевом сервере.
- [ ] Завершить production-профиль для `rf4spotter.ru`: Compose, Caddy/TLS, закрытые внутренние сервисы, CORS, resource limits, fail-fast секреты, backup/restore, runbook и полный bootstrap готовы; остаётся проверка DNS/TLS на целевом сервере.
- [ ] Заменить демонстрационные секреты и определить целевое размещение перед внешней публикацией.
## Источники данных и согласование
@@ -115,17 +115,15 @@
## Ближайший рабочий пакет
Технические health/readiness и безопасные логи готовы. Следующие пункты выполняются строго по одному:
Технический production-контур, health/readiness, backup/restore и безопасные логи готовы. Следующие пункты выполняются строго по одному:
1. защита официального импорта от конкурентных запусков;
2. полный bootstrap-тест и исправление seed для частично заполненной БД;
3. security-аудит admin/CORS/headers/secrets и повторной загрузки скриншота;
4. backup/restore PostgreSQL и MinIO с реальной проверкой восстановления;
5. пагинация/сортировка списочных API и индексы PostgreSQL;
6. UI/UX-пакет A: единая шкала активности и числительные;
7. UI/UX-пакеты B–D: мобильная главная, форма и рекорды;
8. accessibility/admin safety и Lighthouse;
9. production-профиль и финальное обновление README.
2. пагинация/сортировка списочных API и индексы PostgreSQL;
3. политика хранения и автоматическая очистка персональных/staging данных;
4. UI/UX-пакеты B–D: мобильная главная, форма и рекорды;
5. accessibility/admin safety и Lighthouse;
6. мониторинг, DNS/TLS и проверка production-профиля на целевом сервере;
7. финальное обновление README, лицензия кода и политика данных.
После каждого пункта необходимо: