Что
Per-mailbox пароли для приложений: сгенерировать отдельный пароль под конкретное приложение/клиент, показать один раз, при необходимости отозвать — не раскрывая и не меняя основной пароль ящика.
Почему это не тривиально
В docker-mailserver/Dovecot нет нативных app-паролей: у аккаунта один пароль (в postfix-accounts.cf). Нужен дополнительный Dovecot passdb (например, passwd-file /tmp/docker-mailserver/dovecot-app-passwords через auth_passdbs/override), куда панель пишет per-app записи (хеши), плюс генерация/отзыв.
Набросок
- Таблица
mailbox_app_passwords (id, mailboxId, name, hash, createdAt, lastUsedAt?). Плейнтекст показывается один раз (как API-ключи/webhook-секреты).
- Рендер passdb-файла (чистая функция) +
DmsClient.writeAppPasswords() в контейнер + reload Dovecot.
- Роуты
/admin/api/mailboxes/:id/app-passwords (list/create/delete) + UI-секция на странице настроек ящика + MCP.
- Deploy-verified (реальный passdb — как sieve/access-lists).
Место под секцию уже предусмотрено на новой странице настроек ящика (#50).
Что
Per-mailbox пароли для приложений: сгенерировать отдельный пароль под конкретное приложение/клиент, показать один раз, при необходимости отозвать — не раскрывая и не меняя основной пароль ящика.
Почему это не тривиально
В docker-mailserver/Dovecot нет нативных app-паролей: у аккаунта один пароль (в
postfix-accounts.cf). Нужен дополнительный Dovecot passdb (например, passwd-file/tmp/docker-mailserver/dovecot-app-passwordsчерезauth_passdbs/override), куда панель пишет per-app записи (хеши), плюс генерация/отзыв.Набросок
mailbox_app_passwords(id, mailboxId, name, hash, createdAt, lastUsedAt?). Плейнтекст показывается один раз (как API-ключи/webhook-секреты).DmsClient.writeAppPasswords()в контейнер + reload Dovecot./admin/api/mailboxes/:id/app-passwords(list/create/delete) + UI-секция на странице настроек ящика + MCP.Место под секцию уже предусмотрено на новой странице настроек ящика (#50).