RELEASE NOTES

Keep up with WOODY.IO with a quick view of what’s new in every release.

2.9.1

Bugfix

  • The Entity/Import row count indicators in the Excel Add-In now correctly display the row count after an Upload/Sync.

Feature

OpenTelemetry Observability

WOODY.IO now includes comprehensive OpenTelemetry integration, providing enhanced observability capabilities for monitoring and troubleshooting.

Distributed Tracing

The application now exports distributed traces using the OTLP (OpenTelemetry Protocol) over gRPC, enabling you to track requests across different components and services. Custom spans have been added to key operations including:
  • Timer Jobs execution
  • Worker processes
  • Import validation
  • Notification processing
  • Database operations

Metrics Export

Automatic metrics collection and export via OTLP gRPC, providing insights into application performance and resource utilization.

Log Export

Logs are now exported using OpenTelemetry’s log exporter, enabling centralized log aggregation and correlation with traces and metrics.

Configuration

OpenTelemetry can be configured using standard OTEL environment variables:
  • `OTEL_EXPORTER_OTLP_ENDPOINT` – The endpoint to send telemetry data to
  •  `OTEL_SERVICE_NAME` – Service name identifier (defaults to “woody-server”)
  • Additional OTLP exporter configuration options.

This integration enables seamless connection to observability platforms like Azure Monitor, Jaeger, Zipkin, or any OpenTelemetry-compatible backend.

Fabric Lakehouse Connection

We have added Fabric Lakehouse as a new Connection type.

Notifications

Azure Event Grid Topic has been added as a Notification endpoint.

Application Events

It is now possible to send events using existing Notification Drivers from a single configuration, without the need of having to set up Notifications for every single Application. See the Configuration Documentation / Technical Specification for all available Drivers, a list of Application Events and examples of the event object models. 

S3 backend File Service

Added S3-backed file service alongside ADLS2, selectable via config, and supports S3-compatible endpoints. 

Identity Columns

Added support for Identity Columns to WOODY.IO. Connection Providers are now able to implement it. A new “Identity” Toggle has been added to the Add/Edit Field forms for supported Connection Providers. Currently only Microsoft SQL Server Connections support the feature. When importing Fields from a Connection, WOODY.IO attempts to automatically set the Identity Toggle by analyzing the table schema. To highlight that a Field is labeled as an Identity Field, it’s key icon is underlined.

Lookup Fields (Preview)

This feature is currently in Preview and is subject to change.
With the new “Lookup” toggle we have added an easy way to manually assign Lookup values to Fields during an Import. For cases where the Lookup Key and Lookup Value should be stored in separate fields, activate the “Dependency” toggle and select a field from your Entity where the Lookup Key should be stored.
The WOODY.IO Excel-AddIn is in line with this feature and a new “Lookup Detail” tab was added, next to the “Row Detail” tab.
Please note that Metamodel Exports/Imports with configured Lookup Fields are currently not supported.

Lookup Schedule

A new Lookup Schedule feature allows you to configure automatic refresh intervals for Lookups that import data from a source connection. When enabled, you can choose from predefined intervals (every minute, 5/10/15/30 minutes, hourly, every 12 hours, or daily) or create a custom schedule. Custom schedules support daily, weekly, or monthly intervals with specific hour selection (24h format) and the ability to select specific days of the week or month for execution.

Improvements

Key Vault Application Whitelisting

Added the option to whitelist specific WOODY.IO application or allow all the application in the Key Vault configuration, restricting the Key Vault to WOODY.IO Applications that are not whitelisted.

Key Vault Secret Referencing in Notifications

Users can now use secrets from configured Key Vaults in specific inputs for Notifications for different Notification types.
  • Azure Event Grid
    • Endpoint
    •   Tenant ID
    •   Client ID
    •   Client Secret
    •   Access Token
  • HTTP Request
    •   Url
    •   Headers
  • Email
    •   ‘To’ field

Excel-AddIn

  •  Adding and deleting rows from an entity table could be tricky due to automatic sheet protection so we have added a “Row Control” section on the Import Detail tab. The Row Control section houses an “Add row” button and a “Delete rows” button to easily delete the currently selected rows or add a new one.
  • Improved the Upload Button so that after uploading changes, the current sheet will be up to date and a manual Download is no longer necessary.

Sync

Added a Sync Button that synchronizes the state of the Woody Web UI Data Table and the Excel Entity Table. Changes made in the Excel Table are prioritized over changes in the Web UI. After syncing successfully, a manual Download is not necessary.

Prevent Silent Business Rule Breakage on Data Type Change

We identified an issue where changing the data type of a field that has business rules would silently invalidate those rules. This happened when the newly selected data type belonged to a different classification than the original one, since different classifications support different sets of rule conditions.  To address this, we introduced a confirmation dialog that warns the user that changing the field’s data type will delete all business rules associated with that field. If the user confirms, those business rules are then deleted and have to be manually recreated by the user.

Configuration Changes

  • Deprecated the nested fileService.connection.persistLogFileSystem. Configure fileService.persistLogFileSystem at the top level instead.
  • Deprecated the nested fileService.connection.csFileSystem. Configure fileService.csFileSystem at the top level instead.

Bugfixes

  • Fixed an issue with Databricks SQL Warehouse driver where some data was not loaded.
  • Fixed an issue with Business Rules failing when tied to Roles.
  • Removed wrongly displayed Lookup option from Transformations Dropdown.
  • Fixed an issue in MSSQL Live Edit where ‘All Changes’ and ‘My Changes’ Filters would throw an error when the Entity would have more than one Field flagged as Key.
  • Disallowed creation of Imports for Import Templates that have no Entities and added a warning.
  • Fixed an issue with Cleanup Process.
  • Fixed an issue where Multi Edit on multiple rows could fail due to a validation error.
  • Fixed an issue in the Databricks driver where delete operations in Live Edit would cause an error due to VARCHAR data type missing length parameters when one or more entity fields are flagged as Key.
  • Fixed an issue where Connections could not be deleted when referenced by deleted Metamodels.
  • Fixed an issue in Databricks Live Edit where ‘All Changes’ and ‘My Changes’ Filters would throw an error when the Entity would have more than one Field flagged as Key and when the Key value was NULL..
  • Fixed an issue where KeyVault references used the vault name instead of the configured identifier.
  • Fixed an issue where KeyVault reference paths were replaced with actual secret values in connections instead of preserving the KeyVault reference.
  • Fixed an Issue where Tenant ID and Client ID could not reference a KeyVault when configuring a  Custom Service Principle.
  • Fixed UI issue where the Business Rules list was not scrollable.
  • Fixed UI scrolling issue in the Excel Add-In on some of the Views.
  • Fixed UI issue where Imports based on Import Template with matching names but different Metamodels were grouped together.
  • Fixed UI issue on the Imports page where the Import Type for each Import was not correctly displayed.
  • Fixed a bug where null values downloaded to the Excel Add-In from an Import, were converted into empty strings and then incorrectly uploaded back to WOODY.IO as empty strings instead of remaining null.

Dependency Updates

Engine

Package New Old
node
24
24

Server

Package New Old
@aws-sdk/client-s3
^3.948.0
^3.726.1
@aws-sdk/credential-providers
^3.948.0
n/a
@aws-sdk/lib-storage
^3.948.0
^3.726.1
@azure/eventgrid
^5.12.0
n/a
@azure/identity
^4.13.0
^4.5.0
@azure/keyvault-secrets
^4.10.0
^4.9.0
@azure/storage-blob
12.29.1
12.26.0
@azure/storage-file-datalake
^12.28.1
^12.25.0
@opentelemetry/api
^1.9.0
n/a
@opentelemetry/auto-instrumentations-node
^0.67.2
n/a
@opentelemetry/sdk-node
^0.208.0
n/a
@opentelemetry/winston-transport
^0.19.0
n/a
@sap/xsenv
6.0.0
4.0.0
@sap/xssec
^4.12.0
3.3.5
axios
^1.13.2
1.7.9
connect-mssql-v2
^6.0.0
^5.1.0
csv
6.4.1
6.3.11
dayjs
^1.11.19
n/a
dotenv
^17.2.3
^16.4.7
express-session
^1.18.2
1.18.1
hdb
2.26.3
0.19.6
helmet
8.1.0
8.0.0
iconv-lite
0.7.0
0.6.3
mongodb
7.0.0
6.12.0
mssql
12.2.0
11.0.1
multer
2.0.2
1.4.5-lts
nodemailer
^7.0.11
6.9.16
seq-logging
3.0.0
2.2.0
snowflake-sdk
^2.3.2
2.0.1
uuid
^13.0.0
^11.0.5
winston
3.19.0
3.17.0
xlsx
0.20.3
0.20.0

UI

Package New Old
@tanstack/react-virtual
3.13.13
n/a

Bugfixes

  • Fixed an Issue in Azure Configuration where Access and Admin Groups could not be set accordingly.
  • Fixed a bug where the field in Business Rules would not update after adjusting the Business Rule.

General Changes

Updated supported Node-Runtime from Node 18 to Node 20.

Breaking Change

Mongo DB Driver Update

We updated the NodeJS Mongo DB Driver to the latest version 6.12.0. Since version 6.9.0 a MongoDB Server Version greater 3.6 is required. There might be the possibility that the version of existing CosmosDB instances are still on an old Server Version. Therefore an update of the CosmoDB Version is necessary. Currently the latest version available in the Azure Portal is version 7. Which is the recomended CosmosDB version for usage with WOODY.IO.
It is also recommended to utilize a native MongoDD Server where a greater performance can be expected.

Improvements

Excel-Addin

  • Validity Colors are now also displayed per cell.

Validation Results

Endpoint

  • Added new endpoint _/api/{importPUID}/entity/{entityId}/validationResult_ to retrieve detailed   validation results per row. Grade and Row Ids can be specified optionally.

UI

  • Import Data Table now shows detailed validation results (including Lookups) for each field.

Bugfixes

  • Fixed display of invalid entries in Data Table.
  • Fixed display of changed values in Data Table after Validation.
  • Fixed filtering in Multi Edit in an Import.

Excel-AddIn

  • Selecting data from a Range that intersects a table, now correctly uses selected data instead of the whole table.
  • Added a confirmation step to the Validate Button to confirm that local changes will be uploaded and then validated.

Dependency Updates

Server

Dependencies

Package New Old
@aws-sdk/client-s3
3.726.1
3.431.0
@aws-sdk/lib-storage
3.726.1
3.431.0
@azure/identity
4.5.0
3.3.2
@azure/keyvault-secrets
4.9.0
4.7.0
@azure/storage-blob
12.26.0
12.16.0
@azure/storage-file-datalake
12.25.0
12.23.0
axios
1.7.9
1.5.1
connect-mssql-v2
5.1.0
4.0.2
cookie-parser
1.4.7
1.4.6
csv
6.3.11
6.3.5
dotenv
16.4.7
16.3.1
express
4.21.2
4.18.2
express-ntlm
2.7.0
2.6.2
express-session
1.18.1
1.17.3
helmet
8.0.0
7.0.0
ldapjs
3.0.7
3.0.5
mongodb
6.12.0
6.1.0
mssql
11.0.1
10.0.1
nodemailer
6.9.16
6.9.6
nodemailer
^7.0.11
6.9.16
passport
0.7.0
0.6.0
proxy-agent
6.5.0
6.3.1
seq-logging
2.2.0
2.1.1
snowflake-sdk
2.0.1
1.9.0
socket.io
4.8.1
4.7.2
swagger-ui-express
5.0.1
5.0.0
uuid
11.0.5
9.0.1
winston
3.17.0
3.11.0
winston-daily-rotate-file
5.0.0
4.7.1

UI

Dependencies

Package New Old
@oh22/luna-ui
0.30
0.32
axios
1.7.9
1.6.7
react-router-dom
6.28.1
6.22.1
recharts
2.15.0
2.12.4
socket.io-client
4.8.1
4.7.2
uuid
11.0.5
9.0.1

Dev Dependencies

Package New Old
@types/uuid
10.0.0
9.0.6
@vitejs/plugin-react
4.3.4
4.1.0
autoprefixer
10.4.20
10.4.16
postcss
8.5.1
8.4.31
tailwindcss
3.4.17
3.3.3
typescript
5.7.3
5.2.2
vite
6.0.7
4.5.0
vite-plugin-compression
removed
0.5.1
vite-tsconfig-paths
5.1.4
4.2.1

Core

Dev Dependencies

Package New Old
@types/jest
29.5.14
29.5.6
concurrently
9.1.2
8.2.2
ts-jest
29.2.5
29.1.1
ts-node
10.9.2
10.9.1
typescript
5.7.3
5.2.2
vite
6.0.7
4.5.0
vite-tsconfig-paths
5.1.4
4.2.1

Excel

Dependencies

Package New Old
@oh22/luna-ui
0.31
0.32

Bugfixes

  • Fixed an Issue where different Azure App Configuration could not authenticate users properly.
  • Fixed an Issue in Databricks Driver where constraints on a Table would prevent DELETE operations.

New Feature

Application Service Principal


We introduced now the possibility to define an Azure Entra Service Principal on Application Level which can be utilized in many of the supported Connection Types.

Supported Connection Types:

  • Microsoft SQL Server
  • Azure Data Lake Service
  • Azure Blob Storage
  • Databricks
  • Snowflake (as Beta)

Databricks Notification


We added a new Notification Type. It is now possible to utilize Databricks as a destination for event Notifications. Analog to Microsoft SQL Server a SQL Statement can be executed, furthermore a complete Notebook or a Job can be started, too. This works both on All Purpose and SqlWarehouse Cluster.

> SqlWarehouse Cluster can also execute Notebooks, although there is a limitation that all cells need to be SQL cells.

Plugin Interface (Experimental)


We implemented the possibility to sideload Plugins which extend the functionality of WOODY.IO on the fly without recompiling. This feature is currently experimental and not publicly available yet.
Features which can be added through Plugins are

  • Drivers/ Connections
  • Notifications
  • Transformations
  • Timed Jobs
  • Fileformats

Improvement

Modernized MongoDB DocStore Client

Modernized the MongoDb Docstore Client. With this some new configuration Options are now available.
				
					```jsonc
{
  docstore: {
    collectRUStatistic: false, // on Cosmos DB will Log RU Consupmption per query
    streamBatchSize: 1000, // Specifies how many documents get processed in one batch while writing
    removeBatchSize: 1000, // Specifies how many documents get processed in one batch while deleting
    options: { // The Mongodb Client Options. See: https://mongodb.github.io/node-mongodb-native/6.1/interfaces/MongoClientOptions.html
      serverSelectionTimeoutMS: 60000 // Specifies how long (in milliseconds) to block for server selection before throwing an exception.
    }
  }
}
```
				
			

Miscellaneous

  • Added new path resolver in server, to omit subpacke and achieve smaller build size.
  • Improved logging Experience.

Bugfixes

  • Fixed an issue with Boolean Datatype in MSSQL and Databricks Connections.
  • Fixed an issue where the Data Page would not properly display error messages from Databricks.
  • Fixed an issue when selecting an Import Template Entity Field where the order was incorrect.
  • Fixed MSSQL Connection label not displaying info text.
  • Fixed an issue in the Excel Import handled empty dates as 01.01.1970.
  • Fixed an issue in the Excel Import not loading Times from date columns.
  • Fixed a Bug in which filters were breaking when values contained special characters like # (hashtag) or ‘ (single quote).
  • Fixed an issue where files could not be loaded from a long path inside AWS S3, Azure Datalake and Azure Blob Storage. New max path length is 400 characters.
  • Fixed a Bug where the user was redirected to a Metamodel id called “undefined”, when importing a Metamodel.
  • Fixed an issue where Fields which had indexes on them in a MsSql Server Table were ignored when adding Entity from Connection.

Bugfixes

  • Fixed that the avatar initials images were selectable and draggable.
  • Fixed a bug where the Dropdown could cause a site crash when the options were null.
  • Fixed an issue where formateDate couldn’t handle null as an input value.
  • Fixed a SimpleTable crash that was caused by explicit column header mappings.

Package Updates

Package New Old
@oh22/luna-ui
0.0.29
0.0.27

Breaking Changes

  • Removed Legacy Post Persist TODO: Remove from API.

Features

Databricks Schema option

 Added the possibility to define a Connection Schema in Databricks Connections in the following format: `<catalog>.<schema>`.\

This enables access to tables outside of the default catalog. More information can be found in the Connection Documentation.

Custom Service Principal Authentication

Added the possibility to use your own Service Principal Credentials for the following Connection types:
  • Azure Data Lake
  • Azure Blob Storage
  • Microsoft SQL Server

Improvements

  • Internally changed the API for calling drivers.

Bugfixes

  • Fixed an issue with Multi Edit not applying to the first data row.
  • Fixed an issue with Bigint values in MSSQL Live Edit.
  • Fixed an issue where files were not displayed for blobs.
  • Fields that are marked as Not Editable in an Import Template can’t be edited in Multi Edit anymore.
  • Fixed Quick Edit values not updating after executing Multi Edit.
  • Fixed an issue where duplicate Roles would be created during an Import.
  • Fixed an issue with Databricks Connections that have a slash at the end of the URL.
  • Fixed Import Data Table not refreshing after using the Reload Button.
  • Fixed apostrophes duplicating after Quick Edit.
  • Fixed Multi Edit “Affected rows” displaying non numeric values in some cases.

Package Updates

Package New Old
@oh22/luna-ui
0.0.27
0.0.23

Bugfixes

  • Fixed an issue with Databricks Clusters not starting when using Live Edit.
  • Fixed an issue with Databricks SQL Warehouse Live Edit where the Total Count was incorrectly determined.
  • Fixed an issue with Live Edit where Filter do not reset the Page Count.
  • Fixed an issue with Role Business Rules being applied in the UI regardless of the user being part of the Role.
  • Fixed an issue with Databricks SQL Warehouse where Tables with DEFAULT conditions could not be used for update Transactions.

Feature

Databricks SQL Warehouse Connection


We have added Databricks SQL Warehouse as a new Connection type.

Key Vault Reference for Connection


WOODY.IO now supports the usage of Key Vault references in Connections.\
Therefore a property can be added to the config.
				
					```json
{
  "keyVault": {
    "<Name>": {
      "provider": "<Provider>",
      "options": {
        "name": "<KeyVaultName>",
        "auth": <Auth>
      }
    }
  }
}
```
				
			
Placeholder Description
\Name
Name for your config
\Provider
Provider
\KeyVaultName
Name of the Key Vault
\Auth
Auth Config

Bugfixes

  • Fixed the issue with notifications being triggered without adhering to their designated condition/s.

Bugfix

  • Fixed a bug where the user was redirected to a metamodel id called “undefined”, when importing a metamodel.

Feature

External Temporary Table

We added the possibility to define the path of an External Location. If configured, Temp Tables necessary for persist step will be created there in the form of {EntityTableName}\_{ImportPUID}. As Tables created with a LOCATION are Unmanaged, so they will not be deleted automatically. To reduce the Size of the leftover delta files we also perform a delete and a following vacuum. This increases the overall import Time. It also implies that the executing cluster needs to have `retentionDurationCheck` disabled otherwise the vacuum will fail and leftover delta files remain.
You can disable the retentionDurationCheck in the Cluster settings with:
`spark.databricks.delta.retentionDurationCheck.enabled false`

Package Updates

Node

Package New Old
@aws-sdk/client-s3
3.431.0
3.338.0
@aws-sdk/lib-storage
3.431.0
3.338.0
@azure/identity
3.3.2
3.2.2
@azure/storage-blob
12.16.0
12.14.0
@azure/storage-file-datalake
12.15.0
12.13.0
@sap/xsenv
4.0.0
3.4.0
@sap/xssec
3.3.5
3.2.17
axios
1.5.1
1.4.0
connect-mssql-v2
4.0.2
3.1.4
csv
6.3.5
6.3.0
dotenv
16.3.1
16.0.3
exceljs
4.4.0
4.3.0
hdb
0.19.6
0.19.5
helmet
7.0.0
6.0.1
ldapjs
3.0.5
3.0.2
mongodb
6.1.0
5.5.0
mssql
10.0.1
9.1.1
nodemailer
6.9.6
6.9.2
proxy-agent
6.3.1
6.2.0
seq-logging
2.1.1
2.0.0
snowflake-sdk
1.9.0
1.6.21
socket.io
4.7.2
4.6.1
swagger-ui-express
5.0.0
4.6.3
uuid
9.0.1
9.0.0
winston
3.11.0
3.8.2
xlsx
https://cdn.sheetjs.com/xlsx-0.20.0/xlsx-0.20.0.tgz
https://cdn.sheetjs.com/xlsx-0.19.3/xlsx-0.19.3.tgz

Dev Pependencies

Package New Old
eslint
8.51.0
8.41.0
eslint-plugin-import
2.28.1
2.27.5
jest
29.7.0
29.5.0

UI

Dependencies

Package New Old
axios
1.5.1
1.4.0
dayjs
1.11.10
1.11.7
react-icons
4.11.0
4.8.0
react-router-dom
6.17.0
6.11.2
recharts
2.9.0
2.6.2
socket.io-client
4.7.2
4.6.1
uuid
9.0.1
9.0.0

Dev Dependencies

Package New Old
@types/react
18.2.30
18.2.6
@types/react-dom
18.2.14
18.2.4
@types/uuid
9.0.6
9.0.1
@typescript-eslint/eslint-plugin
5.62.0
5.29.7
@typescript-eslint/parser
5.62.0
5.59.7
@vitejs/plugin-react
4.1.0
4.0.0
autoprefixer
10.4.16
10.4.14
eslint
8.51.0
8.41.0
eslint-config-airbnb-typescript
17.1.0
17.0.0
eslint-config-resolver-typescript
3.6.1
3.5.5
eslint-plugin-import
2.28.1
2.27.5
eslint-plugin-react
7.33.2
7.32.2
postcss
8.4.31
8.4.23
tailwindcss
3.3.3
3.3.2
typescript
5.2.2
5.0.4
vite
4.5.0
4.3.8

Core

Dependencies

Package New Old
dayjs
1.11.10
1.11.7
joi
17.11.0
17.9.2

Dev Dependencies

Package New Old
@types/jest
29.5.6
29.5.1
concurrently
8.2.2
8.0.1
jest
29.7.0
29.5.0
ts-jest
29.1.1
29.1.0
typescript
5.2.2
5.0.4
vite
4.5.0
4.3.8
vite-tsconfig-paths
4.2.1
4.2.0

Bugfixes

  • Fixed Context Exhaustion when Cluster has many schemas in Databricks.
  • Fixed an issue with possible race conditions when importing a small dataset.
  • Added display for decimal places in lookups.

Bugfix

  • Fixed a bug where the user was redirected to a metamodel id called “undefined”, when importing a metamodel.

Bugfixes

  • Fixed an issue when adding an Entity from Connection.
  • Fixed an issue with setting columns to invisible in Databricks Live Edit.
  • Fixed an issue with Databricks temp table generation.

Bugfixes

  • Fixed an issue with workers processes not always picking up their work.
  • Fixed an UI issue with Notification create and update.  

IMPORTANT

Minimum Node.js version changed to 18 LTS

With the nearing end of maintenance support for the former LTS Version 16 this September, we switched to the new LTS version 18.

Legacy UI deprecation

With this release we will deprecate the legacy DMS UI. All upcoming features will be only available for the new version.
This also means that future work may break the legacy UI and render it unusable. We therefore advise to switch within this release to the new UI.

New Features

Transformations

  • Added `To Upper`: Transforms the casing of incoming text to upper case.
  • Added `To Lower`: Transforms the casing of incoming text to lower case.
  • Updated behavior of `Import Date`: Will now use the actual import date not the current date.

Server UI Notifications

Added possibility to trigger UI Toast Messages in Browser from Server Events.
First usage is in Databricks Driver to notify the User that a Cluster is being started, e.g. when he tries to access Live Edit on a Cold Cluster.

Worker Management

Worker Management has been rewritten to the point where Workers commence jobs almost immediately. This was achieved due to holding the Workers in Hot state. Downside is a slightly higher Memory Consumption which should be taken into account when choosing how many Workers can run in the App.
Administrators also have the ability to see the current state of the Workers and can interact with them, e.g. cancel a faulty job.

MongoDB as Document Store

The Document Store component can now also handle MongoDB natively. So now, CosmosDB or MongoDB can be used. We have found that in regular use cases MongoDB can be faster and more cost efficient than CosmosDB.

Improvements

  • Rebranded to WOODY.IO
  • Optimized Import Template Management
  • Optimized Data / Adjust Screen
  • Added Multi Edit
  • Improved Log TimeScale
  • Improved Lookups
  • Various UIV2 Bug Fixes

Bugfixes

  • Fixed an error where it was not possible to delete an Entity without Fields.
  • Fixed an error where Live Edits from deleted Metamodel were still being shown.

Version Updates

The following dependencies were updated in accordance with minimizing open vulnerabilities in third party packages.

Root

Package New Old
jest
29.5.0
29.3.1
tes-jest
29.0.5
29.0.4

UI

Package New Old
jest
29.5.0
29.3.1
tes-jest
29.0.5
29.0.4

Server

Package New Old
@azure/storage-file-datalake
12.12.0
12.11.0
@sap/xssec
3.2.17
3.2.15
aws-sdk
2.1343.0
2.1293.0
axios
1.3.4
1.2.2
csv
6.2.8
6.2.5
ldapjs
3.0.1
2.3.3
mssql
9.1.1
9.0.1
nodemailer
6.9.1
6.9.0
snowflake-sdk
1.6.20
1.6.17
swagger-jsdoc
6.2.8
6.2.7
swagger-ui-express
4.6.2
4.6.0
jest
29.5.0
29.3.1
nodemon
removed
2.0.20

New Features

Notification Feature

Added the new Notification feature, which allows to send Notifications if an Import enters a specific State, eg. Send an Email when Data Loading is finished or notify an Azure Function if a Validation failed with to many errors.
A notification will be triggered when the State of an Import changes eg. enters the “Loaded” State. The Trigger for a specific State Change can be extended with a filter for specific properties of an Import. The filter possibilities can be very complex as a filter can contain many conditions which also can be nested. Eg. Import Template is not “Test ImportTemplate” AND (Import Name contains “Important” OR Row Count is greater than 100_000).
 
The following properties are supported:
 
Property Description
Import Name
The user provided name of an Import
Import Source
Eg. The filename
Import Type
The source system eg. MsSql, ADLS, etc.
Persist Type
The destination system analog to Import Type
Metamodel
A specific Metamodel
Import Template
A specific Import Template
Row Count
The number of rows, only filled after State Loading
Error Count
The number of validation errors, only filled in State Invalid
Warning Count
The number of validation warnings
Information Count
The number of validation information entries
Clearance Count
The number of validation clearance entries

Currently there are 3 Notification Sinks included:

Sink Description
Http
Make a HTTP Request eg. to send information to an Azure Function
MsSql
Execute a SQL Statement eg. to Execute a Store Procedure
Email
Send an Email

For some of the configuration Fields eg. the Body of an Email or an Http Request it will also be possible to use replace tokens.

The following Token will be supported:

Token Description
{app_identifier}
The Id of the App
{app}
The name of the App
{import}
The name of the Import
{import_identifier}
The Id of the Import
{import_template}
The name of the Import Template
{import_source}
The name of the File used for Import
{import_type}
The name of the Import Type eg. File Upload
{metamodel}
The name of the Metamodel
{metamodel_identifier}
The Id of the Metamodel
{metamodel_version}
The current Metamodel Version
{persist_type}
The Destination Type Name
{transaction_type}
The Transaction Type eg. Insert
{row_count}
The number of Rows processed by DMS
{warning_count}
The number of Rows with Warnings
{clearance_count}
The number of Rows with Clearance rules broken
{information_count}
The number of Rows with Information rules broken
{error_count}
The number of Rows with Error rules broken
 
> It is intended that this feature will replace the Post Persist Scripts in the near future, as the same functionality can be achieved with a Notification on “Persisted” State with a Filter for a specific Metamodel, while being more flexible an precise due to the possibility to react to different events and even filter down to notify in more specific use cases.

Replace Transaction Type

A new Transaction Type “Replace” was added. This will delete all data previously Existing in the Destination prior to inserting the data from the Import.

App Search

The Global App Search features was introduced. When inside an Application you can search for any Item within this Application by its name or type.
Supported Types are:
  • Application
  • Import (only active)
  • Metamodel
  • Import Template
  • Connection
  • Lookup
  • User (also Username and Email)
  • Role
  • Notification
 
When on Homescreen only Application Names will be searched.

Improvements

  • Added ImportLog to UIV2
  • Added Metamodel Import/ Export
  • Improved Worker Handling, starts now faster in Azure App Services
  • Improved Server Startup order

Bugfix

  • Added Error Handling to Lookup Form.
  • Fixed an Issue with MSSQL Driver and Global Rules with Length limit.
  • Fixed an Issue in UIV2 Where Grades were displayed wrong.
  • Fixed add Entity from Connection.
  • Fixed Import Retry Logic.
  • Fixed missing Cascades in Audit deletion.
  • Many minor fixes.

Version Updates

The following dependencies were updated in accordance with minimizing open vulnerabilities in third party packages.

Core

Package New Old
@types/jest
29.2.5
29.0.3
concurrently
7.6.0
7.4.0
jest
29.3.1
29.0.3
ts-jest
29.0.4
29.0.1
typescript
4.9.4
4.8.3
vite
4.0.4
3.1.3
vite-tsconfig-paths
4.0.3
3.5.0
dayjs
1.11.7
1.11.5
joi
17.7.0
17.6.2

Server

Package New Old
@azure/storage-file-datalake
12.11.0
12.10.0
@sap/xsenv
3.4.0
3.3.2
@sap/xssec
3.2.15
3.2.13
axios
1.2.2
1.1.3
csv
6.2.5
6.2.0
express
4.18.2
4.18.1
helmet
6.0.1
6.0.0
mongodb
4.13.0
4.10.0
nodemailer
6.9.0
6.8.0
snowflake-sdk
1.6.17
1.6.14
socket.io
4.5.4
4.5.2
swagger-jsdoc
6.2.7
6.2.5
swagger-ui-express
4.6.0
4.5.0
jest
29.3.1
29.1.2

UI

Package New Old
axios
1.2.2
1.1.3
dayjs
1.11.7
1.1.3
react-icons
4.7.1
4.4.0
react-router-dom
6.6.2
6.4.1
recharts
2.3.2
2.1.14
rxjs
7.8.0
7.5.7
socket.io-client
4.5.4
4.5.2
@types/react
18.0.26
18.0.21
@types/react-dom
18.0.10
18.0.6
@types/uuid
9.0.0
8.3.4
@typescript-eslint/eslint-plugin
5.48.1
5.39.0
@typescript-eslint/parser
5.48.1
5.39.0
@vitejs/plugin-react
3.0.1
2.1.0
autoprefixer
10.4.13
10.4.12
eslint
8.31.0
8.24.0
eslint-import-resolver-typescript
3.5.3
3.5.1
eslint-plugin-import
2.27.4
2.26.0
eslint-plugin-jsx-a11y
6.7.1
6.6.1
eslint-plugin-react
7.32.0
7.31.8
postcss
8.4.21
8.4.17
tailwindcss
3.2.4
3.1.8
typescript
4.9.4
4.8.4
vite
4.0.4
3.1.4
vite-tsconfig-paths
4.0.3
3.5.1

Bugfix

  • Updated Axios Package due to a bug related to Url Parameters. 
  • Fixed a bug were big Connection definitions could not be stored correctly. 
  • Fixed an issue with default method in HTTP Post Persist Action. 
  • Added default algorithm to Connection encryption. 
  • Fixed an issue were a Field can not be created in new UI.
  • Fixed an issue were an ADLS Connection could not be created in new UI.

Version Updates

Package New Old
axios
1.0.0
1.1.3

Bugfix

  • Fixed an issue were only 20 records could be updated in Databricks Multi edit Live edit process.
  • Fixed a bug in new UI where the filter could not be set properly. 
 

Bugfix

  • Fixed an issue where comments could not be entered in Imports with Warnings. 
 

Breaking Changes

Installation Process

In accordance with the preparation of the new ui the installation process has changed slightly. We introduced a monorepo standard of creating and building the application. This leads to an more streamlined installation process where the single components do not need to be handled separately eg. executing `npm install` in multiple folders.

The following Commands need to be executed in the root folder:
  • `npm ci`
  • `npm build`
Afterwards the following items need to be copied to the server:
  • node_modules
  • node
  • ui
  • ui_v2/dist
  • package.json
  • package-lock.json
To run DMS `npm run start` needs to be executed in the root folder (no longer the node folder).

Improvements

  • Added application to MSSQL Connections
  • Improved Documentation
  • Some Legacy code Cleanup
    • variable naming
    • improved coding style adoption
    • introduced async/await

New Features

  • The New UI is now included as beta release.
  • Post Persist Scripts now have a Wizard in the new UI.
  > Important: for it to work either any previous PostPersist must be already transformed to the new JSON Format or removed in the Legacy UI.
  • Reworked User Management. The new UI only displays currently assigned user in Application.
  • Role Management displays assigned users.

Missing Features

  • Worker Management
  • Global Log Management
  • Metamodel Previous Versions
  • Global Search

Bugfixes

  • Fixed an issue in MSSQL Persist with UPDATE where Key columns were also part of SET statement. Which could lead to SQL Errors on Identity Columns.
  • Fixed an issue in AzureAd Auth Provider were if sap is not the default UI, it would have still redirected the user to it.
  • Fixed an issue where the Filename would not update after a Reupload from AFile Service Provider eg. ADLS.
  • Fixed an issue where the Counts would not be reset after a Reupload of a new File.
  • Fixed some API Endpoints, where the response was previously not used.

Version Updates

The following dependencies were updated in accordance with minimizing open vulnerabilities in third party packages. 
Package New Old
aws-sdk
2.1203.0
2.1229.0
axios
0.27.2
1.0.0
helmet
5.1.1
6.0.0
mongodb
4.9.0
4.10.0
nodemailer
6.7.8
6.8.0
ldapjs
2.3.2
2.3.3
seq-logging
1.1.1
1.1.2
snowflake-sdk
1.6.13
1.16.14
socket.io
4.5.1
4.5.2
uuid
8.3.2
9.0.0
winston
3.8.1
3.8.2

Improvement

  • Improved azureAD defaults and Documentation.
 

Breaking Changes

UI Configuration

In preparation of the new UI, the configuration of the UI providers changed slightly. This makes it simpler to maintain the configuration.
> If the default Azure configuration (`config.azure.js`) is used and no additional UI configurations have been made, nothing needs to be adjusted.
Following changes were made:
  • The `default` property is now the name of the provider instead of the url. 
  • This will help make the configuration more consistent as the config for a specific provider may change but the default will not have to change as well.
  • The `provider` array is now a simple object with the keys being the name of the provider.
  • The config of each provider can now be made separately of all the other providers.
  • The `url` property of a provider is now optional. If not present, the name of the provider will be used.
  • The `name` property is no longer used.

Here is an example of a configuration before and afterwards.

Before:
				
					```json
{
  "default": "/webapp", 
  "provider": [
    { 
      "name": "sapui5", 
      "url": "/webapp", 
      "path": "../ui/resources/webapp" 
    }
  ]
}
```
				
			
After:
				
					```json
{
  "default": "sapui5", 
  "provider": {
    "sapui5": { "url": "/webapp", "path": "../ui/resources/webapp" }
  }
}
```
				
			

New Features

Added Databricks Driver (beta)

It is now possible to process Import, Persist, Live Edit and Lookup on data stored in Databricks Deltalake.
 
Connection Configuration: 
Property Type Required
Host
string
yes
Cluster ID
string
yes
Access Token
string
yes

Known Limitations:

  • It is only possible to load 1.000 entries from Databricks Deltalake. Persist is not limited.
  • Live Edit on large datasets might be slow.

Added ‘New Guid’ Transformation

A new Transformation for the Import Templates has been created which inserts a new GUID.

Added an alpha preview of the UI V2

In this release we will give a sneak peek on the new UI.

> Beware this is an early stage, not all functionality is implemented yet.

This release should give you a feeling where DMS is heading towards. Our main focus was to streamline the work of the different User Types. We achieved this by separating the Management and the Import to give a better focus on each task. Currently, the regular tasks of creating an App, a Connection, a Metamodel, Entities and Import Templates should be finished in a simple version. Starting and finishing an Import should also work, but Reupload, Approval and Clearance as well as Data-manipulation are not yet implemented.

To use the new UI, it first needs to be included in the build process by executing `npm ci` followed by `npm run build` in the `ui_v2` folder. 
 
Afterwards the created `/ui_v2/dist/` folder needs to be copied as well. 

Finally the configuration needs to be adjusted by adding the following snippet at `config.ui.provider.uiv2`:
 
				
					```json
{
  "path": "../ui_v2/dist/"
}
```
				
			

Improvements

Extended Post Persist

Post Persist is now possible on all drivers. Currently, there are two possibilities for Post Persist actions. Making a HTTP Request or executing a SQL Statement on MSSql Server.

> In the new UI the configuration will be done via a wizard, in the legacy UI the configuration (JSON) has to be entered manually as described in the examples below.

Special tokens can be used in the Action, which will be replaced with information of the current process.

Token Description
{import}
The name of the Import
{import_identifier}
The Id of the Import
{import_template}
The name of the Import Template
{import_source}
The name of the File used for Import
{import_type}
The name of the Import Type eg. File Upload
{metamodel}
The name of the Metamodel
{metamodel_identifier}
The Id of the Metamodel
{metamodel_version}
The current Metamodel Version
{persist_type}
The Destination Type Name
{row_count}
The number of Rows processed by DMS
{warning_count}
The number of Rows with Warnings
{clearance_count}
The number of Rows with Clearance rules broken
{information_count}
The number of Rows with Information rules broken

MS Sql Server

This action can execute a Stored Procedure or execute an DML Statement after a successful persist.

Important:
While Post Persist was previously exclusive for MSSQL driver and only contained the SQL Statement to execute, there is currently a switch implemented which translates this legacy behavior to the new format while executing.

Nevertheless, it is advised to update existing Post Persist statements to the new structure, as this will be removed in a future release.

Property Description Type Required Replaceable
sql
The statement to execute
string
yes
yes
connection
The Connection ID
string
yes
yes
				
					```json
{
  "type": "mssql", 
  "options": {
    "sql": "INSERT INTO dbo.Log (Log) Values ('{import_identifier}')",
    "connection": "00000000-0000-0000-0000-000000000000"
  }
}
				
			

HTTP

This action can be used to make a HTTP Request after a successful persist, eg. to start an Azure Function or a Power Automate Flow.

Type: `http`
Property Description Type Required Replaceable
url
The url to contact
string
yes
yes
method
The HTTP Method to Use eg. POST
string
yes
no
headers
The headers to send
object
no
yes
body
The content to send
string or object
no
yes
 
Example:
				
					```json
{
  "type": "http", 
  "options": {
    "url": "http://myservice.com/api/Log",
    "method": "POST",
    "headers": {
      "Content-Type": "application/json"
    },
    "body": {
      "data": "{import_identifier}"
    }
  }
}
				
			

Version Updates

The following dependencies were updated in accordance with minimizing open vulnerabilities in third party packages.
Package New Old
@azure/storage-file-datalake
12.9.0
12.10.0
@sap/xsenv
3.2.2
3.3.2
aws-sdk
2.1145.0
2.1203.0
connect-mssql-v2
3.1.3
3.1.4
csv
6.2.5
6.2.0
hdb
0.19.2
0.19.5
helmet
5.1.0
5.1.1
ldapjs
2.3.2
2.3.3
mongodb
4.6.0
4.9.0
mssql
8.1.2
9.0.1
multer
1.4.4
1.4.5-its.1
nodemailer
6.7.5
6.7.8
passport-azure-ad
4.3.2
4.3.4
snowflake-sdk
1.6.10
1.6.13
swagger-jsdoc
6.2.1
6.2.5
swagger-ui-express
4.4.0
4.5.0
winston
3.7.2
3.8.1
winston-daily-rotate-file
4.6.1
4.7.1
jest
28.1.0
29.0.0

Bugfixes

  • Fixed a Bug where SuperAdmins could not be identified correctly.
  • Fixed some issues were permissions, only granted through a Metamodel Role, were not displayed correctly.
  • Fixed an issue when loading an Entity without Permissions to read Lookups.

Bugfix

  •  Updated SapUI Version due to Support End. 

Improvements

  •  Upgraded DMS to Node Version 16 – LTS
  • Bumped Dependency Versions

“`yaml
   “@azure/storage-file-datalake”: “12.9.0”,
   “@sap/xsenv”: “3.2.2”,
   “aws-sdk”: “2.1145.0”,
   “axios”: “0.27.2”,
   “csv”: “6.1.0”,
   “express”: “4.18.1”,
   “express-ntlm”: “2.6.2”,
   “express-session”: “1.17.3”,
   “hdb”: “0.19.2”,
   “helmet”: “5.1.0”,
   “ldapjs”: “2.3.2”,
   “mongodb”: “4.6.0”,
   “mssql”: “8.1.2”,
   “nodemailer”: “6.7.5”,
   “passport”: “0.6.0”,
   “passport-azure-ad”: “4.3.2”,
   “snowflake-sdk”: “1.6.10”,
   “socket.io”: “4.5.1”,
   “swagger-jsdoc”: “6.2.1”,
   “swagger-ui-express”: “4.4.0”,
   “winston”: “3.7.2”,
   “xlsx”: “0.18.5”
“`

New Features

  • Reintroduced old XLSX Driver for possibility to handle xls files – with known limitations.
  • Added config possibility for Upload Temp Folder under `upload.path`. 
  • Added config possibility to have MSSQL as persistent Session Storage `session.store: “mssql”`.

 

Bugfixes

  • Fixed an Issue in MSSQL which could lead to error in Persisting if Updating to a NULL value. 
  • Fixed a Bug where it was possible to create a LiveEdit import without session.
  • Fixed a Bug in reading large Parquet files, where out of memory exception could occur.
  • Fixed delete Row in Adjust leading to deletion of all rows in Import. 
  • Fixed the Data Count method in snowflake driver, to repair paging and MultiEdit forecast. 
  • Fixed an issue in LiveEdit where Filtering did not always display correct State of Data (deleted, edited) due to Case Sensitivity. 
  • Fixed an issue in LiveEdit where Updating a Value was not always possible.
  • Fixed an issue where Validation Statistic is not shown.
  • Fixed missing permission for adding Role to Business Rule.
  • Fixed Business Rule Lookup Validation.
  • Fixed an issue where only admins could introduce new User.
  • Fixed a Bug where the Post Persist script would be executed 3 times when using Live Edit.
  • Fixed a Bug with displaying added items scrambled with the live data in a Live Edit session.

Bugfixes

  • Fixed delete Row in Adjust leading to deletion of all rows in Import.
  • Fixed the Data Count method in snowflake driver, to repair paging and MultiEdit forecast.
  • Fixed an issue in LiveEdit where Filtering did not always display correct State of Data (deleted, edited) due to Case Sensitivity.
  • Fixed an issue in LiveEdit where Updating a Value was not always possible. 
  • Fixed an issue where Validation Statistic is not shown.
  • Fixed missing permission for adding Role to Business Rule.
  • Fixed Business Rule Lookup Validation.
  • Fixed an issue where only admins could introduce new User.

Features

  • Reintroduced old XLSX Driver for possibility to read xls files – with known limitations.

Bugfixes

  • Fixed a Bug where the Post Persist script would be executed 3 times when using Live Edit.
  • Fixed a Bug with displaying added items scrambled with the live data in a Live Edit session.

Changes and new features:

  • Azure Data Lake as source and destination Support
    • The application now supports Azure Data Lake as both source and destination. It will allow the user to use a data file of type CSV, Excel, Parquet, or JSON from the Data Lake for data processing with DMS, as well as export processed data to Data Lake as data file of type CSV, Excel, Parquet, or JSON. More info can be found in the User Manual.
  • Parquet as new File Format
    • The App now supports the importing of Parquet files.
  • Multi UI Configuration
    • A very stripped down version of the UI has been added to the application. This simplified UI will be used to allow users outside of the access circle to be able upload their data file to be processed. As an example, let’s say one of the newer colleagues has a dataset file that requires processing with DMS, however, the user wasn’t given any type of rights yet to used the application. A different user that has access, can generate an URL within DMS, which can be accessed by anybody and allow them to upload the file they need processing.
  • Rewritten Batching for performance
    • The batching is now handled by the Driver and not the importer. The reason behind that is that different drivers might have different needs for the size of the batch.
  • UI Driver Support optimized
    • Changed how the driver adds fields to a connection configuration _**(not sure about this one, that is all I wrote as a note, will ask Rafi again.)**_
  • Improved installation routine
    • We can now deploy the complete infrastructure via Azure DevOps pipeline.
  • Added Static Import Templates
    • Imports can now be saved as templates for repeated use with different/new data. An Import Template can be marked as Static, this indicates that after a successful persist, the import can be reopened to start over with fresh data. The purpose is to be able to keep the same import id and name which might be used in later processes for identification. 
  • Updated Frameworks / Libraries
The following npm packages were updated to new versions:
      – “@azure/storage-file-datalake” **_v.^12.0.1 &#8594; v.^12.7.0_**
      – “@marsaud/smb2” **_v.^0.13.0 &#8594; v.^0.18.0_**
      – “@sap/xsenv” **_v.^1.2.9 &#8594; v.^2.2.0_**
      – “@sap/xssec” **_v.^2.2.2 &#8594; v.2.2.2_**
      – “aws-sdk” **_v.^2.619.0 &#8594; v.^2.1046.0_**
      – “body-parser” **_v.^1.19.0 – removed_**
      – “axios” **_v.^0.24.0 – added_**
      – “cookie-parser” **_v.^1.4.4 &#8594; v.^1.4.6_**
      – “csv” **_v.^5.3.1 &#8594; v.^6.0.4_**
      – “exceljs” **_v.^4.3.0 – added_**
      – “express-http-context” **_v.^1.2.3 &#8594; v.^1.2.4_**
      – “express-ntlm” **_v.^2.5.0 &#8594; v.^2.6.1_**
      – “express-session” **_v.^1.17.0 &#8594; v.^1.17.2_**
      – “fs” **_v.0.0.1-security – removed_**
      – “hdb” **_v.^0.16.0 &#8594; v.^0.19.0_**
      – “helmet” **_v.^3.21.2 &#8594; v.^4.6.0_**
      – “iconv-lite” **_v.^0.6.3 – added_**
      – “ldapjs” **_v.^1.0.2 &#8594; v.^2.3.1_**
      – “mongodb” **_v.^3.5.7 &#8594; v.^4.2.1_**
      – “linq” **_v.^3.2.1 – removed_**
      – “mssql” **_v.^6.1.0 &#8594; v.^7.3.0_**
      – “multer” **_v.^1.4.2 &#8594; v.^1.4.4_**
      – “nodemailer” **_v.^4.7.0 &#8594; v.^6.7.2_**
      – “passport” **_v.^0.4.1 &#8594; v.^0.5.0_**
      – “passport-azure-ad” **_v.^4.2.0 &#8594; v.^4.3.1_**
      – “passport-saml” **_v.^0.35.0 – removed_**
      – “passport-windowsauth” **_v.^3.0.1 – removed_**
      – “proxy-agent” **_v.^5.0.0 &#8594; v.^3.1.1_**
      – “seq-logging” **_v.^1.1.1 – added_**
      – “socket.io” **_v.^2.3.0 &#8594; v.^4.4.0_**
      – “swagger-jsdoc” **_v.^3.5.0 &#8594; v.^6.1.0_**
      – “swagger-ui-express” **_v.^4.1.3 &#8594; v.^4.2.0_**
      – “winston” **_v.^3.2.1 &#8594; v.^3.3.3_**
      – “winston-daily-rotate-file” **_v.^3.10.0 &#8594; v.^4.5.5_**
      – “xlsx” **_v.^0.14.5 &#8594; v.^0.17.4_**
      – “gulp” **_v.3.9.1 – removed_**
      – “gulp-istanbul” **_v.^1.1.3 – removed_**
      – “gulp-jasmine” **_v.2.4.1 – removed_**
      – “gulp-replace” **_v.0.5.4 – removed_**
      – “jasmine-reporters” **_v.2.1.1 – removed_**

Bugfixes:

  • Excel File reader /writer rewritten for large files
    • The old Excel importer had a problem with memory.
  • Merging behavior on SQL Server
  • Multiple UI Fixes:
    • The Name of Metamodels on top, would not change when switching between metamodels. It does now.
    • Added Number decimal separator, in the Import Log.
    • The message in the Import Log that notifies about the Import being deleted, has been updated – The message will now read that the Import was deleted with the Metamodel, when it is being deleted automatically by deleting the Metamodel. 

Improvements

  • Changed location for Persist Log from Database to File Storage – Azure Data Lake 
  • Improved File Browser Experience The Filebrowser respects now Folders and can navigate within them.
  • Bumped Dependency Versions:
“`yaml
  “@sap/xssec”: “3.2.13”,
  “aws-sdk”: “2.1074.0”,
  “axios”: “0.26.0”,
  “express”: “4.17.3”,
  “mongodb”: “4.4.0”,
  “mssql”: “8.0.2”,
  “winston”: “3.6.0”,
  “winston-daily-rotate-file”: “4.6.1”,
  “xlsx”: “0.18.2”
“`

New Features

  • Added Snowflake Driver Snowflake can now be used in DMS as a Source and Destination. LiveEdit and Lookup are also possible.

Bugfixes

  •  Fixed a Bug where the Approver needed the permission to also modify the Import. 
  • Fixed a Bug in the new Excel Driver where Columns have explicit `NULL` values. 
  • Fixed a Bug in MSSQL when persisting special unicode characters. 
  • Fixed a Bug in Live Edit where if not all Transactiontypes were present an “No data was Exported” error was thrown.
  • Fixed a Bug in Live Edit MSSSQL whith composite keys.

Breaking Changes 

  • Changed the configuration of the File Storage File Storage is no longer solemnly needed for Clearance Statements but for the Persist Log as well. The configuration path changed from `csFileService`to `fileService` The configuration of the File System (Container) is now splitted and default values were intoduced:
    •  previously:
      •  `csFileService.connection.fileSystemName`
    • now: `fileService.connection.csFileSystem`
      • default: `clearancestatement`
    • `fileService.connection.persistLogFileSystem`
      • default: `persistlog`
Logo_Woody_white font

WOODY.IO is a flexible data integration and validation platform that automates the movement, transformation, and quality assurance of data across modern cloud and on-premise environments.

Contact us

A product by

oh22_Logo_weiss_RGB.png