Release Notes: Version 26.04
What's New ✨
ewx-public package:
Introduced a new package called ewx-public that contains all models and service stubs needed to develop and test rules outside the Energyworx platform. To learn more, check out our documentation here.
Updated Search
The datasource search service has been modernized, delivering faster searches and improved reliability. As a bonus, full re-syncs now complete in minutes instead of hours.
⚠️ Deprecation Notice
- Legacy API URL: The
api.<short_env_id>.energyworx.netURL format is officially deprecated and will be deactivated in release 26.10. All integrations must migrate to the newah.<full_env_id>.ewxapis.comformat. Please reach out through our Service Desk if you have any questions regarding this change.
🖥️ UI Improvements
- New sign in page: The platform's sign in page has been updated to only show the default sign-in option. This is to avoid confusion between which provider to use - other options are available by clicking 'other sign-in options'
- Simplified login: Removed the unsupported sign-up option to create a cleaner interface; this update has no impact on existing user functionality.
- Expanded list views: Added support for loading 250 and 500 items at a time across all relevant list views in the platform.
- Future tag deletion: Fixed a bug which prevented tags with a valid_from date in the future to be successfully deleted directly from the console.
- Multiple transform rules: Resolved a UI limitation to allow multiple transform rules to be added to a single field in a Transformation Configuration. This was previously only possible via API.
- Tag date formatting: Fixed a validation issue in the new console that caused invalid formatting when updating a tag's valid_from field.
- Timezones in Advanced Search: Resolved a bug in Advanced Search that prevented localized timezones from displaying correctly in the frontend.
- Annotation edit tracking: Fixed an issue where annotation edits were not correctly rendering in the "last edited" column within the new console.
- User status accuracy: Updated the namespace user list to correctly display disabled users as "Inactive" instead of "Active."
- First-time new console login fix: Fixed an issue that prevented newly whitelisted users from logging into the new console for the first time.
- Audit Event performance: Optimized query performance for Audit Events within the new and original console to resolve loading delays in high-volume environments.
- Audit Event search fix: Resolved a bug that prevented the system from finding audit events when search requests included single quotes.
- Rule Profiler filtering: Fixed an issue where the Flow ID and Sequence ID filters were non-functional within the Rule Profiler interface as well as an issue which caused filters to not appear.
⚙️ Custom Business Logic
-
Transform Rule error handling: Enhanced generic exception error messages in Transform Rules to provide clearer context for troubleshooting.
-
Merged Column fix: Fixed bug which prevented 'Merged Column' function in Transformation Configurations from working.
-
Tag type fix: Fixed issue which prevented tags of type 'link' and 'date' to be configured in a Transformation Configuration
-
Rule validation accuracy: Fixed a bug that returned an incorrect error message when attempting to save a rule where the technical name and class name did not match.
-
Tag retrieval fix: Resolved a "timezone-naive vs offset-aware" comparison error in the rule framework, within the get_tag method to ensure consistent datetime handling.
-
Pytestbdd-ewx fix: Resolved a
pytest-bdd-ewxissue encountered when checking tags with multiple versions that share the samevalid_fromtimestamp. -
Market Adapter structural update: Resolved a naming conflict bug by separating Market Adapter implementations from their configurations, preventing 'NoneType' errors.
🔐 API & Permissions
-
Datapoint edit history fix: Resolved an APIv2 bug where the "previous value" was not correctly returned after editing a datapoint that held a value of 0.
-
API documentation filtering: Fixed a bug in the APIv2 documentation interface that prevented users from successfully finding channels when applying filters.
-
Latest Datapoint filter fix: Resolved an issue where the channel family filter was not functioning correctly within the Latest Datapoint API.
-
Classifier case-sensitivity normalization: Fixed an issue that allowed Datasources to be created with lowercase classifiers by implementing automatic conversion to uppercase; additionally, both Datasource and Channel classifiers are now treated as case-insensitive within the processing pipeline.
-
Process Monitoring access control: Introduced a dedicated Process Monitoring permission specifically for managing configuration access; users now also require permissions for flows and market adapters to fully utilize all monitoring functionalities.
📚 Documentation Updates
- Enhanced documentation discovery: Release notes are now fully indexable and findable via the documentation search bar, with unique URLs assigned to each individual release note page.
- Pandas 2.0 migration guide: Added a comprehensive migration guide for transitioning from Pandas 1.x to 2.x; Pandas 1.x is now officially deprecated and will be upgraded to 2.x starting in version 26.x.
- Isolated Shareable Packages: Refactored the documentation structure to isolate "Shareable Packages" (such as
pytest-bddandewx-cli) to improve navigation and clarity. - Independent doc deployments: Decoupled the documentation from platform deployments, allowing for content updates to be published independently and more frequently.
- New technical guides: Published new documentation covering the usage of Decision Trees and updated the implementation guides for Flow Properties.
- Live Flags limitations: Improved the Live Flags documentation by adding specific details regarding condition types and their current limitations.
🚀 Notable Backend Changes
- Pandas 2.x compatibility: The platform is now compatible with Pandas 2.x. Keep in mind that Pandas 1.x is currently still used, this is just for forward-compatibility.
- Duplicate channel fix: Fixed multiple bugs that caused duplicate entries in the
latest_datasourcestable — both when creating a datasource via API with a channel and running a flow, and when adding channels to an existing datasource via API v1. - Silent trigger failure now logged: Added an audit event when a trigger schedule fails due to a non-existent Market Adapter. Previously this failed silently.
- Datasource ID validation: Added validation for datasource IDs created through the pipeline to prevent invalid entries.
- Processing performance: Several small improvements to the data processing pipeline that should reduce processing overhead by approximately 20% in low-volume situations.
- PubSub optimization: Refined message size validation and lowered internal limits to ensure reliable delivery.
- Security scanning: Added Trivy for SAST (Static Application Security Testing) and SCA (Software Composition Analysis) to the platform's CI pipeline.
📡 Integration Component
SFTP Integration Support
The Integration Component now supports SFTP-based file integrations alongside the existing SOAP protocol. A unified scheduler architecture handles both protocols as a single cronjob, connecting to configured SFTP servers on schedule, retrieving files matching configured patterns, and forwarding them to filemanager for ingestion. Like SOAP, the SFTP service supports inbound and outbound flows, XSD validation, field mapping, and custom validation rules — all driven by namespace-specific configuration stored in the GCP bucket.
- DST timestamp correction: Resolved an issue with SEL meter timestamp generation during Daylight Saving Time (DST) transitions to ensure accurate data; updated the retrieval script logic to support specific start and end date ranges.
26.04.01
- Improved reliability of data processing pipeline: We've made an improvement to how the platform handles recovery when a processing worker is unexpectedly interrupted (for example, during a node restart or scaling event).
- What you'll notice:
- More consistent end-to-end processing latency, especially during high-volume ingestion.
- Fewer cases where a single file appears "stuck" while others around it complete normally.
📡 Integration Component
-
Inbound file corruption fix: Resolved a bug in the SFTP inbound logic that caused the file delivered to EDM to differ from the original file on the server, resulting in files consistently failing at the TC step when ingested via EDM.
-
Insufficient meter reads fix: Resolved an issue where the SEL data retriever was computing a new timestamp for each LDP during execution. In long-running executions this caused a drift between the saved start time and the actual retrieval start time of the first channel, leading to missed reads and incorrect aggregate values.
26.04.03
get_active_tag_versionsfix: Fix timezone comparison error: resolves a TypeError when tags with timezone-naive valid_from are compared against timezone-aware datetimes. (EWXS-28080)- Legacy API URL routing fix: Resolved an issue with routing for the legacy API URL (
api.<short_env>.energyworx.net). load_datasources_by_virtual_datasource_filterrestored: Restored the rule framework methodload_datasources_by_virtual_datasource_filter, which had been raisingNotImplementedErrorsince the FlowRule refactor. Rules using this method to resolve a virtual datasource to its underlying concrete datasources now work as before.