1.0.0_rc.16

Released on 2026-03-27.

This is a release candidate for Zotonic 1.0.

The code is stable and used in production. Some features will be added before the 1.0 release.

For the issues and changes to be added for the final 1.0.0 release, see:

https://github.com/zotonic/zotonic/milestone/3

The 1.0.0 release is now expected end of April, 2026.

Updating

After updating Zotonic, also update Cotonic with:

make update-cotonic

This release needs the newest (master) version of Cotonic.

For the 1.0.0 we will start tagging the Cotonic versions.

Erlang/OTP Version

This release needs Erlang/OTP 25 or later.

Commits since 1.0.0-rc.15

Alisa (1):

  • Add ghostscript dependency & default dates (#4151)

Colin de Roos (3):

  • Allow the nix package set to be overridden (#3262)

  • Update Nix erlang version (#3332)

  • Fix automatic recompiling in nested src directory (#3370)

Copilot (1):

  • docs: update referrer-policy documentation to match implementation (#4247)

Dorien (30):

  • mod_image_edit: use overlay instead of dialog (#3303)

  • mod_image_edit: add some tweaks for the modal version, remove rotate button for now (#3293)

  • mod_survey: Refactor input field type to textarea (#3365)

  • [admin_frontend_edit] Add block around titlte (#3400)

  • [admin_frontend] Add override specific template for frontend admin (#3415)

  • [Survey] refactor to textarea for easier writing of feedback (#3438)

  • mod_admin: Change copy (#3504)

  • mod_zotonic_wires: Add focus when opening modal, close on esc when modal is open (#3502)

  • mod_survey: Keep linebreaks in answers of survey (#3524)

  • Remove alert in image editor, and some css tweaks (#3538)

  • mod_zotonic_wires: use different function to close dialog (#3543)

  • mod_zotonic_status: refactor less to scss, remove 3l (#3564)

  • zotonic_mod_search: refactor less to scss (#3566)

  • mod_zotonic_authentication: refactor less to sass (#3565)

  • [Mod_seo] remove UA code, since this is depricated. Also added a new link where to find the GA-4 property id (#3588)

  • Make default color white for emails (#3653)

  • [mod_admin] Refactor less to sass (#3656)

  • Add some tweaks to the thumbnail (#3671)

  • [Frontend edit] Add blocks around panels (#3709)

  • JS: refactor unload to pagehide for better compatibility with bfcache (#3779)

  • Update scomp_button.rst (#3785)

  • Mod_survey: Add a preview of the button (#3824)

  • [Translation] Add icon options on the language switch toggle (#2953)

  • Update db query to delete identity (#4009)

  • Survey: Add extra parameter to exclude survey_stop from printing answer (#4081)

  • Fix vevent issue (#4084)

  • Mod_admin: Add block around org_pubdate, so we can overrule (#4112)

  • Mod_export: remove acl checks (#4114)

  • Change hover on muted text in a dropdown

  • Search: Add a query term to filter on date_start month (#4271)

Edward Abboud (5):

  • Sanitise media items (#3724)

  • Update shell.nix (#3758)

  • Merge pull request #4015 from zotonic/docker-debian

  • Merge pull request #4097 from zotonic/admin-link-remove-growl

  • Add defaultLangText as an initial option for users (#4119)

Felsia (1):

  • new: allow containerization in Podman (#4190)

MM Zeeman (52):

  • Also change the language cookie during a language switch (#3326)

  • mod_l10n: Remove unused with tag (#3328)

  • Remove admin/logon dispatch. It is no longer used. See #3315 (#3334)

  • Added a otp and zotonic version number message to make all (#3335)

  • base: sort filter can now sort lists of maps (#3352)

  • Add standard manifest json (#3342)

  • core: Trigger a poll when task_done is received (#3373)

  • core: Do not generate absolute urls from the preferred hostname when redirect is false (#3384)

  • Fix 3386 (#3393)

  • Inserting and deleting edges from the edge model (#3395)

  • core: Added logic for public readable config items (#3439)

  • Make it possible to configure ics export templates (#3440)

  • docs: Removed session_expire_1 and session_expire_n from documentation. (#3441)

  • mod_search: Make sure the autocomplete search does not retunr unfindable resources (#3562)

  • Add a admin development page where you can see all dispatch rules of a site (#3596)

  • mod_survey: Make proper acl checks of hard coded access checks (#3585)

  • mod_acl_user_groups: Remove unused function (#3609)

  • Don't return all possible resources of cat when no text is given (#3632)

  • mod_search: all must be passed as a tuple (#3635)

  • Add execute_batch functionality (#3645)

  • mod_authentication: More logging during password reset (#3675)

  • Use init:stop to make sure the zotonic node shuts down cleanly (#2957)

  • Encrypt Backups (#3804)

  • Update validator_acceptable_password.rst

  • Refactor smtp options. (#3835)

  • Add os memory status (#3836)

  • Fix importing csv values. Values are now binaries (#3861)

  • Add a way to display the number of subscribers to a mailinglist (#3901)

  • Show username admin overview list (#3927)

  • Set the cotonic-routing-id only when a cotonic_sid is set (#3929)

  • core: Remove page and pagelen args from the list (#3945)

  • Add the resource id, if it exists, to the metrics data (#3972)

  • Fix 3319 - add unique constraint on identity table (#3320)

  • 3987 fix autologon cookie during pw reset (#3989)

  • Removed apns4erl as dep. It is not used by zotonic (#4042)

  • Removed other unused deps, and updated some others (#4043)

  • Add the possibility to expand the admin sidepanel (#4047)

  • Add qs to the log request (#4046)

  • mod_backup: The encryption was not done because the wrong config key was used (#4092)

  • Move datetime eterm decode to epgsql codec (#4096)

  • Fix some rough facet search edges. (#4105)

  • mod_cron: Added erlcron to handle mod_cron ticks. Useful for other use-cases too (#4109)

  • base: Fix replace_args filter where the input string contains unicode characters (#4120)

  • Add possibility to schedule regular jobs via mod_cron (#4131)

  • Fixes a crash when a trans tuple is passed with the context (#4154)

  • db: decode jsonb values (#4156)

  • Fix cols_map after enabling json decoding at db driver level (#4202)

  • 4212 z utilsgroup by2 should also work on lists with maps (#4213)

  • db: Also handle the case where busy_pid is set (#4219)

  • Fix typo in error logging for resource check

  • Enhance numeric filters (#4273)

  • Added the possiblility to extend the actions on edges (#4248)

Maas-Maarten Zeeman (3):

  • mod_backup: Fix an issue where there is no file to encrypt

  • mod_development: Fix dispatch overview template

  • mod_base: Fix typo in pager scomp documentation

Marc Worrell (968):

  • mod_mailinglist: fix email normalization in recipient_status/3 (#3284)

  • mod_admin: in zmedia show documents as small (#3285)

  • mod_mailinglist: remove double normalize of email

  • mod_admin: in quick edit, also show 'Visit full edit page' on use.mod_admin_frontend rights (#3286)

  • mod_mailinglist: add acl check for adding mailing subscriber edges (#3280)

  • mod_base: fix an issue in pager scomp for page urls with special page_path but no dispatch rule (#3294)

  • Upgrade template_compiler to 2.6.0 (#3299)

  • m_edge: flush edge log after edge seq changes (#3302)

  • mod_mailinglist: fix an issue where sending a mailing gives a 500 error if any mailinglist contains an illegal query. (#3301)

  • mod_mailinglist: add page where subscribers can subscribe from mailinglists (#3306)

  • core: change the signature algorithm for payloads to hmac-sha256 (#3307)

  • Upgrade bcrypt to 1.2.0

  • Make mod_cookie_consent selector slightly more general (PR #3308) (#3309)

  • Add option to set the content_type of z_fetch requests (#3310)

  • core: fix type for z_fetch to allow extra methods of z_url_fetch (#3313)

  • doc: add 0.75.0 release notes (#3312)

  • mod_admin: add panel to upload dropbox files (#3316)

  • mod_base: add option to listfilter for sorting the filtered list (#3317)

  • Upgrade zotonic_stdlib

  • New pot

  • mod_logging: be less verbal about db pool load (#3325)

  • core: support query arguments for z_fetch with method get (#3324)

  • core: on reset password als reset identity expires date (#3341)

  • mod_admin: filter temporary_rsc set is_temporary (#3345)

  • New pot file

  • core: better identity error handling of eexist error (#3350)

  • core: on rsc update expect error, flush cache (#3344)

  • mod_admin: add basic block view templates (#3298)

  • core: allow update of publication_start and _end with 'undefined' (#3353)

  • ci: use git checkout@v3 (#3354)

  • core: move the wired record definitions to a separate include file (#3355)

  • mod_acl_user_groups: add acl_collab_groups_modify notification (#3358)

  • mod_admin_identity: option to verify the primary email address (#3356)

  • Upgrade tls_certificate_check

  • core: flush ACL cache on resource update (#3366)

  • doc: add 0.76.0 release notes

  • Upgrade bcrypt to 1.2.1

  • mod_survey: fix thurstone edit template (#3371)

  • New pot file

  • core: add 'page_url' to the rsc_export model api (#3374)

  • mod_survey: add notifications on survey submit (#3375)

  • mod_survey: allow modules to add extra columns to results edit and print/download (#3376)

  • mod_survey: fix results sorted on a column (#3377)

  • mod_survey: fix printable result align for numbers

  • core: add fetch of mediaclasses per module and media tag attributes (#3378)

  • mod_mailinglist: fix a problem with listing subscriptions for unsubscribe (#3379)

  • mod_mailinglist: rework the mailinglist unsubscribe flow (#3380)

  • New pot file

  • core: add extra 'is_email_verified' api call for other users/ids (#3381)

  • mod_admin_identity: split the admin sidebar tpl for username for easier re-use (#3385)

  • New pot

  • core: always set the is_protected flag for the admin user (#3387)

  • mod_seo_sitemap: add option to set priority and changefreq per page (#3388)

  • New pot

  • mod_base: fix a problem with js_escape and utf8 texts (#3390)

  • mod_survey: make the survey_is_disabled flag available (#3391)

  • New pot

  • mod_backup: add option to restore pages

  • mod_admin: let the quick search search all categories except meta (#3397)

  • mod_backup: show follow up id in list of deleted pages (#3398)

  • mod_backup: save revision on update and insert (#3402)

  • mod_oembed: add support for spotify (#3404)

  • core: validate mediaclass names (#3406)

  • mod_admin: add count to test query results, use capitals

  • New pot

  • mod_mailinglist: fix a problem with mailinglist merge operations

  • Translation: use ... instead of unicode … to help automatic crowdin translation

  • core: force embed of non-public images in emails (#3413)

  • New pot

  • core: optimize resized animated gif images (#3417)

  • mod_survey: better string

  • New pot

  • core: add m_post and m_delete handlers to rsc model (#3382)

  • mod_survey: use 'deactivated' to prevent funny automatic translations

  • Fix test with rebar3 v3.21 - remove OTP 23 test (#3419)

  • Multi-level dialogs and multiple tinyMCE configs (#3416)

  • mod_survey: pass the survey-id to the question answer routines (#3421)

  • mod_search: support searching for the current z_language in stored queries (#3422)

  • New pot

  • New pot

  • mod_base: add the nocache option to the lib tag (#3426)

  • core: add extra return types to #rsc_import notification (#3427)

  • mod_base: let filter embedded_media check all translations (#3428)

  • New pot

  • mod_admin_identity: fix a problem with submitting empty email identity field

  • Update README.md

  • Update README.md

  • core: fix a problem where a pager with more pages than result pages could be rendered (#3430)

  • docs: release notes for 0.77.0

  • docs: correct filter escape_link docs (#3432)

  • Upgrade deps (#3433)

  • docs: updated rst files

  • mod_search: allow facet term with map as argument (#3434)

  • Upgrade epgsql to 4.7.1 (#3435)

  • core: cd to the site dir before doing a convert call (#3437)

  • OTP-26 compat (#3436)

  • mod_search: add 'hasanysubject' search term (#3443)

  • Clear ratelimit history for username after successful logon. (#3444)

  • core: extra comment for the is_a functions

  • Add option to include extra templates on first page of admin_overview lists (#3445)

  • New pot

  • mod_mailinglist: add admin-content-extra template showing mailinglist subscriptions (#3447)

  • Move subscription info up

  • base/seo: let controller_page redirect permanently to the preferred or new page-url (#3424)

  • Misc fixes, OAuth, pager, search on id (#3450)

  • Fix a problem where publication_start was overwritten when is_published is updated (#3448)

  • Set status code of API calls depending on error result (#3451)

  • core: add post and delete API on media model (#3452)

  • Upgrade cowmachine

  • core/seo: redirect pages to the current language version (#3407)

  • Add JSON-LD to the SEO data in head. (#3454)

  • Remove unused var

  • New pot

  • mod_seo: return all menu paths of an id (#3457)

  • core: add security.txt file

  • core: add security configs to the zotonic.config.in file

  • core: add 'mailto:' before security.txt email address

  • core: use m_rsc:rid/2 on rsc post for updates

  • core: use the public admin email for security.txt

  • seo: render rdf summary as anonymous (#3461)

  • mod_admin_identity: make rows in found identities clickable (#3463)

  • mod_seo: restructure items in breadcrumnbs (#3464)

  • mod_seo: breadcrumb item type

  • mod_seo: fix a problem with displaying the site title and deriving the best schema type (#3465)

  • mod_seo: fix an issue where the wrong config was used for the default language

  • mod_search: add identity search to quick admin search (#3466)

  • mod_authentication: prevent admin to be able to log in using an username_pw identity (#3459)

  • mod_seo: force site title to be binary

  • zotonic_core: allow request args for canonical page urls (#3467)

  • doc: add 0.78 release notes

  • mod_seo: let the homepage have a breadcrumb of itself (#3471)

  • Upgrade zotonic_rdf

  • mod_seo: prevent duplicate trails (#3472)

  • Fix pivot of surname, better handling of custom_pivot (#3473)

  • seo: noindex changes / og: meta-tags to seo module (#3474)

  • mod_admin: fix an issue with importing URLs containing multibyte characters (#3476)

  • core: report & ignore datamodel install errors (#3478)

  • mod_admin: in connect, if search text matches rsc id, show that id (#3479)

  • Upgrade mqtt_sessions to 2.2.0

  • core: accept atoms as topics, assume to be unique names (#3482)

  • core: add CreativeWork as base type to most JSON-LD descriptions (#3483)

  • Delete mod_twitter. (#3485)

  • mod_base: Add extra option 'template' to z.feedback.js

  • core: fix typo in m_rdf.erl

  • mod_survey: fix a problem where radio buttons had the same 'name' in different blocks (#3487)

  • mod_seo: fix a problem with the menu trail if there is no home page (#3488)

  • Misc fixes (#3489)

  • mod_seo: escape json-ld shown for editing (#3493)

  • mod_backup: support import of JSON rsc export files using mod_backup admin panel (#3492)

  • core: fix taskfile name; better module update function (#3495)

  • mod_search: Fix a problem where match_objects might result in an SQL error (#3496)

  • Add bulk update actions to admin (#3497)

  • New pot

  • mod_admin: add simple search filter options (#3501)

  • New pot file

  • mod_admin: add extra link on rsc edit page to show all pages in category

  • core: add timeouts to convert and ffmpeg commands (#3494)

  • Fix issue with double escape texts in media captions (#3505)

  • mod_admin: change search dialog into search panel (#3506)

  • core: work around an issue with some email proxies. Fix #3508 (#3509)

  • mod_acl_user_groups: fix a problem in checking for collab group manager (#3511)

  • mod_translation: fix an issue where translations in an 'if' were not found. (#3513)

  • New pot

  • docs: fix ref

  • Upgrade jsx and jsxrecord. (#3517)

  • mod_admin: fix an issue where in the admin-edit a language could not be copied (#3518)

  • core: fix an issue where the pivot_delay was not reset

  • core: remove x-xss-protection header. Fix #3519 (#3520)

  • mod_seo: additions to generated JSON-LD (#3523)

  • mod_seo: fix typo in json-ld (#3525)

  • core: in m_rdf, add headline to schema:Article

  • core: fix headline in m_rdf

  • mod_seo: show 'about' in a single language (#3526)

  • mod_seo: in json-ld tune handling of webpage primary image (#3527)

  • mod_seo: experiment with image docs

  • mod_seo: better images, add author

  • mod_seo: rename image mediaclasses

  • core: add 'url' to basic Thing properties.

  • core: location handling for events in m_rdf

  • core: in m_rdf fix Place to better match Google expectations

  • core: in m_rdf fix Place to better match Google expectations

  • core: add empty name to RDF Place export

  • mod_mailinglist: also export query and subscriber edges (#3529)

  • base: update robots.txt (#3531)

  • New pot

  • mod_survey: add option for survey autostart via query arg (#3534)

  • mod_seo: add option to hide the JSON-LD search action (#3535)

  • mod_cookie_consent: fix a race condition where the consent check could be executed before the dialog wire is installed

  • mod_backup: add option to make daily db-only backups (#3537)

  • mod_base: add filter truncatechars (#3539)

  • New pot

  • core: add m_identity:ensure_username_pw/3 (#3541)

  • mod_backup: config radio button layout

  • mod_search: tune text search weight config (#3530)

  • mod_admin: change 'Amount' into 'Count'

  • New pot

  • mod_search: in quick search items show edit button for all admin users

  • Problem building docs in CI (#3544)

  • mod_admin: add predicate option to connect pages using a checkbox list (#3545)

  • mod_admin: remove print statements

  • New pot

  • mod_admin: remove cropcenter code (#3548)

  • OTP 26.1/27 compat with +/-0.0 (#3547)

  • Small fixes (#3549)

  • mod_base: correct pivot templates for block texts

  • mod_search: fix a problem with specifying custom search weights

  • New pot

  • mod_backup: periodic cleanup of revisions (#3546)

  • mod_development: add template xref check (#3551)

  • New pot

  • New pot - change wording in dev xref tpl

  • mod_survey: simplify autostart body and footer (#3552)

  • New pot - tuning xref sentences

  • mod_development: add a dependency graph of all templates (#3553)

  • New pot

  • mod_development: hide textarea with dot data

  • mod_development: hide some more graph colors

  • Upgrade jsxrecord

  • mod_seo: add og:type and og:updated_time (#3555)

  • mod_admin: show short_title if title is not defined. (#3556)

  • Upgrade template_compiler

  • mod_development: add live template include trace (#3557)

  • New pot

  • mod_development: fix a problem with template trace for sid undefined

  • mod_admin: do not include _html_head.tpl in the admin (#3558)

  • mod_development: tune texts

  • core: move exec chrome / chromium to the core, add z:open/1 function (#3560)

  • mod_base: set controller_id redirect to permanent for gone resources (#3567)

  • core: on macOS let z:open/1 open in the default browser (#3572)

  • mod_oauth2: add longer timeout to enunit test (#3575)

  • mod_wires: change color of alert text - cleanup code (#3573)

  • mod_acl_user_groups: add option to target the exact category in ACL rules (#3577)

  • New pot

  • Upgrade jsxrecord

  • Core: on datamodel update insert medium if rsc present but medium absent (#3578)

  • mod_base: ensure filter is_a on atom returns boolean (#3584)

  • mod_search: new format for search questions - changes for live scomp (#3587)

  • core: ensure that publicaion_start date is set if a resource is published (#3591)

  • core: add convenience function z_acl:sudo(sitename) (#3592)

  • mod_admin_config: hide secrets from direct view (#3593)

  • mod_admin: fix a problem where in the keyword connect dialog not all keywords were shown (#3595)

  • Upgrade to mqtt_sessions 2.2.1

  • mod_admin: track rsc references, add medium language (#3597)

  • New pot

  • Remove debug

  • mod_base: better handling of 'static' directory in templates dir (#3594)

  • core: check medium_language on rsc update, fix doc (#3600)

  • core: fix a problem where the query arg order was reversed (#3602)

  • Login format check (#3486)

  • mod_admin_modules: add button to re-install a module's datamodel (#3601)

  • mod_admin: fix connect dialog for predicates with checklists (#3603)

  • docs: add 0.80.0 release notes

  • mod_admin: better css for keyword connect - add close button (#3605)

  • mod_search: fix a crash in the match_object_ids query term handling (#3606)

  • Better handling for 'none' query result (#3607)

  • mod_search: fix shorthand searches to use new arg format (#3608)

  • mod_search: in featured hassubject should be hasobject

  • mod_search: fix typo - with thanks to @karlsson

  • mod_admin: fix a problem with adding blocks in the admin (#3610)

  • mod_authentication: add password confirm on sign in with connecting external account (#3612)

  • mod_menu: track the menu-contains on rsc update (#3616)

  • mod_search: fix a crash in the nextprev search (#3615)

  • mod_authentication: correct seo noindex flag for auth dispatch rules (#3617)

  • New pot

  • mod_search: also filter empty searches with <<>> values (#3618)

  • mod_logging: fix search for the new search format (#3620)

  • mod_menu: set is_object_noindex for hasmenu and hasmenupart

  • core: add m_identity:password_reset/2 function (#3622)

  • mod_backup: save revision on rsc deletion (#3621)

  • mod_search: fix a problem in the filter term query extraction

  • Remove debug

  • mod_backup: fix count of deleted pages

  • mod_search: fix a problem with unpacked filter and facet query args (#3624)

  • mod_admin: track embedded page refs during edit. Add image edit to media properties (#3625)

  • mod_editor_tinymce: add 'link_new' option to embedded media. (#3626)

  • New pot

  • zotonic_launcher: with addsite, ensure hostname is valid (#3623)

  • core: simplify flatten search cats, do no consider strings-as-list (#3628)

  • Fix dialog_close default level. Consistent btn order in dialogs. (#3629)

  • Change text of edit knop in image properties dialog

  • mod_editor_tinymce: fix a problem with zmedia if other img tags are present (#3630)

  • mod_editor_tinymce: fix a problem where a tinymce div could be positioned above the save buttons

  • core: fix a problem with type conversion for the visible_for property value (#3636)

  • core: add mime type mappings for .heic and .mjs (#3637)

  • mod_image_edit: decouple image edit button. Small misc fixes (#3638)

  • New pot

  • mod_translation: add support for translation services (#3633)

  • mod_admin: update layout of edit page - add translation services (#3640)

  • New pot

  • Dialyzer type fixes - first batch for OTP26 (#3647)

  • mod_translation: Show note if a translation is automatically generated. (#3648)

  • New pot

  • New pot - better translation approval texts

  • New pot

  • New pot

  • mod_admin: remove some #3L usage in lessc files (#3650)

  • mod_mailinglist: allow multiple subscribe forms for the same mailing (#3651)

  • zotonic_launcher: remove observer app. Fix #3654

  • mod_translation: add language detection code (#3655)

  • mod_admin: add translate overwrite option (#3658)

  • New pot

  • mod_admin: reformat automatic translation message in edit form

  • mod_translation: add routines to add or remove translations from resources (#3662)

  • Grammar fix: a user instead of an user (#3663)

  • core: fix rewriting nested query terms

  • mod_translation: make profile detect function smaller by splitting it up

  • Docs: add 0.81.0 release notes

  • Upgrade tls_certificate_check, remove mysql

  • mod_translation: let m_translation:keep_translation/2 keep all non translatable top properties

  • core: fix a problem where copying between servers the image edit settings were not copied (#3670)

  • core: set tls options for secure transmission on OTP26 (#3652)

  • Upgrade zotonic_stdlib to 1.16.0

  • mod_admin: index the medium filename and show it on the connect list items (#3665)

  • mod_search: facet and query term improvements (#3672)

  • core: add more comments and specs for m_identity (#3674)

  • Upgrade zotonic_stdlib to 1.17.0

  • core: fix an issue when verifying against missing verify key

  • mod_admin: use catinclude for the 'advanced' edit panel (#3676)

  • zotonic_core: check size of downloaded file after media download (#3678)

  • filewatcher: fallback to monitor if inotify or fswatch is encountering problems (#3677)

  • Extra search facet type 'fts' and misc fixes (#3683)

  • core: catch json decode errors on fetch. Add mime type mapping for .eml files. (#3685)

  • Fix an issue where a PDF file could be mis-identified as an AI file. Fixes #3689 (#3690)

  • mod_authentication: allow to pass email to the password reminder form. (#3696)

  • Fix a problem where SMTP would not fall back to plain text on port 25 (#3695)

  • core: Improve smtp plaintext port determination (#3697)

  • zotonic_laucher: Restrict epmd to listen only on the loopback interface (#3698)

  • zotonic_filewatcher: backoff inotify and fswatch on errors (#3699)

  • Ensure that core apps are build before apps_user - so that deps are resolved (#3666)

  • Add some specs and comments to often used z_db functions (#3702)

  • mod_survey: Fix for warning about missing event when connecting a rsc block

  • New pot

  • mod_translation: store the language profile data in files (#3703)

  • zotonic_launcher: fix a problem with epmd listen address in Ubuntu (#3705)

  • mod_translation: translation detection - rtl fix (#3706)

  • mod_search: add 'ongoing_on' search term (#3707)

  • Remove deprecated erljwt package. Fixes #3687 (#3708)

  • Upgrade Hex dependencies

  • Upgrade zotonic_stdlib to 1.18

  • Upgrade cowmachine to 1.12.1

  • mod_base: if API model call return error map, then return error map as JSON (#3711)

  • core: fix a problem in html2markdown with list indentations

  • Ensure a key on category_id exists (#3714)

  • mod_admin_identity: show 2FA status on users overview page. (#3716)

  • mod_image_edit: fix a problem with importing undefined image edit settings (#3718)

  • Adapt cloudinit for Ubuntu 22 (#3715)

  • Add 0.82 release notes

  • core: add search option 'is_count_rows' and option to fetch objects as properties (#3720)

  • mod_oembed: fix a problem where importing an oembed resource could result in a missing preview image (#3722)

  • Fix an issue where epmd could not be started on non-Linux machines (#3727)

  • mod_admin_predicate: fix a problem where the caches were not flushed if the object/subject categories were updated

  • core: add model/activity/event messages on user activity

  • mod_custom_redirect: fix a problem where the redirect rules were not shown. (#3728)

  • Update cloud-init file.

  • mod_search: add missing space in query

  • mod_base: fixes for sort filter, also support sorting menu items list

  • cor: misc fixes - especially deadlock handling and pivot insert (#3730)

  • mod_admin: use uri_raw for showing the newly stored uri

  • mod_search: fix for using ~ char in qargs names; fix for prefix operators in values (#3731)

  • mod_base: allow more falsy values for loadmore 'data-replace-location' arg

  • core: replace rsc pivot queue with pivot log (#3732)

  • core: coalesce due when copying old pivot queue

  • mod_survey: export extra functions in m_survey

  • mod_admin: add _admin_extra_buttons2 for second batch of admin dashboard buttons

  • mod_admin: also include z.forminit.js

  • mod_search: make fts column larger

  • mod_base: let controller_id accept an extension on the id for content negotation (#3729)

  • core: pass 'visible_for' to the #rsc_insert for alternative ACL modules

  • core: better visible_for handling for rsc create

  • core: fix an issue with handling the pivot rsc job result.

  • launcher: add 'completion' to the bin/zotonic command list

  • Upgrade bcrypt to 1.2.2

  • mod_admin: add option to reinstall zotonic datamodel to admin/status (#3737)

  • mod_seo: allow to set the seo_depiction to a custom value (#3738)

  • mod_translation: add extra languages for the language detection (#3739)

  • mod_admin: skip invisible keywords in connect tab

  • Upgrade template_compiler to 2.9.0

  • core: pivot all-day dates assuming the timezone of the resource (#3740)

  • core: fix smtp blackhole return value handling

  • mod_admin: add task delete button to admin (#3741)

  • Use OTP-26 for Dialyzer CI (#3742)

  • mod_admin: fix for menu alignment in Safari 17.4 on macOS (#3744)

  • cloud-init: add xvfb, needed to use wkhtmltopdf

  • mod_base: console warn when widget function is not present.

  • mod_admin: tune overview table column widths

  • mod_admin: Fix a problem with word-break on Safari 17.4.1

  • mod_survey: allow survey editor access to user-survey submission topics

  • core: export m_rsc:is_published_date/2 function

  • Pivot end st juttemis fix (#3747)

  • mod_base: fix issue with filter truncatechars if there are entities in the string

  • Fix typespec

  • core: add drop/reinstall of schema, small refactor of site config handling (#3749)

  • core: small changes and fixes (#3750)

  • Authentication changes for OIDC and password checks (#3746)

  • mod_filestore: fix an issue where remote filestore would not accept a parenthesis in filename (#3752)

  • mod_filestore: Also replace sepcial chars in short filenames

  • core: fix splitting name/email with empty email brackets 'jan <>'

  • core: smtp send problem workaround

  • Fix answer value fallback display

  • Upgrade mqtt_sessions

  • Add server_storage to test sandbox site

  • base: model/loadmore - only set url if there is a url

  • Upgrade mqtt_sessions

  • core: allow medium file size > 2G (#3755)

  • Upgrade mqtt_sessions

  • mod_mqtt: let z.live buffer event to prevent too many quick updates

  • Upgrade mqtt_sessions

  • mod_mqtt: fix live delay timer

  • mod_filestore: truncate long filenames, make filestore size bigint (#3760)

  • core: restrict the size of (animated) gif images (#3756)

  • mod_search: add search terms created_after/before and modified_after/before (#3761)

  • mod_translation: add filter trans_languages (#3762)

  • core: remove debug statement

  • core: retry crashing STMP TLS with non-TLS

  • mod_auth2fa: add option to force setting 2FA before log on (#3717)

  • New pot

  • mod_auth2fa: use 'QR code' instead of 'barcode'

  • core/auth: ensure that a session token is invalidated upon logoff (#3766)

  • mod_base: upgrade jQuery UI Touch Punch to 0.2.3

  • mod_auth2fa: user needs passcode to remove 2FA from their account (#3770)

  • New pot

  • mod_signup: better message if password is too simple

  • mod_authentication: remove debug statement

  • mod_authentication: add error message for if user not enabled

  • mod_wires: fix show of validation message for async validations

  • mod_admin_identity: for async live validation use 'failureMessage'

  • New pot

  • Fix typo in text

  • New pot

  • New text for password too simple failure message

  • New pot

  • New pot

  • New pot

  • core: export default pagelen from z_search

  • mod_backup: fix an issue where deleting a non existing resource could result in a crash

  • mod_backup: fix a problem where some diffs could not be shown

  • mod_authentication: fix an issue with switching users and the once-token

  • mod_filestore: up the db tables path length to 500 characters (#3777)

  • mod_mailingslist: add option to only mail recipients matching languages with mailed page (#3778)

  • mod_acl_user_groups: bump max upload size to 2GB

  • mod_fileuploader: fix a problem where the file upload could miscount uploaders (#3754)

  • mod_copyright: new module to administrate copyrights for content items (#3773)

  • core: add minor specs and docs for site config overrides (#3783)

  • mod_wires: add optional href attribute for button with tag 'a' (#3786)

  • Fix a problem where some media were only partially downloaded (#3790)

  • Upgrade erlexec, jobs, depcache (#3794)

  • mod_fileuploader: report upload speed (#3795)

  • mod_authentication: fix a problem with setting the 2FA code during password reset (#3796)

  • New pot

  • core: fix a problem where the count query could not be called via m.search (#3799)

  • New pot

  • Upgrade template_compiler

  • Upgrade template_compiler

  • mod_admin: show id in edit header. Minor changes.

  • Add 0.83 release notes

  • docker: fix an issue with docker uid/gid on macOS (#3723)

  • mod_wires: add 'model/wires/post/event/+name' topic to trigger named wires (#3805)

  • core: remove order-by when counting rows (#3806)

  • mod_export: add option to use a module for the exports (#3807)

  • mod_search: add 'predicate' option to match_objects query term (#3808)

  • core: refactor sidejob start code (#3809)

  • Add notification if identity is changed. Add error message for forced external logons. (#3810)

  • mod_export: fix a problem in making a default filename

  • mod_export: ensure export module is loaded before checking if function is exported

  • mod_logging/mod_development: add logging to the browser console (#3811)

  • mod_log: allow development to connect to the log topic

  • email: add config site.email_override_exceptions to allow specific email addresses if an override is set (#3812)

  • New pot

  • mod_development: only show logging hint to admin users

  • Change sentence - new pot

  • mod_authentication: ensure pw complexity check is outside ratelimit (#3814)

  • New pot

  • mod_admin: filter connect dialog results using the ACL (#3816)

  • New pot

  • New pot - tune some strings for better automatic translation

  • m_identity: filter some more keys when requesting identities (by an admin)

  • mod_ssl_ca: add explanation how to add a certificate if none is present

  • New pot and extra block in _logon_box.tpl to allow to wrap the logon box template in extra html

  • mod_auth2fa: make the 'forced' per ug level 3 (#3820)

  • New pot

  • mod_video: add info log on convert start and finish

  • mod_acl_user_groups: use notification to check which content groups can be used for a category insert (#3822)

  • mod_copyright: use name to store rights, support lookup by url (#3823)

  • mod_auth2fa: only request QR code iff authenticated using username_pw

  • Fix auth_method lookup

  • Upgrade logstasher

  • Upgrade mqtt_sessions

  • core: fix default options for z_fetch (#3825)

  • core: in template runtime add 'facets' lookup for search_result

  • mod_admin: add 'rsc_props' block to upload-file dialog. Similar to the new resource tab.

  • core: look for more types when matching identity for users

  • mod_authentication: ensure correct auth_method is set for SSO logons (#3827)

  • New pot - tune some sentences

  • zotonic_launcher: use '@localhost' for default SNAME for shortnames listen on 127.0.0.1 (#3829)

  • mod_filestore: allow clearing the filestore config

  • core: fix an issue where a SMTP socket could return einval if the SSL certificate is not valid (#3831)

  • mod_fileuploader: pre-allocate uploaded file to prevent enospace during uploads

  • mod_search: fix a problem where searches could not be sorted by edge seq

  • Use z_ids:identifier

  • mod_admin: replace boostrap js 3.3.5 with 3.4.1 (#3839)

  • docs: add 0.84/0 release notes

  • docs: add 0.83.1 release notes

  • Upgrade zotonic_stdlib

  • Upgrade OTP versions, as rebar3 needs OTP25 or newer (#3842)

  • mod_base: upgrade jquery to 3.7.1 (#3843)

  • mod_auth2fa: also force QR on login if group mode is 3 (#3844)

  • Update jsxrecord to 2.0 (#3845)

  • New pot

  • Set z.tz and z.lang cookkies to SameSite Lax (#3847)

  • Revert "Mod_survey: Add a preview of the button (#3824)" (#3848)

  • zotonic_core: map config 'smtp_ssl' to '{tls, always}' (#3850)

  • Mod_survey: Add a preview of the button (#3849)

  • mod_admin: fix a problem where having multiple live-buttons would stop the survey edit from working

  • mod_admin: fix an issue where the survey preview button was not updated

  • Upgrade jsxrecord

  • zotonic_core: for export do not map is_a to binaries

  • zotonic_core: fix a problem where Vimeo could not be embedded due to 429 errors (#3853)

  • Upgrade jsxrecord to 2.2

  • mod_translation: fix a problem with translating texts in repeating blocks (#3855)

  • core: clean up URLs for media import (#3856)

  • Update .pot

  • Remove use of 'eval' Fixes #2883 (#3857)

  • core: ensure that the csp-nonce is set when sending emails (#3858)

  • core: csp default, allow https: style

  • mod_admin: disable memory warning till OTP has been fixed (#3859)

  • core: more relaxed csp for style tags

  • core: default csp for webworker and mediastream (#3860)

  • mod_oembed: change prio of 'document' embeds (#3863)

  • mod_email_status: add blocking of received emails (#3865)

  • mod_search: ensure all modules and site is running before (re)creating the facet table (#3868)

  • core: fix an issue where a SQL error did not return http 500 error (#3869)

  • mod_wires: fix eval a problem where wired form submit actions were not evaluated (#3871)

  • core: more relaxes z_db:insert/update/delete type for id. Extend zlog type (#3872)

  • Upgrade zotonic_stdlib to 1.20.2

  • Make compatible with OTP27 (#3873)

  • mod_export: prevent double do before file extensions (#3876)

  • core: catch date formatting exception for value representations (#3874)

  • mod_search: add '~' operator for like queries

  • docs: extra docs for '~' operator

  • core: let the template render give less noise on obvious erronous dates.

  • mod_email_status: fix ACL check on block/unblock

  • mod_base: set lang attr in emails

  • core: allow search_props keys like 'pivot.postcode.operator' and 'pivot.postcode.value'

  • mod_base: let forminit only initialize hidden fields if there is a q value

  • Ooops

  • mod_base: do not let forminit empty hidden inputs

  • core: keep join for asort and zsort

  • mod_email_status: better block check and periodic cleanup (#3885)

  • core: check if recipient is ok before sending email (#3886)

  • smtp: on receive block, also check 'to' header (#3884)

  • core: improve config set default (#3888)

  • mod_wires: fix fallback to js eval (#3890)

  • mod_search: in faceted search, ensure the searched facet value is present (#3889)

  • core: add upgrade to install the identity_log table (#3891)

  • mod_authentication: update the session overview (#3892)

  • core: update user session tracking and logoff (#3893)

  • New pot

  • New pot - small text change

  • mod_authentication: better session invalidation and explanation (#3896)

  • New pot

  • New pot - cleanup of sessions overview

  • docker: change docker start command. Fix #3904 (#3906)

  • Misc. fixes. Better logging. Use proc_lib for spawn. (#3907)

  • zotonic_launcher: better texts for bash completion install feedback (#3916)

  • mod_mailinglist: fix a problem when exporting mailinglist recipients (#3917)

  • mod_admin: add lock icon after title of protected resources (#3925)

  • mod_admin: fix a problem where in the search panel is_published is not selected properly

  • Fix a problem where the site title could not contain unicode characters (#3922)

  • Upgrade zotonic_stdlib

  • core: truncate output values of logger (#3926)

  • core: fix a problem with setting is_secret flag on configs

  • On repivot, ensure newer items are pivoted/indexed first (#3928)

  • mod_base: let controller_page return the modification date of the page (#3930)

  • mod_oauth2: add extra logging on oauth redirect

  • Merge pull request #3936 from zotonic/oauth2-service-logging

  • mod_base: disable the modified to work around problem with the CSP nonce (#3937)

  • mod_oauth2: fix a problem with oauth logon crashing on required 2FA (#3938)

  • Upgrade cowmachine to 1.13.0

  • mod_base: add auth args to redirect context blacklist (#3939)

  • Fix an issue where mapped props might not be properly ACL checked

  • mod_authentication: fix a problem where the page was sometimes not reloaded with the logged in user (#3941)

  • mod_admin_frontend: fix an issue where tinymce could throw csp errors (#3940)

  • mod_custom_redirect: make the host, path and redirect fields larger (#3944)

  • core: fix a problem where some media previews were not uploaded to the filestore (#3935)

  • core: log an error if email encoding fails (#3947)

  • mod_auth2fa: fix title attribute

  • core: add z_db:foreign_keys/2 and z_db:foreign_key/3 functions

  • mod_backup: fix model get of daily dump, add extra access checks

  • Upgrade zotonic_stdlib

  • mod_l10n: improve country to iso mapping (#3954)

  • Newline

  • Upgrade template_compiler to 2.11

  • core: check for non-primary hosts if redirect is defined (#3958)

  • core: add z_db:alter_table/3 to alter a table according to a list of column defs (#3961)

  • Upgrade filezcache to 2.2 - add files cache stats in admin statistics (#3870)

  • mod_search: fix an issue where faceted search might not set the empty facets (#3962)

  • Refactor submit with async validators. Add async 'hasedge' validator. (#3963)

  • mod_admin: move category doc up

  • core: remove trailing slash from generated img tag (#3964)

  • mod_export: fix JSON export (#3965)

  • New pot - small textual change

  • docs: fix classes in hasedge example

  • mod_wired: ensure a local context for the js eval function (#3967)

  • core: add simple markdown support for triple and quadruple quoted code blocks (#3968)

  • Upgrade template_compiler

  • Adapt cloud-init for Ubuntu 24 (#3969)

  • mod_wires: fix an issue with livevalidation message spans

  • core: markdown table support (#3970)

  • site_management: better explanations when adding sites (#3971)

  • New pot

  • mod_admin: in the UI, rename 'block' to 'page block' (#3975)

  • New pot

  • core: fix a problem with html to markdown for certain tables

  • core: fix a problem with html to markdown for certain tables

  • mod_survey: use the date input for dates and date/number range checks (#3977)

  • markdown: add a bit of defensive code

  • core: fix a problem where html2markdown could crash on certain tables (#3979)

  • Upgrade template_compiler

  • core: fix an issue where when sending emails the reply-to address could be wrongly encoded (#3978)

  • New pot

  • mod_survey: do not email respondent if handler handled the submit

  • Upgrade template_compiler

  • mod_seo: remove duplicate but different block definition

  • Upgrade template_compiler

  • Upgrade zotonic_stdlib to 1.22.0

  • core: allow download of media files using data urls (#3981)

  • Fix css class: alert-error should be alert-danger

  • mod_email_status: keep error addresses to prevent resending (#3982)

  • mod_custom_redirect: prevent redirect of .zotonic and .well-known paths (#3983)

  • mod_translation: ensure .well-known and .zotonic URLs do not get a language code prefixed (#3984)

  • smtp: do not format MD tables for received emails (#3985)

  • core: fix an issue for z_email split when parsing an empty email adress

  • mod_ssl_letsencrypt: cleanup templates for better status during/after requesting a certificate (#3986)

  • mod_wires: signal user if they are having difficulties with authentication (#3988)

  • mod_email_relay: add option to let Zotonic servers relay email for other Zotonic servers (#3990)

  • mod_wires: fix an issue with bridging to opener if opened from another site (#3992)

  • smtp: add some extra typedefs for email receive (#3993)

  • Add filter from_json. Add option is_single_page to search (#3995)

  • Upgrade zotonic_stdlib to 1.23.0

  • core: add priority to the pivot queue (#3996)

  • mod_email_relay: fix logging of email error status, fix log level (#3997)

  • mod_email_relay: ensure binary status message (#3998)

  • mod_survey: allow 'cat' variations of survey.tpl

  • mod_base: add empty Makefile to prevent problems with 'make update-cotonic'

  • Upgrade mqtt_sessions to 2.6.1

  • mod_mailinglist: fix an issue with uploading recipients to mailinglist (#4002)

  • admin: fix a problem where not all predicates were listed (#4005)

  • core: add function to reload the site configuration (#4006)

  • mod_wires: warn in console for missing data cotonic path (#4007)

  • smtp: support STARTTLS for email receive (#4004)

  • mod_search: add optional sort term to autocomplete search (#4010)

  • smtp: add option smtp_starttls to optionally disable smtp receive starttls extension (#4011)

  • docker: use otp27 add sassc (#4012)

  • cloudinit: update to OTP27.2 (#4013)

  • core: fix fallback for db configs (#4014)

  • Docker: use debian base image

  • core: cleanup z_crypto:depickle errors (#4016)

  • Upgrade depcache to 2.0

  • New pot

  • Add nonce support functions and protect against resubmit of same form (#4008)

  • zotonic_launcher: add command to generate pot files (#4018)

  • mod_seo: add sitemap rebuild button to seo settings page (#4020)

  • mod_filestore: list European S3 alternatives (#4021)

  • mod_cookie_consent: add 'reject all' button (#4022)

  • New pot

  • Upgrade gproc to 1.0.0 (#4023)

  • mod_filestore: only delete files if service url matches (#4025)

  • mod_filestore: purge mismatched files

  • mod_cookie_consent: tune texts

  • core: add #content_security_header notification to modify the CSP (#4027)

  • mod_search: fix facet check for active modules (#4029)

  • New pot

  • docs: 0.87.0 release notes

  • New pot

  • core: add zotonic_observer behaviour (#4033)

  • mod_seo: tune gtm code for nonce (#4036)

  • mod_seo: fix csp strict-dynamic

  • Merge branch 'master' of github.com:zotonic/zotonic

  • Add some observer specs (#4038)

  • mod_seo: for gtm, add option to accept risk of custom code (#4039)

  • New pot

  • core: make content_security_header notification a foldr

  • New pot

  • core: fix trans lookup for nested lists (#4044)

  • Upgrade webdavfilez and certifi

  • core: prevent ranch supervisor stop on TLS handshake errors

  • auth: ACL support for switching users (and back) (#4045)

  • Fix a problem where a crashed application does not restart Zotonic (#4049)

  • mod_oauth2: add option to manually manage OAuth2 tokens (#4040)

  • Fix a problem where days were not translated (#4051)

  • Add config ip_allowed_admin to restrict admin access

  • core: add m_identity:is_username_local/2 (#4053)

  • mod_authentication: prevent race conditions when polling auth api (#4055)

  • Docs: add 0.88.0 release notes

  • New pot

  • Misc fixes March 2025 (#4058)

  • Upgrade zotonic_stdlib to 1.23.1

  • Fix an issue when importing resources without edges (#4059)

  • mod_menu: fix an issue where the menu could cause a JS error (#4060)

  • core: generate country file from the mod_l10 country list (#4062)

  • mod_seo: show a message if JSON-LD is not generated because page is not public

  • mod_search: fix a problem where counting rows could result in a SQL error

  • Remove debug

  • core: fix an issue where on import video depictions were not copied (#4064)

  • Small admin css fix

  • Upgrade filezcache

  • mod_filestore/mod_backup: add global config option (#4066)

  • New pot

  • Fix mod_backup config comment

  • Json escape fix20250402 (#4061)

  • mod_identity: fix an issue where the username could not be changed. Fix #4068 (#4069)

  • Fix an issue with reading multiple config files (#4072)

  • mod_backup: add weekly, edge and medium backups (#4070)

  • mod_backup: fix an issue with the admin_panel config

  • mod_filestore: add tls_options config (#4073)

  • Upgrade ftpfilez

  • New pot

  • mod_filestore: change language depening on the keep-files config

  • New pot

  • New pot

  • Better translatable text - new pot

  • Use OTP 27.3.3 in cloudinit and docker (#4077)

  • mod_base: Add filters 'render' and 'merge_tags' (#4078)

  • docs: correct media_replace_file notification types

  • core: add filters to the module index (#4080)

  • Upgrade cowmachine

  • Try python 3.9 for docs build

  • mod_base: merge_tags extra url-unescape if tag starts with %20

  • mod_base: merge_tags fix for %20

  • mod_translation: option to set language in rsc creation dialog (#4082)

  • New pot

  • core: fix an issue where export could fail if one of the predicates is not visible

  • core: retry messages blocked by spamcop after 12 hours. (#4086)

  • Backup restore and replication (#4079)

  • core: stricter HTML sanitizier. Fix for merge_tags filter. (#4087)

  • smtp: remove ssl listen anti_replay option (#4088)

  • mod_base: small fixes for filter merge_tahs

  • smtp: ensure no retry on certain errors (#4091)

  • core: fix an issue with looking up a file when filters is set to []

  • mod_authentication: better support for password managers (#4094)

  • mod_admin: remove growl message after making a connection, use the actions instead

  • mod_authentication: add extra login options in step 2 of login (#4099)

  • mod_admin: show content group in admin header

  • mod_seo: add support for Plausible (#4098)

  • mod_authentication: do not set SEO trackers on logon pages (#4100)

  • mod_seo: fix issue with Plausible tracking script

  • mod_mailinglist: add confirm option to subscribe action, add text for in emails (#4101)

  • New pot

  • core: make the page_path translatable (#4103)

  • Fix for update with new codec installed

  • New pot

  • Upgrade gen_smtp to 1.3.0 (#4110)

  • core: on rsc update, fall back to rsc tz from db (#4113)

  • mod_survey: fix a problem with instant feedback and certain question names (#4111)

  • Fix an issue where html characters were double escape in survey answer emails and when copying menu items (#4115)

  • Fix an issue where the SEO JSON-LD could have an empty name in the breadcrumbs (#4116)

  • core: use the context tz as fallback when inserting resources (#4117)

  • core: after insert of dependent rsc, check if connected (#4107)

  • core: fix offset for add_month filter

  • core: filter add_month, simplify guard

  • admin: show header on advanced panel

  • mod_base: fix check for home page in controller_page

  • mod_email_status: fix an issue where the empty email address could be blocked (#4122)

  • New pot

  • core: shorten filenames in generated pot files (#4124)

  • New pot

  • Upgrade dispatch_compiler. Fix #4121 (#4126)

  • Upgrade zotonic_stdlib

  • core: for pot generation, check for known modules in src paths (#4129)

  • core: keep last handled dropbox files in files/handled (#4128)

  • Small fixes for translatable page path handling

  • smtp: add option 'smtp_listen_size' to set the max size of received emails (#4133)

  • mod_admin: in tinymce link action, use page path for links

  • docs: add 0.89.0 release notes

  • core: let controller_template use a 308 when redirecting to language-specific URLs

  • core: support resource name for dispatch paths (#4137)

  • Fix an issue with selecting ACL collaboration groups when creating or editing resources (#4127)

  • doc: add 0.89.1 release notes

  • core: set timeout of 2h after db raw connection get

  • core: Update markdown conversion for better html-to-markdown (#4106)

  • mod_translation: make specific lang switch menu for mod_admin (#4139)

  • Fix an issue where timezone conversions where applied when duplicating resources (#4141)

  • core: fix an issue with timezone conversions in frontend admin edit (#4143)

  • mod_translation: make it possible to preview a language (#4140)

  • core: add dispatch model to fetch dispatch information for paths and urls (#4142)

  • mod_menu: fix an issue where the title could not be found for the menu remove dialog (#4146)

  • Fix an issue where the timezone was set to UTC during rsc duplicate

  • Remove console.log

  • mod_acl_user_groups: prevent error for double declare of 'cats'

  • core: in m_req, if the 'peer_ip' is set in the context then derive the 'peer' from there (#4147)

  • core: before closing connection, cancel any running query on query timeout (#4163)

  • Upgrade zotonic_ssl to 1.4.0

  • core: on query timeout return {error, query_timeout} (#4166)

  • mod_admin: show language tabs in current language, sort by shown language names (#4164)

  • mod_ssl_letsencrypt: send admin email on error (#4168)

  • core: admin user can login even if unpublished (#4169)

  • mod_admin_config: add list of available configs, with documentation and defaults (#4171)

  • mod_export: fix an issue with configuring fixed ids in controller options (#4172)

  • core: add configuration for max ImageMagick resized jobs (#4177)

  • mod_ssl_letsencrypt: higher timeout on LE requests (#4176)

  • Optimize file_info calls by adding the 'raw' option (#4178)

  • survey: show the survey-start or first page immediately, if possible (#4179)

  • mod_mqtt: fix a race condition in z.live (#4185)

  • mod_export: editable export columns with value expressions (#4181)

  • New pot

  • Add Papiamento to the language data (#4180)

  • doc: add 0.90.0 release notes

  • mod_filestore: Add backoff to remote filestore operations (#4188)

  • core: html2markdown fix an issue where space after a code tag could get lost (#4191)

  • core: add behaviour for email_is_recipient_ok notification. (#4195)

  • mod_wires: fix a problem with form submit before wires init (#4201)

  • mod_development: only show development interfaces to user allowed to use them (#4204)

  • mod_base: ensure that the MQTT websocket preconnect path does not have a language (#4205)

  • mod_acl_user_groups: increment schema version

  • core: fix an issue with markdown code blocks (#4206)

  • Add draft version of Copilot instructions (#4208)

  • docs: move docs to erlang moduledoc and markdown files (#4207)

  • mod_acl_user_groups: fix an issue where inserting unknown rsc id creates wildcards (#4175)

  • docs: fix links in some filters

  • mod_admin: add drop-down menu for duplicate/revert/delete actions (#4209)

  • New pot

  • Update some menu texts

  • Upgrade template_compiler to 2.14.0

  • mod_import_csv: add xlsx import and refactor (#4214)

  • Add define for xlsx parser max memory (#4216)

  • mod_admin: fix an issue where date-is-all-day could not be selected on Safari (#4217)

  • mod_base: use translated page-path to set request language (#4203)

  • mod_base: let date filter follow 'is all day' if an id is passed (#4220)

  • Upgrade cowmachine

  • Restore img files

  • mod_fileuploader: refactor and change drop on medium-edit page (#4221)

  • core: support query arg keys like a[1] (#4222)

  • Upgrade ringbuffer to 1.3

  • core: Make xlsx parser work the Google Docs XLSX exports (#4225)

  • Batch of small fixes and changes (oct-25-1) (#4226)

  • Remove oidcc/mysql from rebar.lock

  • Remove jose/telemetry and telemetry_registry from rebar.lock

  • Upgrade zotonic_stdlib to 1.25.0

  • mod_admin: refactor list view title, add include for showing extra flags for each resource (#4229)

  • mod_development: add function tracing (#4230)

  • mod_translation: return only atom language codes with m_translation:all_languages/0 (#4231)

  • mod_survey: on survey page add block before and after the questions (#4232)

  • mod_survey: add option to only show results if passed (#4233)

  • New pot

  • mod_survey: fix results email

  • mod_search: support structured hasobject/hassubject values (#4235)

  • mod_search: add support for searching of the absence of edges (#4236)

  • test: add test to compile all available templates (#4238)

  • Upgrade zotonic_stdlib to 1.26.1

  • core: slowly retry emails reported by gmail as spam (#4239)

  • core: for identity type/key lookups ensure we can use the identity_type_key_key index (#4242)

  • core: enable memo cache on all requests (#4237)

  • mod_email_relay: follow the 'is_final' status for retrieving permanent or temp error (#4244)

  • core: set the default referrer policy to strict-origin-when-cross-origin

  • mod_survey: add option to limit number of submissions (#4249)

  • Misc fixes and changed for Dec 2025 (#4250)

  • mod_survey: check max submissions before insert of survey answers (#4252)

  • New pot

  • New pot

  • mod_admin: fix a problem with filter temporary_rsc and props as lists (#4256)

  • core: fix an issue where the page_path could be double encoded on resource imports (#4257)

  • Fix an issue with parallel edge insert and unknown ACL actions (#4259)

  • mod_admin: add view transitions

  • Upgrade certifi to 2.16.0

  • core: fix an issue where the dispatcher could crash on an empty path (#4263)

  • Update docker and cloud-init to Erlang 27.3.4 (#4262)

  • mod_filestore: add a test-connection button to test locked configs (#4261)

  • New pot

  • mod_filestore: start uploaders as sidejobs (#4264)

  • mod_filestore: if 'is_local_keep' is set then use local file if available (#4266)

  • mod_filestore: use filestore_config to lookup config

  • mod_export: move mod_admin export panel to main content panels (#4269)

  • Misc fixes Jan 26 (batch 1) (#4270)

  • core: fix an issue with medium delete on certain psql versions (#4272)

  • Add log audit key, for now for auth. Also fix issue with copyright edit form (#4276)

  • Remove links to Amazon S3 and Google Cloud Storage (#4274)

  • mod_admin: fix an issue with dialog_edit_basics and updating an optional element (#4277)

  • mod_base: support the link_new z-media image option (#4278)

  • Survey intermediate result (#4279)

  • New pot

  • mod_survey: use Cotonic session id instead of z.deviceId (#4282)

  • New pot

  • core: allow set of undefined session id

  • mod_survey: fix a problem with checking if a page has feedback (#4283)

  • New pot

  • mod_survey: different stop message if intermediate results are saved (#4285)

  • New pot

  • mod_survey: fix an issue with drop_till_page/2 and restarting a survey in a different viewer

  • mod_survey: fix page jumps and result email, re-arrange survey settings tab (#4287)

  • New pot

  • mod_survey: Fix a problem with showing feedback after next

  • New pot

  • mod_survey: fix logical not

  • mod_survey: tune help texts in the settings (#4290)

  • mod_survey: change 'no back' option to 'no back to this page' (#4292)

  • New pot (#4294)

  • New pot

  • mod_survey: texts on settings tab

  • mod_survey: save form on stop (#4296)

  • New pot

  • mod_survey: small changes to question page buttons (#4298)

  • docs: add 0.91.0 release notes

  • mod_survey: add checkbox to survey settings for enable/disable intermediate results (#4302)

  • Merge branch 'master' of github.com:zotonic/zotonic

  • New pot

  • mod_survey: fix label for checkbox

  • mod_survey: fix an issue with multiple save forms and continuation

  • New pot

  • core: on page_url, also pass rewrite args if there is a page path (#4304)

  • mod_survey: email the answers with sudo (#4309)

  • core: import fixes, use of fetch_options, improved admin connection views (#4311)

  • New pot

  • New pot - make sentence better translatable

  • mod_admin_predicates: add a graph view (#4318)

  • New pot

  • mod_admin: in _admin_edit_header.tpl add a block around the meta data (#4319)

  • New pot

  • mod_admin_predicate: add JS APIs to reset the list of hidden categories and predicates (#4320)

  • mod_admin_predicate: allow drag of nodes in graph view

  • core: only redirect to media website if is_website_redirect is set (#4321)

  • core: fix an issue in markdown where inline markup was applied after a non space character (#4323)

  • Docs: add API, module observer, and module event handler documentation (#4326)

  • mod_admin_predicate: fix an issue where layout is not running when dragging a node (#4327)

  • core: fix an issue where the memo cache was not flushed correctly (#4329)

  • Fix small edoc and spec issue (#4330)

  • docs: cleanup unneeded backslashes (#4331)

  • Docs: better descriptions for notification observers (#4332)

  • core: add m_rsc:update_translation/3 and /4 functions (#4334)

  • mod_search: add search term 'content_group_exclude' (#4337)

  • mod_wires: add a mediaoverlay for viewing bigger media images (#4346)

  • Skip empty verification codes

  • mod_wires: in mediaoverlay make next/prev less high (#4347)

  • mod_authentication: cache decoded auth tokens for faster request handling (#4348)

  • mod_email_relay: also pass the list-unsubscribe and priority headers (#4353)

  • mod_email_dkim: extend the DKIM headers with list-unsubscribe(-post) headers (#4354)

  • mod_admin: fix an issue where unpublished resources could not be found in the connect dialog (#4359)

  • core: ensure email from header has a name part (#4356)

  • Upgrade template_compiler to 3.0.0

  • Fix template compiler callbacks

  • Upgrade template_compiler to 3.1.0

  • Upgrade template_compiler to 3.2.0

  • Upgrade template_compiler to 3.3.0

  • mod_development: add live debug of template variables (#4362)

  • New pot

  • mod_development: add floating trace button to debug current page (#4363)

  • New pot. Ensure debug trace stops when closing trace overlay.

  • mod_survey: add support for non-linear forms which can also submit on back (#4365)

  • New pot

  • mod_survey: cleanup settings layout a bit

  • mod_admin: make git status text-muted

  • mod_survey: change setting text

  • New pot

  • core: fix an issue where the language config could be overwritten (#4367)

  • mod_development: improve debug data viewer using collapsible nodes (#4368)

  • New pot

  • mod_development: make debug pane resizable by dragging the splitter (#4369)

  • mod_development: add template inheritance to the list of included-by templates

  • mod_development: fix the extends/included-by drop down menu on the debug layout (#4371)

  • mod_survey: for non-lineair forms, add back-to-start button (#4372)

  • New pot

  • Upgrade template_compiler to 3.4.1

  • mod_development: add link to template trace of looked up dispatch path (#4374)

  • New pot

  • New pot - rephrase a sentence

  • docs: Update template-tags documentation for the new temmplate tags (#4376)

  • Upgrade template_compiler to 3.5.0

  • Fix edocs and old '@type' specs. (#4377)

  • Set version to 1.0.0-rc.16 (#4378)

Marco (3):

  • Fix MQTT auth as admin to zotonic_status_site (#4145)

  • Adjust MQTT admin subscription permissions to $SYS (#4144)

  • Add resetratelimit command, to reset the rate limiter for a site (#4148)

Michiel Klønhammer (169):

  • New Crowdin updates (#3287)

  • New Crowdin updates (#3389)

  • New Crowdin updates (#3392)

  • New Crowdin updates (#3399)

  • New Crowdin updates (#3401)

  • email error messages improved

  • New Crowdin updates (#3409)

  • New Crowdin updates (#3410)

  • drop folder

  • Merge branch 'master' of https://github.com/zotonic/zotonic

  • text fixes

  • Merge branch 'master' of https://github.com/zotonic/zotonic

  • name (label) and survey (form)

  • New Crowdin updates (#3411)

  • tweak text

  • Update _admin_edit_block_li_survey_upload.tpl

  • Merge branch 'master' of https://github.com/zotonic/zotonic

  • Merge branch 'master' of https://github.com/zotonic/zotonic

  • New Crowdin updates (#3418)

  • New Crowdin updates (#3423)

  • Removed Zotonic from Insert a Zotonic media item and Insert Zotonic media item

  • Interne link invoegen (edit dutch)

  • New Crowdin updates (#3429)

  • New Crowdin updates (#3446)

  • New Crowdin updates (#3456)

  • New translations zotonic.pot (Polish) (#3475)

  • New Crowdin updates (#3498)

  • New Crowdin updates (#3503)

  • New Crowdin updates (#3507)

  • New Crowdin updates (#3510)

  • New Crowdin updates (#3514)

  • New Crowdin updates (#3515)

  • New translations zotonic.pot (Dutch) (#3516)

  • New Crowdin updates (#3528)

  • New Crowdin updates (#3533)

  • New Crowdin updates (#3540)

  • New Crowdin updates (#3542)

  • New Crowdin updates (#3550)

  • New Crowdin updates (#3554)

  • New Crowdin updates (#3559)

  • New Crowdin updates (#3576)

  • New translations zotonic.pot (Dutch) (#3589)

  • New Crowdin updates (#3598)

  • changing sign in to login

  • New translations zotonic.pot (Russian) (#3613)

  • Update _admin_edit_sidebar.person.tpl

  • Merge branch 'master' of https://github.com/zotonic/zotonic

  • language tweaks

  • New Crowdin updates (#3619)

  • New Crowdin updates (#3627)

  • New Crowdin updates (#3639)

  • New Crowdin updates (#3644)

  • New Crowdin updates (#3649)

  • New Crowdin updates (#3659)

  • New Crowdin updates (#3704)

  • New Crowdin updates (#3763)

  • text tweaks login

  • New translations zotonic.pot (Dutch) (#3765)

  • New translations zotonic.pot (Dutch)

  • Update email_password_reset.tpl

  • Merge branch 'master' of https://github.com/zotonic/zotonic

  • Merge pull request #3768 from zotonic/l10n_master

  • New translations zotonic.pot (Dutch)

  • Merge branch 'master' of https://github.com/zotonic/zotonic

  • Update message.pw.tpl

  • Merge pull request #3769 from zotonic/l10n_master

  • Update message.dataleak.tpl

  • Merge branch 'master' of https://github.com/zotonic/zotonic

  • Update message.dataleak.tpl

  • Merge branch 'master' of https://github.com/zotonic/zotonic

  • Update message.tooshort.tpl

  • Update message.tooshort.tpl

  • Update message.dataleak.tpl

  • password message

  • Updatepassword message message.tooshort.tpl

  • Update _signup_form_fields_username.tpl

  • Merge branch 'master' of https://github.com/zotonic/zotonic

  • New Crowdin updates (#3771)

  • Update message.pw.tpl

  • New translations zotonic.pot (Dutch) (#3772)

  • Update message.need_passcode.tpl

  • Merge branch 'master' of https://github.com/zotonic/zotonic

  • New Crowdin updates (#3791)

  • New Crowdin updates (#3793)

  • New Crowdin updates (#3798)

  • New Crowdin updates (#3800)

  • New Crowdin updates (#3801)

  • Update _admin_survey_question_page.tpl

  • Merge branch 'master' of https://github.com/zotonic/zotonic

  • New Crowdin updates (#3813)

  • New Crowdin updates (#3815)

  • New translations zotonic.pot (French) (#3817)

  • New Crowdin updates (#3818)

  • New Crowdin updates (#3828)

  • New translations zotonic.pot (Dutch) (#3830)

  • New Crowdin updates (#3846)

  • New Crowdin updates (#3894)

  • New Crowdin updates (#3895)

  • New Crowdin updates (#3897)

  • New Crowdin updates (#3898)

  • New translations zotonic.pot (French) (#3899)

  • New translations zotonic.pot (Dutch) (#3921)

  • New Crowdin updates (#3966)

  • New Crowdin updates (#3973)

  • New Crowdin updates (#3974)

  • New Crowdin updates (#3976)

  • Update email_password_reset.tpl

  • New Crowdin updates (#3980)

  • New Crowdin updates (#3991)

  • New Crowdin updates (#4017)

  • New Crowdin updates (#4019)

  • New Crowdin updates (#4024)

  • New Crowdin updates (#4028)

  • New translations zotonic.pot (Dutch) (#4030)

  • New Crowdin updates (#4031)

  • New Crowdin updates (#4035)

  • New Crowdin updates (#4037)

  • New Crowdin updates (#4041)

  • New Crowdin updates (#4050)

  • New Crowdin updates (#4057)

  • New Crowdin updates (#4067)

  • New Crowdin updates (#4074)

  • New Crowdin updates (#4083)

  • New Crowdin updates (#4102)

  • New Crowdin updates (#4108)

  • New Crowdin updates (#4123)

  • Update email_password_reset.tpl

  • New Crowdin updates (#4136)

  • New Crowdin updates (#4167)

  • New Crowdin updates (#4187)

  • New Crowdin updates (#4210)

  • New Crowdin updates (#4234)

  • New translations zotonic.pot (Ukrainian) (#4243)

  • New Crowdin updates (#4251)

  • New Crowdin updates (#4253)

  • New translations zotonic.pot (Polish) (#4260)

  • New Crowdin updates (#4265)

  • New translations zotonic.pot (German) (#4267)

  • New translations zotonic.pot (Polish) (#4268)

  • New translations zotonic.pot (Dutch) (#4275)

  • New Crowdin updates (#4280)

  • New Crowdin updates (#4281)

  • New Crowdin updates (#4284)

  • New Crowdin updates (#4286)

  • New Crowdin updates (#4288)

  • tekst forms

  • New Crowdin updates (#4289)

  • Update _admin_survey_settings_tab.tpl

  • New Crowdin updates (#4295)

  • Update _survey_question_page.tpl

  • New Crowdin updates (#4297)

  • New translations zotonic.pot (Dutch) (#4299)

  • Update _admin_survey_settings_tab.tpl

  • New Crowdin updates (#4301)

  • Merge branch 'master' of https://github.com/zotonic/zotonic

  • New Crowdin updates (#4303)

  • New Crowdin updates (#4305)

  • New Crowdin updates (#4306)

  • New Crowdin updates (#4315)

  • New Crowdin updates (#4316)

  • New Crowdin updates (#4317)

  • You cannot reply to this email.

  • New Crowdin updates (#4360)

  • New Crowdin updates (#4364)

  • Update _survey_question_page.tpl

  • New Crowdin updates (#4366)

  • New Crowdin updates (#4370)

  • New Crowdin updates (#4373)

  • New Crowdin updates (#4375)

Mikael Karlsson (2):

  • mod_search: Fix mismatch between sql and facet float type (#3321)

  • mod_base: Add support for multiple options in select element (#3733)

Noel da Costa (1):

  • #3951 Update docker-compose.yml - remove version as it is deprecated (#3952)

Pasquale Pinto (9):

  • Exclude 'pivot_geocode_qhash' from rsc raw gets

  • mod_filestore: use high timeout in ensure_size_bigint

  • Docker: make sure that the config directory is owned by the zotonic user

  • Add support for (most common) 3-letter language codes

  • Do not use the failure message from parameters in postback validators

  • Allow rich html error messages in validators

  • Support maps in JSON encoder to allow overriding its rows

  • SEO: allow multiple verification codes per service

  • Admin overview: reuse selected filters in small form

Pinto Pasquale (33):

  • Add IF NOT EXISTS condition to key_changes_v1_0's index install (#3767)

  • Add form reset event handler to update the form (#3775)

  • Utilize site configuration overrides (#3782)

  • Skip file inputs with the nosubmit class (#3788)

  • Merge pull request #3838 from zotonic/search-edge-order

  • Merge pull request #3837 from zotonic/fileuploader-pre-alloc

  • Support the stay parameter in media upload dialog (#3851)

  • Make tinymce default to newest when the configured version is unsupported (#3867)

  • zotonic_mod_cookie_consent: carry nonce on script replacement (#3875)

  • mod_backup: stricter periodic cleanup of revisions for users (#3881)

  • mod_authentication: Session overview page (#3880)

  • Add nonce to googletagmanager's script (#3908)

  • mod_editor_tinymce: Add translations to version 5.10.2 (#3949)

  • Show admin warnings only to admin users (#3956)

  • Allow picking different 2FA options per User Group (#4034)

  • Merge pull request #4052 from zotonic/admin-logon-ip-allow

  • Merge pull request #4063 from zotonic/query-count-rows-text

  • Merge pull request #4075 from zotonic/get_without_geomap_qhash

  • Merge pull request #4076 from zotonic/filestore_bigint_timeout

  • Merge pull request #4135 from zotonic/controller-template-redirect-language

  • Merge pull request #4093 from zotonic/docker_config

  • ACL: add support for visibility levels in rules (#4149)

  • Merge pull request #4182 from zotonic/three_letter_languages_1

  • Add CSP nonce to _html_head_wires.tpl's style tag

  • Merge pull request #4245 from zotonic/pasqu4le-wires-style-nonce

  • Merge pull request #4246 from zotonic/referrer-policy-strict-origin

  • Merge pull request #4255 from zotonic/livevalidation-html-message

  • Merge pull request #4254 from zotonic/postback-validation-message

  • Merge pull request #4310 from zotonic/json_encode_maps

  • Support ImageMagic v7 (#4336)

  • Merge pull request #4345 from zotonic/multiple-seo-verify

  • Merge pull request #4350 from zotonic/admin_filters

  • Expose zotonic's git revision and show it in the admin status page (#4351)

Rob van den Bogaard (4):

  • [core] Accept self as binary or atom in m_rsc_update (#3641)

  • mod_search: For content_group term, also support a list of groups (#3759)

  • Fix typo in the text copy for the duplicate resource admin dialog (#4358)

  • Connect dialog: Fix option Any category (#4352)

Seann Aswell (1):

  • Update frontend-pagebackgrounds.rst (#3781)

Viacheslav Katsuba (1):

  • Change a year at copyright scomp_wires_button.erl (#3787)

William Fank Thomé (8):

  • Add defer argument to lib tag (#3304)

  • Add keyboard to dialog options (#3314)

  • Add input types to livevalidation (#3336)

  • mod_base: new _debug.tpl style (#3347)

  • mod_base: allow pick debug vars (#3348)

  • fileuploader: Add start_topic option (#3660)

  • fileuploader: Add the ability to cancel uploads (#3661)

  • fileuploader: Allows to define the upload name (#3664)

abensoft-alvaro (1):

  • smtp: added support to pass tls_options for the relay server. (#4150)

abensoft-ana (1):

  • Adds a configurable limit on the number of simultaneous SMTP senders. (#4308)

heiheshang (1):

  • core: z_install_update checking index before renaming (#3414)

numblock (1):

  • Form resetting: add ignorable inputs (#3780)

patrick (1):

  • Fix typos in dispatch-rules and templates (#3701)

ptrck (3):

  • Use erlang 26 as a base image (#3693)

  • Make exposed docker postgres port variable (#3694)

  • Add missing word controller (#3700)

wongcw (1):

  • chore: allow postgres cloud db user like supabase with '.' (#3748)