feat(world): жизненный цикл передан Airflow

- Зачем:
  - Compose должен поднимать инфраструктуру, а Airflow — владеть прикладным миром.
- Что:
  - добавлены даги создания и пересоздания мира с явными состояниями позиции;
  - цели make переведены на REST API Airflow, старые одноразовые службы удалены;
  - добавлена ограниченная учётная запись ClickHouse для прикладного DDL.
- Проверка:
  - `make lint`, `make config-test`, `bash -n scripts/run-dag.sh infra/airflow/init.sh`;
  - `make lint` и `make typecheck` в `generator/`;
  - холодный `make up`, повторный `make up`, `make rebuild-storage` и сценарий оборванной очистки;
  - `make smoke`, `make check-clickhouse`, `make check-services`.
This commit is contained in:
ddadmin committed 2026-08-21 23:01:11 +03:00
1 parent 0340b060f2
commit fc5244cc67
14 files changed
+619 -338

No files matched your search

+10 -6
View File
@@ -4,23 +4,27 @@ GENERATOR_LIMIT ?=
GENERATOR_SPEED ?=
# Цели корня — про стенд; проверки генератора — в `generator/Makefile`.
.PHONY: up down clean ps logs smoke check-clickhouse check-services config-test lint generate-batch generate-live
.PHONY: up down clean rebuild-storage ps logs smoke check-clickhouse check-services config-test lint generate-batch generate-live
# --- Жизнь стенда ---
# Второй шаг: `--wait` дожидается служб, а приём событий асинхронный — довод
# целиком в шапке скрипта.
# Compose дожидается инфраструктуры, Airflow — готового прикладного мира.
up:
$(COMPOSE) up --detach --build --wait --wait-timeout 600
COMPOSE_BIN="$(COMPOSE)" ./scripts/wait-for-world.sh
COMPOSE_BIN="$(COMPOSE)" ./scripts/ingest-starting-orders.sh
$(COMPOSE) up --detach --build --wait --wait-timeout 600 --remove-orphans
COMPOSE_BIN="$(COMPOSE)" ./scripts/run-dag.sh world_initialize
down:
$(COMPOSE) down --remove-orphans
# Полное удаление стенда, а не способ получить чистые данные перед проверкой.
# Граница операции и требование к обоснованию — в AGENTS.md.
clean:
$(COMPOSE) down --volumes --remove-orphans
# Возврат прикладного мира к началу без удаления инфраструктурных томов.
rebuild-storage:
COMPOSE_BIN="$(COMPOSE)" ./scripts/run-dag.sh world_recreate
ps:
$(COMPOSE) ps