Add docker admin bootstrap for clean release
This commit is contained in:
@@ -34,7 +34,8 @@
|
||||
- 1 enterprise release flow;
|
||||
- 1 TUI сценарий подготовки/проверки;
|
||||
- 6–9 новых/обновлённых модулей (+config_loader, filesystem_scanner, db_cleanup_executor);
|
||||
- документация и контракты в пределах feature-папки.
|
||||
- документация и контракты в пределах feature-папки;
|
||||
- runtime bootstrap администратора через переменные `.env.enterprise-clean` без hardcode секретов в образах.
|
||||
|
||||
## Constitution Check
|
||||
|
||||
@@ -167,7 +168,8 @@ frontend/
|
||||
|
||||
## Implementation Traceability & Final Notes
|
||||
|
||||
- Статус реализации: Phase 1–7 завершены (T001–T043).
|
||||
- Статус реализации: Phase 1–7 завершены (T001–T044).
|
||||
- Новое расширение (post-release hardening, 2026-03-13): добавлен scope на управляемый bootstrap администратора через `.env.enterprise-clean` и docker startup flow.
|
||||
- Ключевые подтверждения polish-фазы:
|
||||
- T039: smoke TUI сценария зафиксирован в [`quickstart.md`](./quickstart.md).
|
||||
- T040: контрактная проверка API подтверждена тестом [`backend/tests/api/routes/test_clean_release_api.py`](../../backend/tests/api/routes/test_clean_release_api.py).
|
||||
@@ -175,7 +177,30 @@ frontend/
|
||||
- T042: governance conflict по префиксу закрыт и задокументирован.
|
||||
- T043: добавлена итоговая traceability-нотация в текущем плане.
|
||||
|
||||
Итог: feature готова к финальному релизному циклу с обязательным CI gate (`COMPLIANT` only) и операционной доказательной базой для аудита.
|
||||
Итог: базовая feature готова к финальному релизному циклу с обязательным CI gate (`COMPLIANT` only) и операционной доказательной базой для аудита.
|
||||
|
||||
## Post-Release Hardening Addendum — Admin Bootstrap via `.env.enterprise-clean`
|
||||
|
||||
Цель addendum: убрать ручной шаг создания initial admin после доставки offline bundle и сделать это управляемой частью container startup.
|
||||
|
||||
Архитектурные решения:
|
||||
1. В `.env.enterprise-clean.example` добавить параметры:
|
||||
- `INITIAL_ADMIN_CREATE=false` (default-safe),
|
||||
- `INITIAL_ADMIN_USERNAME=admin`,
|
||||
- `INITIAL_ADMIN_PASSWORD=change-me`,
|
||||
- `INITIAL_ADMIN_EMAIL=` (optional).
|
||||
2. В backend image добавить entrypoint-скрипт:
|
||||
- запускает проверку флага `INITIAL_ADMIN_CREATE`,
|
||||
- при `true` вызывает существующий скрипт создания администратора,
|
||||
- обрабатывает idempotency (существующий пользователь => без ошибки, лог `already exists`).
|
||||
3. В `docker-compose.enterprise-clean.yml` прокинуть переменные bootstrap администратора только в `backend` service.
|
||||
4. В операционном runbook зафиксировать обязательную ротацию bootstrap-пароля после первого входа.
|
||||
5. В offline bundle manifest оставить ссылку на `.env.enterprise-clean.example` как source-of-truth для параметров запуска.
|
||||
|
||||
Нефункциональные ограничения:
|
||||
- Никаких default production секретов в Git.
|
||||
- Повторный restart контейнера не должен менять существующего admin.
|
||||
- Ошибка bootstrap не должна маскироваться: должна логироваться и приводить к fail-fast старта backend (чтобы оператор устранил причину до ввода в эксплуатацию).
|
||||
|
||||
## Complexity Tracking
|
||||
|
||||
|
||||
Reference in New Issue
Block a user