We are hiring! View our job offers now!
Changes & Improvements

Release Notes of Structr Version 4

See the history of Structrs evergrowing evolving in our release notes stream. Find detailed changes and feature improvements.

February 28th 2023 Version 4.2.3

Changes between 4.2.3 and 4.2.2

  • Bug fixes in OpenAPI implementation: Improves standard compliance

February 21st 2023 Version 4.2.2

Changes between 4.2.2 and 4.2.1

  • Fixes a bug where page links were lost in an deployment export/import roundtrip

January 9th 2023 Version 4.2.1

Changes between 4.2.1 and 4.2.0

  • Adds contentType to export for page nodes
  • Correctly delete MQTTClient first try (prevent setting an attribute on the node which is currently being deleted)
  • Correctly handle a failed partial schema compilation
  • Updated tests and configuration for compatibility with GitHub Actions

August 23rd 2023 Version 4.2.0

Changes between 4.2.0 and 4.1.2

  • Various bugfixes and security updates
  • Volume license verification via HTTP (port 80)
  • HTTP request metrics (pages) in Prometheus endpoint
  • Docker images for arm64
  • Smaller Docker image (< 1 GB down from 1.5 GB)
  • On Debian systems, Structr is now installed as a systemd service
  • Improved scripting performance
  • Improved thumbnail management
  • Improved control over error message popups in Backend UI
  • Request data now available in onLogin and onLogout callback
  • Syntax highlighting for python and R
  • Use SVG icons more consistently
  • New lifecycle method: afterSave
  • New lifecycle method: onUpload
  • New function: validate_certificates()
  • New property: User.lastLoginDate

May 4th 2022 Version 4.1.2

Changes between 4.1.2 and 4.1.1

  • Fixes bug in pdf generation
  • Fixes version detection for non-numeric database version
  • Performace enhancement for output rendering
  • New rate limit setting for HTTP/2 frames (default limit: 100)

April 30th 2022 Version 4.1.1

Changes between 4.1.1 and 4.1.0

  • Upgrade to GraalVM 22.1.0
  • Some minor fixes

March 7th 2022 Version 4.1.0

Changes between 4.1.0 and 4.0.1

  • Some icons harmonised and moved to SVG
  • Enhancement of frontend low-code functions (input/select element management on Events dialog, lazy partial loading)
  • Improved mail templates (bulk creation)
  • Improved CSV import (support for empty headers)
  • Updated dependencies
  • Monaco editor as replacement for CodeMirror
  • Fixes expected result count in single entity schema method calls
  • Security enhancement (password complexity policy)
  • OpenAPI enhancement
  • Enhanced support for archive files (new unarchive() method, bug fixes)
  • Updates GraalVM to version
  • Many bugfixes and stability improvements
  • Support for password-encrypted PDF files
  • Create File node by moving existing file on disk to Structr file system
  • Enhanced JWT/JWKS support
  • Enhancements for polyglot scripting engine (doAs function)
  • New HTML5 element types (Data, Dialog, Picture and Slot) and modified attributes of Audio and Video elements
  • Enhanced partial replacement for table elements using insertAdjacentHTML
  • Support for IETF BCP 47 language tag notation with dash instead of underscore as delimiter
  • Fixed layout of graph editor function bar
  • Upgrade to logback 1.2.8
  • Upgrade to imageio 3.8.0 with Apache Batik to support transcoding of SVG images
  • Many UI enhancements: Users can now create either simple pages or pages from a Widget template
  • Support for JDBC queries without a result set (DELETE, INSERT, etc)
  • Support for many image files types to be able to create thumbnails, e.g. WEBP format
  • New lifecycle method onAcmeChallenge to allow for script-based creation of a dns record during the LetsEncrypt certificate retrieval process
  • Fixed issue with ClosedChannelException in StructrWebSocket

January 17th 2022 Version 4.0.1

Changes between 4.0.1 and 4.0.0

  • Adds exclusion for log4j to jmimemagic dependency.

November 29th 2021 Version 4.0.0

Changes between 4.0.0 and 3.6.5

New features:

  • New admin UI
  • Switch to Oracle GraalVM JDK 11
  • Support for polyglot scripting based von GraalVM JVM
  • New static type methods
  • New application- and request-level context variable store
  • Support for Neo4j 4.x including version autodetection
  • New database driver with support for reactive Neo4j Bolt database driver
  • New graphql() system function
  • New (experimental) mongodb() and bson() system functions
  • New (experimental) loadPartial() system function
  • Jetty 10 with support for HTTP/2
  • New group-based Resource Access Grants
  • Support for JWT authentication with JWKS
  • New servlet endpoints for metrics, health check and histogram data
  • New map() script expression
  • Support for deployment by up-/download of ZIP files and URLs

Security enhancements:

  • Fixed ProxyServlet access modes
  • 2FA whitelisting for IPv6 addresses with CIDR format support
  • New “onOAuthLogin” lifecycle method
  • SNI host check enforcement in HTTP service

Performance enhancements:

  • Faster lookup for pages and files
  • Improved cache() method
  • Improved bulk operations


  • Improved scripting logging
  • Multi-level autocompletion in script contexts
  • Improved indexing
  • Additional modes for ACME/let’s encrypt certification procedures
  • Fixed serialization of nested JSON arrays
  • Automatic reconnect for MQTT connections
  • Many bug fixes, code clean-up and minor enhancements