-
released this
2026-10-15 08:51:52 -04:00 | 32 commits to main since this releaseMerged in PR #52. Closes #32–#38.
Upgrading: back up the database first. The two new migrations only add to the schema.
- SMTP senders now verify TLS certificates. A server with a self-signed certificate needs "Allow a self-signed certificate" ticked on its sender.
- The backend port is now bound to
127.0.0.1. Reach the API through nginx on port 3000.
Added
- Contact pages (#32): details, custom data, external ID, campaigns received and activity, plus new, edit and delete.
- Search and paging (#33): search by email, name or external ID, filter by status, pages of 25.
- CSV import and export (#34):
- The file is read in the browser, and you see how each column will be used before importing.
- Choose whether to update contacts that already exist (matched by external ID, then email).
- Rejected rows are reported and can be downloaded.
- A template and instructions for Excel, LibreOffice and Google Sheets are included.
- Import never changes a contact's status. Exports defuse cells that look like formulas.
- Sender setup (#35): edit pages, reply-to, SMTP security (SSL/TLS, STARTTLS, none), username and password, self-signed option, and a test send to yourself. Passwords stay write-only.
- Background sending (#36):
- Sending returns right away and a worker delivers in the background.
- Per-sender limits (per second, minute and hour) are honoured.
- Temporary failures are retried with back-off.
- The campaign list shows progress, and the report shows failures with the server's reason.
- Segment editor (#37): OR groups of AND conditions, a JSON query, a live list of matching contacts, and a CSV download.
Security
- Rate limiting (#38): 10 requests per minute per client on sign-in, password reset, registration, form submissions and test emails; 600 per minute elsewhere. nginx sets the client address, so clients can't fake it.
- TLS certificates are verified by default. From and Reply-To headers can no longer be broken by unusual names.
Verified
- Tests: backend 62 unit and 46 end-to-end; frontend 63.
npm audit: 0 for both. - Live stack through nginx and Mailpit:
- background send (request returned in 26 ms; 4 emails delivered with correct headers)
- import, search and CSV exports
- test email
- login rate limiting, including with a spoofed
X-Forwarded-For - a sender saved before this release still works
Full details are in CHANGELOG.md.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads