Migrate email catcher to Mailpit

This commit is contained in:
gabdevele
2026-06-11 01:25:18 +02:00 Unverified
parent c6dc19269a
commit 34c713e8b3
13 changed files with 26 additions and 26 deletions
+1 -1
View File
@@ -10,7 +10,7 @@ Base path: `/api/v1`.
## Auth
- `POST /auth/register`: create a citizen account.
- `POST /auth/otp/request`: send an OTP email through MailHog.
- `POST /auth/otp/request`: send an OTP email through Mailpit.
- `POST /auth/otp/verify`: verify OTP and create an API token.
- `POST /auth/login/password`: password login fallback.
- `POST /auth/change-password`: change the authenticated user's password.
+1 -1
View File
@@ -20,7 +20,7 @@ The codebase does not use Drogon generated models or `Mapper<T>`. Raw SQL stays
in repository/database helpers because the schema is still evolving.
## Local Email
OTP emails are sent to MailHog over SMTP. MailHog keeps messages local and
OTP emails are sent to Mailpit over SMTP. Mailpit keeps messages local and
inspectable through its web UI.
## Password Hashing
+1 -1
View File
@@ -8,7 +8,7 @@ and use intervention summaries.
Admins manage roles, users, areas, teams, reference data, moderation and stats.
The project runs locally on the host machine. Docker is used only for external
services such as MySQL and MailHog. Real production deployment and Dockerizing
services such as MySQL and Mailpit. Real production deployment and Dockerizing
the backend are later delivery tasks.
Important conventions:
+2 -2
View File
@@ -3,10 +3,10 @@
## Implemented in this milestone
- Project identity and documentation for Visione.
- Root `AGENTS.md` for future coding agents.
- Local Docker services for MySQL and MailHog.
- Local Docker services for MySQL and Mailpit.
- Initial MySQL schema and seed data.
- Drogon backend structure for auth, reports, admin data and stats.
- OTP email delivery through MailHog.
- OTP email delivery through Mailpit.
- Focused regression tests for technical endpoints and core validation helpers.
- Local admin seed: `[email protected]` / `ChangeMe123!`, with forced password change flag.
- Multipart report media upload endpoint storing files under `uploads/reports/`.
+1 -1
View File
@@ -34,7 +34,7 @@ Valid milestone 2 transitions:
- `REJECTED -> CLOSED`.
## MVP Scope
- Local auth with email OTP delivered through MailHog.
- Local auth with email OTP delivered through Mailpit.
- MySQL persistence with migrations and seed data.
- Report creation/list/detail/status/message/assignment/feedback/moderation flows.
- Area polygons stored as GeoJSON and matched by backend logic.
+2 -2
View File
@@ -897,7 +897,7 @@
"additionalProperties": false,
"properties": {
"delivery": {
"example": "mailhog",
"example": "mailpit",
"type": "string"
},
"expires_in_minutes": {
@@ -2209,7 +2209,7 @@
},
"/api/v1/auth/otp/request": {
"post": {
"description": "Sends a one-time code by email through MailHog locally.",
"description": "Sends a one-time code by email through Mailpit locally.",
"operationId": "AuthController.requestOtp",
"parameters": [],
"requestBody": {