New features:
- SAP OpenUI5 facade:
- Big Update to OpenUI5 version 1.144
- New Theme
Fiori 4 (Horizon)now supported - JavaScript errors are now sent to the main server log and available for administrators (if front-end tracing is on!)
- Widget highlight mode in debug context for app designers (highlights widgets when hovering over them)
- Support for colored SVG icons (icon set
svg_colored)
- Attributes can now have icons and abbrevations, that will be used as captions for narrow data colums
- Dedicated log for app install/repair operation
- New features for axenox.GenAI app
- Support for ChatGPT 5 and OpenAI "responses API"
- Universal chat page in AI administration to try/test any agent - even inactive or unpublished versions
- New formulas
=Right(),=Substring(),=TimeFromSeconds()and=JsonPrettify()
Experimental features:
- New authenticator for Microsoft Azure AppRegistration tokens in the [axenox.Microsoft365Connector](https://github. com/axenox/microsoft365connector/) app
- Tours to guide users through the app and its features (experimental!)
- New docs editor in Administration > Docs with a tree structure for better organization of documentation (experimental!)
Improvements:
- Export actions (e.g.
exface.Core.ExportXLSX) now include optional columns and other configurator options of their data widget. - Behaviors can now be
disabled_if_app_not_installed - Improved admininistration UI:
- List of attributes for attribute groups now includes custom attributes and inherited attributes
- Improved logs
- More links to related documentation and other log messages
- New option
exclude_optionsforInputSelectand similar widgets to exclude certain options from being shown - Improved widget
DataCarousel: addeddetails_title_columnand improved prefill handling - New option
hidden_if_no_columnsfor data widgets - Many improvements in the
Mapwidget - New option
call_after_all_actions_completeforCallActionBehaviorto postone action execution until all other actions, chains, behaviors, etc. are done - Completely reworked monitoring long running requests, improved configuration
- Many improvements for PostgreSQL - in particular improved error handling
- Custom
lookup_sheettemplate forLookupMappings - Improvements in the SAP OpenUI5 facade:
- Widgets
DataTreeandGanttnow supportsfreeze_columns
- Widgets
New features:
- Long running action log
Improvements:
- Property to hide tables without visible columns
- Config option to block tracing on a system
- Input row count check for
CallActionBehavior
New features:
- Installation on PostgreSQL now possible
- Log entries now have clickable links to related documentation
- New widget
InputCodewith syntax highlighting an automatic code formatting - Background task to clean up webservice logs in DataFlowFacade
- AI news
- Log analyzer agent to help with errors and log messages
- Multiple new AI tools:
GetPrintPreviewTool,GetUxonPrototypeTool,GetObjectTool,GetCodeTool ToolCallConceptto include prerenderd tool calls in system prompt
- UI5 facade news
- AI chat widget
- Quick-select menu for widget setups
- Dialog sidebars
- Adaptive text colors in
ColorIndicatorandProgressBarwidgets
- Deployer news: live logs for OTA updates via
axenox.PackageManager.SelfUpdateaction
Improvements:
- Data widgets can skip
autoload_dataif located in an inactive tab (set the property toif_visible) - Scheduler items can now be force-started
- Caching for custom attribute definitions in
CustomAttributeDefinitionBehaviorfor improved performance - Many improvements in
Ganttwidget - Improved
SoftDeleteBehaviorto better interact with other behaviors - Added option to
PreventDuplicatesBehaviorto control if soft-deleted items are duplicates or not - Better display of SQL statements in log entries using the new
InputCodewidget - Separated installers for different web servers: Apache, Microsoft IIS and nginx
- Ability to link page group assignments with apps explicitly
New features:
- UXON snippet mutations
- Much improved
Ganttwidget now able to display multiple bars per row - Added
AzureGraphApiEmailConnectorto send Emails via Microsoft GraphAPI - Added PostreSQL connector & query builder
- New widget
InputColorPalette- a color picker with a palette of preset colors - New formulas:
=TimeDiff()=RowExpressionValue()
Improvements:
- One-Time-Links in the HttpFileServerFacade now use the permalink framework
- Improved profiler in traced server requests
- Improved handling of column widths in widget setups for tables
- Added option
read_allto improve performance of lookup-mappings FileAttachmentBehaviorcan now generate and save file storage paths via formula infile_path_calculationCallActionBehaviorcan now read required data in-advance from a configurableinput_data_event_alias- Improved data imports via axenox.ETL app
- Added profiler tab to data flow step run details
- Improved performance of duplicate checks in API-to-DataSheet flow steps
Global news:
- All new AI testing framework in axenox GenAI app.
- Completely reworked administration UI for automated tests in axenox.BDT app.
New features:
- Action
CalculateDatato let server apply mappers to arbitrary data and simply return the result. - Model builder configuration options to selectively update existing parts of the model when re-running th model builder for an existing object or app. For example, to overwrite data type settings like maximum string length.
- Built-in SQL admin now can show MS SQL execution plans
- Mentions (e.g. hash-tags or @-mentions) for
InputMarkdownwidget - Widgets created from others via
extend_widgetnow can be modified using mutations - much more flexible, that simply overwriting properties previously. SoftDeleteBehaviorwill now hide rows marked as deleted from read operations automatically. However, this can be reverted using the newfilter_deleted_on_readproperty.- Many new options for
HttpConnectorandCallWebServiceaction:- Customize cURL parameters via
curl_options - Service parameters can now have custom
empty_expressionandempty_as_nullto normalize empty values - Simplified parameter configuration if a separate metaobject is created to describe the data structure of a web
service or a set of webservices. Parametes can now be created semi-automatically from attributes via
parameters_use_attributesorparameters_for_all_attributes. timeoutoption for theHttpConnector- Support for XPath-like attribute addresses in JSON-based
CallWebServiceactions
- Customize cURL parameters via
- New formulas:
=ObjectProperty()returns metaobject name, alias, data address, etc.=RowUID()returns the value of the UID attribute for the current row.=Distinct()to keep only unique values in a list
Improvements:
- The UI5 facade will now remember the last applied widget setup and re-apply it automatically every time the page is opened again.
- Widget
InputButtoncan now be used to generate values (e.g. a human readable id of something) with a server action. It will now update its value if it gets a new version of it from the server when performing its button action. - Improved action authorization policy restrictions. Added
apply_if_input_columns_existsto allow separate sets of policies for differnt input structures (e.g. input mapped from different objects). - New configuration options for
CallActionBehavior:input_data_event_aliasandinput_data_mapper.
Important fixes:
- Fixed lots of edge cases with
InputComboTables insideDataSpreadSheet - Fixed unwanted dialog refreshes in UI5 on non-critical actions
- Fixed issues with uploads to file storages with
FlysystemConnectorwhen files did not have an extension or had duplicate filenames. - Fixed issues on strictly case sensitive servers like Google Cloud AppEngine.
New features:
- Widget setups. Users can now save their setup for tables - columns, sorters, etc. (currently only in UI5 facade)
- CLI task queue to run regular CLI commands, not just actions
- Many new features for DataSpreadSheets based on JExcel
- If a related object is selected in a dropdown, all columns showing data from that relation are auto-updated
- Filters can now use widget links to other columns in the same spreadsheet: e.g.
=~data!OtherCol - Conditional properties
disabled_ifandrequired_ifalso support references to other columns
- Data addresses in meta objects now support default values for placeholders:
[#MYATTR|?NA#]. - Ability to apply
mutationswhen usingextend_widget - AI agents can now have multiple versions similarly to data flows
- Action
DownloadZIPto download multiple attachments in a ZIP archive - Formula
=Distinct()
Improvements:
- Data type option
empty_textnow supported in most JS formatters - SelfUpdate action can now be run in containers, where PHP is not available globally
- Task queues can now prevent parallel execution of the same task - see
skip_task_if_already_running - Ability to use attribute data addresses in parameters of the
CallWebserviceaction:parameters_use_attributes,parameters_for_all_attributes, etc. - Improvements for HTTP connectors: e.g.
timeoutoption - Option
default_timeto change the time assumed when selecting a data in anInputDateTime
New features:
- SQL installers can now execute PHP plugins from inside SQL migrations
Improvements:
- Many improvements for the mutation framework
- Option
auto_column_widthfor table widgets - Improved handling of action effects in widgets, that produce subsheets
- Added debug tooltips for conditional properties like
disabled_ifandrequired_if - Improved notes an tracking logic in OpenAPI based webserivces
New features:
- Mutation framework to selectively change things in other apps
apply_if_existsandapply_if_not_existsfor action authorization policies- New formulas
=isActionAuthorized(),=ObjectName()
Improvements:
- CustomAttributeDefinitionBehavior now supports placeholders in attribute models, making them even more flexible!
hidden_if_access_deniednow can evaluate expected input data of Button widgets making it much more accurate. You can control its logic by using different values for this property:to_action_for_button_input_data,to_action_generally, etc.- Further improved attribute list icons in object editor
- Improved policy debug dialogs
- DataTable
row_groupercan now work with formulas and custom data columns - Debug tooltips for widgets now include all sorts of
_ifproerties
Important fixes:
- SingleWidget-snippets now working properly
New features:
- Flow notes now give an overview of key facts when a data flow is run - see axenox.ETL.
- Redesigned attribute tab in object editor to show all attributes and not only direct attributes of the object. Now inherited and generated/custom attributes are visible in all in the same place.
- Attributes produced by the
CustomAttributesJsonBehaviornow can have custom SQL in their data addresses - they support@SQLdialect tags. - Attribute groups in widgets can now be used with aggregators: e.g.
"attribute_group_alias": "ORDER_POS__~DEFAULT_DISPLAY:LIST_DISTINCT". - New formulas
=EnumLookup()and=JsonExtract()
Improvements
- Improved
unpivot_mappings- Added option
from_columns_calculationto transpose columns dynamically without knowing their names - Added option
ignore_if_missing_from_column
- Added option
- Improved rendering of DialogHeader widgets in JEasyUI facade
New features:
- Automated testing via axenox.BDT app
- UXON snippets to create reusable bits of UXON models for widgets, actions, etc.
- Generic excel paste-action
exface.Core.ShowDataImportDialog UneditableBehaviorto prevent changes on objects on certain conditionslookup_mappingsto look up UIDs of objects in input mappers, etc.column_to_json_mappingsandjson_to_rows_mappingsfor data mappers- Ability to add mappers to the output of export actions via
export_mapper
Improvements
- Greatly improved web services in axenox.ETL to simplify creation of OpenAPI import services
- All filters have
multi_selectenabled now by default - In-app notifications are now automatically deleted after a configurable time period
- Improved server traces list in DebugContext with better filters
- Attribute groups now can be accessed via relation path: e.g.
RELATED_OBJECT__~editable. - Many improvements for custom attributes
New features:
- Custom attributes: using a set of behaviors, you can new dynamically add attributes to meta object from a flexible configuration in the master data of a payload app. See
CustomAttributeDefinitionBehavior,CustomAttributesJsonBehaviorandCustomAttributesLookupBehaviorfor details. - Attribute groups: you can now group attributes in the model of an object and use them in container widgets via
attribute_group_alias. - Confirmation popups for actions. Every action can now trigger a confirmation when its button is pressed. The contents is configurable.
Improvements:
- Greatly improved ER diagram in built-in SQL admin (see axenox.IDE app)
- Tracer performance summary now includes search & filter controls
- Improved debug output for MS SQL errors
- Improved OrderingBehavior
New features:
- API list in the Administration section to keep track of all web endpoints, their settings and possible connections
- SQL query builders can now use JOINs across multiple data connections if they point to the same DB server
- JSONpath data addresses in SQL query builders
- Added formulas
=If(),=IsTrue() - Support for SSL connections to MySQL Azure DBs
Improvements:
- Improved action debug output to show all behaviors and sub-action triggered by while the action is performed
- Dashboard filters configuration can now be
disabled_for_widget_ids
New features:
- AI agents - see app axenox.GenAI
- ChildObjectBehavior
- ChecklistingBehavior
- Hierarchical DataFlow steps
- Behavior configuration can now be translated
- Added formulas
=Filename(),=Transliterate() - Console widget function
run_commandto trigger commands via button
Improvements:
- Greatly improved model export structure to simplify tracking changes
- Values aggregated to lists (e.g.
DATE:LIST_DISTINCT) are now properly formatted - Users can be disabled at a specific date
selectable_optionsin InputSelect now translatableCallActionBehaviornow allows multiple events
New features:
- Announcements communication channel showing global message strips on top of the app
- New action
ActionChainPerRow - New formula
ToHtml
Improvements:
- Greatly improve multiselect logic in the UI5 facade
- SQL data address properties now support multi-dialect statements with
@T-SQL,@MySQL, etc.
New features:
ValidatingBehaviorto defineinvalid_ifs on object-level - being applied on every write operationPrintExcelaction using Excel files as templates- File uploads for DataFlows in axenox.ETL app including the ability to combine web services with Excel upload using extended OpenAPI syntax. That is, you can define OpenAPI web services and "feed" them with uploaded Excels as an alternative.
- Export charts as images
- Detection of corrupted uploads in file connectors
- Ability to create temporary meta objects from code
Improvements
- ExcelBuilder can now read table columns in Excel by name, not only ba coordinate
- Button to repair broken logs in administration UI
- HTTP facade responses can now include
Server-Timingheaders for advanced performance monitoring
New features:
- Manual offline mode ("semi offline")
- Detecting slow networks and going offline automatically
- DiffHtml widget to vizualize diffs for print previews and any HTMLs in general
Improvements:
- Read and export actions now support explicit definition of
columns - Data mappers can now inherit columns of
matching_attributesif to- and from-object have similar attribute names - Improved print template preview with HTML validation
New features:
- Copy to clipboard from right-click menu in most UI templates
- Quick filters in right-click menu in SAP UI5/Fiori templates
- Indicators with additional colors (e.g. to visualize status) for events in Scheduler widgets
- WYSIWYG and preview modes in InputMarkdown widgets
Improvements:
- InputCombo can now be forced to actively search for a single possible value via
autosearch_single_suggestion - Improved Browser cache buster in jEasyUI Facade
- Improvements in the query builders of the UrlDataConnector
New features:
- New Comparator
][and!][to check for intersections in two value lists - Added administration dialog to search the entire model
- New option for HTTP facades to include external scripts (e.g. counters) in all templates
- Selected objects from an app (e.g. master data) can now be included in its model via
MetamodelAdditionInstaller - New data timeline granularity
allto show all item in a single view
Improvements:
- Improved
Schedulerwidget in UI5 facade - Improved model editors for objects and data types, added more buttons to open relations, etc.
TreeTableand Gantt widgets now allow hiding empty folders- Added option to commit transactions before the action in
CallActionBehavior - Better support for complex inline widgets in UI5 dialog headers: e.g.
ColorIndicator,ProgressBar
New features:
- Entirely new file system model with a universal
FileBuilderand the possibility to access remote or virtual file systems by using compatible connectors. Added optional app FlysystemConnector with a generic Connector to use with the popular PHP library Flysystem. - Added aggregators
:MIN_OF()and:MAX_OF()to quickly get the text of the newest comment and similar data - New
JournalingBehaviorto save entries in a history-table every time certain things happen to an object - New features for data flows in axenox.ETL:
- Added
DataFlowFacadeto build web services for data flows. - New flow step
DataSheetToSQLto import large data sets with better performance
- Added
Improvements:
DataSpreadSheetwidgets now support copy/paste dropdown values to and from excel using visible names and not techical ids.- Various improvements in axenox.ETL
- Improved performance of the
ExcelBuilder - Widget
ImageGallerydoes not required file-related configuration anymore for objects withFileBehavior - Fixed prefill issues with multi-select
InputComboTable
New features:
- NEW Configurable offline apps (PWA) with greatly improved offline data storage. Entire pages can be made offline capable fully automatically with all neccessary data being determined in advance and visualized in
Administration > Pages > Offline apps. - NEW Second factor authentication can now be added to any authenticator
- NEW Support for different time zones in data sources
- NEW Data mapper types
row_filterandsubsheet_mappers - NEW Advanced debug output for behaviors + behaviors now visible in the performance chart
- NEW Built-in JavaScript inspector and console, that can be used even without browser support (e.g. on mobile browsers)
Improvements:
-
IMPROVED MS SQL queries by allowing to add
WITH NOLOCKto certain meta objects -
IMPROVED behavior models: order of execution (priority) now configurable
-
FIX data authorization point now correctly handles multiple roles assigned to a user
New features:
- NEW app axenox.IDE providing an integrated development environment for files and SQL schemas
- NEW Widget for Gantt charts (experimental)
- NEW
WidgetModifyingBehaviorto modify widget in selected pages - NEW Pivot-sheets to transpose data sheets in-memory
Improvements:
- IMPROVED
NotifyingBehaviorcan now send notifications after all transactions committed - IMPROVED Action
CallAction
New features:
- NEW Auto-refresh for dashboards
- NEW Data mapper type
unpivot mapper - NEW Action
CallActionto select the right action depending on the input
Improvements:
- Improved
FileBehaviorto save files in any data source transparently - Improved security
- Improved action debugger
New features:
- NEW Communication framework to send emails, Teams messages, etc.
- NEW Full JSON support in HTTP task facade
- NEW Data authorization point
- NEW configurable action input validation via
input_invalid_if
Improvements:
- Improved debugger menu
- Improved
ActionChainconfiguration - Improved Git console in
Administration > Metamodel > Apps
New features:
- NEW GUI to install payload packages on a workbench(
Administration > Package manager) - NEW Single-sign-on via SQL query to validate passwords against hashes stored in a database by other applications
- NEW PDF layout printer
- NEW Widget function framework + action
CallWidgetFunction - NEW Map widget layers
DataLinesandDataPoints - NEW Widget
InputSelectButtons
Improvements:
- Improved
disabled_ifandhidden_ifconfiguration of widgets - Improved
StateMachineBehavior, added automatically generated flow diagrams - Improved widget
DataSpreadsheet - Improved data mappers now allowing explicit ordering and adding using custom classes
- Much improved form layouts in the UI5 facade
New features:
- NEW action scheuler:
Administration > BG Processing > Scheduler - NEW infrastructure app axenox.ETL to build and run ETL processes
- NEW Single-Sign-On via OAuth 2.0: e.g. with Microsoft 365 / Azure, Google, etc.
- NEW OAuth2 authentication for HTTP data connections
- NEW data connector apps for Google APIs and Microsoft Graph
- NEW Error monitor to keep track of recent errors incl. dashboard for support user group
- NEW configurable home-pages for user groups
- NEW widgets
Mapfor interactive maps with various layersInputCustomto hook-in arbitrary JS libraries easily (WYSIWYG editors, etc.)InputTagsto quickly select tags, categories, etc.InputMarkdown- WYSIWYG MarkDown editor
- NEW query builder to read Excel files (*.xlsx)
Improvements:
- Improved prefill debugger
- Much improved auto-detection of objects and widgets affected by an action + custom
effectsin action models
New features:
- NEW Task queues to process tasks in the background:
Administration > BG Processing - NEW generic offline queue for server actions available for PWA facades - see
exface.UI5Facadefor an example. - NEW Built-in usage monitor:
Administration > Monitor. - NEW wireframe-previews in widget presets.
- NEW improved UXON editor incl. code-editor, copy/paste support and more.
Improvements:
- FIX improved exception handling in command line actions
New features:
- NEW Translation module.
- Now most components of the meta model are now translatable right inside their model editors: meta objects, attributes, action models, pages and messages.
- Comfortale translation UI with complete key listing, a second reference language, etc.
- NEW support for running the workbench on Microsoft IIS and SQL Server
- NEW static event listeners now configurable in the
System.config.jsonallowing handlers to react to events without being previously registered from PHP code.
First stand-alone release without the dependency on an external CMS-system.
New features:
- NEW page editor.
- NEW Security system based on authorization points and flexible policies.
Before version 1.0, the workbench relied on an external CMS system, that would provide frontend-rendering, routing, menus and access permissions to those things. The CMS was attached using a special connector, like the ModxCmsConnector for the Evolution CMS (formally MODx Evolution).