v2.5.0
knadh/listmonkv2.5.0Aug 10, 2023by github-actions[bot]
AI Summary
v2.5.0 introduces support for arbitrary file attachments, opt-in IP recording for compliance, and improved bounce handling.
Key Highlights
- Support for arbitrary file attachments in campaigns
- Record opt-in IP option for compliance requirements
- New table showing subscription details for all lists in subscriber editing
- GET /api/about returns useful system info
- Async errors streamed to UI as toasts
- New bounce types with variable actions per type
- Media gallery accepts arbitrary file uploads
New Features
- File attachments
- Opt-in IP recording
- Subscription details table
- System info API
- Variable bounce actions
Full Release Notes
[](https://listmonk.app) ## What's new - The major new feature in this release is support for arbitrary file attachments. The media "gallery" UI/UX has changed to accept arbitrary file uploads which can be attached to campaigns. - "Record opt-in IP" option in Settings -> Privacy that optionally records the IP from which a subscriber completes a double opt-in. This is a compliance requirement in certain jurisdictions. - A new table on the subscriber editing popup that shows subscription details for all lists (including the optional opt-in IP) - New API `/api/about` that returns generally useful system and installation info. - Better error notification. Async errors that were logged in Settings -> Logs are now streamed to the UI and displayed as toasts. - New bounce types and support for variable actions per type. This version has several minor bug fixes and improvements. ## How to upgrade As always, take a backup of your database before upgrading. **Binary** Download the latest binary. Stop and replace the old binary. Run `./listmonk --upgrade`. Start the app again. **Docker** ```shell # cd /directory/with/docker-compose.yml docker-compose down docker-compose pull && docker-compose run --rm app ./listmonk --upgrade docker-compose up -d app db ``` ## Changelog * ea2f93e Fix GH actions write permission. * 54979c5 ci: add qemu for multi-arch * 14e2837 ci: Update release.yml (#1440) * 0562e5d Apply minor fixes to the admin maintenance page template. * f4f51d1 Add classes to public forms to make them scriptable. * b1fa289 update documentation for api/tx to include file attachments and multiple recipients (#1436) * acca61f Fix race conditions in Cypress tests (sigh). * 1164afa Fix private lists being unsubscribed from public form and re-factor subscription status view in admin. * eafae46 Fix incorrect unsubscription behaviour in the public 'Manage' flow. Closes #1407. * 104c4fc Remove non-crossplatform syscalls from `/api/about`. * a1c507b Fix typo in queries.sql (#1432) * 2215511 Increase the arbitrarily low max-input-length limit. Closes #1416. * dcb87a3 Removed unused syscall in `/about` API. Closes #1421, closes #1422. * e89b9ff Remove dead media cleanup flag. Closes #1423. * a440b79 modified mistakes and typos in translation (#1419) * 2bfbae7 Update Postgres version in doc strings. * 3865e95 Update untranslated i18n language strings. Auto-translated with GPT 3.5. * 93db7c4 Fix incorrect Buefy checkbox colour. * ad80c71 Add new privacy option 'Record opt-in IP' to record IP address of optin confirmation. * b26950c Add new subscription list table to the subscriber edit UI modal. * a628519 Mask passwords on the UI accurately with the actual passwords length. * 0be5901 Fix lists UI queries overriding full lists in selections elsewhere. Closes #1400. * 534c875 Ignore common on-reload xhr errors in Cypress. * 7dd7166 Bump word-wrap from 1.2.3 to 1.2.4 in /frontend (#1403) * 3663a8b feat: add multiarch docker build support (#1344) * e1c0bf5 Fix unsubbed subscribers not getting re-sub optin confirmation. Closes #1315. * d69b766 Enable extra system calls in systemd service (#1309) * 329b645 Add documentation for archive function. Closes #1396. (#1399) * 1894af1 Bump semver from 5.7.1 to 5.7.2 in /frontend (#1398) * c581fe2 Add `GET /api/about` that returns useful system info. Closes #1354. * 5b40461 Stop requiring a DELETE call for fresh import after finished imports. Closes #1369. * 530165f Fix typos in comments (#1368) * f94c1f3 fix function name in comment (#1374) * 92a4d99 Update es.json (#1378) * 5e24ef9 Update it.json (#1379) * f577522 Update inlang.config.js (#1359) * e0cda4b Fix `all` pagination. Closes #1356. Closes #1357. * a2da75c Merge branch 'events' * 0b2da4c Add support for streaming async events via HTTP serverside events. * 63bc00d Fix issues in the Swagger collection (#1322). Closes #1321. * d359ad2 Refactor media management. * 3b9a0f7 Add support for file attachments on campaigns (#1341) * cb2a579 Update ro.json (#1326) * cbbbe40 Fix missing fields in Swagger collection. Closes #1317. * 5a26279 Fix Swagger collection. Closes #1308. Closes #1313 (PR #1314) * 917696a Refactor `Messenger` interface. * 9ffc912 Refactor media provider. * be16297 Fix incorrect assignment of subscriber in message struct. Closes #1307. * e332622 Added remaining endpoints to the Swagger Collection (#1283) * 39a627d Upgrade koanf lib to fix mapstructure []byte unmarshal bug. * 9381e08 Link the Swagger pages on the API doc. * 8c46b75 build: push docker image to ghcr.io (#1237) * 101459f actions: generate swagger ui for github pages (#1281) * 81ac627 Add white background to logo in README for dark mode. Closes #1268. * 5fc28a7 Add support for variable bounce processing actions. * 13ad9ad Upgrade `koanf` to v2. * 3baf18e Add support for wildcards in the email domain blocklist. * 98729f6 Refactor email domain blocklist config field in importer package. * 476d5be Add support for publishing full content in public archive RSS feed body (#1262) * 146e8e7 Add missing translation message in maintenance page (#1279) * 0d4c1d1 Fix portuges missing translations (#1278) * 7db3d7d Improve i18n editor. * 71a9138 Add missing i18n languages to the editor * ad53632 Expanded docs about PUT /api/subscribers/:id (#1269) * b433ef6 Fix broken SES bounce type check. * a955102 Add functions to notification templates (#1263) * d1d0922 Fix gh-pages workflow script to run on push to `master`. * ec7a246 Fix link to the docs repo. * d4fb3a3 Remove obsolete files. * 5d3c10d Add new README to the `docs` directory. * 684c15a Add static Hugo website and mkdocs documentation to `docs` directory. (#1261) * 152bd37 Fix no opt-in mails when existing subscribers subscriber to new opt-in lists. Closes #1257. * 5aedc3a Make media upload file extension validation case insensitive. Closes #1256. * bf72154 Add Swagger collection for APIs (#1253) * 4821dd7 Update es.json (#1258) * d87a01f Include CAPTCHA in HTML form generation. * eb1d4a3 add support for arm binaries (#1249) ## New Contributors * @navanchauhan made their first contribution in https://github.com/knadh/listmonk/pull/1249 * @alfredosola made their first contribution in https://github.com/knadh/listmonk/pull/1258 * @rohansh-tty made their first contribution in https://github.com/knadh/listmonk/pull/1253 * @peix187 made their first contribution in https://github.com/knadh/listmonk/pull/1278 * @Thunderbottom made their first contribution in https://github.com/knadh/listmonk/pull/1281 * @uhlhosting made their first contribution in https://github.com/knadh/listmonk/pull/1326 * @NilsJacobsen made their first contribution in https://github.com/knadh/listmonk/pull/1359 * @cuishuang made their first contribution in https://github.com/knadh/listmonk/pull/1374 * @sonologic made their first contribution in https://github.com/knadh/listmonk/pull/1399 * @runningnoodle made their first contribution in https://github.com/knadh/listmonk/pull/1309 * @UnmeshSagar made their first contribution in https://github.com/knadh/listmonk/pull/1419 * @eltociear made their first contribution in https://github.com/knadh/listmonk/pull/1432 * @winterleitner made their first contribution in https://github.com/knadh/listmonk/pull/1436