feat: complete Epic 1 production foundation
This commit is contained in:
@@ -4,10 +4,15 @@
|
||||
|
||||
## Перед запуском
|
||||
|
||||
- Сгенерирован сильный `CRANK_MASTER_KEY`.
|
||||
- Сгенерирован сильный `CRANK_MASTER_KEY` длиной не менее 32 bytes.
|
||||
- Зафиксирована процедура хранения и восстановления `CRANK_MASTER_KEY` вне
|
||||
product backup set; есть защищённый opaque `backup_ref` для rotation.
|
||||
- Сгенерирован сильный `CRANK_SESSION_SECRET`.
|
||||
- Сгенерирован сильный `CRANK_PASSWORD_PEPPER`.
|
||||
- Задан надежный `CRANK_BOOTSTRAP_ADMIN_PASSWORD`.
|
||||
- Подготовлена локальная процедура `crank-migrate admin-auth bootstrap-create`;
|
||||
static startup-пароль администратора не используется в production.
|
||||
- Подготовлены защищённые local files для `crank-migrate admin-auth recover`:
|
||||
новый Admin password, текущий `CRANK_PASSWORD_PEPPER` и current master key.
|
||||
- `CRANK_BASE_URL` указывает на публичный HTTPS URL.
|
||||
- `CRANK_ENVIRONMENT=production`.
|
||||
- Если используется внешний приёмник критических ошибок, задан корректный
|
||||
@@ -24,10 +29,13 @@
|
||||
- `curl /health` для `mcp-server` возвращает `ok`.
|
||||
- `curl /ready` для `admin-api` и `mcp-server` возвращает `ready`.
|
||||
- UI открывается по публичному домену.
|
||||
- Вход под bootstrap admin работает.
|
||||
- Создан первый admin через одноразовый bootstrap token, повтор token
|
||||
отклоняется, обычный login работает.
|
||||
- Demo seed создал Frankfurter-пример, если `CRANK_DEMO_SEED=true`.
|
||||
- Тест операции `frankfurter_latest_rate` проходит.
|
||||
- MCP-клиент видит инструмент через агента `currency-rates`.
|
||||
- `admin-api` и `mcp-server` используют один active master-key identity; запуск
|
||||
с неверным `CRANK_MASTER_KEY` проверен как fail-closed на staging.
|
||||
- Каждая непустая строка stdout `admin-api` и `mcp-server` является
|
||||
корректным JSON и содержит `service`, `environment` и `event`.
|
||||
- При включённом канале контрольная критическая ошибка появляется у приёмника
|
||||
@@ -41,6 +49,9 @@
|
||||
- Удаляйте или отзывайте ключи, которые больше не используются.
|
||||
- Используйте secrets/auth profiles для токенов внешних API.
|
||||
- Не вставляйте реальные токены в статические заголовки операции.
|
||||
- Не меняйте `CRANK_MASTER_KEY` напрямую. Для смены ключа выполняйте
|
||||
`crank-migrate master-key preflight → rotate → verify → promote`, затем
|
||||
перезапускайте secret-using процессы с target key.
|
||||
|
||||
## Эксплуатация
|
||||
|
||||
|
||||
Reference in New Issue
Block a user