7e2b26a02e
Хостинги коопов режут исходящий SMTP → письма controller'а уходят в timeout (раньше хабом был Novu, его убрали). Новый компонент @coopenomics/email-relay принимает письма по HTTPS с Bearer-токеном и форвардит по SMTP. Ставится на сервер с открытыми портами (плейбук в playbooks/email-relay). - components/email-relay: express + nodemailer, POST /send + GET /health, Bearer-токен (constant-time), опц. IP-allowlist, конфиг из ENV - controller: email-channel.adapter получил relay-режим — если задан EMAIL_RELAY_URL, письмо уходит POST'ом на релей; иначе прямой SMTP как раньше (opt-in, без регрессии) - docker-compose: дев-сервисы email-relay + mailpit (SMTP-перехватчик для E2E) - release.yaml: сборка образа dicoop/email-relay E2E проверен локально: controller-формат письма → релей → SMTP → mailpit, тело с <br> и заголовки целы; 401 на отсутствие/неверный токен, 400 на пустое тело. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
16 lines
338 B
JSON
16 lines
338 B
JSON
{
|
|
"compilerOptions": {
|
|
"target": "ES2021",
|
|
"module": "CommonJS",
|
|
"moduleResolution": "node",
|
|
"esModuleInterop": true,
|
|
"strict": true,
|
|
"skipLibCheck": true,
|
|
"forceConsistentCasingInFileNames": true,
|
|
"resolveJsonModule": true,
|
|
"outDir": "dist",
|
|
"rootDir": "src"
|
|
},
|
|
"include": ["src/**/*.ts"]
|
|
}
|