Change logs

These change logs document all relevant changes for the Cumulocity cloud deployments.

The following types of change are included:

  • Feature - New features which are generally available.
  • Preview - Features which are in Public Preview and not yet generally available.
  • Improvement - Small improvements.
  • Announcement - Deprecations, removals or important UI changes.
  • API change - Breaking changes in the APIs.
Info
Subscribing to change log information is possible in the corresponding change log representation in the Cumulocity Tech Community.

Displaying all changes since December 6, 2023

March 13, 2026

Widget sections are now more organized and easier to use

Widgets previously displayed all settings under a single settings section, making it difficult to find and manage specific widget configurations. Sections are now organized more cleanly with improved visual separation and structure, allowing you to configure widget settings more easily and efficiently. This enhancement improves the overall user experience when working with widgets by providing a clearer, more intuitive layout that reduces cognitive load and makes information easier to locate.

March 12, 2026

Devices are now correctly added to initial device group

An issue has been resolved affecting the initial group assignment during single device registration when using the “create device certificates during device registration” option with Cumulocity CA certificates.

Previously, devices registered individually were not correctly added to their designated initial device group upon first connection.

With this update, when a single device is registered and an initial device group is specified, the device is now properly assigned to the target group upon its first connection.

Enhanced SSO user name validation

Validation has been added for the “User/App ID – Constant value” field used during SSO authentication when the “Use constant value” option is enabled.

When a constant username is configured for SSO users (optional setting), it now follows the same validation rules as a standard username:

Validation Rules

  • String length: 1–1000 characters
  • Must not contain:
    • Whitespace
    • Slashes
    • Any of the following characters: +, $, :

This change ensures consistency in username validation and prevents invalid values from being configured for shared SSO accounts.

Device enrolment plugin now provided by default

The Device enrolment plugin is now a standard Device Management plugin included by default. It provides a quick link to the thin-edge.io setup wizard, available in both the new welcome widget and the “Quick links” widget.

The four-step wizard simplifies the connection of physical Linux devices or Docker containers by providing a generated curl command that automates installation and cloud configuration. This process streamlines registration through guided device naming and automated certificate handling, concluding with instant verification of connectivity and data transmission to the platform.

Device Management application homepage refresh

The Device Management application homepage has been refreshed by removing the standard “Alarm” and “Quick links” widgets to make room for a new welcome widget. This update provides a more intuitive entry point for users and includes a direct link to the thin-edge.io setup wizard.

Added new computed property - Fieldbus item status

This change introduces a new “Fieldbus item status” computed property with the following configuration options:

  • Fieldbus item: Select a coil or register from the device protocol associated with a device.
  • Result type: Select whether to display the raw value or a transformed value using enum values defined in the item’s settings.

The new computed property makes it possible to display the status of Fieldbus items (including their enum values) in widgets such as the “Asset table”. This functionality will be progressively made available in other widgets, too.

March 11, 2026

Added nearby clustering to cluster map

When viewing cluster maps with many nearby data points, the map can become cluttered and difficult to read. The Cockpit application now automatically groups nearby clusters, allowing you to see the overall distribution of your devices and assets more clearly. As you zoom in on the map, the nearby clusters automatically expand to show individual data points, providing a better user experience when working with dense datasets on cluster maps. If a device or asset is placed in the same position, the user can click on the marker to see more clearly which markers are placed. Warning colors for alarms are merged, and the most critical alarm is shown. This improvement applies to all existing map widgets and to customized Web SDK-based cluster map implementations in your applications without requiring any configuration changes.

March 9, 2026

Now button added in global context history mode configuration

In the global context history mode configuration, a Now button has been added next to the To date field to instantly set the end date to the current time. This provides a convenient shortcut to view the most recent data without manually adjusting the date picker.

March 6, 2026

User application access feature migrated to Angular

The user application access feature has been migrated from the legacy AngularJS framework to the modern Angular framework. Previously, the user application access management interface was built with AngularJS, which limited performance and maintainability. The interface now runs on Angular, providing improved performance, better responsiveness, and access to modern web technologies. This migration ensures that the user application access feature remains compatible with current and future versions of the platform, while maintaining all existing functionality and user workflows without requiring any changes to how you manage application access for your users.

March 5, 2026

New REST endpoints for login option mappings

The single sign-on APIs have been enhanced to allow the configuration and administration of thousands of users. Using the user interface in such instances was not scalable and required intense effort to administer such large numbers of users properly.

These new REST endpoints allow users to manage global and inventory access mappings for tenant login options:

  • POST/GET/PUT/DELETE /tenant/loginOptions/{configIdOrType}/accessMappings
  • POST/GET/PUT/DELETE /tenant/loginOptions/{configIdOrType}/inventoryAccessMappings

The endpoints enable CRUD operations on individual mappings without updating the entire login options configuration, with optional session termination via terminateUserSessions.

Add Analytics Builder ONNX block in Public Preview

A new ONNX block has been added to Analytics Builder in Public Preview. This block executes an ONNX model that has been deployed to the files repository.

Input: A pulse containing a properties dictionary where keys are the ONNX input names and values are scalars (float, integer, boolean, string) or tensors (nested sequences of those types).

Output: A pulse containing a properties dictionary where keys are the ONNX output names and values are scalars or tensors matching the model’s output schema.

March 2, 2026

New aggregation options added to the data graph and data explorer

The chart options in the Web SDK now include additional aggregation methods, giving you greater flexibility when configuring data visualization. Previously, aggregation was limited to minimum and maximum values, which could restrict how effectively you could summarize and analyze time-series data. With this update, you can now use average, sum, and count alongside the existing minimum and maximum options. These additional aggregation functions allow you to better represent trends, totals, and overall activity, making it easier to analyze and interpret your data.

This enhancement is available in the data graph and the data explorer.

To use these new aggregation options, the time series migration must have been performed on the tenant. Newly created tenants already use the new time series by default and therefore do not require to be migrated.

February 27, 2026

Asset table widget enhanced with data grid

The “Asset table” widget in the Web SDK has been enhanced to use the data grid, extending its functionality and providing a more powerful and flexible way to view and manage asset data. Previously, the widget offered limited options for filtering and customization. With this improvement, you can now take advantage of the data grid’s extended capabilities, including additional filtering options and enhanced customization to better organize and interact with your asset information.

This enhancement is available as a preview feature. To enable it, open the Preview features page from the right drawer and turn on the corresponding option. Once enabled, you can start using the improved “Asset table” widget with its expanded filtering and customization capabilities, allowing you to tailor the experience to your specific needs.

Data point graph has been renamed to data graph.

The “Data point graph” widget has been renamed to “Data graph” to provide clearer and more intuitive terminology across the platform. This change simplifies the naming and better reflects the widget’s purpose of visualizing and analyzing data over time.

The functionality and configuration of the widget remain unchanged. No action is required on your part, and your existing setups will continue to work as expected. This update ensures a more consistent and user-friendly experience when working with data visualization features across the platform.

February 26, 2026

Added comprehensive widget development documentation

The Cumulocity Codex has been expanded to include comprehensive information, best practices, and step-by-step instructions necessary for building widgets for the Cumulocity platform. With this addition, developers now have better access to structured documentation that helps them understand the widget development process, reducing the learning curve and enabling faster development of custom solutions.

ChildAdditions for opposites can be created and assigned in the same API call

The performance when creating new opposite links has been improved. The managed object acting as the opposite can be both created and assigned using one request to the child operations API.

Improved error message returned from the REST API on creating or updating asset definitions from a subtenant

Previously, the error message returned from the REST API when trying to create or update asset definitions on a subtenant of an Enterprise tenant was generic and did not include tenant IDs. The error message now includes the relevant tenant IDs.

February 25, 2026

Added deployment information to change logs in the documentation

Change logs previously only indicated deployment availability for Zone 1 (eu-latest.cumulocity.com), limiting the usefulness of the information for users on other zones.

Each change log entry now includes an expandable Technical details section that displays deployment availability information for all environments: eu-latest.cumulocity.com, apj.cumulocity.com, jp.cumulocity.com, emea.cumulocity.com, us.cumulocity.com, and cumulocity.com. This section also displays technical details such as build artifact, version, and internal ticket number that were previously hidden.

Users can now quickly verify whether a change is available in their specific environment without contacting support or searching multiple sources. This improvement helps users make informed decisions about feature adoption and troubleshooting across all zones.

New application added to read RestAPI documentation

A new application lets you read the OpenAPI REST specification on your instance. Previously, understanding how API endpoints work required external tools or manual testing against your own environment. Now you can experiment with API calls in real time within the documentation interface, making it easier to learn the API capabilities and validate your integration approaches before implementing them in your applications. This improvement reduces the learning curve for developers working with the Cumulocity platform and helps you quickly understand the expected request and response formats for various API operations.

February 19, 2026

Added c8y_Origin to the definition of c8y_GenericAsset

Thec8y_Origin fragment has been added to the c8y_GenericAsset asset definition to indicate that it is part of the library provided by the Digital Twin Manager.

Added REST endpoint to get linked assets for a given device

A new variant of the REST endpoint /service/dtm/assets/linkedSeries/opposites/{deviceId} that returns a linked asset collection for a given device has been added. To use it, the Accept header application/vnd.com.nsn.cumulocity.linkedassetscollection+json must be used.

Changed the storage of ordering information of complex property definitions

Previously, the field ordering information for complex property definitions was stored in the c8y_Order array. With this update, the ordering is defined directly within each field using the order property in the JSON schema. Existing property definitions are automatically migrated to the new structure when the subscribed microservice is updated.

Dashboard import/export feature moved to General Availability

The dashboard import/export feature, previously available as Public Preview (see announcement), is now promoted to General Availability (GA).

Dashboards can be exported as JSON files including all metadata such as widget configurations and settings, and imported across tenants and environments.

When importing dashboards between different contexts (for example, devices to assets or across tenants), a configuration review is prompted to adjust settings and ensure compatibility.

Enabled separate translations for DTM plugins across applications

Previously, when Digital Twin Manager (DTM) plugins were integrated with other applications, the same translations were shared, with no way to differentiate between DTM specific-text and other application text. Now, users can define and use separate translations for DTM plugins, allowing DTM and other applications to have their own distinct translations.

New flexible asset modeling capabilities

The Digital Twin Manager (DTM) application now offers more flexible asset modeling, reducing dependence on rigid schemas and enabling you to represent physical assets with fewer upfront constraints. This change supports a more agile approach to defining and evolving your digital representations of physical assets.

To support this flexibility, two new configuration options are now available when defining your asset models:

  • Allow any subasset models: Nest any asset under a parent without strict type restrictions, giving you greater flexibility in defining asset hierarchies as your environment evolves.

  • Allow all properties: Add data to assets even if the properties weren’t defined in the original model. This allows you to enrich assets with new data over time without updating the asset model first.

By enabling these flexible model settings, you can build your digital twin structures earlier and refine them incrementally — supporting iterative modeling and real-world variability.

In addition, we have introduced a new default asset model (key: c8y_GenericDefinition) that enables both flexible options by default to help you get started quickly. The model is protected and cannot be deleted, ensuring system consistency and preventing accidental removal of this required base definition.

February 18, 2026

Added built-in markdown editor to the markdown widget configuration

Previously, the “Markdown” widget only supported content from an uploaded file or a URL. With this change, a new “Write Markdown” option has been added, allowing users to write and edit markdown content directly in the widget configuration using a built-in editor.

Export functionality now available in data point graphs

The “Data point graph” widget previously did not include export capabilities, limiting the user’s ability to extract and share graph data. The export component has now been integrated into the data point graph, allowing users to export graph data directly from the widget interface. This enhancement enables better data analysis workflows.

Support to generate and deploy agents within your application

The Web SDK now supports exporting agent configurations as a JSON file directly from the application. Previously, agent configurations could only be managed through the UI without an easy way to export them for backup, sharing, or version control purposes. With this enhancement, you can now generate an agent configuration within your application development, making it easier to manage, document, and transfer agent setups across different environments or instances. This is particularly useful for users who need to maintain consistent agent configurations across multiple deployments or who want to keep a version-controlled record of their agent settings.

February 12, 2026

Improved reloading of displayed data in time series migration UI

The time series migration UI has been improved with the following enhancements:

  • A duplicate Reload button has been removed to avoid confusion, leaving only one Reload button at the top of the page that reloads both the Ongoing migration and Tenants sections. The loading state is now indicated by the top loader bar, and the area being loaded becomes slightly transparent.
  • The reload action no longer clears filters applied in the Tenants data grid.

Added live preview to Markdown widget configuration

Previously, when configuring the “Markdown” widget, there was no way to see how the content would look without saving and closing the configuration. With this change, a live preview panel is now displayed alongside the configuration, showing the rendered markdown content in real time as users upload a file or provide a URL.

Added AI Agent block in Public Preview

A new AI Agent block has been added to Analytics Builder. This block queries an AI Agent Manager agent using its inputs and produces the agent’s text response as output.

Feature preview
This feature is in Public Preview, that is, it is not enabled by default and may be subject to change in the future.

Note: This block produces its output asynchronously after the input activation completes. If you wire this output alongside outputs from other blocks into the same downstream block, they will trigger that block in separate activations rather than being processed together.

This block has the following parameters:

  • Agent name: The agent to use in the AI Agent Manager.
  • Prompt template: The prompt template to use when querying the agent. The block inputs will be mapped into this template using variables like {{inputs[0]}}, {{inputs[1]}}.

Added Rate Limiter block in Public Preview

A new Rate Limiter block has been added to Analytics Builder. This block suppresses all but the first message received per specified time period.

Feature preview
This feature is in Public Preview, that is, it is not enabled by default and may be subject to change in the future.

The Rate Limiter block has the following outputs:

  • Rate limited output: The first input activation in the specified time period is sent to this output; subsequent activations within that period are sent to the suppressed output. When the time period has elapsed, the next input activation starts a new period and is again sent to this output.
  • Suppressed message output: Input activations that occur more than once within the specified time period are sent to this output.
  • Number of suppressed messages within the current period: Incremented every time a message is suppressed. Resets to zero when a message is not suppressed.
February 11, 2026

Device type column now available by default in the device list data grid

The “Device type” column is now part of the default device grid configuration in the devices list of the Device Management application. It is available in the column selector and can be enabled as needed.

Adjusted button layout in confirmation modal

The button layout in the confirmation modal has been improved to ensure better visual alignment and consistency in multiple languages.

Improved drawer layout when adding custom columns

The drawer layout has been improved to provide better spacing, alignment, and overall usability when adding custom columns.

Migrated pie chart component to Angular

The pie chart component in the Web SDK has been migrated to Angular and now uses ECharts as its underlying charting library. Applications and dashboards that display pie charts will benefit from improved rendering performance and a more consistent experience alongside other Angular-based components in the platform.

In addition, users can now toggle individual data points directly from the legend.

February 6, 2026

Simplified translation of data grid column values via translate option

The data grid’s Column interface has been extended with the translate option. If set to true and no custom cell renderer component is used, then the translate pipe will automatically be applied to the column’s value. This change makes it easier to translate column values. Previously, it required using a custom renderer template or component. For this option to work, the column values must be in English and the corresponding translations must be available in the loaded translation resources, for example in the standard application translations, or in the custom ones provided via the localization feature or in the application options.

February 5, 2026

Placeholder $PROVIDED has been replaced by an empty string value in the software repository

When creating a software item, users can define a device as responsible for providing the software artifacts, rather than uploading a binary or pointing to it via a URL. In this case, the created software object used to have $PROVIDED as a placeholder value for the software url property in the inventory. With this change, an empty string value will be stored instead. Existing software items in the inventory remain unchanged.

Add Logger block in Public Preview

A new Logger block has been added to Analytics Builder in Public Preview. This block enables writing a message to the microservice log file for each input, with the following parameters:

  • loggerTag: Used to identify log messages from this block. If not specified, defaults to “logger”.

  • logLevel: The log level to use when writing messages to the log file. Available options:

    • INFO (Default)
    • DEBUG (Will not appear in the log by default)
    • WARN
    • ERROR
  • disableOutput: Whether to disable logging from this block. This can be templated using model parameters to disable logging at runtime. Defaults to false.

Added Smart Function block in Public Preview

A new Smart Function block has been added to Analytics Builder. This block executes a JS Smart Function on the inputs and produces an output.

Feature preview
This feature is in Public Preview, that is, it is not enabled by default and may be subject to change in the future.

The Smart Function must export a function onInput(inputs, context) that returns a list of outputs.

Argument details:

  • inputs is a list of ten Value objects, with members value, properties, and timestamp corresponding to the block inputs.

  • context is an object with the following members:

    • blockParameters - List that contains the block parameters as specified in the block configuration.
    • getState(key, def = null) - Method that retrieves a value previously stored in the context under the given key. If no value is found, returns def.
    • setState(key, value) - Method that stores the given value in the context under the given key.

In addition, the console object has log, warn, error, and debug members that can be used to log messages to the microservice log.

The return value of the function is a list of up to ten values corresponding to the block outputs. These can either be bare values, or Value objects, with members value, properties, and timestamp. If the function does not generate a value, return null instead.

MQTT Service tenant isolation EPL API removed from Streaming Analytics

The deprecated EPL API (com.apama.cumulocity.mqttservice) is removed from Streaming Analytics. This API was provided for the MQTT Service tenant isolation feature preview.

For deprecation details, refer to Deprecation of MQTT Service support in EPL apps.

Migrate your applications

Replace the deprecated API with the new DeviceService API (com.apama.cumulocity.devices). This API uses the MQTT Service device isolation capability.

See Using Cumulocity MQTT Service for migration instructions and usage examples.

February 4, 2026

Console application Private Preview release

The Console application enables customers on the Commit-to-Consume (CTC) contract model to view their actual usage and consumption of the Cumulocity components.

For details, see the Console documentation.

Feature preview

The Console application is in Private Preview. That means it is not enabled by default and may be subject to change in the future. This application is subscribed to your tenant if you are on the new CTC model. If you are unable to access this application, contact product support to request the application subscription for your tenant.

At this time, the Console application is not supported on Dedicated environments. This will be enabled soon.

Custom message banners in branding can now be acknowledged and dismissed

Users can now permanently dismiss custom messages configured under Branding > Message Banner. Previously, these messages reappeared every time the page was refreshed, which could disrupt the user experience.

Users can clear these messages from the top of their screen in two ways:

  • Close: Temporarily hides the message. It will reappear the next time the page is refreshed.
  • Acknowledge and close: Confirms the user has read the message. The application will remember this preference for the specific browser being used and will not show the message again.

Note: The message will reappear if the administrator updates the banner configuration with a new text or if the user clears their browser cache.

February 3, 2026

New confirmation dialog for optional session termination when updating SSO configuration

When updating the SSO configuration, all active user sessions that depend on this configuration must be re-authenticated to ensure security and consistency with the new settings. Previously, this required manually terminating all affected sessions before saving the configuration changes. With this change, a confirmation dialog appears when you update the SSO configuration page, giving you the option to either terminate all active sessions associated with that configuration or proceed with the update while keeping sessions active. This provides flexibility in managing the update process based on your operational needs. If you choose to terminate sessions, users will be logged out and required to re-authenticate with the new SSO settings on their next login. If you choose not to terminate sessions, existing sessions will continue until they naturally expire, though they may experience authentication issues if the new configuration is incompatible with their current session state. This change applies to all tenants and users relying on SSO authentication.

January 29, 2026

Changing probes setting in microservice manifests

Until now, the host of a liveness or readiness probe of a microservice could be set in the microservice manifest. To avoid potential security implications, setting the host in manifest probes will be disabled in Q3 2026 for CD versions and in the 2027 annual release. Uploading a microservice that uses the host parameter within the readiness or liveness probe will be rejected.

For testing purposes, the new behavior can already be enabled via a feature toggle core.ms-hosting.no-host-in-probes-in-manifest.

Important
In Q3 2026 for the CD versions and in 2027 for the yearly releases, the new behavior will become mandatory.
~

OPC UA gateway with the thin-edge.io proxy support

The OPC UA gateway now connects to Cumulocity through the local Cumulocity thin-edge.io proxy. Consequently, OPC UA gateway thin-edge.io usage without the Cumulocity proxy is now deprecated and will be removed in a future version. Please update your gateway configuration to use this local proxy model corresponding to our revised documentation.

Advanced configuration of collection schemas

When configuring an offloading pipeline, Cumulocity DataHub automatically derives tabular schema information given the data in the operational store. However, the data may not yet contain all columns you want to utilize in your offloading configuration. For example, a new device generation will include an additional pressure sensor whose value you want to offload as soon as the devices become available, without the need to reconfigure the offloading pipeline. For that purpose, Cumulocity DataHub now allows you to add such a column with an associated type in the configuration process.

January 23, 2026

Azure AD template now supports scope configuration

Azure AD integrations may require proper scope configuration to define the permissions and access levels for authentication and authorization. Previously, the Azure AD template did not expose the scope parameter, limiting configuration flexibility. The Azure AD template now includes a scope property that allows you to explicitly configure the scope parameter when setting up your Azure AD integration. This gives you full control over the permissions requested during the authentication process. When configuring Azure AD authentication, you can now specify the exact scope requirements for your integration, ensuring that only the necessary permissions are requested and granted. This applies to all new Azure AD configurations created after this change. Existing Azure AD configurations will continue to work as before, but you can update them to include scope configuration if needed. The scope parameter is optional.

Removal of deprecated features from the MQTT Service

Caution

This change only affects the new Cumulocity MQTT Service capability.

The existing Cumulocity Core MQTT capability is not affected.

The Cumulocity MQTT Service is expected to transition to Generally Available (GA) status by the end of March 2026. When the service reaches GA status, features that have been deprecated during the Public Preview period will be removed. These changes were all previously announced; this notice is a reminder to help ensure that devices and applications are ready for the transition to GA status.

Important
It is essential that all devices and applications using the MQTT Service have been updated to use only GA features before the GA date.
Which features will be removed?

The following features will not be available after the GA date:

  1. Tenant-level isolation
    Isolation between MQTT devices will be strictly enforced and direct communication between devices by publishing and subscribing to the same topic will not be possible. All communication between MQTT devices must be mediated by a microservice or external application client. The mqtt-service.tenant.isolation feature toggle will have no effect on the behaviour of the MQTT Service. See the device isolation announcement for more details.

  2. Java client SDK
    The MQTT Service Java Client SDK will not be able to connect to the MQTT Service once it reaches GA status. Microservices and external application clients must use the Pulsar client protocol to interact with MQTT Service topics. See the deprecation notice for more details.

  3. Non-TLS endpoint
    Unencrypted device connections to the MQTT Service on TCP port 2883 will not be enabled on any Cumulocity shared public environments. Devices must connect to these environments using TLS on TCP port 9883. Both one-way (server certificates only) and two-way (client and server certificates) TLS are supported. The unencrypted port may be enabled on dedicated environments if required by legacy devices that do not support TLS. This restriction is documented, although some public environments do currently have the non-TLS port enabled to ease device onboarding during the Public Preview.

In addition, as previously announced, the MQTT Service is already enforcing Common Name validation on device certificates. Devices connecting using an X.509 client certificate where the Common Name does not match the MQTT client identifier will be rejected.

What user action is required?

Developers and integrators of MQTT devices, microservices and external application clients must ensure that their devices and clients are using only GA features of the MQTT Service:

  • Replace all uses of the Java Client SDK with the Pulsar client protocol.
  • Replace all uses of the MQTT protocol in microservices or external application clients with the Pulsar client protocol. The MQTT protocol should only be used by devices.
  • Migrate all MQTT device connections to use the secure TLS endpoint on TCP port 9883.
  • Ensure that the MQTT client identifier matches the certificate Common Name for any devices authenticating using X.509 client certificates.

If you have any questions or concerns, please contact Cumulocity Support as soon as possible.

January 22, 2026

MQTT Service enforces Common Name validation for certificate authentication

Caution

This change only affects the new Cumulocity MQTT Service capability.

The existing Cumulocity Core MQTT capability is not affected.

Introduction

As previously announced, the Cumulocity MQTT Service now enforces Common Name (CN) validation during client certificate authentication.

This update strengthens identity assurance by ensuring a tight binding between a device’s identity and the certificate it presents. By requiring the certificate’s CN to match the MQTT client identifier, we significantly reduce the risk of certificate misuse across different devices.

What is changing?

When an MQTT client connects using certificate-based authentication, the platform now validates that the Common Name (CN) field in the provided certificate matches the MQTT Client ID.

To ensure backward compatibility and support for legacy migration patterns, the validation logic supports the following matching rules:

MQTT client ID format Valid certificate CN Description
<deviceId> CN = <deviceId> Standard format for new devices.
d:<deviceId> CN = <deviceId> OR CN = d:<deviceId> Supported for legacy SmartREST devices migrating to MQTT Service.

Any connection attempt where the certificate CN does not align with these rules will now be rejected with an authentication failure.

Impact and required actions

This is a breaking change for any environment where devices were previously using “generic” certificates or certificates where the CN did not strictly match the device identifier.

  • Existing devices: If your devices use certificates with mismatched CNs, they will no longer be able to connect. You must rotate these certificates to align with the device’s MQTT Client ID.
  • Certificate issuance: Update your provisioning workflows to ensure the Common Name field is automatically populated with the unique device identifier.
  • Authentication methods: This change specifically targets certificate-based authentication. Clients using username/password are unaffected.

Why we are making this change

Aligning the certificate identity with the protocol identity is a security best practice. It prevents “impersonation” scenarios where a valid certificate stolen from one device could be used to authenticate as a different device ID, ensuring higher integrity for your IoT data.

January 7, 2026

Breadcrumbs added to group, device, and asset views in the Cockpit application

To improve the navigation in the Cockpit application, breadcrumbs have been added to group, device, and asset views. For root-level groups, the whole path is always shown. For nested entities, the whole path is not displayed eagerly. Instead, users can click an ellipsis button to show all possible paths (hierarchies) the entity is present in, as a device can be a child of multiple groups. Extra API calls are needed to find out the possible paths; therefore, an explicit user action is required.

New option to display smooth lines in data point graphs

A new option has been added to the “Data point graph” widget that allows lines to be rendered as smooth curves. This improves visual clarity and makes trends and patterns easier to identify.

December 12, 2025

Added option to control the data point graph legend

To improve the usability of data point graphs, a new option has been added that allows users to control the display of the graph legend. They can now select between an automatic mode, which shows the legend if there is sufficient space, or explicitly control the legend visibility through a dropdown menu. This change enhances the flexibility of the graph configuration and allows users to optimize the visual representation based on their specific requirements and available screen space.

Auto-refresh is automatically paused and resumed on tab visibility change

The global context now pauses auto-refresh updates when the browser tab is hidden, and resumes updates when the browser tab is visible. This optimizes resource usage while ensuring the data is refreshed upon return.

Data explorer configuration improvements

The workspace configuration used by the data explorer is now compressed, which significantly reduces the number of characters required in the URL. This makes shared links shorter, cleaner, and less likely to hit browser URL-length limits. Additionally, two new helper functions have been introduced, one for generating a URL from a configuration and another for navigating directly to the data explorer with a specified configuration.

Shared time context for dashboard widgets

Widgets on a dashboard can now share time context. A global panel controls time range, auto-refresh, and aggregation for linked widgets. Each widget applies the settings it supports. Individual widgets can be unlinked for independent control.

Two modes are available: Live mode for rolling time windows with auto-refresh, and History mode for fixed date ranges with aggregation.

Breaking change: Custom widgets using the old Global Context API must migrate to the new components to maintain time context functionality.

December 11, 2025

Alarms raised for common Messaging Service errors

With this change, the Cumulocity platform will raise an alarm when the Messaging Service fails to process a message. Issues reported in this way require user action to be resolved. Currently, this only happens when publishing to a Notifications 2.0 subscription fails because the underlying topic has reached its backlog quota limit. More information about Notification 2.0 backlog quotas can be found in the documentation.

Improved device certificate enrollment validation

The device certificate validation has been improved to ensure that the Common Name (CN) field in the Certificate Signing Request (CSR) subject exactly matches the device ID provided during the device registration process. This enhancement improves consistency and prevents the enrollment of certificates with mismatched identifiers.

Application-specific string translations in Add asset and Subassets plugins

The text strings in the Add asset view and the Subassets tab are now scoped to the Digital Twin Manager application’s translation context. This allows users to provide application-specific translations without overriding the translations in other applications.

Asset properties widget enhanced to display modeled properties for devices modeled as assets

The “Asset properties” widget, which is part of the dtm-plugins, has been enhanced to better support devices modeled as assets. In addition to the previously hardcoded device properties, the widget now dynamically lists all modeled properties for devices modeled as assets. This enhancement ensures consistent visibility of modeled properties across both devices and assets, providing a unified and more complete view in the Asset Properties widget.

Enabled fine-grained permissions for managing assets

The Digital Twin Manager now supports fine-grained permission control for managing assets by introducing a new tenant option assets.permission.mode.
This tenant option supports three modes:

  • external (Default): Digital twin assets permissions are only enforced for assets marked with the c8y_ExternalAsset key. Users require the Digital twin assets UPDATE or ADMIN permission to modify or delete these assets.
  • all: Digital twin assets permissions are strictly required for all assets. Users must possess the Digital twin assets CREATE permission for creation, the UPDATE permission for modification, and the ADMIN permission for full management (create, update, or delete) of any asset.
  • none: Digital twin assets permissions are not applicable to any assets. Asset control defaults to standard Inventory permissions.

Navigation from model name to asset model details

The “Model name” column in the Asset models page is now interactive, allowing users to click a model name to view/edit the asset model details.

New Device-to-Asset plugin for enabling asset modeling of existing devices via Digital Twin Manager

A new Device to Asset plugin is now available in dtm-plugins, providing an easy way to add the c8y_IsAsset fragment to existing devices and explore asset modeling capabilities. Using a guided two-step workflow, users can keep the c8y_IsDevice fragment intact, add the required c8y_IsAsset fragment, optionally assign asset types and parent assets, and immediately integrate devices into the asset hierarchy and modeling already supported for assets created via Digital Twin Manager.

While devices can also be migrated to assets via APIs, this plugin offers a simple UI dialog to create an asset from a device, automatically adding the required information to the device managed object.

New Properties library plugin to manage asset properties

The DTM plugin now includes a unified Property Library plugin that enables centralized management of all properties, delivering a streamlined, powerful, and future-proof modeling environment. Built on the Digital Twin Definitions API, the Property Library provides enhanced extensibility, improved reliability, and a modern foundation for future enhancements. It allows you to manage all property definitions from a single, central location across your Cumulocity deployment. You can define properties applicable to devices, alarms, events, and assets, as well as configure regex-based validation rules to ensure data integrity. This enables centralized governance and scalability across digital twin implementations. The Property Library plugin utilizes Digital Twin Manager APIs which are currently in Public Preview. To enable access, contact product support via the Cumulocity Support Portal and request activation of the required feature flags for your deployment.

Simplified global context link/unlink behavior

The control linking functionality has been simplified to provide a more intuitive user experience. Previously, each control (time context, auto-refresh, aggregation) could be linked or unlinked from the global context individually. This granular approach introduced complexity and edge cases that could lead to unexpected behavior. With this change, all controls now link and unlink together as a single unified action. When a widget is linked to the global context, all its controls synchronize with the dashboard. When unlinked, the widget operates independently with its own local controls. This simplification reduces confusion and ensures consistent, predictable behavior across widgets.

Upgraded Angular and Web SDK versions

The Digital Twin Manager application has been upgraded to Angular 20.3.3 and Cumulocity Web SDK 1023.0.0, bringing improvements in platform compatibility. Custom applications using dtm-plugins will need to update to the latest plugin versions when migrating to the latest Web SDK to ensure compatibility.

Upgraded Web SDK versions

The Digital Twin Manager application has been upgraded to the Cumulocity Web SDK 1022.44.3. The custom applications that integrate dtm-plugins are advised to update their plugins to the newest versions to ensure compatibility with the updated SDK.

Users with read-only permissions can view the property details in Properties library plugin

Previously, users without the Digital twin definitions permission were limited to viewing only the list of properties in the Property Library plugin. With this enhancement, such users can now access property details in a read-only mode.

December 9, 2025

Enforced fixed 5-second auto-refresh interval for dashboards

Previously, users could set different refresh intervals for dashboards. This led to inconsistent behavior across dashboards. To avoid this, the live mode now enforces a fixed refresh interval of 5 seconds or real-time updates, depending on the widget type. This improves the user experience as the dashboard refresh behavior is now consistent and predictable, with each widget refreshing either after 5 seconds or in real time based on its type.

December 6, 2025

Deprecation of CSV-based import assets feature in Digital Twin Manager

As part of the move to an API-first approach for asset management, the CSV-based Import assets feature will be deprecated and removed from the Digital Twin Manager (DTM).

In current versions, this feature is automatically disabled when the Asset APIs feature flag is enabled for Private Preview features on a tenant. In upcoming releases, it will be fully removed.

To ensure a smooth transition, begin preparing your migration to the Asset APIs, which enable more scalable and flexible asset creation through modern, API-driven workflows. Additional guidance will be shared soon in a dedicated Tech Community article. Comprehensive API documentation is available directly in DTM through the OpenAPI plugin. You can install it by navigating to: Administration application > Ecosystem > Extensions > Dtm-plugins > Extension package > Dtm-plugins > OpenAPI documentation.

December 4, 2025

History field removed from the Alarm API

The deprecated history field has been removed from the Alarm API. Previously, this field always returned an empty list. The field is no longer returned by the API, allowing it to be used as a custom fragment.

Limited number of events produced when receiving data from LWM2M device

Previously, each resource instance of multi-instance LWM2M resources was logged as a separate event in the verbose logging level. This change simplifies the logs by combining all resource-instance values into a single event.

December 3, 2025

Cumulocity Developer Codex now available as a blueprint on Management tenants

The Cumulocity Developer Codex — a resource providing guidance and documentation for building custom frontend solutions with the Cumulocity Web SDK — is now available as a blueprint on Management tenants. Tenant administrators can deploy the Developer Codex as an application on subtenants along with utilizing branding and translations, and make it accessible via the app switcher.

Information on migrating to Web SDK v1023 added to the Developer Codex

The Web SDK update documentation has been enhanced with additional information to cover the latest changes and improvements in version 1023 of the Web SDK. The documentation now provides detailed information on how to use the new features and APIs introduced in this version, such as the global time context. See Updating the Web SDK version in the Developer Codex.

New ai-chat component and AI chat assistant for HTML widgets

The Web SDK now includes a new ai-chat component, providing a simple and consistent way to integrate chat-driven experiences into your application.

Building on this component, we have added an AI chat assistant to the HTML widget configuration section, which supports users in generating and refining HTML-based widgets.

Note that the assistant depends on the AI Agent Manager, which is currently in preview. It is available in the HTML widget only when the microservice is enabled, and a valid provider API key is configured. Users with the Tenant Manager role can enable the feature via the Manage preview features option in the Administration application and then add the required API key in the AI Agent Manager.

December 2, 2025

MQTT Service will enforce Common Name validation for certificate-authenticated clients

Caution

This change only affects the new Cumulocity MQTT Service capability.

The existing Cumulocity Core MQTT capability is not affected.

Introduction

To strengthen identity assurance for certificate-authenticated MQTT clients, the Cumulocity MQTT Service will begin enforcing Common Name (CN) validation during client certificate authentication.

Currently, the MQTT Service accepts certificates where the CN does not match the MQTT client ID.
After this change, the CN must match the client ID used during connection. This tight binding of certificates to devices will significantly reduce the risk of certificate misuse.

What is changing?

When an MQTT client connects using certificate-based authentication, the Common Name (CN) in the certificate must match the MQTT device ID.

MQTT clients may identify themselves using either of the following client ID formats:

  1. <deviceId> – standard format
  2. d:<deviceId> – supported only for legacy SmartREST devices migrating to the MQTT Service. This format must not be used for new devices.

However, in both cases, the certificate’s CN must be:

  • CN == <deviceId>

Any certificate whose CN does not equal the device ID will fail authentication.

Only certificate-authenticated clients are affected; all other authentication methods remain unchanged.

Impact on existing MQTT clients

This is a breaking change.
Devices using certificates whose CN does not match the device ID will fail authentication once enforcement begins.

Customers should verify and update their certificate issuance processes during the grace period.

Please contact Cumulocity Support if you have any questions or concerns about these changes.

Roll-out plan

Info
Because the Cumulocity MQTT Service is currently in Public Preview, it is not subject to the standard 6-month compatibility notice period defined in the Cumulocity IoT Compatibility policy.

To allow a smooth transition, CN validation will be introduced no sooner than four weeks after this announcement.

New option for skipping SSO redirect and showing standard platform login

To support a broader range of authentication workflows, the Web SDK now introduces the skipSSORedirect query parameter. When enabled, this option skips the default single sign-on (SSO) redirect and displays the standard platform login interface instead. This enhancement provides greater control over authentication behavior, making it easier to support environments where direct platform login is preferred or where SSO is unnecessary.

November 28, 2025

Device dashboards now available in the Device Management application

Device dashboards, which were available in the Cockpit application before, are now also available in the Device Management application. This allows users to create custom tabs for their devices in the device details. Users can create template dashboards that automatically apply to devices of the same type, ensuring consistent views across their environment. When created, custom dashboards replace the default Info tab.

Improved global context styling

The global context styling was inconsistent and did not provide a good user experience. With this change, the global context styling has been improved to provide a more consistent and visually appealing look and feel across the application. Users will notice a more polished and professional design that enhances the overall usability and aesthetics of the global context elements.

November 26, 2025

Analytics Builder models now detect hierarchy changes in groups and assets

Analytics Builder models consuming data from device groups or assets now automatically detect hierarchy changes. This includes the addition, update, or deletion of devices, subgroups, and assets. The model dynamically adapts to these structural changes, ensuring continuous and accurate data processing.

For details, refer to Support for dynamic changes to group and asset hierarchy.

Info
This is also applicable to the Smart rules plugin.
November 20, 2025

Enhanced security for encrypted tenant options

With this change, the secure-tenant-options feature is enabled by default.

As previously announced, this security feature restricts the decryption of encrypted tenant options with the credentials. prefix. These options can only be decrypted by system users (such as bootstrap or microservice users) if they own the options.

Ownership is determined based on the category of the tenant option, in the following priority:

  1. The settingsCategory defined in the microservice manifest.
  2. The microservice’s context path.
  3. The microservice name.
Important

This change enforces the security model announced earlier in 2025. Microservices attempting to decrypt credentials.* options in categories not owned by them will receive static <<Encrypted>> values.

We recommend verifying microservices to ensure they are correctly aligned with their owned option categories and do not rely on accessing external credentials.

November 19, 2025

New data explorer moved to General Availability

The new data explorer, which offers significantly improved performance, a modernized user experience, and expanded analysis capabilities, is now generally available (GA). For details on the enhancements, see the original Cumulocity announcement.

New Data point graph widget moved to General Availability

The new Data point graph widget, which offers extended customization options, enhanced visualization capabilities, and an improved user experience, is now generally available (GA). For more details on the enhancements, see the original Cumulocity announcement.

November 17, 2025

HTML widget moved to General Availability

The HTML widget has been migrated from AngularJS to Angular and is now generally available (GA). This migration brings enhanced security features and improved JavaScript support.

Key improvements:

  • Advanced security: The widget now includes strict HTML sanitization by default to protect against XSS.attacks.
  • Better JavaScript support: An advanced mode enables you to write custom web components for more sophisticated use cases.
  • Automatic migration: Existing AngularJS widgets will be automatically migrated to the new Angular implementation.

Important limitations:

  • Web components: Can only be written by Application administrators.
  • Disabling sanitization: The default strict sanitization can only be disabled by cloning the Cockpit application and adjusting the setting in the application configuration under Config > Application configuration.
November 13, 2025

OPC UA gateway local database upgrade

Together with the update to Java 17, the internal database of the OPC UA gateway has been changed from MapDB and ChronicleMap to RocksDB. This change enhances the performance and reliability of the gateway, ensuring compatibility with Java 17.

Important

Note that this update may require additional data migration or re-registration of device gateways. Refer to Upgrading from 1021 to 1022 gateway version in the documentation.

It is recommended to back up your existing local gateway data before proceeding with the update.

Some gateway properties related to the internal database have been removed and are no longer applicable:

  • gateway.mappingExecution.alarmStatusStore.maxEntries
  • gateway.mappingExecution.deviceTypeMappingStore.maxServerMappingsEntries
  • gateway.mappingExecution.alarmStatusStore.averageKeySize
  • gateway.mappingExecution.deviceTypeMappingStore.averageMappingsKeySize
  • gateway.mappingExecution.deviceTypeMappingStore.averageMappingsValueSize
  • gateway.mappingExecution.alarmStatusStore.maxBloatFactor
  • gateway.mappingExecution.deviceTypeMappingStore.maxMappingsBloatFactor

OPC UA gateway now runs on Java 17

Because Java 11 is outdated and no longer supported, the OPC UA gateway has been modernized and now runs on Java 17. This update enhances security and performance, ensuring the gateway remains reliable and efficient. Ensure that your environment is compatible with Java 17 to take full advantage of the improvements.

Important
Be aware that this update also replaces the internal gateway database and additional data migration or re-registration of device gateway may be required.

Refer to Upgrading from 1021 to 1022 gateway version in the documentation.

Asset property selector allows reordering of properties

The asset property selector is used to select properties to be displayed in various places in the platform. Previously, the order of the properties could not be changed. With this update, you can now reorder the properties in the asset property selector using drag and drop. This allows users to customize the order in which properties are displayed to better suit their needs and preferences.

Smart rules (NEW) introduces support for fine-grained RBAC

The smart rules (NEW) feature now supports fine-grained Role-Based Access Control (RBAC) to manage user permissions more precisely.

For details, refer to Managing permissions to smart rules (NEW) instances.

Tailored offloading of inventory collection

When offloading the inventory collection, not only device-related data is offloaded, but also internal data. In order to confine the offloading to the data you need in your application, Cumulocity DataHub now introduces views over the inventory collection. These views let you tailor your offloading configuration so that only the data you are interested in is offloaded to the data lake, for example, only data related to devices or device groups.

November 12, 2025

DeviceService bundle for MQTT Service support in EPL Apps

EPL Apps now supports connecting to the Cumulocity MQTT Service with the new DeviceService API. This allows handling of device-native messages sent to the MQTT Service within Cumulocity EPL Apps. For more details, see Using Cumulocity MQTT Service.

For detailed configuration options and the API reference, see The DeviceService bundle.

This bundle replaces the deprecated Apama EPL API for the MQTT Service.

Info
The Cumulocity MQTT Service and The DeviceService features are currently in Public Preview and may be subject to change in the future.
November 10, 2025

Angular 20 upgrade

Starting with version 1023.0.0, the Web SDK has been upgraded to Angular 20. This update brings performance improvements and new features, but may also introduce breaking changes that could impact your existing implementations.

Comprehensive upgrade documentation is available to help developers navigate the transition and update their codebases accordingly, see the Angular 20 upgrade documentation.

November 6, 2025

Password reset links now validated for a more suitable redirection

Previously, if users used a password reset link with an invalid token, they were redirected to the reset password view and got an error message on submit. To enhance the user experience, the login app now validates password reset links before allowing users to change their passwords. If the link token is valid and has not expired, the user is redirected to the reset password view to set a new password. If the link token is invalid or has expired, the user is instructed to request a new password reset link.

October 30, 2025

Enhanced granularity of measurement series aggregation interval

The measurement series endpoint has been enhanced. Note that there is no impact on the behaviour of applications currently using this endpoint.

We have introduced a new query parameter aggregationInterval which allows users to specify the aggregation interval for the returned measurement series data in a more flexible manner compared with the existing aggregationType parameter. The new parameter allows the specification of custom time intervals like 300s, 25m, 12h, 7d, and so on. The format of the parameter is an integer followed by a time unit, where the supported time units are: s (seconds), m (minutes), h (hours), d (days), w (weeks), M (months), q (quarters) and y (years). The integer value must be a positive number without leading zeros.

The new aggregationInterval parameter is preferred over the existing aggregationType parameter. When both are provided in a request only the aggregationInterval parameter will be considered and the aggregationType parameter will be ignored.

Caution
The full range of values for the aggregationInterval parameter is only supported for the timeseries persistence of measurements. For legacy persistence only intervals of 1d, 1h, 1m are supported, directly corresponding to the existing aggregationType parameter values. When using other interval values with legacy persistence, the system will default to the closest supported aggregation type, which may lead to unexpected results.

Measurement series aggregation improvements

A new query parameter aggregationFunction has been added to the measurement series endpoint. This parameter allows to specify aggregation functions to be calculated on the measurement series data per specified aggregation interval. The supported aggregation functions are: min, max, avg, sum, count, stdDevPop, and stdDevSamp. If the parameter is not provided, the functions min and max will be calculated by default.

Info
If you want to calculate multiple functions at once, you must specify the parameter multiple times, for example, aggregationFunction=min&aggregationFunction=max&aggregationFunction=avg.
Caution
This parameter can only be specified when an aggregation interval is provided using aggregationType or aggregationInterval parameter. Providing the aggregationFunction parameter without an aggregation interval will result in a bad request error. This parameter only takes effect for the timeseries persistence of measurements. For legacy persistence, the min and max functions are always calculated.

Dashboard manager available for preview in the Device Management application

The dashboard manager, which has already been available in the Cockpit application, is now also available for preview in the Device Management application. The dashboard manager brings more flexibility, consistency, and control over device dashboards.

External ID of an asset now displayed in the Subassets page

A new field has been introduced in the Subassets page to display the External ID of an asset. If available, the External ID (from the c8y_ExternalId fragment) is shown below the Last updated field.

October 24, 2025

Improved handling of suspended tenants in time series migration UI

In the time series migration UI, a new column named “Tenant status” has been added to indicate whether a tenant is active or suspended. The existing “Status” column has been renamed to “Migration status” to provide clearer context. For suspended tenants, no actions are now enabled. This enhancement allows administrators to easily identify suspended tenants during the migration process and prevents invoking invalid operations on them.

October 23, 2025

Angular 20 upgrade

In a future version of the Web SDK, we will update the Angular version used in the Web SDK to version 20. This update brings improvements and new features, but may also introduce breaking changes that could impact your existing implementations.

To ensure a smooth transition to Angular 20 and help you to adapt your implementations, we will provide an upgrade documentation when this change happens. This documentation will help you navigate through the changes and update your codebase accordingly.

October 22, 2025

Deprecation of MQTT Service support in EPL Apps

Due to changes in the Cumulocity MQTT Service preview version, the current EPL API for the MQTT Service (com.apama.cumulocity.mqttservice) is now deprecated.

Use the DeviceService API from (com.apama.cumulocity.devices) instead, see The DeviceService bundle.

October 16, 2025

Added a new audit log type "Tenant certificate authority"

To enhance the audit log capabilities, a new audit log type called “Tenant certificate authority” has been added. With this change, users can now view and filter audit logs related to tenant certificate authority events directly from the audit logs browser in the Administration application. This improvement provides better visibility and tracking of certificate authority-related activities within a tenant, enabling administrators to monitor and analyze these specific events more effectively. You can find the list of logged event types in the user documentation.

Enhanced certificate management with ability to sign and issue certificates

The certificate authority feature previously released in Public Preview is now Generally Available (GA). It is available in CD versions 2025.348.0 and higher, and in the 2026 annual release.

The feature can be accessed in the Device Management application under Management → Trusted certificates, where the Add CA Certificate option is now available by default.

Cumulocity has been enhanced to function as a Certificate Authority (CA), providing the following capabilities:

  • Manage signing certificates
  • Accept Certificate Signing Requests (CSR)
  • Perform legitimacy checks, as defined by each tenant
  • Issue signed X.509 certificates trusted by the device tenant

For more details about this feature refer to Certificate Authority (CA).

Caution

Migration from Public Preview to General Availability - action required.

As part of the move to General Availability you need to remove all the devices you have registered under Public Preview and re-register them. All such devices will continue to be able to connect, but none of the other capabilities of the certificate lifecycle management will be available until they are re-registered.

Improved Java SDK support for external IAM tokens without tenant or username claims

When using external IAM JWT tokens, the authentication failed to correctly identify the tenant and user when the token did not include a tenant ID or username in its claims. With this change, the Java SDK now properly retrieves the tenant ID and username from the Cumulocity credentials context, ensuring correct identification and smoother integration with external identity providers.

Data points are pre-filled in the Measurements tab

With this change, the data explorer in the Measurements tab gets pre-filled with all available data points of the displayed device. The first one is active by default, all others are inactive. The Measurements tab in the device details uses the new data explorer if the Data explorer feature preview toggle is enabled.

Auto-generated property keys now retain the original casing

Previously, when creating an asset property, the auto-generated key converted all letters in the label in the Asset properties page to lowercase and replaced special characters with underscores. Now, the key generation preserves the original letter casing from the label while continuing to replace special characters with underscores, ensuring case-sensitive property names.

Computed properties available in new properties selector

To enable developers to define custom properties with dynamic values, a new hookComputedProperty hook has been introduced. This hook allows defining computed properties that calculate their values on-the-fly based on other properties or external data, rather than storing the values directly on assets. Computed properties support context-aware applicability, allowing them to be selectively available based on the current context. They can also include optional configuration components for easy customization. Computed property values can be returned synchronously or asynchronously using promises or observables, providing flexibility in how the values are calculated and returned.

Enhanced Codex information architecture and developer experience

The Developer Codex has been redesigned with a clearer information architecture, offering step-by-step guides, core concepts, design best practices, and complete Web SDK documentation in a more discoverable and structured format. Whether you’re new to Cumulocity or an experienced developer, you’ll find faster paths to building effective IoT solutions, understanding platform architecture, designing better UIs, and connecting with the developer community.

The Developer Codes now includes

  • Simplified navigation – Reduced menu depth and introduced an intuitive 2–3 level, card-based structure for faster and easier content discovery.
  • Learning-oriented structure – Content is now organized to support a natural learning journey from fundamentals to advanced implementation:
    • First steps (formerly Quick start) – Get up and running quickly
    • Understanding fundamentals (formerly Core concepts) – Learn the platform architecture
    • Hands-on learning (formerly Common tasks) – Practice through real-world examples
    • Building UIs – Explore components and design system resources
    • Platform integration – Dive into advanced development and complex scenarios
  • Enhanced cross-references – Stronger linking between related topics to support knowledge building and continuous learning
  • Optimized learning flow – A progressive content structure that guides developers smoothly from beginner to expert level

See Cumulocity Developer Codex.

Feedback form added to preview features

To improve the quality and user experience of new features, a feedback form has been added for preview features in Cumulocity. When opening the Preview feature page, a feedback form is now displayed below each feature to provide thoughts, suggestions, and any issues encountered. This feedback will help shape and refine the features before they are officially released, ensuring they meet the needs and expectations of our users. Submitting feedback is optional and does not impact the usage of the preview features.

October 9, 2025

Client-suggested identity provider for SSO login

To improve the single sign-on (SSO) login with multiple identity providers, a new idp_hint parameter has been added. Client applications can now suggest a preferred IdP (for example, idp_hint=google), allowing users to be redirected directly to that provider without manual selection.

Improved index utilization for time series measurements

The platform now uses database indexes more efficiently when storing and retrieving time series data. This reduces storage costs and increases performance.

Upgraded Jetty in Java SDK to version 12

The Jetty library version in the Java SDK was upgraded from version 11.0.24 to the most recent version 12.0.25. This version is compatible with the current Spring Boot version 3.5.5 in the Java SDK. No impact is expected on microservice code using standard Microservice SDK features. For microservices that use advanced customization of the Jetty server configuration we would advise referring to the official migration guide from Jetty 11.0.x to Jetty 12.0.x .

October 2, 2025

Deprecating the attachment of tenant options as headers to microservice requests

Until now, tenant options were attached to each microservice request. The microservice proxy added the tenant options to the request headers and forwarded the request to the respective microservice. For example, when creating a tenant option in a category that matches the application context path, the value has been passed to the microservice by the microservice proxy on the platform as a header (key => value).

This functionality is now deprecated. Tenant options will no longer be attached as headers to requests to microservices. The removal is planned for Q1 2026 in CD versions and in the 2027 annual release. The retrieval of the tenant options will remain possible through the endpoint <TENANT_DOMAIN>/application/currentApplication/settings.

This change is still disabled by default and can be enabled via a feature toggle core.ms-proxy.no-tenant-options-in-headers.

Important
In Q1 2026 for the CD versions and in 2027 for the yearly releases, this change will become mandatory.

MQTT Service Java client SDK is replaced by direct Messaging Service connections

Caution

This change only affects the new Cumulocity MQTT Service capability.

The existing Cumulocity Core MQTT capability is not affected.

Feature preview
This feature is in Public Preview and may be subject to change in the future.

As previously announced, when the Cumulocity MQTT Service transitions from Public Preview to General Availability (GA), the MQTT Service Java client SDK will no longer be supported. Instead, microservices and external applications (clients) that need to exchange messages with MQTT devices connected to the MQTT Service will connect directly to the Cumulocity Messaging Service using the Apache Pulsar client protocol. Direct Messaging Service connectivity for MQTT Service clients is now available as part of the MQTT Service Public Preview.

All microservice and external application clients currently using the MQTT Service Java client SDK should migrate to the Pulsar client protocol as soon as possible. Detailed documentation of the requirements, conventions and best practices for connecting Pulsar clients to the Messaging Service is available, along with example code for an external client. Further examples will be published before the MQTT Service GA date.

Impact on clients using the MQTT Service Java client SDK

The MQTT Service Java client SDK is deprecated but will remain available and supported until the MQTT Service GA date. Clients can continue to use the Java client SDK in parallel with direct connections to the Messaging Service until then. MQTT messages published by connected devices will be delivered to both Java client SDK clients and directly connected clients. Messages published to an MQTT topic by either type of client will be delivered to connected devices that are subscribed to that topic, subject to device-level isolation constraints.

Allowed uploading any type of resource (fonts, images) to branding

Previously, only images could be uploaded to the branding section of the Administration application. With this change, it is now possible to upload any type of resource, such as fonts, to the branding section. This allows greater flexibility in customizing the look and feel of the Cumulocity platform to match your corporate branding.

September 26, 2025

Deprecation of MQTT Service Java client SDK

Caution

This change only affects the new Cumulocity MQTT Service capability.

The existing Cumulocity Core MQTT capability is not affected.

What changes?

The Cumulocity MQTT Service Java client SDK is deprecated. It is being replaced by direct connections to the Cumulocity Messaging Service using the Apache Pulsar client protocol.

How does this change impact you?

Developers of microservices and external applications currently using the MQTT Service Java client SDK should prepare to migrate their clients to use direct connections to the Cumulocity Messaging Service. The new connection method will be made available very soon as part of the MQTT Service Public Preview and will be announced separately.

Backwards compatibility

The MQTT Service Java client SDK is deprecated effective immediately but will continue to work and be supported until the MQTT Service reaches General Availability (GA). Once the new method is available, it can be used in parallel with direct connections to the Cumulocity Messaging Service during the transition period. The SDK will be completely removed and will no longer be supported once the MQTT Service reaches GA. We recommend migrating to the new approach as soon as it becomes available.

September 25, 2025

New parameter withSourceChildren added to Alarms and Events APIs

The Alarms and Events APIs have been improved with an additional parameter withSourceChildren. When set to true alarms and events for related source assets, devices and additions will also be included in the response. When this parameter is provided a source must be specified.

Asset properties selector allows adding custom properties

The asset properties selector is used to select properties for assets. With this change, it is now possible to add custom properties to the list of available properties in the asset properties selector. These custom properties are a combination of predefined properties and properties from the properties library. The custom properties are added as temporary items to the list and can be removed again. However, they are not permanently stored. This change allows users to have more flexibility in selecting and combining relevant properties for their assets.

Resizable grid component for improved widget configuration

To provide more flexibility when configuring dashboards, a new resizable grid component has been added. This component allows users to easily resize widgets on a dashboard by dragging the widget borders. Previously, widgets had a fixed size and position which limited the dashboard layout options. With this improvement, users have more control over the dashboard appearance and can create more customized views to better suit their needs.

September 18, 2025

Inventory API – change of the default value for the withChildren parameter

The default value of the withChildren parameter for the GET /inventory/managedObjects endpoint has changed from true to false. To continue receiving child assets, devices, and additions in the response, clients must explicitly include ?withChildren=true in their requests. This change aligns with previous announcements and aims to improve performance and response clarity. This behavior is controlled by the feature toggle core.inventory.without.children, which is enabled for all tenants by default. The toggle can be disabled, in which case the previous behavior is restored, where withChildren defaults to true unless explicitly set otherwise.

New parameter withSourceAdditions added to Alarms and Events APIs

The Alarms and Events APIs have been improved with an additional parameter withSourceAdditions. When set to true alarms and events for related source additions will also be included in the response. When this parameter is provided a source must be specified.

LWM2M service utilization of Notifications 2.0 tenant-level operation subscription

The LWM2M service is now utilizing Cumulocity’s Notifications 2.0 tenant-level operation subscriptions to retrieve device operations in real time. This enhances the service’s overall performance. Note that when this mode is active, device push connections will no longer appear as active in the Info tab of the device details. This is because they are now managed through tenant-level subscriptions rather than device-level subscriptions.

New SmartREST template for setting device profiles with software type

A new static SmartREST 2 response template (ID 531) has been added for device profile operations with software type. This template extends the existing functionality by including the software type as the third value in the software 5-set. The template triggers independently when at least one software element in the software list contains a type, regardless of ASM support or subscription. The existing 527 template will continue to trigger alongside the new template where applicable.

Added identity provider hint parameter support to OAuth2 login flow

To streamline the single sign-on experience, the OAuth2 login flow now supports an identity provider hint parameter. When users access the login page with this parameter, they are automatically redirected to their designated authentication provider based on the hint. This eliminates the need for manual identity provider selection during login, simplifying the authentication process for users. Existing user logins are unaffected, and the identity provider selection page remains available when no hint is provided.

Asset properties selector component available in the Web SDK

The asset properties selector component is now available in the Web SDK, providing a comprehensive interface for managing and displaying asset properties in a hierarchical tree structure. This component offers various customization options for both display and behavior, enabling a seamless experience when interacting with asset properties. It can already be used in the HTML widget to copy property paths that can be incorporated into templates and later used to display the matching property of the selected asset.

Increase of max request header size

To allow the usage of larger headers in requests, the property server.max-http-request-header-size has been increased to 24KB in the Microservice SDK. Previously, the value was 8KB.

Maps now display devices across all nested group levels

Previously, only direct child devices of a group were displayed on a map when that group was selected. Now, the map shows all devices within the group hierarchy, including those in nested subgroups. This change provides a complete view of the device hierarchy and geographic distribution for a group, without the need to manually drill down into each nested level.

Updated Monaco and Ace editor highlighting colors

To improve the readability when working with the Monaco and Ace editors in the platform, the selection highlighting colors have been updated. This improvement applies to all areas where the Monaco and Ace editors are used, such as Administration (Branding and Localization), Cockpit (HTML widget, dashboard import/export), and Device Management.

September 16, 2025

Removal of TrendMiner offloading mode

The TrendMiner mode as a configuration option in measurements offloading is no longer supported as the integration of Cumulocity DataHub with TrendMiner was discontinued.

September 11, 2025

Returning information on all managed object ancestors when withParents=true

Using the Inventory API parameter withParents=true now results in returning basic information (ID, type, name) on all ancestors of managed objects instead of being limited to only 3 levels of hierarchy. Notice that inventory roles are not taken into consideration when collecting information on ancestors, so basic information on all of them will be returned.

In addition to improving the API usability the performance of requests using the withParents=true parameter has also been improved.

Aligned Add asset dialog with device assignment from Subassets view

Previously, when assigning devices in the Add asset dialog, child devices could be viewed by using a toggle button. Now, that toggle has been removed, and the button is directly displayed beside the parent device on the right side of the grid, similar to the device assignment in the Subassets view.

September 9, 2025

EPL Apps utility Util.formatTime produces date-time string in ISO8601 format

The behavior of the Util.formatTime has changed in the Cumulocity utilities bundle for EPL Apps. This utility now produces a date-time string in ISO8601 format (yyyy-MM-dd'T'HH:mm:ss.SSS). This is a breaking change for any code relying on the previous yyyy/MM/dd HH:mm:ss format. We recommend updating your code to handle the new standard format.

Example:

  • Previous: 2025/09/01 12:38:30Z
  • Current : 2025-09-01T12:38:30.123Z
September 4, 2025

Change of the default value of revert parameter for time series measurements

The default value of the revert parameter for time series measurements has been changed to true. As a result, time series measurements are sorted from newest to oldest by default.

This change affects the following API endpoints:

  • GET /measurement/measurements
  • GET /measurement/measurements/series

If you require results in ascending order, you must explicitly set the revert parameter to false in your queries.

The default value for legacy measurements remains false.

Delete child references from parents of deleted attachment

When an attachment is deleted, the references to this attachment are now also removed from the parent managed objects. This ensures that no leftover references are pointing to non-existent managed objects.

Provisioned certificates data grid extended

To provide a better overview of provisioned certificates, the Provisioned certificates data grid has been extended. A new “Valid from” column has been added, which shows the start date of the certificate’s validity. Additionally, the expiration highlight styles in this data grid have been aligned with the ones already used in the Trusted certificates view for a more consistent user experience. These changes enable users to view the full validity period of certificates at a glance and quickly identify those that are about to expire.

New data points plugin to manage data points on assets

The dtm-plugin extension introduces a data points plugin that enables linking and management of device data points on asset instances. It provides a visual interface for linking device measurements to asset contexts, supports data point templates, and allows adding custom data points to link expected data points before the data arrives, enriching asset metadata through structured associations.

Note that the plugin uses DTM APIs that are currently in Private Preview. To enable them, contact the Product team via product support to have the required feature flags activated.

August 28, 2025

Preview of the new Measurements tab based on the data explorer

To provide a more powerful and flexible way to explore device measurements, the Measurements tab in the device details has been updated to use the new data explorer. This change allows users to interactively analyze device data more intuitively and efficiently. The new Measurements tab replaces the old one if the Data explorer feature preview toggle is enabled.

Smart rules (NEW) plugin now available in Public Preview

The Smart rules (NEW) plugin is now available in Public Preview.

While traditional smart rules provide a fixed set of predefined templates for common scenarios, the new generation of smart rules removes these limitations by enabling you to create fully customized rules tailored to your specific requirements using the capabilities of Analytics Builder in Streaming Analytics. This allows you to create and manage rule instances directly from asset, group, and device contexts within applications such as Cockpit, Device Management, and Digital Twin Manager.

Feature preview
The “Smart rules (NEW)” feature was previously named “Analytics rules”. It is in Public Preview and may be subject to change in the future.

For more details about the smart rules (NEW) plugin, refer to Smart rules (NEW) plugin.

Dark theme available for tenants with default branding

As previously announced, a new version of the default branding will be rolled out to make the dark theme available for users. By default, the light theme remains selected, but users can switch between themes via the right drawer.

Tenants having a customized branding will not be affected by this change. If you would like to provide a dark theme as part of your custom branding, you can do so via the branding manager.

We highly recommend upgrading any web apps based on the Web SDK to version 1022.8.0 or higher for best compatibility and experience with the dark theme.

New OpenAPI documentation plugin to browse and test Digital Twin Manager APIs

A new plugin, OpenAPI documentation, has been added to the dtm-plugins extension. It provides interactive documentation for the Assets and Definitions APIs, including details on required permissions. The plugin allows users to browse, visualize, and test API resources directly from the product documentation without needing to implement any logic.

Note that these APIs are currently in Private Preview. To enable them, contact the Product team via product support to have the required feature flags activated.

Smart rules (NEW) plugin now available in Public Preview

Feature preview
The “Smart rules (NEW)” feature was previously named “Analytics rules”. It is in Public Preview and may be subject to change in the future.

While traditional smart rules provide a fixed set of predefined templates for common scenarios, the new generation of smart rules removes these limitations by enabling you to create fully customized rules tailored to your specific requirements using the capabilities of Analytics Builder in Streaming Analytics. This allows you to create and manage rule instances directly from asset, group, and device contexts within applications such as Cockpit, Device Management, and Digital Twin Manager.

For more details about the smart rules (NEW) plugin, refer to Smart rules (NEW) plugin.

August 27, 2025

Public Preview of internal implementation changes

As a part of continuous modernization of the Cumulocity platform we have introduced some internal implementation changes that enhance the reliability and scalability of Cumulocity. The new implementation is currently the default on https://eu-latest.cumulocity.com/ and available on all other instances as a Public Preview. The new implementation will go to GA and become the default on all SaaS systems by the end of September 2025. The purpose of this announcement is to invite customers who wish to take advantage of this update to participate in the Public Preview.

Enabling the new implementation is on a per tenant basis and requires your role to include ADMIN permission for “Tenant management” (API string = ROLE_TENANT_MANAGEMENT_ADMIN) and use of the Feature Toggles REST API:

curl --location --request PUT "https://<TENANT_DOMAIN>/features/cluster-subscriptions.mongo-persistence/by-tenant" \
--header "Authorization: Basic <AUTHORIZATION>" \
--header "Accept: application/json" \
--header "Content-Type: application/json" \
--data-raw '{ "active": true }'

To disable the feature, issue the same request with: { "active": false }.

The expected behaviour is that all platform features and/or functionality continue working as before. After enabling the feature we recommend observing active Realtime Notifications 1.0 subscriptions. Should you experience any change in behaviour please deactivate the feature toggle and open a support ticket to inform Cumulocity Support about the incident. If we’re informed in advance about your schedule of enabling the toggle for a particular tenant, then we can also more closely observe the patterns of traffic of that tenant with the tools we have available.

Strict validation of unit values in the measurement fragments

In future releases, the Cumulocity platform will strictly validate unit values in measurement fragments. If a measurement fragment contains a unit value that is null or an empty string, the platform will ignore such unit values and won’t persist them. The measurement itself will still be stored, but without the invalid unit. This change improves data quality and consistency. Review your integrations and make sure that all measurement fragments use valid, non-empty unit values or omit the unit field entirely.

August 21, 2025

Bulk revocation of provisioned device certificates

Previously, provisioned device certificates could only be revoked individually. With this change, it is now possible to select multiple provisioned device certificates in the data grid and revoke them in bulk. This simplifies the process of revoking multiple certificates.

Support for deleting time series measurements by ID

Support for deleting measurements by ID when using enhanced time series support has been added. Previously, deleting by ID was only possible for legacy measurements.

DELETE /measurement/measurements/{id}
Info
Deleting measurements by ID is not optimal. We recommend deleting measurements by query or by applying retention rules for better performance.

Details on device parameters available on the Parameters tab

On the Parameters tab in the device details, details on device parameters are now provided. Next to the parameter description and current value, users can view the history of value change operations, as well as the history of value change events.

New version of internal query engine

Cumulocity DataHub now leverages version 25.2 of Dremio as its internal query engine. The new Dremio version features in particular improvements to memory management with advanced spilling as well as performance gains. Various other enhancements relate to enriched SQL functionality, workflow improvements in the user interface, and security fixes.

August 14, 2025

Dashboards are now only saved when edited

To improve performance and reduce unnecessary API calls, dashboards on the Info tab in the device details are now only saved when they are edited by the user. This change does not impact the dashboard functionality.

Improved highlighting of expiring trusted certificates and added renewal option

In the Trusted certificates page in the Device Management application, visual cues have been improved to highlight expiring certificates. Additionally, a new option has been introduced that allows users to directly renew a CA certificate from the UI if it is approaching its expiration date. These enhancements help users to monitor and manage the lifecycle of their trusted certificates more effectively.

Migrated additional Angular components to standalone mode

As part of our ongoing efforts to improve the modularity and maintainability of the Web SDK, we have migrated more components to operate in standalone mode. This change involves updating the architecture and dependencies of these components. Users should not experience any functional differences, as the migrated components will continue to operate as before. Developers using the Web SDK are now able to import more components directly without having to import the whole module.

The angular modules provided by the Web SDK will continue to exist. A future release might deprecate them in favor of using the standalone components directly.

Removed deprecated getNamedDashboardOrCreate from context-dashboard service

The deprecated getNamedDashboardOrCreate method has been removed from the context-dashboard service in the Dashboard API. In the future, the getDashboard() call must be used instead.

August 7, 2025

MQTT Service device isolation is enabled by default

Caution

This change only affects the new Cumulocity MQTT Service capability.

The existing Cumulocity Core MQTT capability is not affected.

Introduction

As previously announced, when the Cumulocity MQTT Service transitions from Public Preview to General Availability (GA), the MQTT Service will enforce device isolation. MQTT devices will be able to subscribe to any topic, but will not automatically receive messages published to that topic by other devices. Microservices will be able to explicitly route messages between different devices. In effect, each MQTT client identifier will have its own private topic space that is not shared with other clients, but can be accessed by microservices.

Info
Device isolation is enabled by default for any tenant using the MQTT Service for the first time.

Tenants already using the MQTT Service can continue to use the deprecated tenant isolation approach, but should migrate their applications to work with device isolation as soon as possible. A feature toggle is available to allow these tenants to switch between isolation models while updating their applications.

We are making this change to align the MQTT Service with the behavior of the existing Core MQTT capability, and to improve out-of-the-box security for typical IoT applications where direct inter-device communication is not required.

Device versus tenant isolation

The difference between the two isolation models can be explained using a simple example.

Assume that a tenant has two MQTT clients connected to the MQTT Service, with client identifiers publish-client and subscribe-client, and that subscribe-client has subscribed to the topic my-topic.

Then, publish-client publishes a message to my-topic:

  • If the tenant is using device isolation, subscribe-client will not receive that message.
  • If the tenant is using tenant isolation, subscribe-client will receive the message.

A microservice can receive all messages published by all MQTT clients, and choose whether to forward messages to other clients.

Impact on MQTT devices and microservices connecting to the MQTT Service

This is a breaking change and affected applications must be updated to continue working after the GA version of the MQTT Service is deployed.

This change affects any application where MQTT devices exchange messages by publishing and subscribing to the same topics. In particular it affects applications where a Cumulocity microservice connects to the MQTT Service using the MQTT protocol to exchange messages with connected MQTT devices.

Existing microservices that are affected by this change should not immediately migrate to the existing Java client SDK, as this will not be supported in the GA version. Instead, these microservices should wait for the new MQTT Service API to be released and migrate directly to this API. Details of the new API and how to use it in microservices will be announced soon.

Switching between isolation models

Tenants can switch between the device and tenant isolation models using the mqtt-service.tenant.isolation feature toggle.

The feature toggle is set to true by default for tenants that are already using the MQTT Service, to maintain the deprecated tenant isolation behavior. These tenants can use the feature toggle to switch between isolation modes while developing and testing their migration to device isolation.

For all other tenants, the feature toggle is set to false and should not be changed.

To set the feature toggle to false, the following HTTP PUT request must be sent to the tenant. This example uses the curl command, but any equivalent tool that can send HTTP requests can be used:

curl --location --request PUT "https://<TENANT_DOMAIN>/features/mqtt-service.tenant.isolation/by-tenant" \
--header "Authorization: Basic <AUTHORIZATION>" \
--header "Accept: application/json" \
--header "Content-Type: application/json" \
--data-raw '{ "active":false }'

Where <TENANT_DOMAIN> is the domain name of the tenant, for example my-tenant.cumulocity.com, and <AUTHORIZATION> is a Base64-encoded HTTP Basic Authentication token for the tenant, constructed as described in the API documentation.

A similar request can be sent to set the feature toggle back to true:

curl --location --request PUT "https://<TENANT_DOMAIN>/features/mqtt-service.tenant.isolation/by-tenant" \
--header "Authorization: Basic <AUTHORIZATION>" \
--header "Accept: application/json" \
--header "Content-Type: application/json" \
--data-raw '{ "active":true }'