Skip to main content

Release Notes: Version 26.08

Last updated: 27 August 2026

What's New

Dynamic datasource selection for scheduled flows

Scheduled flow trigger schedules can now select their datasources with a query instead of a fixed list. A scheduled flow can target a self-maintaining set of datasources — for example, every datasource whose name starts with a given prefix — resolved fresh at each run, so datasources added or removed later are picked up automatically. See the Trigger Schedule documentation.

Channel names

Channel classifiers can now show a different display name per datasource. The display name is set through a per-datasource channel name, which you can configure via a custom Market Adapter, a Transformation Configuration, or directly from a rule.

Analytics dashboards (beta)

A beta version of Analytics dashboards — a new dashboarding tool with additional capabilities — is now available on request, at additional cost. Your existing native dashboards are unaffected and continue to work as expected. This is our first trial of the tool; if you'd like to try it, contact our service desk.

⚠️ Deprecation Notice

  • X-API-KEY authentication deprecated: Authenticating API requests with the X-API-KEY header is deprecated and will be removed in the next release (26.09), as this authentication method is being retired for security reasons. If needed, migrate to OAuth2 client credentials issued through the new console; requests that still use X-API-KEY now log a deprecation warning on the platform side. Requests using Authorization will continue to work.
  • Analyze command deprecation: The 'ewx-cli analyze' command family (rule and flow complexity analysis) is deprecated and will be removed in release 27.02. Invoking any analyze command now prints a deprecation warning.
  • API v2 organization/project resource paths: The organization/project prefix in API v2 resource paths is deprecated and will be removed in release 27.02 — use the shorter namespaces/{namespace}/… form instead.

🖥️ UI Improvements

  • Dashboard action renamed: The dashboard-creation action in the new UI is now labeled "Add Dashboard" instead of "Create Dashboard", in all supported languages. (New console)
  • Audit event search fix: Audit event searches in the console now cover the selected dates in your own timezone instead of UTC, so events logged near midnight are no longer missing from the day they belong to. The severity counters on the datasource details page follow the same range. (New console)
  • Predefined values: You can now add new predefined values to an existing enum data point attribute when editing a channel classifier. Previously these values were read-only once the classifier had been created. (New console)
  • Custom separators in Transformation Configurations: Fixed an issue where custom separators for merged columns were ignored when creating a Transformation Configuration via the UI for tag names, channel attributes, and flow properties. (New console)
  • Correct default timeseries date range: Fixed an issue where the default timeseries date range was incorrectly calculated from midnight in the Original UI and in UTC in the New UI. The date range now correctly counts from the current time and respects the user's selected timezone. (Both consoles)
  • Duplicate channel-family names now show an error: Fixed an issue where creating a channel family with an already existing technical name would fail silently without displaying an error message. (New console)
  • Notifications: Error and info messages are no longer cut off behind the project documentation panel — when the panel is open, notifications shift alongside it and stay fully visible. (New console)
  • Search state preserved on navigation: The datasource search query and filters are now retained when navigating to a result's Details or Flows and back. (New console)
  • New console fixes: Resolved a range of UI issues across the new console, including dates now shown in your local timezone, full-name tooltips on truncated text, clearer action icons, better handling of long tag lists, loading feedback on task boards, and faster, smoother datasource search. (New console)
  • Faster analytics dashboard loads: Fixed an issue where opening an analytics dashboard would issue a redundant backend request, improving load times. (New console)
  • Easier date & time filters: Made the date & time filters on the Audit Events and File Management pages easier to use: the native time spinner is replaced with a calendar for the date plus hour/minute(/second) fields you can either type into or pick from a dropdown. (New console)
  • Permissions table clarity: Renamed the "Computedflag" permission resource to "Live Flags", removed the redundant "System" resource, and added clearer tooltips describing each resource (including how Timeseries and Datapoint differ, and what the Integration and Documentation resources control). (Original console)
  • Annotations show even without datapoints: Fixed an issue where annotations were not shown in charts if there were no related datapoints for the channel. (New console)
  • Multi-line task descriptions: Task descriptions now keep their line breaks in the taskboard, so multi-line and structured bodies (such as automated data-quality reports) stay readable instead of collapsing onto a single line. (New console)
  • Scrolling past charts: Scrolling the mouse wheel over a chart no longer zooms it, so the page scrolls normally when a chart is under the cursor. Use click-and-drag on the chart or the range selector buttons to zoom into a period. (New console)
  • Edit datasource classifiers: Existing datasource classifiers can now be edited in the new UI — description, datasource type, and source type. (New console)

⚙️ Custom Business Logic

  • Non-existent Pub/Sub topics now raise a warning: When a flow forwards a message to a Pub/Sub topic that does not exist (for example a typo in the pubsub_topic_name namespace property), the audit events now show a warning naming the topic instead of reporting success. The flow still runs to completion, and the message is no longer retried indefinitely.
  • Channel rename from a rule: Renaming a channel from a rule now reliably persists, fixing an intermittent case where the channel could keep its previous name.
  • Easier testing for custom rules: The ewx-public package now includes the full toolkit for unit-testing custom rules — synthetic time-series data generators (monotonic, sinusoidal, and seasonal series, register channels, and more), the shared rule test base class, and the ability to build and inspect rules and tags directly in your tests. Teams can move existing tests off the legacy package with only a change to the import line, and invalid tags now fail a test instead of silently passing with a warning.
  • Custom-rule helpers load on a fresh install: The date-parsing and holiday-calendar helpers for custom rules no longer fail to load on a fresh install because of a missing dependency; they now work out of the box.
  • Direct imports from standard-packages: Custom rules and scripts can now import the shared helper modules from the standard-packages library directly (for example StandardUtils) without running into import errors.
  • Change channel names from rules: Rules can now rename a channel on a datasource with set_channel_name(). Previously a channel name could only be set during ingestion, through a Market Adapter or Transformation Configuration.

🔐 API & Permissions

  • API v2 tag search: Datasource search through API v2 now finds datasources by a tag property alone, such as city=Houten, instead of returning no results. Previously only the fully qualified form location.city=Houten matched, while API v1 already supported both.
  • Channel classifier consistency: Channel classifier attributes now behave consistently across API v1 and v2. The technical name is immutable, classifier ids may contain the '+' character, and the per-datasource channel name is optional.
  • User API response hardening: User detail and user list API responses no longer include the apiKeyToken, refreshToken and keyfile credential fields. Retrieving a keyfile remains available through the dedicated user keyfile endpoint.
  • Fixed access for users with mixed-case email addresses: Users whose identity provider (e.g. Microsoft Entra) returns their email with capital letters were incorrectly denied access to dashboards and other platform features. Authorization now matches the stored account regardless of email casing.

📚 Documentation Updates

  • Integration service documentation refresh: The integration service documentation now covers SFTP-based integrations alongside SOAP, including a step-by-step quick start guide, routing and scheduling instructions, and a complete configuration reference. The existing SOAP documentation has also been updated to reflect current configuration options and acknowledgement mapping, and the architecture overview now includes integration services.
  • Documentation capability overview: Added a Platform Capabilities overview page and new guides for datasource search, flow orchestration, anomaly detection and alerting, and multi-tenancy and namespaces. Existing pages on market communication, billing determinants and virtual datasources now open with clearer business context.
  • Standard packages documentation: The shareable-packages section now documents the standard EDM packages (standard-packages) — what they contain, how to install them from the restricted Artifact Registry, and how to deploy a package to a namespace with ewx-cli. The packages are a separately licensed offering, available only to organizations with a standard-packages agreement.

🚀 Notable Backend Changes

  • Security hardening: This release bundles a broad set of security and dependency updates across the platform, gateway, integration, and documentation-site services — patching known CVEs in cryptography, networking, SAML, TLS/JWT, gRPC authorization, and other libraries, hardening and slimming container images, and strengthening the automated dependency-update (Renovate) and vulnerability-scanning pipelines.
  • Process Monitoring instance counts: Fixed several issues that could make a Process Monitoring configuration's instance counts inaccurate under heavy or repeated processing — the total and successful counts could end up slightly too high or too low, and an instance could stay marked "in progress" after it had already finished. Counts are now accurate and the in-progress count settles to zero once processing completes.
  • Correct promo-metric reset across timezones: Promo metrics now reset at local midnight for timezones with fractional-hour offsets (e.g. India, Central Australia, Chatham Islands).
  • Classifier filter finds new datasources: Datasource search now correctly returns results when filtering by classifier for newly-added datasources.
  • Namespace-relative APIv2 resource names: APIv2 data endpoints now accept namespace-relative resource paths (namespaces/{namespace}/...) alongside the existing organizations/{organization}/projects/{project}/namespaces/{namespace}/... form, and responses now return resource names in the shorter namespace-relative form. The organization/project prefix is deprecated: it keeps working during the transition and will be removed in the 27.02 release. The web console and ewx-cli have moved to the namespace-relative paths. OAuth2 client-credential resources remain organization-scoped and are unaffected.
  • Datasource search fix: A datasource that had its classifier changed no longer appears twice in search results; it is now returned only under its current classifier.
  • Removed tags no longer searchable: Searching by a tag that has been removed from a datasource no longer returns that datasource; only its current tags are indexed for search.
  • Lower CPU on large timeseries loads: Fixed an issue that could cause high CPU usage when loading large amounts of timeseries data.
  • Scheduled flow triggers can select datasources by query: The flow trigger schedule now accepts a datasource_ids_query (a BigQuery SELECT whose first column is a datasource id) as an alternative to a static datasource_ids list, resolved at execution time so the flow runs on whatever datasources currently match — letting a scheduled flow target a dynamic, self-maintaining set (e.g. every datasource whose name starts with a given prefix) with no id list to maintain.
  • Behind-the-scenes platform modernization — no customer impact: A significant part of this release is internal engineering to standardize how platform services store and retrieve their configuration and metadata — spanning datasources, classifiers, rules, flows, triggers, transformation configurations, market adapters, namespaces, billing accounts, ML models, and tasks — on a single shared foundation. This is preparatory groundwork only: there is no change to how the platform behaves, no change to your data or APIs, and no action required on your part.

📡 Integration Component

  • SFTP reconnection fix: The integration component now transparently reconnects when an SFTP connection becomes stale due to a server-side idle timeout, preventing file processing failures.
  • N243 validation fix: N243 settlement result messages for the same grid delivery station and allocation period are now validated per market participant (BRP), so responses for different BRPs are no longer incorrectly rejected as duplicates with error 704.
  • Unified integration messaging and logging: The SOAP, REST, Modbus, and RIBS integration services now run on the same messaging and logging foundations as the rest of the platform. Message delivery is unchanged — including handling of very large payloads — but every message now carries a standard identifier for end-to-end tracing, and all four services emit consistent, structured logs. The result is integration activity that's easier to monitor and faster to troubleshoot, with no configuration changes required on your side.

🛠️ ewx-cli

  • Detailed errors with --debug: ewx-cli now displays detailed error information when requesting a non-existent entity with the --debug flag enabled.
  • CLI error exit codes: ewx-cli commands that fail with a platform API error now exit with a non-zero status code, so scripts and pipelines can detect the failure. Connection failures now show a clean error message instead of a Python traceback.
  • Upload history fixes: 'ewx-cli config upload-history inspect' and 'revert' no longer crash on upload caches, 'purge --days' now deletes caches older than the given number of days as documented, and a reverted upload cache can no longer be reverted a second time.
  • Dry-run for configuration releases: 'ewx-cli config upload', 'config transfer', and 'config upload-history revert' now accept a '--dry-run' flag that resolves dependencies, checks permissions, and prints the full execution plan without changing anything, so a release plan can be reviewed before it is carried out.

26.08.01

⚙️ Custom Business Logic

  • Channel name fallback: Channels created by flows or ingestion no longer default their name to the technical classifier name. When a channel has no datasource-specific name, charts, tables and the channel list now show the classifier display name, falling back to the technical name only when no display name is set.

🚀 Notable Backend Changes

  • Timeseries edit history: TimeseriesService.load can now return the datapoint edit history alongside the channel values (include_edits=True), in an additional edits column. This lets custom business logic detect which datapoints were manually corrected through the Console. It is off by default, so existing reads are unchanged.

26.08.02

Platform Bug Fixes

  • API tag writes now reach BigQuery: Fixed an issue where tags created through the API v2 tags endpoint were stored on the datasource but never synced to BigQuery, so they could not be found when querying tag data (for example in analytics or exports). Tags written through the API are now propagated to BigQuery the same way as tags created by flows.

🖥️ UI Improvements

  • Market adapters list: All available market adapters now appear in the market adapter list and file ingestion screens, instead of only the first 20. This unblocks ingesting files whose market adapter was previously missing. (New console)

⚙️ Custom Business Logic

  • Partially written flow results: A flow result that cannot be written no longer reports the whole flow run as failed. The results that were written are kept and the rejected ones are reported against the affected datasource and flow, but any follow-up flow in a chain is held back, because the run did not produce everything it was supposed to.
  • Duplicate emails and tasks on retry: When a flow run had to be retried, any email it sent was sent again and any task without its own identifier was created again. Both are now recognised as already done and skipped on the retry.
  • Suppressed follow-up triggers: When flow results cannot be written, the follow-up triggers that were not published are now reported in an error audit event naming the flow configuration that did not start, instead of being dropped silently. Side effects unrelated to starting a flow, such as search indexing, still run.
  • Flow result write failures: When flow results cannot be written, the error audit event now names the affected datasource, flow and file instead of only the namespace, so the failure is findable from the entities you filter on. Repeated failures are each reported instead of only the first one.

26.08.03

🔐 API & Permissions

  • Google sign-in no longer blocked by the web application firewall: On environments with the Cloud Armor WAF enabled, signing in with Google returned a bare 403 Forbidden page after the redirect back from Google. The firewall's remote-file-inclusion rule was tripping on the Google URLs that the callback carries in its scope parameter, because the rule that allow-lists the OAuth callback did not match the path the console serves it on. Both callback paths are now allow-listed.

📡 Integration Component

  • Outbound SFTP delivery failures now raise tasks: A file that fails to reach an outbound SFTP server now always creates a task on the configured board, including for message types generated by processing rules that carry no message ID. Previously those failures were silently discarded — the task creation was rejected and the message acknowledged — so no task or alert was raised for an undelivered file.
  • ACK URL lookup fix: Resolved an issue where acknowledgement-specific URLs configured in the message URL map were silently discarded during URL resolution, causing non-GLDPM acknowledgements to fall back to the default URL and be rejected by the counterparty with a version mismatch.