Version 2.3
Version 2.3 is an incremental release focused on Public API V2 expansion with audit capabilities, SpEL and JEXL language improvements, form and listing enhancements, AI Chat introduction, a data aging framework with PostgreSQL partitioning and Elasticsearch ILM, and broad Business Module improvements across CRM, Ordering, Ticketing, Inventory, Billing, and WFM.
Public API
| Type | Area | Description |
|---|---|---|
| Feature | Public API | Audit and History in API V2: Per-entity API V2 now exposes audit/history capabilities using JaVers with a dedicated Swagger grouping. Consumers can inspect change history consistently across entities without relying on module-specific endpoints. |
| Feature | Public API | Audit Listing and Diff Workflow: Audit views upgraded toward a listing-plus-diff workflow, making historical changes easier to browse and compare instead of relying on raw old/new value payloads. |
| Improvement | Public API | OpenAPI / Swagger Documentation: Swagger documentation now better documents API groupings and module-specific SpEL/client methods. Swagger UI supports collapsed-by-default endpoint presentation for easier navigation. |
| Improvement | Public API | API Client Safety: API V2 clients now support safer query options and more consistent patterns, reducing error-prone consumption of large or filtered datasets. |
| Feature | Public API | Processing Data Propagation: processingData added broadly across entities and public objects for more consistent transport of process-related metadata through APIs and integrations. |
Process Engine
| Type | Area | Description |
|---|---|---|
| Feature | Process Engine | Process Visualization Improvements: Improved handling of event-based gateways, subprocess rendering, and process navigation for better understanding of running process instances. |
| Feature | Process Engine | Bulk User Task Operations: Bulk task continuation/repeat behavior and large-scale import support. User-task mass handover now supports assigning to user groups and optionally specific users. |
| Feature | Process Engine | Optional Process Variable History: Process history can now suppress selected variable/operation-log storage for installations with strict storage, performance, or privacy constraints. |
SpEL & Scripts
| Type | Area | Description |
|---|---|---|
| Feature | SpEL | Calendar Functions: New working-day calculation methods on Date objects with public holiday support. Key methods: .plusWorkdaysWithHolidays(n, country), .plusWorkdays(n), .isWorkingDayWithHolidays(country). Holidays loaded from the System.Holidays register. See Calendar Functions. |
| Feature | SpEL | SpEL and Transactions: Documented and improved transaction handling in SpEL scripts, including {async: true} flag behavior, transaction boundary management, and #businessException pitfalls. See SpEL and Transactions. |
| Improvement | SpEL | SpEL Console Redesign: The SpEL Console has been redesigned with a modern look and improved user experience. |
| Improvement | SpEL | Collaborative Editing: Monaco editor collaborative editing improved with better conflict messaging and information about concurrent edits. |
TSM Forms & Widgets
| Type | Area | Description |
|---|---|---|
| Feature | TSM Forms | Create New Entity Widget: New button widget that triggers creation dialogs for arbitrary entities, with optional prefill from context, script output, and configurable post-save actions. |
| Feature | TSM Forms | Select Widget Enhancements: Select widget gained multi-select checkbox mode, configurable unselect behavior for radio/checkbox modes, and dynamic value sourcing from other widgets or form context. |
| Feature | TSM Forms | Advanced Object Widget: The dtl-fluent-object widget now supports embedding layout components alongside properties, functioning as both a Property-Based and Layout-Based component. See Advanced Object. |
| Feature | TSM Forms | Advanced Array Widget: The dtl-fluent-array widget now supports embedding layout components within array items. See Advanced Array. |
| Feature | TSM Forms | Selective DataSource Refresh: Actions now support refreshDataSourcesPayload for whitelist/blacklist control over which datasources are refreshed. See Success / Error Actions. |
| Improvement | TSM Forms | Form Designer Improvements: Multiple fixes for object extraction, default object counts, key attributes, unsaved-changes handling, editgrid table structure, tri-state checkbox behavior, and schema editing stability. |
| Improvement | Listing | Tree Listing Improvements: Hierarchical listing presentation repaired and extended across inventory, catalogs, and other domains. |
| Improvement | Listing | Profile and Filter Behavior: Listing profile and filter behavior refined with better ordering stability, external-filter counts, sorting behavior, and default-view handling. |
| Improvement | Listing | Data View Switcher Rework: Data-view mode switcher reworked from SpeedDial to Popover with improved interaction and iconography consistency. |
JEXL
| Type | Area | Description |
|---|---|---|
| Feature | JEXL | Comments Support: JEXL now supports single-line (//) and block (/* ... */) comments within expressions. See JEXL Basics - Comments. |
| Feature | JEXL | JSON Functions: JEXL gained explicit JSON-related function support, expanding expression capabilities for form and configuration scenarios. |
| Feature | JEXL | JSON Validation in Configuration: JEXL expressions inside JSON-based configuration now have syntax highlighting and validation feedback, reducing broken forms caused by malformed expressions. |
Application
| Type | Area | Description |
|---|---|---|
| Feature | Application | AI Chat: Built-in AI assistant accessible from the top bar. Supports real-time streaming responses, conversation threads, image attachments, and context-aware integration with the SpEL Console. See AI Chat. |
Business Modules
| Type | Area | Description |
|---|---|---|
| Feature | CRM | Lead as Standard Entity: Lead can now be configured as a standard entity, participating in standard configuration, API, and management flows instead of remaining a special-case object. |
| Feature | CRM | Role-Type Filters: New CRM role-type filters for address and person entities, including multi-select support and improved role name display in listings. |
| Feature | Ordering | Order Line Widget: Dedicated order-line listing widget/bookmark for working with order items more directly in task-centric workflows. |
| Feature | Ordering | Parent/Child Order Hierarchy: Orders now support a clearer parent/child relationship model between Order and OrderLine for complex nested order structures. |
| Fix | Ordering | Order PATCH Stability: PATCH behavior on orders stabilized so related links are no longer dropped unexpectedly, with improved order-line deletion support. |
| Feature | Ticketing | Email Communication Widget: Reusable email communication widget extracted for broader use, enabling embedded email interactions in business flows. |
| Feature | Ticketing | Worklog Estimate with Subtasks: Worklog estimate component now supports counting time logged on subtasks without requiring manual roll-up calculations. |
| Feature | Ticketing | Jira Synchronization: Continued work on Jira synchronization and external collaboration flows with API V2-oriented improvements. |
| Feature | Inventory | Catalog Backup and Import: Catalog records can now be backed up by filter or selection and imported back for safer migration and replication between environments. |
| Fix | Inventory | Inventory Tree Rendering: Standalone devices and components now display in the correct hierarchy in inventory views. |
| Feature | WFM / Stock | Stock Module Expansion: Stock module gained better API coverage, more consistent endpoint naming, stronger documentation, and additional paging support for stock movements, items, and types. |
| Fix | WFM | Planner Task Visibility: Planner corrected so technicians no longer see unscheduled work incorrectly in task lists. |
| Feature | Billing | Billing API V2 and Document Handling: API V2 expansion with improved billing-cycle behavior, manual generation, and billing document processing. |
Security
| Type | Area | Description |
|---|---|---|
| Improvement | Security | Access-Denied Diagnostics: Business APIs now provide better information about which specific privilege is missing when access is denied, enabling quicker troubleshooting. |
Architecture
| Type | Area | Description |
|---|---|---|
| ⭐ Feature | Architecture | Data Aging: New data lifecycle framework with four statuses (LIVE → HOT → WARM → ARCHIVED) for managing data as it ages. Supports PostgreSQL partitioning (time-based and ID-based) with automated lifecycle transitions and partition detachment/reattachment. Elasticsearch Index Lifecycle Management (ILM) provides tiered storage (hot/warm/cold/frozen) for search indices. Includes X-Data-Partition HTTP header for partition-aware queries, child entity co-partitioning, and practical examples for ticketing, master data, and audit logs. See Data Aging. |
| Feature | Architecture | Integration Logs in Elasticsearch: Integration logs are now primarily stored in Elasticsearch, leveraging ILM for automatic tiering and retention management. Database storage remains available as a compatibility option for deployments without Elasticsearch. |
Non-Functional Changes
| Type | Area | Description |
|---|---|---|
| Platform | UI Standardization | Broad SCSS cleanup, selector normalization, dark-mode consistency, PrimeNG button standardization, and reduced style drift across all modules. |
| Platform | Reindexing | Improved reindexing stability with complete reindex behavior, dedicated ES reindex topics, wrong-schema logging, and index naming cleanup. |
| Platform | Database | Database model checks, Flyway corrections, schema migrations, and partition-oriented changes for safer upgrades and long-term data management. |
| Platform | Data Aging | Partitioning, ILM, and data-aging support across ordering, inventory, and adjacent modules. See Architecture — Data Aging above. |
| Platform | Multitenancy | Continued work toward multitenancy readiness with edge-case fixes for shared or tenant-isolated deployments. |
| Performance | Caching | More read paths default to cache-backed behavior in public converters and dictionary lookups, reducing repetitive backend load. |
| Refactor | Naming | Normalized naming conventions, generated types, endpoint naming, and public model behavior across repositories for cleaner cross-module interoperability. |
Dependency Upgrades
Infrastructure & Runtime
| Dependency | Version | Notes |
|---|---|---|
| Java | 21 | LTS release — required runtime for all backend services |
| PostgreSQL | 16+ | Minimum supported version is 16 |
| Elasticsearch | 8+ | Minimum supported version is 8.x |
| Apache Kafka | 3+ | Minimum supported version is 3.x |
Backend Libraries
| Dependency | Version | Notes |
|---|---|---|
| Spring Boot | 3.4 | Latest 3.x release with performance improvements and security patches |
| Spring Cloud | 2024.0 | Aligned with Spring Boot 3.4 baseline |
| Kotlin | 2.1 | K2 compiler stabilization and language improvements |
| Jackson | 2.18 | JSON processing with bug fixes and performance improvements |
| Redisson | 3.40 | Redis-based caching and distributed locks |
| OpenAPI / springdoc | 2.8 | Swagger/OpenAPI documentation generation |
UI Libraries
| Dependency | Version | Notes |
|---|---|---|
| Angular | 19.0 | Signal-based reactivity improvements, improved hydration, and developer experience |
| PrimeNG | 19.0 | UI component library aligned with Angular 19 |
| NgRx | 19.0 | State management aligned with Angular 19 |
| RxJS | 7.8 | Reactive extensions for Angular |
| Monaco Editor | 0.50 | Code editor used in SpEL Console, Form Designer, and JSON editors |
| bpmn-js | 17.11 | BPMN process designer and viewer |
| dmn-js | 16.7 | DMN decision table designer and viewer |
| Tiptap | 2.11 | Rich-text editor with collaborative editing support |
| DOMPurify | 3.2 | HTML sanitization — security-critical for XSS prevention |
Documentation
The following documentation areas are new or significantly expanded in v2.3:
- Business Modules: Initial documentation covering CRM, Ordering, Catalog, Inventory, Ticketing, Billing, WFM, and Stock
- User Management: Expanded documentation covering Users, Groups, Roles & Privileges, and Access Rules
- SpEL: New pages for Calendar Functions, SpEL and Transactions
- Forms: New pages for Advanced Object, Advanced Array, Selective DataSource Refresh
- JEXL: Expanded documentation for Comments, JSON Functions, and JSON Validation