Structr 6.3.0
Structr 6.3.0 is a quality-focused release that builds on the foundation of 6.2.0 with significant UI refinements, improved configuration tooling, security hardening, and a broad set of bugfixes. Highlights include a revamped dialog and configuration UI, a new predicate.any function, deployment export boundaries for folder subtrees, improved mail function error handling, and continued documentation improvements.
New Features
predicate.any Function
- New predicate function
predicate.anyfor flexible matching logic in queries, complementing existing predicate functions
Deployment Export Folder Boundaries
- Folder subtrees can now be excluded from deployment exports, giving developers fine-grained control over what gets exported
Cron Expression Descriptions
- The configuration UI now displays human-readable descriptions of cron expressions, making scheduled task configuration more transparent
Experimental Annotations
- New experimental annotation support with documentation output, allowing features to be marked and tracked as experimental
TRACE Verb Blocking
- HTTP TRACE verb is now blocked at container level for improved security posture
Enhancements
Configuration UI
- Servlets and services sorted by name for easier navigation
- Long descriptions now displayed correctly
- Nicer input popup for adding new configuration keys
- Multiple visual inconsistencies fixed
- Information about list item separators and service restart hints added to relevant settings
- HTTP rate limit increased to 1000 to avoid stale browser connections
User Interface
- Custom dialog styles for file-editor, run-method, schema, and CRUD dialogs
- Hover activated on tabs in widget-editor
- Responsive general tab that adapts to container size
- Search input fixed in CRUD dialog popups
- Dropdown placement fixed for show conditions in one-column mode
- Missing classes added to show/hide condition example dropdown
- Bold font removed from properties table keys for cleaner appearance
- Dialog height scoped to widget dialog only
Schema and Data
- “Rebuild Index” dropdowns now split node/relationship types into custom and built-in sections
- In-dialog warning when composite uniqueness constraint is violated during object creation
- Uniqueness flags disabled for function properties (where they don’t apply)
- Hover titles added to direct attribute header columns
Flow Editor
- Prevented NPE when flows don’t return values
- Updated JavaScript calls to work properly when Structr doesn’t run in the default path
- Updated keybindings for better macOS compatibility
- Removed outdated flow editor HTML files
Timer Function
- Pause and clear actions added to timer
- Start made idempotent
- Switched to
System.nanoTime()for higher precision
Mail Functions
- Developers can now catch exceptions from
sendPlaintextMailandsendHtmlMailinstead of exceptions being silently swallowed - Updated documentation for
mailSend
Other
base64decodenow throws proper exceptions when the scripting engine supports exception handling- Prevent duplicate global search results when pressing Enter after typing
Page.pathupdated to a function property ('/' + page.name), replacing the old static property while preserving linkable functionality- Removed outdated “Disable automatic page preview reload” localStorage flag
- Prevented automatic refresh of preview when center pane is refreshed (only on actual page element edits)
- Function properties no longer cache values when caching is disabled
- Prevented JS error when fetching notion property by rerouting to actual attribute
- Removed impossible/unused show- and hideConditions from
pages.jsonin deployment export - Removed counter code for already-removed counter functions
- Removed deprecated REST console
Bugfixes
Core
- Fixed function properties caching their values even when caching was disabled
- Fixed indexing of function properties with type hint “Date” where
nullcould be returned - Prevented HTML content in global search results from breaking the UI
- Added database feature detection for TypePredicateExpressions to enable global search in Neo4j versions before 5.9
OAuth
- Fixed creation of absolute URLs for OAuth redirect flow
- Removed duplicate application root path from OAuth redirect call
- Changed default user endpoint for Azure OAuth provider back to the OIDC endpoint with better logging for missing credential keys
Files and Pages
- Added missing
nameHTML property and included it in the_htmlview - Fixed typo in view definition
Deployment
- Show long description correctly in config UI
Documentation
- Updated documentation for
predicate.sortandpredicate.any - Added more detail to the “pause” action for
timer()function - Added documentation for the default upload folder setting
- Updated widget help text in the widget popup for improved readability
- Continued improvements across multiple documentation articles
Infrastructure
- Fixed release creation pipeline commands for GitLab package registry
- UI tests updated and screenshots refreshed
- Removed unused settings and fixed spelling in configuration
Upgrade Notes
- Recommended for all Structr 6.2.x users
- The REST console has been removed from the UI
Page.pathis now a function property - review any code that writes toPage.pathdirectly- The HTTP rate limit default has been increased to 1000
base64decodenow throws exceptions instead of failing silently - update error handling if needed- The Azure OAuth default user endpoint has changed back to the OIDC endpoint - verify your Azure OAuth configuration after upgrading
- See the migration guide for general Structr 6.x upgrade information