Files
transcriber/tasks/items/email-notification.md
T
av d2c85af80a tasks: целевая картина пересобрана — три цели, тринадцать задач, сдвинутые границы
- паспорт: сервис объявлен архивом с бессрочным хранением записей и текстов,
  машинная вычитка расшифровки внутри границ, приложение — основной вход;
  добавлены две границы: не файловое хранилище общего назначения и не биллинг;
- заведены цели upload-reliability, user-settings, usage-stats и тринадцать
  задач; очередь пересобрана — сперва починки, затем разведки о хранилище,
  затем доступ и владелец, и только потом экраны;
- архитектура: четыре новых открытых вопроса — приём большого файла, учёт
  расхода, срок хранения, потолок шести часов.
2026-08-11 10:05:22 +03:00

42 lines
3.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ✨ Слать готовый текст на почту из учётной записи
- **Тип:** feature
- **Категория:** Очередь
- **Зачем:** Адрес почты приходит вместе с входом через OIDC, но почтового отправителя в сервисе нет.
- **Теги:** goal:ready-notification
Двигает пункты 1, 2 и 3 «Завершения» цели: готовый текст и отказ доходят
письмом, а адрес берётся у учётной записи, а не из общего конфига.
Почта — второй канал рядом с тем, что заводит `ntfy-delivery`; выбор канала
остаётся в той же единой точке, что и сейчас.
## Затрагивает
- реализация интерфейса отправителя уведомления — почтовый адаптер;
- адрес почты из данных учётной записи OIDC и его хранение;
- выбор канала по настройке пользователя в `completeJob` и `failJob`;
- секция конфигурации: сервер отправки почты, учётные данные, адрес отправителя;
- `docs/architecture.md` — внешняя зависимость и чем она отказывает;
- `docs/security.md` — текст расшифровки уходит на почтовый сервер.
## Критерии приёмки
- Задача, дошедшая до `done` у пользователя с выбранной почтой, отправляет одно
письмо на адрес владельца. Оракул — тест с подставным отправителем: ровно один
вызов, адрес владельца, текст задачи в теле.
- Недоступный почтовый сервер не мешает задаче завершиться. Оракул — тест с
отправителем, возвращающим ошибку: задача в `done`, в журнале одна запись
уровня `WARN`.
- Отказ задачи доходит письмом тем же человекочитаемым текстом, что видит
пользователь Telegram. Оракул — тест на ветке `failJob`.
- Пароль почтового сервера не попадает ни в журнал, ни в текст письма. Оракул —
тест отправки с перехваченным журналом.
## Рамки
Берётся после `ntfy-delivery` — интерфейс отправителя заводит она — и после
`settings-screen`, где канал выбирают. Своего почтового сервера не поднимаем.
Длинный текст в письме не делится на части: предел сообщения есть у Telegram, а
не у почты.