-
released this
2026-10-15 01:03:41 -04:00 | 48 commits to main since this releaseMerged in PR #24. Closes #16, #23, #18 and #17.
Upgrading: back up the database first. On first start, Postak adopts an existing v0.8.0 (or older) database into the new migration history. It refuses any schema change that would lose data.
Changed
- Versioned database migrations (#16).
prisma db push --accept-data-lossis gone. Schema changes now ship as SQL migrations, applied withprisma migrate deployon start.0_initis the v0.8.0 baseline.
Added
- Account controls for the administrator (#23), on the Users page:
- disable or enable an account, which ends its sessions immediately
- set a temporary password, which the user must change after signing in
- delete an account; projects where that user was the only owner go to the administrator
- Forgot password by email (#23). Links are single-use, expire after 1 hour, and are throttled, and the response never reveals whether an account exists. Needs
POSTAK_SMTP_URL,POSTAK_MAIL_FROMandPOSTAK_APP_URL. - SES bounces and complaints (#17) via SNS at
POST /api/webhooks/ses:- Every message's SNS signature is verified, and only topics listed in
POSTAK_SES_SNS_TOPIC_ARNSare accepted. With none listed, the endpoint is off. - Hard bounces mark the contact BOUNCED, and complaints mark it COMPLAINED. Neither is mailed again.
- Reports and daily snapshots now show real bounce and complaint numbers.
- Every message's SNS signature is verified, and only topics listed in
- New migrations
user_account_controlsandcontact_bounce_statuses. Both are additive.
Testing
- Frontend tests (#18): Vitest and Testing Library, run with
docker compose run --rm --build -T frontend-test. - The backend test run now checks both migration paths and fails if a schema change has no migration.
Security
- Frontend toolchain upgraded: Vite 8, React Router 7.18 (fixes an open-redirect advisory), Node 22.
- The backend also runs on Node 22, since Node 20 is end-of-life.
npm audit: 0 for the backend (production dependencies) and 0 for the frontend.
Verified
- Tests: backend 53 unit and 35 end-to-end; frontend 28.
- Live stack: the existing v0.8.0 database was adopted with its data intact. Forgot password, temporary password, disable, and delete with project hand-over were all tested through the web server, with email going to Mailpit.
- Not yet tested against real AWS SNS/SES. That path is covered by tests that use locally signed messages.
Full details are in CHANGELOG.md.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- Versioned database migrations (#16).