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

Release Notes of Structr Version 5

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

April 10th 2024 Version 5.2.0

Changes between 5.1.0 and 5.0.1

  • Many individual bugfixes and improvements
  • Improved cluster mode
  • Improved error and warning messages (more info and clarity)
  • Improvements in Event Action Mapping dialogs
  • Improvements in Flow Editor
  • Improvements in OpenAPI support
  • Better support for GraalVM Chrome Debugger interface
  • Better support for onDelete() lifecycle method
  • Performance improvements in Structr Backend UI
  • New filesystem mount dialog
  • New lifecycle method: afterDelete()
  • New function: fromExcel() to import data from XLSX files directly
  • Security: upgrade versions of several external dependencies
  • Feature: system time zone can now be configured via the environment variable ‘TZ’
  • Feature: allow maintenance commands to return a custom status code
  • Feature: make the initial admin user configurable (creation, name and password)
  • Feature: save previous deployment configurations in localstorage
  • Feature: check permissions of structr.conf and warn
  • Feature: support for byte array properties (binary data)
  • Feature: volume license check now supports HTTP proxy
  • Feature: deployment export sets correct permissions
  • Feature: checkbox support in frontend.js
  • Remove node cache downsizing in FixedSizeCache
  • Deprecation of pdf() function in favour of user-based context (via doAs())
  • UI: better support for inline editing
  • UI: improved drag & drop
  • UI: show warning icon if an HTML attribute contains an empty string instead of null
  • UI: improved resource access grants UI

January 9th 2024 Version 5.1.0

Changes between 5.1.0 and 5.0.1

  • Improvement: enable GraalVM Chrome debugger for scripting
  • Improvement: show warning icon if an HTML attribute contains an empty string
  • Improvement: initial admin user is now configurable
  • Improvement: allow configuring after which depth nested objects are reduced to id,type,name in restricted views (ui,custom,all)
  • Improvement: enable explicit code cache flushing in jvm opts
  • Improvement: better error handling for invalid regex in str_replace() built-in function
  • Improvement: use longer default password for neo4j database connection
  • Bugfix: some fixes in frontend.js
  • Bugfix: some fixes in database connection dialog
  • Bugfix: fix duplicate method parameters in Code area
  • Bugfix: fix login loop in cluster mode
  • Bugfix: allow adding OpenAPI parameters to methods
  • Bugfix: set permissions of deployment export correctly

November 13th 2023 Version 5.0.1

Changes between 5.0.1 and 5.0.0

  • Fix: Move context child menus on deeper levels into visible area as well.
  • Bugfix: Enable raw output of HTML comments in order to support conditional comments
  • Bugfix: Escape HTML-characters &,< and > in HTML comment elements to ensure the content stays the same during a deployment roundtrip
  • Test: Adds test for commit 0b80c3f which ensures that files and folders are correctly identified upon deployment import
  • Bugfix: Changes lookup method for files and folders in deployment import to a UUID-based method instead of relying on the path (which could change from user application version to version)
  • Improvement: Sort access rights for grantees in pages/templates/components in a consistent sort order in deployment export
  • Improvement: Sort grantees in pages/templates/components in the deployment export by name

August 21st 2023 Version 5.0.0

Changes between 5.0.0 and 5.0-rc1

  • New: Code completion for internal keywords
  • New: Scripting function to disable UUID validation in batched imports
  • New: Environment variable for setting custom Java agent in docker container.
  • New: Request parameter to control serialization of null values in JSON output
  • New: hash() function which supports all of the hash functions (MessageDigest) provided by the underlying JVM
  • New: Configuration setting to allow setting the Jetty URI compliance mode
  • New: Shortcuts to most frequently used keys in scripting for better performance
  • New: Pre-fetching of relationship end nodes for better performance
  • New: Allow certain scheduled tasks to run in parallel
  • New: Support for more than two URL segments (important for custom page paths)
  • New: UI setting to view groups strictly hierarchically (meaning nested groups do not appear on top level)
  • Enhanced support for Java methods in code and schema area
  • Support for JavaScript syntax highlighting in ${{ }} in HTML elements
  • Improved drag & drop behaviour and highlighting in Structr Backend UI
  • Fixed bug on reload of schema for changes to relationship type and cardinality
  • Finalized update of frontend Event-Action mapping
  • Finalized rewrite of Structr Backend UI Javascript code
  • Removed “twitterName” property from User and Person class
  • Modified Let’s Encrypt ACME dnsChallenge method to send the parameters ‘domain’ and ‘record’ instead of ‘hostname’ to ‘onAcmeChallenge’ method.
  • Allow reloading the page with Cmd/Ctrl+Shift+R even if a global or static method is open

August 21st 2023 Version 5.0.0

Changes between 5.0.0 and 5.0-rc1

  • New: Code completion for internal keywords
  • New: Scripting function to disable UUID validation in batched imports
  • New: Environment variable for setting custom Java agent in docker container.
  • New: Request parameter to control serialization of null values in JSON output
  • New: hash() function which supports all of the hash functions (MessageDigest) provided by the underlying JVM
  • New: Configuration setting to allow setting the Jetty URI compliance mode
  • New: Shortcuts to most frequently used keys in scripting for better performance
  • New: Pre-fetching of relationship end nodes for better performance
  • New: Allow certain scheduled tasks to run in parallel
  • New: Support for more than two URL segments (important for custom page paths)
  • New: UI setting to view groups strictly hierarchically (meaning nested groups do not appear on top level)
  • Enhanced support for Java methods in code and schema area
  • Support for JavaScript syntax highlighting in ${{ }} in HTML elements
  • Improved drag & drop behaviour and highlighting in Structr Backend UI
  • Fixed bug on reload of schema for changes to relationship type and cardinality
  • Finalized update of frontend Event-Action mapping
  • Finalized rewrite of Structr Backend UI Javascript code
  • Removed “twitterName” property from User and Person class
  • Modified Let’s Encrypt ACME dnsChallenge method to send the parameters ‘domain’ and ‘record’ instead of ‘hostname’ to ‘onAcmeChallenge’ method.
  • Allow reloading the page with Cmd/Ctrl+Shift+R even if a global or static method is open

June 20th 2023 Version 5.0-rc1

Changes between 5.0-rc1 and 4.2.3

  • Support for Neo4j 5.5
  • Upgraded Java version to 17
  • Upgraded GraalVM runtime to 22.3.1
  • Upgraded maven-compiler-plugin to 3.11.0
  • Support for 36-char UUIDv4 ids with dashes
  • New settings to control how UUIDs are created (with or without dashes) and which UUIDs formats are allowed (with or without dashes or both)
  • New change handlers for settings
  • Big refactoring of UI code with massive memory management overhaul and new SVG icons
  • Improved and extended Event Action Mapping for building interactive frontends
  • Enhanced OpenAPI support
  • New Tailwind CSS based widgets and new default widget server
  • New HTML element <structr:shared-template> to allow creation of shared components from Widgets
  • Merge of Structr Core/Rest/UI into Structr Base
  • Enhanced OAuth support with support for Azure auth client and scribejava
  • Removed _graph view
  • Allow limiting of properties in custom-defined views
  • New preview option in right-hand side slide-out
  • New startsWith and endsWith predicates for Advanced Find
  • Adds python library into default Structr Docker image and removes dedicated Docker image with python support
  • Removed chosen library and updated all remaining chosen select elements to select2
  • Enables temporal proposal in JS scripting
  • Expected minor version of GraalVM aligned with dependency version
  • New chrome debugging capabilities and settings.
  • Adds step to install GraalVM in CodeQL workflow
  • Removed db/ folder creation and references
  • Enhanced and unified handling of drag’n’drop in tree and contents area
  • Enhanced cluster mode
  • New right-click context menu in Pages preview
  • New builtin function “create_or_update” to create an object with the given properties or update an existing object if it could be identified by a unique property
  • Support for code transpiling for import scripts
  • Support for Apache Pulsar
  • Uniqueness validation synchronization for parallel transactions for external UUIDs
  • Support for multiple values per key for HTTP headers
  • Enhancement: Adds the option to remove properties of a superclass from views of the same name.
  • Implements basic virtual filesystem access for scripting.
  • Function POSTMultiPart that allows multipart HTTP requests for file uploads.
  • Java Parser module removed
  • New graph-based persistence model for storing data and relationships of and between events, actions, parameters, success and failure behaviour as well as future features like notifications, visualization.
  • Feature: Allow leaving start or end of REST range query empty (for greater than, lower than searches)
  • Improvement: allows <template> elements to be inserted in to a page, enables template-based notifications in frontend.js.
  • New structr_env() function to extract Structr runtime environment information as an alternative to querying the REST _env resource.
  • Upgrade Jetty to version 11.0.10
  • New UI functionality for defining CORS settings for individual request URIs
  • New thread management dashboard in admin UI
  • Minification feature for js and css files removed
  • Upgrades and fixes slf4j and logback versions
  • New workflow for testing and building Structr with Github actions
  • Made HTTP license server more robust, support GET, POST and HEAD, and respond properly to a simple GET
  • CMIS dependencies removed
  • Lots of further enhancements and bug fixes