πΎ Exivity :: Releases
For older releases, consult the archive here.
The metering and billing engine is now called Exivity Core. Release notes written before the rename refer to it as "Exivity" and are left as published.
Install / upgradeβ
A copy of the Exivity installer can be obtained on our website. Installing or upgrading to the latest release is a straightforward process, refer to the on-premises article for more information.
As of version 3.2.1, quantity adjustments are applied first and before any charge related adjustments. This may potentially affect your billing records. If you were depending on mixing charge and quantity adjustments, please reach out to support@exivity.com for guidance.
As of version 3.5.0, Exivity uses the RabbitMQ message broker software for inter-component communication. By default, RabbitMQ will be installed automatically on the Exivity host. Alternatively, you may leverage a remote/dedicated RabbitMQ instance. Make sure to verify the system requirements in the installation guide before upgrading.
Changelogβ
v3.39.3β
October 22, 2026
Security fixes
-
Updated the bundled PHP runtime to 8.4.27
Exivity Core now ships with PHP 8.4.27, which fixes two critical PHP vulnerabilities, CVE-2026-109618 and CVE-2026-109619, that can allow unauthenticated remote code execution. The update applies to both Kubernetes deployments (Helm chart 3.39.3) and Windows installations. Upgrade every Exivity Core instance to receive the patched runtime. There are no other functional changes compared to v3.39.2. See the security advisory for background.
v3.39.2β
June 22, 2026
Bug fixes
-
Fixed SAML Single Logout during sign-out
Resolved an issue where SAML-authenticated users could not reliably complete Single Logout from the web interface. Exivity now detects whether an IdP Single Logout endpoint is configured, revokes the local session first, and then redirects through the IdP SLO flow when available. Local and LDAP users, and SAML environments without SLO configured, continue to use local-only sign-out.
-
Fixed password validation for SAML users
Resolved an issue where password fields could be handled incorrectly when updating SAML-provisioned users. Non-empty password values are now explicitly rejected for SAML users, while empty or omitted password values no longer interfere with profile updates.
-
Fixed account metadata access handling
Improved account metadata permission handling so metadata is only loaded and updated when the user has the required account management permissions. Metadata definitions can now be loaded when users have the appropriate account or metadata definition permissions, preventing missing metadata information and avoiding unauthorized metadata updates.
-
Improved report preparation performance when applying adjustments
Edify now preloads adjustment lookup data into an in-memory cache during price calculation. This reduces repeated database lookups while preparing reports with many account and service adjustment combinations, improving report preparation performance.
-
Fixed manual subscription COGS overrides
Resolved an issue where manual subscription COGS overrides could be ignored unless a rate override was also applied. COGS values are now applied independently where configured.
-
Fixed USE json_lines_to_array stability
Resolved a heap corruption issue in the USE
json_lines_to_arraystatement that could cause extractor scripts to crash when converting repeated NDJSON buffers. Malformed NDJSON now reports an error instead of silently continuing with invalid data.
v3.38.4β
May 6, 2026
Bug fixes
-
Fixed an issue which could cause duplicate charges
In some cases, duplicate charges could be generated in the report output for services that have both an account-specific rate and a default rate. The rate lookup query returned both rates instead of preferring the account-specific one, resulting in doubled charges for affected account/service combinations. This has now been resolved.
-
Stopped repetitive LDAP not enabled log files from being generated
Resolved an issue where Proximity could generate many small log files containing an LDAP not enabled message at a regular interval in environments where LDAP login is disabled. The unnecessary log message has been removed, preventing log folder clutter while preserving normal LDAP-disabled behaviour.
-
Prevented LDAP log files from being created during health checks
The LDAP service provider is now skipped when running the
exivity:healthcheckconsole command. Previously, each health check could generate a one-off console log file containing an LDAP missing-field entry, leading to log folder clutter on systems where health checks run frequently. -
Improved performance for fetching the dump endpoint
Added a dataset summary mode for the dump API endpoint to improve load performance during login.
v3.38.0β
March 4, 2026
New features
-
Added log file configuration options for Kubernetes
A new option has been added to the Helm charts, allowing administrators to configure log file settings for Kubernetes-based deployments.
-
Updated PostgreSQL and RabbitMQ dependencies for Kubernetes
Updated the Exivity Helm chart dependencies to use internally maintained Bitnami chart forks. This includes upgraded PostgreSQL (14.18.0) and RabbitMQ (4.1.3) versions.
-
Added an array field type for metadata definitions
A new
STRING_ARRAYfield type is now available for metadata definitions, enabling multiple string values to be stored in a single metadata field. This is particularly useful for scenarios such as SAML provisioning where users may belong to multiple groups.
Bug fixes
-
Fixed SAML certificate parsing to support line breaks
Resolved an issue where SAML X.509 certificates containing line breaks were rejected by the API. The parser now properly normalises whitespace in Base64-encoded certificates, ensuring compatibility with standard PEM and wrapped certificate formats.
-
Resolved missing default values for separator settings
Fixed an issue where missing
DECIMAL_SEPARATORandTHOUSAND_SEPARATORsettings could return null instead of their default values after the configuration store migration. -
Fixed LDAP service registration
Resolved an issue where the LDAP service was not correctly registered as a singleton, which could lead to unexpected behaviour during authentication.
-
Fixed line ending compatibility issues with configuration files
Resolved an issue with the API configuration files concerning different line ending formats (CRLF vs LF). Previously, these files would be treated as corrupted and overwritten with default values. This fix improves compatibility when working across Windows and Unix-based systems.
-
Fixed garbage collection failures on systems with restricted directories
Resolved an issue where the garbage collection process would fail when encountering directories with restricted permissions, such as the
lost+founddirectory created by Longhorn storage systems. The process now gracefully handles permission-denied errors and continues the cleanup instead of failing completely. This improves reliability in Kubernetes and Longhorn-based deployments. -
Improved rate dump API performance
Significantly improved the response time of the rate dump endpoint by reducing redundant database queries. Systems with large numbers of rates should see noticeably faster load times.
v3.37.0β
November 19, 2025
Bug fixes
-
Upgraded Nginx
Upgraded the bundled Nginx web server for Windows for improved performance, security, and stability.
-
Upgraded PHP
Upgraded PHP providing the latest security patches and performance improvements across all platforms.
v3.36.1β
September 4, 2025
Bug fixes
-
Migration to Legacy Bitnami Repos for RabbitMQ & PostgreSQL (Kubernetes)
We have temporarily switched the Kubernetes deployments of RabbitMQ and PostgreSQL to the legacy Bitnami Helm repositories because of recent changes in the Bitnami offering. This ensures stability while we finalise a permanent migration strategy. For more information, see our Bitnami blog post.
-
Fixed Microsoft SQL Server connectivity in Kubernetes environments
Resolved compatibility issues with Extractor USE scripts connecting to SQL Server databases in Docker and Kubernetes deployments by ensuring proper integration with Microsoft ODBC Driver 18 for SQL Server. This fix enables reliable database connectivity for containerized Exivity instances when extracting data from SQL Server databases.
v3.36.0β
August 19, 2025
New features
-
Initial Support for ARM images on Kubernetes (beta)
Added arm64 container images for running the application on ARM-based Kubernetes nodes.
Bug fixes
-
Resolved issue with orphaned daily report files not being removed from disk after database deletion
Previously, when deleting a day from a dataset through the Data Pipelines > Datasets menu or its related API endpoint, the corresponding files were not removed from disk, resulting in orphaned files within the report directory. This issue has been resolved, and files are now properly deleted when a day is removed from a dataset.
v3.35.0β
July 10, 2025
This release was made available for Kubernetes deployments only. All changes will be included in the next Windows release as well.
New features
-
Custom LDAP PEM File Support in Kubernetes
A PEM certificate file can now be provided through the Proximity Helm chart to enable secure LDAP over TLS in Kubernetes environments. Existing deployments remain unchanged unless a certificate file is supplied.
-
Optional Init Container for Volume Permission Fix
An optional init container can now be enabled via Helm to adjust file system permissions on Longhorn ReadWriteMany volumes during V3 deployments, preventing mount permission errors on Kubernetes distributions that do not support automatic permission updates. Existing deployments remain unaffected unless the feature is activated.
Bug fixes
-
Enhanced API Error Handling for File System Operations
Improved the API's file system iteration capabilities to gracefully handle permission-denied errors when accessing restricted directories.
-
Enhanced File Upload Naming to Prevent Conflicts
Improved file upload handling by implementing UUID-based naming as the default for v2 API endpoints, eliminating potential overwrites when multiple files are uploaded simultaneously. The v1 API maintains backward compatibility with existing sequence-based naming conventions.
v3.34.0β
June 2, 2025
New features
-
Create service category via GUI
Added functionality to create service categories directly from the Services screen, streamlining the process for users.
-
Introduced preliminary support for Longhorn
Longhorn is now supported as an alternative storage provider for Kubernetes-based deployments. This feature, currently in beta, provides users with the option to replace the default NFS provider, enhancing flexibility and storage management capabilities.
Bug fixes
-
Resolved account assignment issue during report preparation
Addressed a rare issue where account reports could be empty due to usage rows not being linked to customer accounts in cached tables. Improved handling of empty values in account source data to ensure accurate report preparation.
-
Improved LDAP user group configuration
Enhanced the LDAP configuration process by replacing manual ID input with a user-friendly dropdown list for selecting user groups.
-
Enabled current day selection for workflow schedules
Fixed an issue where the GUI did not allow users to select the current day when creating workflow schedules. This functionality is now supported.
-
Fixed empty line issue in imported lookups
Resolved a problem where importing a lookup added unintended empty lines, which could lead to errors in Transformer scripts.
v3.33.3β
April 14, 2025
Bug fixes
-
Resolved Environment Variable Configuration Issue
Addressed an issue where a missing environment variable caused the production build to use development
.envsettings, leading to increased logging. Safeguards have been implemented to ensure proper configuration in future releases.
v3.33.2β
April 11, 2025
Bug fixes
-
Disabled sending of component heartbeat messages
Heartbeat messages, which are currently only used for troubleshooting on Windows with nodemon, have been disabled in the Kubernetes Charts and Windows configuration defaults to prevent unnecessary messages from being sent on the RabbitMQ exchange.
-
Missing notification in overview
Resolved an issue where not all notification subscriptions were displayed in the overview.
-
Creating prepare report workflow step restored
Fixed an issue where creating a prepare report workflow step would result in an error about the
report_definition_id. This has now been resolved. -
Fix configuration problem with Password Reset
Addressed a configuration issue in one of the views that caused the password reset functionality to fail. This has now been fixed.
-
Fix for incorrect report date shown during prepare phase
During the report preparation phase, the default start date of 0 was incorrectly converted into the Unix epoch start date (January 1, 1970) in Proximity. This fix ensures that default 0 values remain as 0 until the correct date is calculated during the preparation process.
-
Adding a size limit to environment variables
To ensure optimal performance, a size limit of 1MB has been introduced for global environment variables. Users will receive a validation message if the value exceeds the allowed limit.
v3.33.1β
March 7, 2025
New features
-
Added filters and includes to report data endpoints
For the report API endpoint it is now possible to filter on
account_keyand includeservice_unit_labelas well asservice_interval.
Bug fixes
-
Fixed a password reset configuration issue
The password reset for internal users was not working correctly. This was due to a problem with the configuration in one of the views. This has now been fixed.
v3.32.0β
January 24, 2025
New features
-
Added Japanese to the GUI language options
Japanese can now be selected as an option for setting the GUI language.
-
Implemented EXIVITY_LINE variable in Transformers
When executing a Transformer script, the variable called EXIVITY_LINE can now be referenced to determine the current line number of the script.
-
Improved performance when preparing some reports
Optimisations have been made to some database operations when preparing reports. This may not always be noticeable but for some reports there will be a significant performance increase.
Bug fixes
-
Resolved an issue with naming Extractors
Fixed an issue with extractor naming conventions.
-
Resolved an issue when searching for key values
Fixed an issue where the search for services on key didn't give correct results.
-
Fixed average rate calculation when the charge is negative
Previously the rate shown in the GUI was not calculated correctly when the total charge for a line item had a negative charge.
v3.30.0β
November 19, 2024
New features
-
New parameter to suppress trailing newline in transformer CSV exports
When writing a CSV file, the 'export' statement can now omit the newline at the end of the last record by using 'chomped' as the second keyword:
export chomped example.data as exported_file.csv
Bug fixes
-
Resolved issue with jobs stuck in "running" state despite completion
Jobs within a workflow that executed too quickly were occasionally not updating their status correctly, remaining in a "running" state even after completion (success or error). This issue has been fixed, ensuring the job's status is accurately saved.
v3.29.4β
November 6, 2024
Bug fixes
-
Fixed a configuration issue in the API
Configuration files are now stored and loaded from the correct location, addressing an issue in v3.29.3 where they were previously saved and accessed from an incorrect path, which could disrupt SSO login and custom/whitelabel settings.
v3.29.3β
Issue with loading configuration in version 3.29.3 We do not recommend upgrading to version 3.29.3, because of a known issue with loading configuration files. This may break SSO login and whitelabeling settings. A fix for this issue is being worked on, which will be released with version 3.29.4.
October 30, 2024
Bug fixes
-
Replaced and improved the NFS readiness probe on Kubernetes
Replaced the existing NFS readiness probe with a more reliable solution, ensuring more consistent detection of NFS connectivity issues in Kubernetes environments. This update improves system stability and performance, especially in deployments relying on NFS mounts.
-
Added additional index to PGP tables
An additional database index has been added to improve performance when updating service definitions.
-
Fixed a caching issue in the Report creation screen
Resolved an issue in the report creation screen, where the reporting columns did not reflect the latest schema of a dataset.
-
Resolved flashing of Exivity logo when white labeled
Fixed an issue where the Exivity logo briefly appeared during the loading process in white-labeled environments.
-
Fixed a search issue in the Service Overview screen
Searching for key values in the services overview did not yield any results. This has now been resolved.
-
Fixed an issue with auto completion in the script editor
Resolved an issue where auto complete-snippets for the Transformer and Extractor editors would show duplicate results.
-
Fixed an issue in the Account Overview search screen
Resolved an error where searching through many accounts would cause a "call stack size exceeded" error in some browsers.
-
Fixed an error related to the job status view
Prepare Report jobs using split days create child jobs, which where not displayed in the status screen because of a missing field in the database. This issue has now been resolved.
-
Resolved a rounding error in the Extractor engine
Floating point values extracted from JSON data would be previously be rounded to 6 decimal places. This has been corrected, and values extracted from JSON data are now accurate to 15 decimal places.
v3.29.2β
July 31, 2024
Bug fixes
-
Verify peer mapping
We've resolved an issue with the Verify Peer option, ensuring it's now correctly mapped. Plus, you can conveniently control this feature directly from the user interface.
v3.29.1β
July 25, 2024
New features
-
Added the ability to configure a minimum password length
Under the Settings > Security menu you can now configure a minimum password length for local users.
-
Added filtering, sorting and pagination to the audit trail (entries) API resource
We have moved away the audit trail filtering from the GUI to the relevant audit trail API endpoint. In addition, pagination is now also available for this API endpoint, but its use is not yet implemented in the GUI.
-
Extractors can now handle data in JSON lines format
Once data in JSON lines format has been retrieved into a named buffer, the contents of the buffer can be converted to a JSON array using the statement:
json_lines_to_array {bufferName}
Bug fixes
-
Fixed bug whereΒ
report_publishedΒ notification subscriptions couldn't be savedPreviously, creating a report notification subscription which had 2 dimensions, would cause an error in the API when saving the notification. This issue has now been resolved.
-
Resolved an issue with 'uri aws-object-encode'
The
uri aws-object-encodefunction was not encoding the characters:and=in object names. This has now been fixed.
v3.28.0β
July 12, 2024
New features
-
Improved report preparation time for some reports
Preparation time for certain reports has been reduced when rates are provided via the data feed instead of being managed within Exivity. To leverage this performance boost, ensure all services in a single report share the same configuration: have the interval set to
individually, no manual rates configurations, and use identicalrateandcogscolumns.
Bug fixes
-
Fixed an issue with displaying account names in the Accounts Report
When a user only has permission to view data for specific accounts, but not the parent/root account(s), the Accounts Report will displayΒ
(unknown account)Β after the user logs in for the first time. This has now been resolved to ensure the appropriate account names are always being displayed.
v3.27.1β
July 2, 2024
Bug fixes
-
Fixed an issue related to Accounts searching
Resolved an issue where searching the accounts hierarchy could cause an stack overflow error.
-
Improved performance audit screen
The performance of the audit screen has been improved rendering by virtualizing the table in the Glass UI.
-
Removed support for Google Analytics
Because of compatibility issues, support for Google Analytics has been removed.
-
Updated PHP latest version
PHP has been updated to the latest version to overcome multiple CVEs on Windows deployments.
v3.27.0β
June 11, 2024
New features
-
Improved the report preparation process
When preparing large reports it was possible to saturate an internal data structure used by the charge engine, resulting in warnings being logged and some charges not being reflected on reports. We have now enhanced the report preparation process such that the data structure will make better use of available RAM, removing this limitation.
Bug fixes
-
Fixed an issue related to the caCertificates in the Helm chart
The Helm chart was expecting the caCertificates certain to always be present in the values YAML. This has now been resolved.
-
Solved a localization issue for summary report date range
Added the standard configurable localization for the date range displayed on the summary report.
-
Fixed an issue related to budget configurations
Resolved an issue which could cause budgets to not show up in the budget overview.
-
Fixed an issue for email notifications that did not use encryption
Previously, when no encryption was being used for SMTP notification, it was still using TLS peer verification. This has been changed. The verify_peer parameter will be disabled in this case.
-
Fixed an ACL issue related to inheriting of metadata definitions
Previously, a user did not properly inherited permissions for parent account metadata definitions where the user should have access to. This has now been resolved.
-
Fixed an php-fpm worker pool error
Fixed an issue where an incorrect environment setting would throw an error and in turn could cause a service degradation of the Proximity API.
-
Fixes a performance issue for users with limited access
Users with restricted access to only certain accounts were having performance issues when loading the home page after login. This issue has been resolved and the loading time has decreased substantially.
v3.26.1β
April 25, 2024
Bug fixes
-
Resolved a sorting issue for top level accounts
Top level accounts in the rate and account overview weren't sorted alphabetically, this has now been fixed.
-
Fixed an issue where duplicate items in a nested list could generate erratic behavior
Resolved an issue where an identical value for a username and usergroup caused cosmetic glitches in the menu listing. The same could occur for service categories and services.
-
Reverted the ability to run a workflow for a date range
Reverted a change in 3.26.0 which allowed a user to run the workflow for a date range. For now it is only possible to manually run a workflow for a single date.
-
Improved garbage collector handling for concurrent workflow jobs
Updated the garbage collector to prevent unintended timeouts of workflow jobs running concurrently.
-
Fixed an issue with the garbage collector on Windows installations
Resolved a PHP library issue on Windows installations to ensure compatibility with the garbage collector.
v3.26.0β
April 17, 2024
New features
-
Added linear trending and moving average to graphical reports
The timeline charts for the Accounts, Services and Instances reports now include a linear trendline and a moving average, given there are enough data points available in the report selection period.
Bug fixes
-
Solved an issue when selecting leaf accounts for Subscriptions
Resolved an issue where you couldn't select leaf accounts in the Subscription screen for reports with less then 5 levels.
-
Fixed a sorting issue concerning the Workflows status history
Improved the workflow status page by implementing sorting based on start_time. This ensures the latest run statuses are always displayed, particularly beyond a certain threshold, where a substantial number of historical job executions is considered.
-
Fixed a validation issue when updating a workflow schedule
Error messages for past start times in workflow schedules will now only trigger if the start date is changed, not when it remains the same. This streamlines updates and reduces unnecessary alerts.
-
Enhanced user access to metadata definitions in reports
Previously, viewing metadata definitions was restricted to users with specific permissions, limiting visibility for others. Now, all users with access to a report can view its associated metadata definitions within the scope of the user account access level.
v3.25.4β
April 8, 2024
Bug fixes
-
Fixed various inconsistencies with sorting
Aligned sorting results in various places in the GUI
-
Resolved an issue for users with limited account access
Users with limited account access weren't able to set rates for accounts they had access to. This has now been resolved
-
Fixed an issue causing an empty CSV export
Resolved an issue where, if a particular selection of filters was chosen, the CSV export of the Summary Report was empty
-
Resolved a data security issue
Internal reference: EXVT-5758
-
Fixed an issue with duplicate accounts created for parallel execution of preparing the report
When preparing of a report was executed for a time range spanning multiple months, the parallel jobs that are created for the range were sometimes causing duplicate accounts. This has now been fixed
-
Increased the performance of Extractors when downloading large files
When downloading large files an Extractor could slow down significantly and consume a lot of CPU time. The larger the file, the slower the performance would become. This has now been fixed
-
Fixed an issue when displaying empty accounts
In version 3.25.2 the GUI could break when accounts had an empty key / name. This has now been resolved.
-
Fixed an issue which could cause a workflow to be executed twice
It was possible that a workflow would start several seconds before its scheduled start time. When this happened, a second start could be triggered when the actual start time was reached. This issue has been resolved by ensuring the workflow can't be executed before execution time has passed.
v3.25.2β
March 15, 2024
New features
-
Applied several UI/UX enhancements
Significant UI/UX and performance enhancements have been implemented across the application through the upcoming beta release of our next API version. Highlights include:
- Enhanced transformer previewer functionality
- Environments have been reorganized and are now accessible under the Data Pipelines menu
- Service Categories can now be selected on the service screen, with the added ability to update their names
- Refreshing of the application in a webbrowser will not require re-login of the application when using session storage
- Solved some issues related to dropdowns that were not inaccessible
- [v2 API] Atomic updates enable the creation, updating, association, and removal of multiple records in a single request
-
Added a CUPR Overview dashboard
The consumed Consolidated Peak Usage Record (CUPR) for each dataset can now be viewed under the Settings > License menu
-
Added a new Job Overview feature for Asynchronous Jobs
Introducing a new job overview section under status, offering insights into the status of long-running jobs to assist with their tracking and management.
-
Added user feedback for Report Status
The
invalidated_atcolumn in the report overview now alerts users to the potential need for data re-preparation due to changes in rates, adjustments, subscriptions and data Transformations. Although days potentially impacted by these changes are identified, the determination of the need for re-preparation occurs during the charge engine run, which skips days without affected source data. Additionally, a "requires action" section is now available in the Job Overview menu, offering quick options to initiate jobs for days with unprepared data. -
Change source attribute in user manager
You can now manually adjust the source attribute of each user.
-
Dataset currency information is exposed through report definition meta data
Datasets can have a currency to them (if it differs from the globally set currency), but this information is needed to display for reports, even when users don't have access to the dataset, so this information is now exposed on the report definition.
-
Added the ability to run a workflow for a range
The user interface now allows running a workflow for a specific time range
-
[Beta] Account Specific Rate End Dates
Users can now set end dates for account-specific rates. These dates are inclusive, and upon their passing, the charge engine will revert to the applicable rate revision. NOTE: currently rate end dates are not supported for Subscriptions.
-
[Beta] Currency per Dataset
Currency format and code customization is now available per dataset. This strictly cosmetic feature allows reports to display the configured currency settings for its associated dataset.
Bug fixes
-
Fixed a truncation issue in the lookup editor
When working with the lookup editor, in some cases the lookup became unusable because of an incorrect row formatting. This has been solved.
-
Hide Exivity logo in white label configuration
When white labeling is set to true, the Exivity logo was briefly visible during initial page load. This has been fixed.
-
Fixed an issue with the translation default setting
Resolved an issue where it wasn't possible to return to the default configured translation, after overwriting it with a personal preference.
-
Workflow step logs now load in run overview
The step logs will load in the run overview for each step now.
-
Fixed an issue with loading budget items
In certain cases, budget items wouldn't load in the Budget Configuration user interface. This has now been be resolved.
-
Removed the interval 'individually' from Subscriptions
The individually interval options was never allowed, which is and was not accepted by the API
-
Validate and show rate dates for tiered services in a year-month format
For tiered services, rates are only applied on a month by month basis. To properly reflect that, the effective and end dates for rates should only be shown and entered as year-month values and not full dates.
-
Deepest Account Label Search
Solved an issue where the deepest account level label could disappear from the details search pane
-
Added support to Extractors for uploading files using the PUT method
Previosuly, extractors could only upload files using the POST method. Using the statement
set http_body file "<filename>"it is now possible to upload a file using the PUT method
v3.24.0β
March 4, 2024
Bug fixes
-
When a dset is deleted, all related services will now also be deleted.
Previously a deleted dset would leave behind services. This has been improved to always delete all services associated with a dataset when the dataset gets deleted.
-
Resolved a leap year issue in Edify
In 2023 a bug was introduced which caused the 2024 leap year to be ignored (the 29th of February) during the getPrices report generation. No other years were affected and this fix solves the issue
-
Fixed an issue with debug error being displayed in production
When a fatal error was encountered in the API, the error was returned using the debug mode. This has been fixed and errors are now returned in a user friendly way
-
Resolved an issue with the garbage collector
There was an issue with LOGFILES_COMPRESS_DAYS causing the garbage collector to fail. This has now been resolved
-
When a user resets their password, they are now logged out from all devices
A security improvement has been implemented to ensure that a user gets logged out from all devices when their password is changed.
-
Fixed some issues when deleting datasetd
Fixed an issue where dsets could be deleted that still had reports attached. In addition, improved the user feedback when deleting a non-existent dset.
-
Allowed "from address" to be null for email configurations
The API expected the MAIL_FROM_ADDRESS to be set when changing the email server config. However, this setting should be nullable. This has now been resolved.
-
Fixed incorrect reset of login throttling
When the block on a user's authentication was expiring, a new block was set in case of a new incorrect login attempt. This behavior was incorrect, and now the throttling is reset after the block expires.
-
The CSV tab delimiter needs to be escaped when set to tab
Because of how arguments are parsed in the Proximity API, whitespaces are trimmed. A "\t" delimiter was interpretated as whitespace and thus could not be stored properly. By escaping it, it can now be stored accordingly.
v3.23.0β
January 26, 2024
New features
-
It is now possible to control the PHP memory limit using the helm chart
Using the
proximityApisection in the Helm Chart, it is now possible to set the PHP memory limit usingphpMemoryLimit. The default is set to"3G"
Bug fixes
-
Upgraded PHP to version 8.3
All PHP components are now using PHP version 8.3
-
Fixed an issue causing existing SSO users not being able to login
When the default user group was removed, existing SSO users couldn't sign in anymore. Even if they already had a usergroup assigned. This issue is now fixed.
v3.22.0β
January 8, 2024
New features
-
Security Enhancements for Password Reset Functionality
Updated the system to more securely handle password resets, including better validation of requests and fixing a vulnerability in unauthorized access.
-
Improved deleting of temp files in garbage collector
Added new locations where temporary files may be located. If a location doesn't exist, this is logged but the garbage collector continues to the next location. Also improved the output of items that were cleaned up.
Bug fixes
-
Fixed an issue with sending notifications for Kubernetes deployments
The Notification component could experience an issue when using Kubernetes based deployments. This has been fixed.
-
Make service subscription 'instance' attribute optional while defaulting to name
Previously the API demanded a value for
instanceand the GUI defaulted this to the name of the service subscription. This behavior has now been moved to the API layer. Soinstanceis optional and the API will set it to the name if not present. -
Improved error message when trying to delete a service category that still has associated services
-
Fixed an issue where rate revisions for a service were deleted when no changes were made to the service
In v2 of the Proximity API, it could happen when changing metadata fields for a service (i.e., description, unit label), Proximity incorrectly considered this a fundamental service change. As a result, the service would be recreated instead of updated. This caused depending rate revisions to be deleted. This behaviour has now been changed to be in line with the v1 API behaviour such that the descriptions and unit labels can be changed without breaking the service definition.
-
Fixed an issue where service subscriptions could be made for parent accounts
Service subscriptions can only be associated with leaf accounts. This fix ensures this behaviour at all times.
-
Fixed an issue in the end date validation of service subscriptions
Previously the end date of a service subscription could be set to a date before the start date. This fix ensures that the end date should always be empty, or otherwise equal to or greater than the end date.
-
Fixed a potential security concern when updating the password of a user
-
Fixed an issue when querying non existing objects
If looking for a relationship that doesn't exists (example: v1/accounts/1/parent), where account 1 is level 1 and has no parent, previously an HTTP 404 error was returned. According to the JSON:API spec, a response of 200 should be expected, with a contents of
{ "data": null }. This fix implements this change. -
Fixed an issue related to "prepare report" jobs with different start dates
When using a different date for the start of a prepare report job than the current date, there was an inconsistency between the start_date and an internally used report file. This has now been resolved.
-
Improved the date calculation for outdated data for report creation and service updating.
Improved the information feedback concerning for which date report data needs to be (re)prepared.
-
Enable sending of unchanged attributes on update even when immutable
Fixed an issue when updating a budget. Some immutable attributes couldn't be passed along in the update request, even when unchanged.
-
Fixed an issue when updating a service charge_type
When a service charge_type is changed, related rates should be deleted. This however caused an error in the API, which has now been resolved.
v3.20.3β
October 30, 2023
New features
-
Enhanced Kubernetes deployments with configurable container resources
Users on Kubernetes now have the capability to specify the resources attribute for a deployment directly via the values file. This enhancement empowers users to manage their application's resource requirements more efficiently.
Bug fixes
-
Preparing a report could fail when EXIVITY_EDIFY_TMP_PATH was not set In certain situations on Windows, when EXIVITY_EDIFY_TMP_PATH was not set, the getPrices phase of Preparing a Report would fail. This has now been resolved.
-
Improve workflow-step option validation on update When updating a workflow-step 'step-type', the options field is validated to make sure all the needed options are present.
-
Issue fixed for K8s for the cleaning up of merlin log files Garbage collector would not always correctly clean up merlin log files on Kubernetes. This has been resolved now.
-
Fixed a garbage collector issue when trying to read the date of a file that doesn't exist In rare cases, the garbage collector was trying to read the date of a file that doesn't exist, leading to a RuntimeException. This could happen if the file was renamed or deleted while the garbage collector was running.
-
Data Filtering Improved Minor update to optimize data filters on specific endpoints. Now showing only essential details.
-
Fixed an issue with lost db connection
When no activity was registered for a longer period of time, it could have happened that the db connection was lost by Griffon when job statuses were updated. This resulted in incorrect display of the job status. the issue has been resolved.
-
Fixed an issue that caused reports being duplicated when created
Solved an issue which couuld cause duplicate reports to be created.
-
Ensured that sync accounts runs before prepare report
Previously, when using the split days feature in a workflow step, the sync accounts process could cause duplicate account creation in some cases. To avoid this from happening in the future, functionality has been added to create an extra backend job for situations when using the split days feature. This assists with syncing accounts once at the beginning of the entire process.
v3.19.2β
August 28, 2023
New features
-
Enhanced Logging for backend components
Logs from USE, Transcript, Edify, Horizon, Merlin, Pigeon and Proximity are now also outputted to stdout. This is especialyl relavanat to Kubernetes deployments, which will make log scraping easier for the corresponding Pods.
-
Added a split-days option to Prepare Report workflow steps
Users can now split report preparations into daily chunks using a workflow step. This will optimize scaling of workloads across multiple nodes. Only recommended for multi-node setups. This feature is currently still in beta.
Bug fixes
-
Resolved an issue with the Garbage collector
Previously the garbage collector would fail to archive old log files. This has now been resolved.
-
New environment variable for Proximity deployments
An environment variable was introduced in Proximity to configure alternative/additional paths for the garbage collector in order to archive all Exivity related log files. This was required specifically for the nginx default log location, which is different from Windows.
v3.18.1β
July 14, 2023
New features
-
Added an option to the Helm Chart to provide custom secrets
This release introduces an update to the Helm Chart which allows referencing of the app key and JWT secret via values.yaml, enhancing key persistence across deployments.
-
Added option in the API to run prepare report workflow steps in daily parallel jobs
In certain scenarios, prepare report workflow steps can be split into daily parallel jobs. Before considering or enabling this feature, it is recommended to contact Exivity support for validating your configuration. This feature is currently only available in the API. Full support in the UI will be added later.
Bug fixes
-
Resolved a v1 API issue when updating a service
When previously trying to update an existing service using both the attributes 'dset' and a relationship 'dset', a user would experience an API error. This was caused by an v2 API taxanomi change of the word 'dset' to 'dataset'. As this is an unusual case, a CI test did not yet exist. This has now been resolved and associated tests have been improved.
v3.17.0β
July 3, 2023
New features
-
The location of temporary files created by the charge engine is now configurable
If an environmental variable called EXIVITY_EDIFY_TMP_PATH is created then the charge engine will create the temporary files used when preparing reports in the directory specified in that variable.
-
Changed behavior of running processes when queue connection crashes
Processes that are executed in the background are not terminated anymore. They keep running while the connection is restored.
-
Timed out jobs will now trigger a notification
Timed out workflows will now be treated the same as failed workflows, therefore the user will be notified if a notification has been configured for failed workflows.
Bug fixes
-
Creating extract step with empty string saved incorrectly
Previously, having an empty string instead of a null value as an Extractor workflow step argument, could cause an issue during workflow execution. This has now been resolved.
v3.16.0β
June 20, 2023
New features
-
Reduced the time required to prepare reports in many cases
The time taken to prepare a typical report has been reduced, especially for reports that have a large service catalogue.
Bug fixes
-
Resolved an issue with dataset types with the atomic endpoint
Solved an issue where it wasn't possible to process dataset types with the atomic endpoint
v3.15.0β
June 7, 2023
New features
-
Added filter validation to API
This change runs validation against the input from the API filters. This helps make any invalid filter input easier to resolve.
Bug fixes
-
Fixed running workflow Extractor steps with empty arguments
When a workflow Extractor step was updated via the GUI, while having an empty value for the arguments field, the execution of the workflow would fail. This has now been resolved.
v3.14.1β
May 22, 2023
New features
-
Added a PV readiness probe to the Helm chart
This probe tests every 20 seconds if a mount path generates a stale file handle error. If it does, or if the probe takes longer than 5 seconds the probe fails. Two consecutive failures will cause the pod to be restarted.
-
Assigning pods to nodes in kubernetes
Added the option to configure "nodeName" and "nodeSelector" for each service. This allows the assignment of pods to predetermined nodes/nodepools.
-
Added database resilliancy to the Prepare Report job
Added a retry method to the Prepare Report job. When the DB connection drops while writing charge engine records to the pgp results table (getPrices) the process will now retry several times.
-
Improved garbage collector to cleanup jobs that previously timed-out.
This feature adds a new collector, 'timeout-jobs', to the garbage collector. This feature deletes any jobs that have gotten 'stuck', but haven't been timed-out by our message broker. With this improvement, we also added the ability to select individual collectors to run. To do this, use
-c|--collector:php artisan exivity:gc -c timeout-jobs -c cleanup-metadata. All the collectors' names can be found in the help section-h|--help. The logging of the garbage collector has also been improved. -
Included the root of report folder to the Garbage Collector
The Prepare Report process might leave behind temporary cache files, which are not automatically cleaned up when the process is killed or does not exit gracefully. These temporary cache files will now be deleted after 48 hours.
Bug fixes
-
Fixed error with declaring messaging queues
In some cases, failing to declare messaging queues resulted in the crash of the component. This is now fixed and the component will not crash immediately, but it will retry to declare the queues several times.
-
Fixed a performance issue related to the creation shadow DB of the prepareReport process
This fix improves the creation of indexes for the account table in the shadow DB when preparing reports
-
Fixed an issue assigning metadata definitions to report levels
When assigning metadata definitions to a report, if a Metadata value of 'No metadata' was specified at a higher level of the report than that with the next actual Metadata definition, then that actual Metadata definition could be incorrectly assigned to the first level of the report that had 'No metadata' specified. This has now been fixed.
-
Prevent updating metadata definitions with invalid fields
Previously it was possible to update metadata definition fields with invalid field objects. That is now prevented, so when updating metadata definition fields, the field objects need to contain a name and type and a list if they are of the list type. Similar to creating a field on a metadata definition.
v3.13.0β
April 5, 2023
New features
-
Log more details in audit for metadata
In the audit logs for metadata, it is now also recorded what the related accounts or services are for which metadata are created, updated, and deleted.
Bug fixes
-
Resolved a potential issue with leap years in reports
When preparing & running a report for a range of days more than one month in the past, where that range of days included the last day of February and one or more days in March, on non-leap years the report would contain the data from February but only include the 1st of March. This issue has now been resolved.
-
Improved logging for messages send and received from RabbitMQ
In certain situations, messages could fail to execute because they were malformed when received by the backend node. In order to better analyse these errors, the message contents will now be logged to the log file of merlin. Setting a system variable
EXIVITY_BACKEND_LOG_LEVELtodebugwill be required to achieve this log detail.
v3.12.2β
March 10, 2023
Bug fixes
-
Fixed an issue related to accessing adjustments in the GUI
The error could generate an error when accessing through the GUI. This has now been resolved.
v3.12.1β
March 7, 2023
Bug fixes
-
Added support for SSL/TLS connections to remote RabbitMQ and PSQL with Kubernetes Charts
It is now possible to use TLS connections for remote RabbitMQ and PSQL with trusted CA certificates. Support for custom CA certificates will be added later.
-
Fixed an issue related to storing date values as metadata
When trying to update a metadata date type value, the API would return a 500 error. This has now been resolved.
v3.12.0β
February 27, 2023
New features
-
Transformer scripts now support a new statement: 'eventlog'
The 'eventlog' statement allows a custom user-defined log entry to be generated. Please refer to the documentation for more details.
-
Extractor scripts now support a new statement: 'eventlog'
The 'eventlog' statement allows a custom user-defined log entry to be generated. Please refer to the documentation for more details.
Bug fixes
-
Fixed an issue with custom PostgreSQL connections in the Helm chart
Previously the PGDATABASE and PGPORT variables were being ignored. This has now been resolved.
-
Fixed an issue with restoring PostgreSQL database
When restoring the PSQL database, it would fail on the workflow tables because of a workflow trigger. This trigger has now been recreated to allow for easier restoration of the database.
-
Fixed an issue with custom PostgreSQL connections in the Helm chart
Previously the PGDATABASE and PGPORT variables were being ignored. This has now been resolved.
-
Fixed an issue with selecting future dates on the rates screen
Future dates that were previously greyed out and disabled may now be selected.
-
Fixed failed-jobs endpoint
Fixed an issue where the failed-jobs endpoint would always throw an exception.
-
Fixed an issue with the execution of Transcript inside a container
Transcript could complain about an invalid glibc version. This has now been resolved with the latest Helm Chart release.
-
Fixed an issue with encrypted global variables
When a global variable with a value greater than a certain length was encrypted, accessing it from an extractor script could cause the extractor to crash. This has now been resolved.
-
Fixed an issue with the execution of Transcript inside a container
Transcript could complain about an invalid glibc version. This has now been resolved with the latest Helm Chart release.
v3.11.0β
January 20, 2023
New features
-
Enhanced error logging in the event_to_usage statement
If an out of order event is encountered during the execution of 'event_to_usage' in a Transformer then the Source tag of the DSET containing the event will be included in the log, and a copy of the entire event (up to a maximum of 1024 characters) will be included as a supplementary entry in the logfile.
Bug fixes
-
Ensured that backend components recover from a database disconnect
Previously the system would not recover from a database connection issue, which could cause missed workflow step executions. This behaviour has now been improved, such that the connection is recovered and the job executed.
-
The 'aggregate' statement now supports DSETS with a source and/or alias starting with a numeric character
Previously, DSETs that had a source or alias starting with a numeric character would cause an error to be generated when the 'aggregate' statement was executed, and the transform would fail. This has now been fixed.
v3.10.0β
January 13, 2023
New features
-
Added an option in the API to disable IP check on fingerprint
When using certain load-balancing configurations, subsequent requests may be handled by different instances which could generate unwated fingerprint errors. Therefore the Exivity API now provides an option to exclude the originating IP from the fingerprint calculation to avoid these errors. Currently this can only be configured through the API (see: https://api.exivity.com/#dcc7d52d-c5f5-35bd-a28b-182dbba9eec3).
Bug fixes
-
Resolved an issue related to generating PDF reports
Resolved an issue whereby requesting a PDF of an empty summary report would cause pdf process to freeze. Also resolved another related issue whereby the Consolidated Accounts overview was not included with a PDF export.
-
Ensured Workflow logfiles are displayed correctly
Previously, when requesting log files for a component, only the latest file ending on .log was being shown while other more recent files were available. These files, ending with
.log.{n}are now also returned and displayed properly. A related issue, causing unexpected long waiting times when viewing logs for workflow steps, is resolved by this fix.
v3.9.6β
December 6, 2022
Bug fixes
-
Atomic entity fix for study types in Linux systems
When sending in Atomic requests, the input type string was used for creating the model. In Linux systems, there could be a problem with study strings. This change fixes this.
-
Resolved an issue whereby the global database handle would become invalid
When using the 'event_to_usage' statement in a Transformer if an error occurred while in permissive mode then the message "Internal error: sql_prepare(): an invalid database handle was provided" would be logged and future operations could fail. This has now been fixed.
-
Fixed a potentially misleading log entry associated with 'event_to_usage'
When executing an 'event_to_usage' statement, if an out-of-order UPDATE event is encountered it is logged as an out-of-order STOP event. This has now been corrected.
v3.9.5β
November 25, 2022
Bug fixes
-
Fixed an issue with closed queue channels
In some cases, when an MQ queue channel was closed due to a connection error, it wasn't reopened and reading/writing from the queue was failing.
-
Duplicate variable exception fixed
Trying to create a variable with a name that already existed in an environment threw a 500 exception. This will now return a validation error.
-
Removed threshold attribute from Rate
The threshold attribute of the rate entity has been removed as it was not being used.
-
Fixed an issue whereby editing the service charge type could cause problems with subsequent Transformer scripts
In cases where a service was edited using the GUI, and the edit involved changing the billing type and/or the COGS type, this could cause the 'Services' statement in Transform scripts to crash if that statement referenced the edited service. This has now been fixed.
v3.9.4β
October 25, 2022
Bug fixes
-
Fixed a group permission issue relating to creating new budgets
Previously it was not possible to create a budget when a user had only Manage Account permissions. This has now been changed, so users can now create new budgets from scratch.
-
Fixed a backwards compatibility issue in the Proximity API
To ensure backwards compatibility, the sort attribute can still be sent with an API request although it is replaced by the previous attribute .
-
Fixed an issue with the job handler related to unknown job types
If proximity is reading the jobs table and encounters an unknow job type, it used to throw an exception. Although users will not be creating unknown job types, it is possible that a backend component will. Proximity need to be able to read these. This fix implements this.
-
Fixed an issue with the AVG rate column in reports
Solved issue where average rate column in GUI report was populated with 0 instead of average.
-
Fixed an issue with minimum commit for Subscriptions
When a minimum commit rate configuration was used for a Subscription, the minimum commit value was not honoured for the created Subscription. This has now been resolved.
-
Fixed an issue with the scheduler which could cause duplicate workflow executions
Under certain conditions, workflow steps could get executed twice by the Chornos scheduler. This has now been resolved.
v3.9.3β
October 6, 2022
Bug fixes
- Fixed an issue with the Exivity Backend Service crashing In some cases, the Exivity Backend Service (merlin.exe) would crash because of a concurrency issue. This has been fixed.