Releases: Cumulocity-IoT/cumulocity-dynamic-mapper
Release v4.7.0
What's Changed
!! Breaking Change !!
Caution this release contains breaking changes which makes it necessary to migrate existing mappings! For details please read on.
- The format used for serializing the mappings was changed. We provide a migration script which helps to you convert the existing mappings to the new format #291
- The script uses go-c8y-cli. Make sure you have set it up and using a session pointing to your Cumulocity Tenant where the mappings should be migrated
- Make sure the script has valid permission to be executed on your system. Otherwise add
chmod +x dynamic-mapping-mgmt.sh
- Run script:
dynamic-mapping-mgmt.sh migrateMappings
- Changed display names of options and mappings type to more user friendly names: PROCESSOR_EXTENSION_SOURCE to Extension Source
- Additional mapping type Extension Source Target, Mapping handles payloads in custom format. In contrast to the Extension Source the completed processing of the payload: extract values from the incoming payload and then transform this to a Cumulocity API call. This requires that a custom processor extension in Java is implemented and uploaded through the "Processor extension" tab.
- Add connectors to left side navigation, under Configuration -> Connectors -> <CONNECTOR #1>, <CONNECTOR #2>, ...
- Add view to see event/errors logged by the mapping micro-service, under Monitoring -> Tab Mapping service events. This is helpful in cases where.a mapping could not be successfully loaded
- Migration jsonata4Java -> dashjoin jsonata #293
- Migration Cumulocity SDK 1020.155.0, JDK 21, spring boot 3.3.5
- Add testcases (junit, mockit): ConnectorConfigurationComponentTest , MappingTreeTest, JsonataDashJoinLibTest
- Scaling improvements by using mainly virtual threads where possible supported by Spring Boot & Java 21+.
Bugfixes
Full Changelog: v4.6.1...v4.7.0
Release v4.6.1
What's New
- A filter can be applied to a mapping (inbound) to control if the mapping should be used for this mapping
What's Changed
- Bump chart.js from 4.4.3 to 4.4.4 in /dynamic-mapping-ui by @dependabot in #247
- Bump @angular/language-service from 18.2.1 to 18.2.2 in /dynamic-mapping-ui by @dependabot in #246
- Feature/realtime events by @ck-c8y in #260
- Bump @c8y/devkit from 1020.18.1 to 1020.18.3 in /dynamic-mapping-ui by @dependabot in #244
- Bump @angular-eslint/template-parser from 17.5.2 to 18.3.0 in /dynamic-mapping-ui by @dependabot in #245
- Feature/caching external by @ck-c8y in #272
- Feature/migration 1021 by @ck-c8y in #281
- Feature/mapping-filter by @ck-c8y in #287
Full Changelog: v4.5.0...v4.6.1
Release v4.6.0
New & Improved Features
Please note: This release is for Cumulocity 2021.0.x which is currently deployed on eu-latest environment. For earlier Cumulocity version please use 4.5.x version of the mapper.
This release includes a lot of performance and scalability improvements and also introduces the fresh new cumulocity branding
- New Identity Cache that chaches per default 100.000 IDs so identity API isn't called each time. This cache is invalidated each 24 hrs and can be configured via the Service Configuration UI.
- New cache pool for processing array messages concurrent instead sequentially.
- Using WebSDK 2021.0.11 and Angular 18 including new cumulocity branding.
Minor Changes
- Default microservice resources increased to 0.5 CPUs and 2G RAM due to metaspace issues duiring runtime.
- Removed hard coded heap-size from pom.xml to scale with assigned resources.
- Confirmation dialog if no connector is selected for a mapping
- Display error message if a mapping could not be enabled for a connector
- OTLP metrics improvements including the identify cache size & hit rate
- OTLP logging is disabled per default can be enabled in applications.properties
- #276
- #271
- #273
- #268
What's Fixed
- Fixing a bug in the Notification 2.0 subscriber that all tenants are reinitialized 42f5471
- Wizard gets stuck in snoop mode
- #258
- #259
- #264
- #267
- #269
- #274
- #275
- #278
- #279
Full Changelog: v4.5.1...v4.6.0
Release v4.5.3_pre
Fixes
- Multiple minor bugfixes in UI and Microservices.
What's Changed
- Breaking change: creating mappings in the stepper (wizard) can now only be completed, if a connector is chosen. This was implemented to reduce the potential misunderstandings
- Bump @c8y/devkit from 1020.18.1 to 1020.18.3 in /dynamic-mapping-ui by @dependabot in #244
- Bump @angular-eslint/template-parser from 17.5.2 to 18.3.0 in /dynamic-mapping-ui by @dependabot in #245
- Feature/caching external by @sagIoTPower in #272
- Snooping Experience improved by better guidance
- Template Explorer to see snooped templates
The cache stores all known externalIDs with internal ID correlations so ideally the mapper can skip the C8Y Request when receiving a message to get the C8Y ID.
Cache is configured per default to 100.000. Can be changed via UI or API. Cache is invalidated each day. This can be also configured via UI (0 deactivates the cache invalidation).
Full Changelog: v4.5.2_pre...v4.5.3_pre
PreRelease v4.5.2
Fixes
What's Changed
- Bump chart.js from 4.4.3 to 4.4.4 in /dynamic-mapping-ui by @dependabot in #247
- Bump @angular/language-service from 18.2.1 to 18.2.2 in /dynamic-mapping-ui by @dependabot in #246
- Feature/realtime events by @sagIoTPower in #260
Full Changelog: v4.5.0...v4.5.2_pre
Release v4.5.1
Fixing bugs
Fixing a bug that a connector config could not be updated.
Full Changelog: v4.5.0...v4.5.1
Release v4.5.0
New & Improved Features
- Reviewed the UI to increase UX
- Activate Mappings per Connector #184
- Added Landing Page #250
- Disable/Enable buttons on step 5 test mapping #249
- Proper removal of Notification 2.0 subscribers #248
Please note: All C8Y messages for each connector will be queued if a connector is disabled. If a connector is removed the queues will be deleted by unsubscribing the subscriber.
- Breaking Change: Renaming of MQTT Service to Cumulocity MQTT Service
Please note: Due to changing the type of MQTT Service to Cumulocity MQTT Service you have to delete the "old" MQTT Service connector via API and re-create it using the UI. You can use the following script to clean all connectors: https://github.com/SoftwareAG/cumulocity-dynamic-mapper/blob/394279acc4c838da94817690ad8b7727c05c7a91/resources/script/migrate/clean_connection_configuration.sh
Minor Changes
- Bump cypress from 13.13.1 to 13.13.3 in /dynamic-mapping-ui by @dependabot in #234
- Bump @angular/language-service from 17.3.12 to 18.2.1 in /dynamic-mapping-ui by @dependabot in #232
- Bump org.apache.maven.plugins:maven-jar-plugin from 3.3.0 to 3.4.2 by @dependabot in #215
- Bump com.github.loki4j:loki-logback-appender from 1.5.1 to 1.5.2 by @dependabot in #214
- Bump org.apache.commons:commons-lang3 from 3.14.0 to 3.16.0 by @dependabot in #222
- Bump @c8y/package-blueprint from 1020.4.1 to 1020.18.1 in /dynamic-mapping-ui by @dependabot in #231
- Bump @angular-eslint/eslint-plugin-template from 17.5.2 to 18.3.0 in /dynamic-mapping-ui by @dependabot in #228
- Bump org.apache.kafka:kafka-clients from 3.7.1 to 3.8.0 by @dependabot in #216
- Bump com.google.protobuf:protobuf-java from 4.27.2 to 4.28.0 by @dependabot in #239
- Bump org.springframework:spring-aspects from 6.1.11 to 6.1.12 by @dependabot in #240
- Bump org.apache.commons:commons-lang3 from 3.16.0 to 3.17.0 by @dependabot in #241
- Bump org.junit.jupiter:junit-jupiter from 5.10.3 to 5.11.0 by @dependabot in #242
What's Fixed
Full Changelog: v4.4.0...v4.5.0
Release v4.4.0
New Features
- Reviewed complete UIs to improve first user experience #171:
- include creating connectors as one step when creating a mapping
- added a second stepper for the snooping process, this improves the usability as well
- split long list of tabs to three main areas: mapping, monitoring, configuration
- You can select connectors for mappings now, to only apply a mapping when the message is received over a specific connector #184
- It is now possible to select device groups now for outbound mappings #199
- It is possible to reset snooped messages now #188
- New custom micrometer metrics for mappings to monitor the number of processed messages and processing time
- New more readable and improved documentation
Bug fixed
What's Changed
- Bump io.opentelemetry:opentelemetry-bom from 1.37.0 to 1.39.0 by @dependabot in #162
- Bump org.springframework:spring-aspects from 6.1.6 to 6.1.8 by @dependabot in #163
- Bump org.codehaus.mojo:build-helper-maven-plugin from 3.0.0 to 3.6.0 by @dependabot in #157
- Feature websdk 1020 by @sagIoTPower in #172
- Feature user exp by @sagIoTPower in #174
- Adding custom Micrometer metrics for Mapper by @switschel in #183
- Bump io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha from 2.4.0-alpha to 2.5.0-alpha by @dependabot in #167
- Bump org.junit.jupiter:junit-jupiter from 5.9.0 to 5.10.3 by @dependabot in #186
- Bump org.projectlombok:lombok from 1.18.32 to 1.18.34 by @dependabot in #185
- Bump org.springframework:spring-aspects from 6.1.8 to 6.1.10 by @dependabot in #177
- Bump com.google.protobuf:protobuf-java from 3.25.2 to 4.27.2 by @dependabot in #179
- Bump @typescript-eslint/eslint-plugin from 6.21.0 to 7.16.0 in /dynamic-mapping-ui by @dependabot in #187
- Bump @angular-eslint/eslint-plugin from 17.5.2 to 18.1.0 in /dynamic-mapping-ui by @dependabot in #181
- Bump css-loader from 6.11.0 to 7.1.2 in /dynamic-mapping-ui by @dependabot in #145
- Bump style-loader from 3.3.4 to 4.0.0 in /dynamic-mapping-ui by @dependabot in #127
- Bump org.springframework:spring-aspects from 6.1.10 to 6.1.11 by @dependabot in #194
- Bump org.apache.kafka:kafka-clients from 3.7.0 to 3.7.1 by @dependabot in #195
- Bump io.opentelemetry:opentelemetry-bom from 1.39.0 to 1.40.0 by @dependabot in #196
- Bump org.java-websocket:Java-WebSocket from 1.5.6 to 1.5.7 by @dependabot in #198
- Bump io.netty:netty-all from 4.1.110.Final to 4.1.112.Final by @dependabot in #204
- Preparing Releasr 4.4.0 by @switschel in #205
- Bump @typescript-eslint/eslint-plugin from 7.16.1 to 7.17.0 in /dynamic-mapping-ui by @dependabot in #201
- Prepare release 4.4.0 by @sagIoTPower in #207
- Changing MQTT Service name in README by @switschel in #208
Full Changelog: v4.3.0...v4.4.0
Release v4.3.0
What's Changed
- new Mapper UI is deployable as standalone app and plugin now -> Standalone app is independent from Cumulocity UI version which allows to run the latest mapper on older Cumulocity IoT instances than 1019+. Successfully tested with 1018.
- Cumulocity Edge support introduced
- Auto detection of notification 2.0 and enable/disable outbound mappings
- Outbound Mapping can be enabled/disabled via Configuration UI
- Removed unnecessary browser console output
- Notification 2.0 Implementation improvements
- Trigger the device connectivity push connection status when a subscription for a device is existing
- Supporting Cumulocity < 1019 where MQTT Service role is non-existing
If you run an instance <1019 please use the microservice dynamic-mapping-service-without-mqtt-service.zip and rename it to dynamic-mapping-service.zip before deploying.
Full Changelog: v4.2.3...v4.3.0
Release v4.2.3
Fixed Bugs
- Latest Mapper UI Plugin is not listed in Ecosystem plugin list due to name change.
Full Changelog: v4.2.2...v4.2.3