1d726a90db
test / test (push) Has been cancelled
Clarify that the global administrator sets which domains a domain-admin can manage. Co-authored-by: Cursor <cursoragent@cursor.com>
101 lines
6.0 KiB
Markdown
101 lines
6.0 KiB
Markdown
# Дорожная карта: открытая работа (1.x+)
|
|
|
|
**Статус:** внутренний трекер расширений границ v1.0 после явного согласования
|
|
([product.md](product.md), [.cursor/rules/agent-rules.mdc](../.cursor/rules/agent-rules.mdc)).
|
|
Детальный дизайн — в [plans/](plans/). Пункты со статусом `кандидат` требуют OK
|
|
до кодирования.
|
|
|
|
**Версионирование:** по умолчанию SemVer MINOR в линии **1.x+** (`1.1.0`…), если
|
|
дефолты и миграции совместимы с `1.0.0`. Major `2.x` — только при явном breaking.
|
|
|
|
**Процесс:** [development.md](development.md). История закрытых фаз — в `git log`
|
|
и [CHANGELOG.md](../CHANGELOG.md).
|
|
|
|
---
|
|
|
|
## Индекс
|
|
|
|
| ID | Тема | Статус | План |
|
|
|---|---|---|---|
|
|
| web-split | Разбиение `internal/web` | **согласовано** | [plans/web-split.md](plans/web-split.md) |
|
|
| domain-admin | Роль администратора домена | **согласовано** | [plans/domain-admin.md](plans/domain-admin.md) |
|
|
| inbound-relay | Входящий релей (backup-MX / пересылка) | **согласовано** | [plans/inbound-relay.md](plans/inbound-relay.md) |
|
|
| contributing | `CONTRIBUTING.md` | кандидат | — |
|
|
|
|
**Рекомендуемый порядок** (не обязателен): **web-split → domain-admin →
|
|
inbound-relay** — сначала разрез пакета, затем сквозная авторизация роли, затем
|
|
новый вертикальный срез входящего релея. Отклонение допустимо; жёстких фаз нет.
|
|
|
|
После `/clear` — пункт со статусом `согласовано` или `в работе`, затем чеклист в
|
|
linked plan.
|
|
|
|
---
|
|
|
|
## inbound-relay
|
|
|
|
**Цель:** опциональный приём почты на порт 25 для явно настроенных доменов и
|
|
пересылка на upstream (backup-MX / relay-forwarder). По умолчанию выключено
|
|
(`INBOUND_RELAY_ENABLE=false`); исходящий тракт без флага не меняется.
|
|
|
|
**Граница:** расширение v1.0 — [product.md](product.md) исключает приём входящей
|
|
почты и mailbox'ы. Это relay/forward, не IMAP/POP3/webmail; антиспам-движок — вне
|
|
образа, только точка подключения.
|
|
|
|
**Готово, когда:** см. критерии в [plans/inbound-relay.md](plans/inbound-relay.md).
|
|
|
|
**Зависимости / риски:** готовый исходящий тракт; open relay/backscatter;
|
|
расширение поверхности атаки (порт 25 на приём). Модель: Opus.
|
|
**Порядок:** рекомендуется после [web-split](plans/web-split.md) и
|
|
[domain-admin](plans/domain-admin.md).
|
|
**Версия:** целевой bump `1.x`; возможен `2.x` — уточнить по итогам реализации.
|
|
|
|
---
|
|
|
|
## domain-admin
|
|
|
|
**Цель:** роль с доступом к одному или нескольким назначенным доменам
|
|
(перечень задаёт глобальный администратор) — приложения, DKIM/DNS, журнал
|
|
отправки по каждому из них; без глобальных операций (добавление доменов, полный
|
|
бэкап, очередь, `mail.log`).
|
|
|
|
**Граница:** расширение v1.0 — [product.md](product.md) фиксирует одного
|
|
администратора. Не вторая копия всевластного админа, а ограниченный доступ к
|
|
назначенным доменам (одному или нескольким).
|
|
|
|
**Готово, когда:** см. [plans/domain-admin.md](plans/domain-admin.md).
|
|
|
|
**Зависимости / риски:** таблица пользователей, роль в сессии, авторизация в
|
|
каждом хендлере, setup/бэкап. **Порядок:** рекомендуется после
|
|
[web-split](plans/web-split.md), до [inbound-relay](plans/inbound-relay.md).
|
|
**Версия:** `1.x` MINOR при совместимой миграции текущего админа в глобального.
|
|
|
|
---
|
|
|
|
## web-split
|
|
|
|
**Цель:** осознанно разрезать `internal/web` (или зафиксировать плоский пакет)
|
|
перед ростом от inbound-relay и domain-admin.
|
|
|
|
**Граница:** внутренний рефакторинг; поведение панели для оператора не меняется.
|
|
|
|
**Готово, когда:** пакет разрезан по выбранной схеме или зафиксировано, что
|
|
остаётся плоским — см. [plans/web-split.md](plans/web-split.md).
|
|
|
|
**Зависимости / риски:** экспорт пакетно-приватного API. **Порядок:** рекомендуется
|
|
**первым** среди согласованных фич (до domain-admin и inbound-relay).
|
|
**Версия:** `1.x`, сам по себе breaking не тянет.
|
|
|
|
---
|
|
|
|
## contributing
|
|
|
|
**Цель:** `CONTRIBUTING.md` в корне — dev loop, проверки перед PR, протокол
|
|
коммитов; [development.md](development.md) ссылается, не дублирует.
|
|
|
|
**Граница:** документация процесса; уместна при внешнем потоке PR.
|
|
|
|
**Готово, когда:** файл в корне; development.md не дублирует его.
|
|
|
|
**Зависимости / риски:** пока один разработчик и нет PR — низкий приоритет.
|
|
**Версия:** без значения для semver.
|