Зафиксированы архитектурные решения миграции: - UUID-трансформация БД через _transform_database_yaml() (вместо strip_databases) - Cross-filter patching через IdMappingService + mapping_service в dry-run - Password injection flow: await_input → wait_for_input → retry import - Разделение dry-run (read-only) и execute (запись) - Парсинг имён YAML-файлов БД с точками в имени Задокументированы исправления production-багов 2026-07-16: - add_log_callback в await_input (менеджер управляет сам) - mapping_service=None в dry-run (лишал cross-filter patching) - strip_databases=True → каскадный сбой 1010
5.6 KiB
5.6 KiB
Реестр архитектурных решений
ADR фиксирует принятое и проверяемое архитектурное решение. Это не план работ и
не каталог желаемой архитектуры: обещание, которое ещё не реализовано, должно
иметь статус PROPOSED или быть вынесено в spec.
Статусы
| Статус | Значение |
|---|---|
ACCEPTED |
Решение действует и соответствует реализации. |
PARTIALLY IMPLEMENTED |
Направление принято, но в репозитории есть существенная незавершённая часть. |
SUPERSEDED |
Решение заменено указанным ADR; исторический файл не меняет действующую архитектуру. |
REJECTED |
Альтернатива запрещена; это не описание действующей реализации. |
PROPOSED |
Решение обсуждается и не должно считаться обязательным. |
Актуальный реестр
| ADR | Статус | Проверенное содержание |
|---|---|---|
| 0001 | PARTIALLY IMPLEMENTED |
Базовое разделение backend/frontend/docs/specs сохранено; точная схема файла устарела. |
| 0002 | ACCEPTED |
Семантические skills и контракты в исходном коде остаются правилом репозитория. |
| 0003 | ACCEPTED |
Сервис остаётся внешним оркестратором Superset. |
| 0004 | SUPERSEDED |
Заменён ADR-0016: исходный subprocess/TOML-контракт не был реализован. |
| 0005 | ACCEPTED |
Локальная аутентификация, RBAC и ADFS JIT provisioning реализованы. |
| 0006 | ACCEPTED |
Svelte 5, Screen Models и UI atoms применяются в frontend. |
| 0007 | REJECTED |
Комбинация fromStore с несколькими $derived запрещена. |
| 0008 | ACCEPTED |
Декораторный registry реализован в backend/src/api/routes/assistant/_tool_registry.py. |
| 0009 | ACCEPTED |
Управление корпоративными CA реализовано в Docker и HTTP-клиентах. |
| 0010 | ACCEPTED |
Порог декомпозиции Screen Model остаётся архитектурным ограничением. |
| 0011 | PARTIALLY IMPLEMENTED |
Async Task Manager, EventBus и bounded executors внедрены; утверждение о полном отказе от sync-кода не подтверждено. |
| 0012 | ACCEPTED |
Интеграционные Superset-тесты используют Postgres, init/web контейнеры и superset_config.py. |
| 0013 | ACCEPTED |
scripts/coverage-summary.sh существует и собирает сводный отчёт. |
| 0014 | SUPERSEDED |
Заменён ADR-0015. |
| 0015 | ACCEPTED |
Agent и shared utilities выделены в отдельные installable packages. |
| 0016 | ACCEPTED |
Плагины загружаются в процессе из backend/src/plugins через PluginBase. |
| 0017 | ACCEPTED |
Agent-centric traces achieved by editing call sites (meaningful intents, removal of per-request noise) rather than only adding complexity to the logger. |
| 0018 | REJECTED |
Dataset Review is removed from the active product; specs/027-dataset-llm-orchestration/ is retained only as archived history. |
| 0019 | ACCEPTED |
UUID-трансформация БД (не strip_databases), cross-filter patching через IdMappingService, password injection flow (await_input→wait_for_input→retry), разделение dry-run/execute, парсинг имён YAML-файлов БД. |
Правила сопровождения
- Новый ADR добавляется только для решения, которое меняет границу модулей, runtime/topology, безопасность, данные или постоянный способ разработки.
- Каждый ADR содержит контекст, решение, последствия и отклонённые альтернативы.
- При изменении решения создаётся новый ADR со ссылкой на заменённый, а прежний
получает
SUPERSEDED; историю не переписывают. - В ADR указываются существующие пути и проверяемые факты. Версии, пороги и команды обновляются вместе с кодом либо заменяются ссылкой на источник истины.