v2.5.1

knadh/listmonkv2.5.1Aug 15, 2023by github-actions[bot]

AI Summary

v2.5.1 is a bug-fix release on top of v2.5.0 with minor UI fixes and improvements.

Key Highlights

  • Support for arbitrary file attachments in campaigns
  • Record opt-in IP option in Settings -> Privacy
  • New subscription details table in subscriber editing popup
  • GET /api/about endpoint for system info
  • Better error notification streamed to UI
  • Variable bounce processing actions
  • Media gallery UI accepts arbitrary file uploads

New Features

  • File attachments
  • Opt-in IP recording
  • Subscription details table
  • System info API

Full Release Notes

[![listmonk-logo](https://user-images.githubusercontent.com/547147/134940003-1de03d83-8c7b-459b-8056-baa8d5f3b448.png)](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.

Note: v2.5.0 was the major release, however, `v2.5.1` was worth releasing just to have this one tiny [UI bug fix](https://github.com/knadh/listmonk/commit/79ff7293eac6246727f0da469c1c742578373bce) that would have otherwise confused annoyed a lot of users.

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
* a6a2b69 Make public subscription API follow the 'enable public' setting.
* 79ff729 Fix broken dummy password warning on SMTP test UI. Closes #1450.
* 32b979e Update subscriber docs and add public subscription API. Closes #1449.
* 2f07435 Update bounces docs (#1445)
* e258ffd Update configuration docs (#1446)
* f3e9b08 Update release on website.
* 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