Отделить дату модельного мира от logical_date Airflow #111

Closed
opened 2026-08-20 19:11:11 +03:00 by ddmitry · 0 comments
Owner

Цель

Пульт мира должен явно показывать модельный день и не заставлять пользователя
принимать служебную logical_date Airflow за дату мира.

При ручной проверке #96 поле «Логическая дата» в форме запуска
world_next_day выглядело неизменным и значимым. Фактически это время ручного
запуска Airflow; DAG его не читает, а позицию мира берёт из world_position.

Сначала решить

  • какой минимальный интерфейс Airflow заранее сообщает, какой модельный день
    будет сыгран;
  • как объяснить или обойти стандартное поле logical_date, если скрыть его в
    форме Airflow нельзя;
  • где после запуска пользователь видит сыгранный день и новую позицию мира.

Существенную развилку провести через brainstorm-with-docs до реализации.

Критерии приёмки

  • Перед ручным запуском пользователь может определить следующий модельный день.
  • После запуска видно, какой модельный день был сыгран.
  • logical_date нигде не описана и не используется как дата модельного мира.
  • Форма и документация не требуют от пользователя вручную согласовывать две оси времени.
  • world_next_day, world_live_day и world_live сохраняют нынешнюю семантику позиции и повторов.

Границы

  • Не переносить источник истины с world_position в logical_date.
  • Не связывать ось мира с календарём или расписанием Airflow.
  • Не строить отдельный пользовательский интерфейс без доказанной необходимости.
  • Не менять генератор, формат событий или слепков заказов.

Сначала прочитать

  • dags/world_control.py;
  • docs/adr/0009-world-control.md;
  • раздел «Пульт мира» в README.md;
  • актуальную документацию Airflow 3 о ручных запусках и logical_date.

Проверка

  • ручной запуск world_next_day с параметром days=1;
  • ручной запуск world_live_day;
  • проверка world_position и дат в ods.event_v / ods.order_v после успешного запуска.
## Цель Пульт мира должен явно показывать модельный день и не заставлять пользователя принимать служебную `logical_date` Airflow за дату мира. При ручной проверке #96 поле «Логическая дата» в форме запуска `world_next_day` выглядело неизменным и значимым. Фактически это время ручного запуска Airflow; DAG его не читает, а позицию мира берёт из `world_position`. ## Сначала решить - какой минимальный интерфейс Airflow заранее сообщает, какой модельный день будет сыгран; - как объяснить или обойти стандартное поле `logical_date`, если скрыть его в форме Airflow нельзя; - где после запуска пользователь видит сыгранный день и новую позицию мира. Существенную развилку провести через `brainstorm-with-docs` до реализации. ## Критерии приёмки - [ ] Перед ручным запуском пользователь может определить следующий модельный день. - [ ] После запуска видно, какой модельный день был сыгран. - [ ] `logical_date` нигде не описана и не используется как дата модельного мира. - [ ] Форма и документация не требуют от пользователя вручную согласовывать две оси времени. - [ ] `world_next_day`, `world_live_day` и `world_live` сохраняют нынешнюю семантику позиции и повторов. ## Границы - Не переносить источник истины с `world_position` в `logical_date`. - Не связывать ось мира с календарём или расписанием Airflow. - Не строить отдельный пользовательский интерфейс без доказанной необходимости. - Не менять генератор, формат событий или слепков заказов. ## Сначала прочитать - `dags/world_control.py`; - `docs/adr/0009-world-control.md`; - раздел «Пульт мира» в `README.md`; - актуальную документацию Airflow 3 о ручных запусках и `logical_date`. ## Проверка - ручной запуск `world_next_day` с параметром `days=1`; - ручной запуск `world_live_day`; - проверка `world_position` и дат в `ods.event_v` / `ods.order_v` после успешного запуска.
ddmitry added the needs-triage label 2026-08-20 19:11:11 +03:00
ddmitry removed the needs-triage label 2026-08-28 12:47:23 +03:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: ddmitry/clickstream-data-platform#111