feat: switch email delivery from Resend to SMTP with libcurl integration

This commit is contained in:
gabdevele
2026-06-18 13:11:01 +02:00 Unverified
parent edadc258db
commit 8ffe247e41
12 changed files with 304 additions and 68 deletions
+1 -1
View File
@@ -32,7 +32,7 @@ Authorization: Bearer <token>
- `POST /auth/register`
citizen registration without password
- `POST /auth/otp/request`
queues OTP email through configured mail provider
sends OTP email through configured SMTP provider
- `POST /auth/otp/verify`
consumes OTP, returns bearer token
- `POST /auth/cie/start`
+1 -1
View File
@@ -24,7 +24,7 @@ generate public read-only intervention links.
## Runtime Model
- Auth uses bearer tokens from `api_tokens`.
- OTP login uses `otp_challenges` and async email delivery through configured mail provider.
- OTP login uses `otp_challenges` and SMTP email delivery through configured mail provider.
- CIE login uses external Django RP service:
- Visione creates local `state`
- Django RP completes CIE/OIDC and sends signed identity payload to Visione
+2 -2
View File
@@ -2582,7 +2582,7 @@
},
"/api/v1/auth/otp/request": {
"post": {
"description": "Queues a one-time code by email through configured mail provider.",
"description": "Sends a one-time code by email through configured SMTP provider.",
"operationId": "AuthController.requestOtp",
"parameters": [ ],
"requestBody": {
@@ -3312,7 +3312,7 @@
},
"/api/v1/reports": {
"get": {
"description": "Lists reports visible to the authenticated user.",
"description": "Lists reports visible to the authenticated user. Citizens see own reports only; operators and admins can read all reports. Admin can use this endpoint for global read-only overview screens.",
"operationId": "ReportController.list",
"parameters": [
{