v5.0.0
Skip this release and upgrade to v5.0.2 instead for multiple fixes (UX bugs and a security fix)
Changelog
- 3b8a8c2 Add email-builder/dist to .gitignore.
- 8902320 Update screenshot on README.
- a7085cb Update homepage.
- 11f52ee Switch migration version to v5
- 47e8f81 Default
body_source
to null instead of empty string in non-visual campaigns. - 925cdf2 Add visual template and new permissions to docs.
- 1599957 Add and auto-translate missing i18n strings in all language packs.
- db81dc1 Remove default dummy admin notification email settings.
- 9de19ea Fix Codemirror Cypress tests in templates and form pages.
- 92fc646 Update sdks.md: add client for java/kotlin (#2426)
- 81b62a4 Fix race condition in immediate campaign pause-start actions.
- d3c8eca Upgrade Go deps.
- 0dc29b7 Fix CSV example on the subscriber import UI.
- 953deef Hide 'New' and 'Save' buttons on the templates UI if there's no manage permission.
- 7791327 Make
Must
config variables non-Must
so that the app doesn't panic on their absence. - 8fc3d27 Merge pull request #2423 from knadh/dependabot/npm_and_yarn/frontend/email-builder/vite-5.4.18
- 3dfdf48 Merge pull request #2424 from knadh/dependabot/npm_and_yarn/frontend/email-builder/babel/runtime-7.27.0
- 12bc798 Make OIDC provider name display on login button configurable. Closes #2211
- 8885437 Bump @babel/runtime from 7.26.0 to 7.27.0 in /frontend/email-builder
- 6707b63 Bump vite from 5.4.10 to 5.4.18 in /frontend/email-builder
- 5477c16 Merge pull request #2373 from knadh/feat-visual-editor
- ed700d7 Add a
Preview
option to the campaign archive tab. Closes #2245. - b67fc5e Replace
CodeFlask
code editor withCodeMirror
on the UI. - 53d7929 Prepare first RC.
- ffbda01 Add sample visual campaign template on install and upgrade.
- 445d7e5 Fix
clone campaign
by fetching campaign body on clone. - 1559c55 Add visual editor Cypress tests.
- ded0fcf Fix broken visual template cloning on the templates UI.
- dcdef8e Add format/content type selection to campaign creation UI.
- d3da0be Fix `test campaign' sending wrong template for visual campaigns.
- 5207dff Fix visual editor change event/init/import sequences.
- 968b366 Stop fetching bodies for all campaigns and explicitly fetch for visual campaign import.
- 20e4b10 Fix DB state issues in visual campaign cloning.
- f4c0e66 Refactor 'media upload' integration in campaign visual editor.
- 3aba2b0 Fix frontend/email-builder Makefile build steps.
- 343d405 Add Ctrl+S campaign save shortcut and add Ctrl+S and F9 to richtext editor.
- e4e735e Update tsx formatting in email-builder.
- 503e985 Add support for converting all types to visual editor blocks.
- f1fbadf Fix incorrect template states in DB in campaign creation and broken preview.
- cee2589 Move
email-builder
src from/
to/frontend
. - 110345d Refactor and simplify state management in campaign editor.
- fca5ec5 Change visual editor UI language.
- 7786b18 Add DB migrations for visual editor.
- c1f81cf Fix compatibility issues with
master
. - 82e2b70 fix: Move visual-editor to iframe so that CSS styles are isolated.
- 4a524c9 feat: Integrate media selector to visual editor and add minor fixes.
- e6f08a0 feat: Inject email-builder instead of loading it as ES module
- ae98280 feat: Integrate email-builder on campaign/template editor UI and backend.
- 5a0980e Add on-hover one-click
Copy
button to subscribers and campaigns tables UI. - a85e467 Add missing charset for numbers in TrackLink regex. (#2404)
- fb52700 Remove
GET /api/settings
dependency on the Lists -> Forms UI. - b44ea0c Merge branch 'fix-sql-search'
- 75aad8e Add new
search
param to paginated API response structure. - 29591c1 Add
get
list permission check to bulk subscriber list management. - fca8d6d Bump vite from 5.4.17 to 5.4.18 in /frontend (#2416)
- 4b805f8 Fix broken
subscribers:sql_query
permission. - 375e385 Bump golang.org/x/net from 0.36.0 to 0.38.0 (#2413)
- 4d8c8cd Update installation.md (#2405)
- 5971bc4 Fix Raw CSV example on import UI (#2392)
- 562e52c Introduce
LISTMONK_ADMIN_API_USER
to--install
. Closes #2314, #2322. - b3e6b09 Bump vite from 5.4.15 to 5.4.17 in /frontend (#2391)
- 0826f40 Remove repetitive URL param
:id
validation and simplify handlers. - e6d3aad Add ability to wait and healthcheck for backend app in Cypress settings tests.
- 78366ab Clean up main initialization to remove
app
interdepencies in init. - 8848922 Remove superfluous
consts
dep in init functions by separating URL consts. - e2f24a1 Turn
notifs
into a special stateful global singleton package, removing clunky deps. - e327ebb Move all HTTP handlers directly to
App
and remove the redundant in-between layer. - b3d46a8 Refactor system notification callbacks into a new
notifs
package. - 00c858f Refactor all HTTP handlers and attach them to a single struct.
- 007f4de Fix a number of cosmetic inconsistenies across handlers and functions.
- fcf2449 Replace awkward auth user object access in handlers with an explicit func.
- 17998fb Refactor user auth models and permission checks.
- 5c78506 Refactor superfluous list perm check middleware into standalone function.
- a271bf5 Introduce per-campaign filter permissions. Closes #2325.
- a5f8b28 Fix inconsistent behaviour in campaign scheduling on the UI.
- fbc27ae Refactor UI time diff display function to prefix '-' on past dates.
- 92e5d63 Fix various static-check/idiom warnings.
- b18c7ad Fix incorrect loading spinner on the Lists UI. Closes #1822.
- d1c964d Bump vite from 5.4.12 to 5.4.15 in /frontend (#2379)
- b8f50ea Add support for domain allowlists in addition to blocklists. Closes #2230.
- 6efb6e7 Upgrade
smtppool
tov2
and add support for concrete SSL options. - e4a18da Remove forcing unique filename on all media uploads.
- ef8f319 Remove obsolete language key and refresh i18n files.
- 9224e34 Update i18n refresh script to remove deleted base keys from all other files.
- 5f1b676 Remove ASCII-only restriction on media filenames. Closes #2277.
- 0be7a79 Fix broken log rendering on importer UI.
- 1b43e1a Add minor i18n Hungarian language pack fixes (#2375)
- 06c2f3b Add Nuxt.js module to Supported Libraries Lists (#2371)
- 473f942 Add i18n Hungarian language pack fixes (#2370)
- 7d3e6e6 Fix too greedy TrackLink regex replacement. (#2355)
- 79f8b60 Updating documentation to reflect AWS Console changes (#2365)
- 625f616 Change the docker-compose example to bind Postgres locally. Closes #2357.
- de9a8ea Add Bulgarian i18n translation (#2349)
- f310131 Update Go version to v1.24.1
- d43ac10 Tidy go.mod
- f34551d Bump golang.org/x/net from 0.33.0 to 0.36.0 (#2348)
- 2005e7a Bump github.com/go-jose/go-jose/v3 from 3.0.3 to 3.0.4 (#2346)
- bc5b817 Bump axios from 1.7.9 to 1.8.2 in /frontend (#2347)
- a986961 Disallow private list UUIDs on public sub endpoints. Closes #2296.
- 8dc5bc2 Bump prismjs from 1.29.0 to 1.30.0 in /frontend (#2345)
- f8d07ad Fix DELETE list documentation. (#2335)
- 06768ba Fix ru i18n lang (#2330)
- e649cf6 docs: improve clarity and consistency of user-related translations (#2324)
- d3a417d Fix typo in function name.
- 2defef3 Refactor SMTP name to always have
email-
prefix for consistency. - 24af0bc Update ca.json (#2303)
- d055cc5 Add support for selecting SMTP per campaign (#2290)
- 756e391 Fix typos in subscribers.md (#2302)
- 61d7a9d Update cs-cz.json (#2293)
- 2f5ab4c Display filename and milliseconds in timestamp on the logs admin UI (#2280)
- ad162c2 Bump vite from 5.4.11 to 5.4.12 in /frontend (#2268)
- 86f9ad0 Add Norwegian BokmΓ₯l (no.json) i18n language pack (#2289)
- d0321ba fix: typo in callout under the settings page (#2283)
- c3069e5 Update Finnish translation (#2270)
- 672d8ff Merge pull request #2269 from s-en-o/patch-1
- 1446fbb fix(static): no matching closing anchor tag
- 7153777 Merge pull request #2266 from vinitparekh17/patch-1
- 7c952e7 docs: removed duplicate line
- afa717f Upgrade smtp-pool lib fixing non-FQDN hostnames. Closes #2146.
- ff19a34 Fix bounce meta JSON overflowing in the table on admin UI. Closes #1797.
- 0e49a4b Merge pull request #2264 8000 from knadh/edit-campaign
- 3d383cd Make paused campaigns editable.
- 5ba0adc Automatically switch scheduled campaigns to
draft
whensend_at
date it removed. - 61c6b7e Add explicit
Unschedule
button on campaign UI. - fd31ac6 Remove redundant
send_later
param in campaign POST/PUT. - e8fd12b Add
List-Unsubscribe
header to opt-in confirmation mails. Closes #2224. - 2e8a5ac Add user roles/perms documentation. Closes #2242.
- 0930a22 Add VACUUM to maintenance section in docs.
- e2aa9c5 Make media image background checkered to show transparency. Closes #2080.
- c877156 Bump golang.org/x/net from 0.23.0 to 0.33.0 (#2253)
- a5e56c3 fix: forwardemail bounce processing invalid signature issue (#2250)
- 0878f3e Add Laravel SDK to Supported Libraries Lists (#2240)
- 50b296d Remove GitHub from OIDC shortcuts as it doesn't support OIDC. Closes #2235.
- b75de39 Fix elest.io image in docs (#2239)
- cb9b798 Fix typo in de i118 (#2236)
- 62c996b Fix typo (#2233)
- 2abc0a8 Apply minor Go code fixes (#2219)
- 98934e6 Fix outdated docker local dev suite (#2200)
- 97fde64 Make CSV (import) header fields agnostic of surrounding spaces. Closes #2189.
- 6371228 Fix schema and add migration for incorrect subscriber count (null) in materialized view.
- 5c0de6e Fix broken sorting lists by
subscriber_count
. Closes #2151. - 7bfbd6a Add
all
to subscriber deletion by query which broke withquery
validation. Ref: #2122. - a129111 Replace broken
indent
JS lib withjs-beautify
. Closes #2182. - 1c33d32 Remove redundant event from bounces UI. Closes #1850.
- cb99d60 Fix loading of messengers from serverConfig on line 629 (#2187)
- 3f5bad1 Fix incorrent curl command in docs.
- fce46b2 fix: update OpenAPI specs for routes and correct docs for campaign endpoints (#2179)
- 882c49f Bump cross-spawn from 7.0.3 to 7.0.6 in /frontend (#2169)
- ee9677c removes example properties from attribs property and allow additional properties (#2154)
- 1451c4b Improve API auth/permission docs and examples.
- 392bc87 Add curl example to subscriber import docs.
- 1198f6f Update release link on static site homepage.
New Contributors
- @dylancetin made their first contribution in #2179
- @centja1 made their first contribution in #2187
- @flyotlin made their first contribution in #2200
- @ANU7MADHAV made their first contribution in #2219
- @bharatkashyap made their first contribution in #2233
- @xelayz made their first contribution in #2236
- @trishitchar made their first contribution in #2239
- @theafolayan made their first contribution in #2240
- @vinitparekh17 made their first contribution in #2266
- @s-en-o made their first contribution in #2269
- @mlaht made their first contribution in #2270
- @yeskunall made their first contribution in #2283
- @vegardgithub made their first contribution in #2289
- @savioribeiro made their first contribution in #2280
- @matejdivecky made their first contribution in #2293
- @candidexmedia made their first contribution in #2302
- @lcd1232 made their first contribution in #2290
- @fquinto made their first contribution in #2303
- @appleboy made their first contribution in #2324
- @Impeck made their first contribution in #2330
- @marcw made their first contribution in #2335
- @listumps made their first contribution in #2349
- @brismuth made their first contribution in #2365
- @0xdeb made their first contribution in #2355
- @trustedtomato made their first contribution in #2370
- @roncallyt made their first contribution in #2371
- @pierreneillo made their first contribution in #2392
- @hlassiege made their first contribution in #2426
Full Changelog: v4.1.0...v5.0.0