Skip to main content

Releases

note

For older releases, consult the archive here.

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.

caution

Migration to PostgreSQL within the Exivity architecture As of version 3.0.0 Exivity stores, all global configuration data and reports results in PostgreSQL as opposed to SQLite. This is a mandatory and breaking change. Please refer to the version 3 upgrade guide for more information.

info

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 [email protected] for guidance.

info

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.

Release feed

The release JSON feed is currently unavailable and we are working on a replacement. As an intermedia solution, the K8s charts Release feed provides a good alternative.

Changelog

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_at column 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 proximityApi section in the Helm Chart, it is now possible to set the PHP memory limit using phpMemoryLimit. 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 instance and the GUI defaulted this to the name of the service subscription. This behavior has now been moved to the API layer. So instance is 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_LEVEL to debug will 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.

v3.9.2

September 30, 2022

New features

  • Added new categories to Audit trail

    Metadata, File, Notification, and Database categories can now be used to filter audit entries in the GUI

Bug fixes

  • Improved query performance for reports when filtering on account

    When running a report while filtering on an Account, slow performance could be experienced which could cause a time out by the API. This has been resolved by optimizing the database query.

v3.8.4

September 20, 2022

Bug fixes

  • Fixed an issue with date offsets in workflows

    Date offsets are now correctly saved for workflow steps.

  • Fixed an issue with executing multiple workflow steps

    In version 3.8.3, not all workflow steps would execute in specific cases. This has now been resolved.

  • Fixed an API error when using include=dset parameter

    When loading reports with include=dset parameter, the include wasn't working. This has now been fixed.

v3.8.3

September 9, 2022

Note

The v2 API endpoint is currently in beta and subject to change.

New features

  • Changes extractors v2 endpoint

    The hash property has been removed and removed_at renamed to updated_at, according to spec.

  • Renamed report endpoint v2

    Renamed reports endpoint to reportdefinitions.

  • Changes licence endpoint v2

    The id replaces the hash attribute. The payload and message attribute have been removed.

  • New dataset and datasetdays endpoints v2

    Renamed dset to dataset and created new resource called datasetdays.

  • Changes transformers endpoint V2

    Removed hash property and renamed last_modified to updated_at, by spec.

Bug fixes

  • Increased maximum length of a variable to 16Kb

    The maximum length of data that can be held in a variable has been doubled to support larger data extracts using parslets.

  • Solved issue where search was broken for lists with categories

  • Fixed a bug where the report definition name could not be updated

    When updating the name of a Report Definition from the Status tab, the name was not actually updated. This is now fixed.

  • Fixed an issue with the breadcrumbs in the report summary screen

    When switching between selected accounts in the summary screen, the breadcrumbs didn't always reflect the currently selected account. This has been fixed.

  • Solved issue where dragging workflow steps became unpredictable

    When there were a large amount of steps it became hard to move them around. This has now been solved.

  • Fixed an issue with the message displayed when inheriting a rate from an ancestor

    When a sub-account inherits an account specific rate from one of its parents, the GUI now displays the correct rate.

  • Fixed a bug where all channels would be selected when selecting a notification channel for a user

    When selecting a notification channel for a user, all channels would be selected and the notification would collapse itself.

  • Fixed an issue that could cause a deadlock state for certain backend components

    In rare cases, specifically, if a system would go into sleep or hibernation mode, some of the backend components would not come back online. This has been resolved.

  • Atomic endpoint v2

Atomic endpoint now allows metadata to be saved along with a service.

v3.7.0

August 17, 2022

New features

  • Added the ability to convert decimal values to IPv4 addresses in an Extractor

    It is now possible to convert a decimal value in USE to an IPv4 address using the decimal_to_ipv4 statement.

  • Reduced the amount of memory needed to run reports

    Running a report is a memory-intensive operation. Changes have been made to reduce the amount of memory required by more than 200Mb. Whereas these changes do not change the functionality in any way it means that Exivity is more tolerant of systems with limited resources.

Bug fixes

  • Improving notification subscription validation

    Adding validation for Notification Subscriptions, type WorkflowEnded filename. It now check that each entry in the array is valid regex.

  • Fixed an issue where the Deepest aggregation level label would appear unselected

    When creating a tiered rate the deepest aggregation level label was in certain cases not visible when selected.

  • Fixed a condition where it was not possible to manually create a service

  • Fixed incorrect behaviour of the scheduler when a workflow is deleted

    When workflows were deleted, it sometimes happened that the scheduler wasn't notified of it. Because of this, running of workflows was interrupted.

  • COGS/rate required error

    Resolved issue where a zero would not be displayed causing a required input error.

  • Fixed issue when sending heartbeats

    Backend components could get into a blocked state whereby heartbeat messages were not sent to the MQ stack.

  • Improve XML extraction

    Fixed the crash bug when a foreach loop is applied to an XML node that doesn't have any named children. You can now iterate over all the children of an XML object using a foreach loop. The ${loop_label.NAME} variable is now available in XML-related foreach loops

  • Sort accounts

    Sort accounts of all levels at rates screen.

  • Improved list performance GUI

    Improved performance for lists with lots of items.

  • 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 an issue with the date picker when selecting a single date on a Mac

    It is now possible to use the Command key (⌘) for selecting a single date when using a Mac.

v3.6.9

June 16, 2022

Bug fixes

  • Fixed an issue with 'option noquote'

    When importing a file containing a non-escaped quote in a data field, the import statement would fail with an error when option noquote was in effect. This has now been fixed.

  • Fixed an issue when creating a new report

    Resolved issue where creating a new report definition would generate an invalid error, stating it requires a dset while a dset had already been assigned.

v3.6.8

June 10, 2022

New features

  • Added the ability to sort a DSET in a Transformer script

    There is now a sort statement in Transformer scripts that can be used to sort a DSET in either ascending or descending order by one or multiple columns.

  • Added 'dequote' statement to Transformers

    The new dequote statement can be used to remove quotes surrounding column names and values.

Bug fixes

  • Fixed an issue that could show an incorrect account during PDF export

    Resolved issue where account filter wasn't properly applied to the PDF export of the summary report.

  • Fixed an issue with missing labels in the summary report export

    Resolved styling issue that made labels invisible for the summary export.

  • LDAP users can be created without a password

    Local users require a password. The creation of new users required a password, that matched the configured password policy. LDAP users do not require a password stored in our database. This is because our system always verifies the password with the LDAP system, and never stores the LDAP password. If an admin user wanted to create and configure a new LDAP user before they logged into our system, this was not possible as the empty password would fail the password validation. This change now allows LDAP users to be created without a password, while still validating local users. If the user source changes to a local user, a password will be required.

  • Fixed an issue with RabbitMQ connection for backend components

    In certain cases, a connection issue could occur towards RabbitMQ from several of the backend components (chronos, griffon and merlin). This has now been resolved.

v3.6.7

May 11, 2022

Bug fixes

  • Hidden navigation links

    Resolved an issue where navigation links were unintentionally hidden

v3.6.6

May 9, 2022

Bug fixes

  • Fixed an issue when creating a new budget revision

    Not all budget items were copied over for new budget revision. This has been resolved now.

  • Fixed an issue when switching reports from the rates screen

    Switching reports while on the rates screen could cause an error. This has been resolved now.

  • Fixed an issue with Adjustment policies

    Previously the adjustment policies screen would become inaccessable.

  • SQL errors during report generation should now cause workflows to fail

    Previously, when running a report if a SQL error occurred while writing the report data to the database then the workflow would still complete with a success status. This has now been changed and the workflow will fail.

v3.6.5

April 26, 2022

New features

  • Improved API functionality for PATCH requests

    Previously, PATCH requests would return an error if the 'name' attribute was supplied in a request. Now, as long as the value hasn't changed, it is possible to supply this field in a valid request.

  • Removed unused API routing

    There were some unused API routes that could lead to confusion for customers. We have removed these to simplify the API.

Bug fixes

  • Fixed an issue where multiple 'services' blocks are used in the same Transformer

    If a transformer script contained multiple 'services' statement blocks, and if any except for the last of them didn't see any new services to create then an internal error would be logged and the job would fail. This has now been fixed.

  • Fixed an issue with inherited rates for manual service subscriptions

    If an account was inheriting a custom rate set for a service at a parent (or higher) level of the account structure then subscriptions for that service would be charged at the global rate. This has now been fixed.

  • Fixed an informational message when creating an Adjustment for Service Categories

    Resolved an issue where the user wasn't shown a warning when selecting a category that included a service with a charge type that is not supported for adjustments.

v3.6.4

April 1, 2022 🐸

Bug fixes

  • Fixed a time-out issue for long-running jobs with newer RabbitMQ releases When the system was using a RabbitMQ server version higher than 3.8.15, it was timing out for long-running processes before they were finished in the background. This is now fixed and all processes are ending without being timed out.
  • Fixed a rare issue with quantity adjustments With certain combinations of quantity and price adjustments, it could be that if the last quantity adjustment resulted in a negative quantity then no compensation to bring the final quantity up to zero would be applied. This has now been fixed.

v3.6.3

March 17, 2022

Bug fixes

  • Solved an issue when creating global rate revisions through a Transformer Transcript was considering rate revisions to be the same when they were different by approximately 0.001 or more, therefore new revisions weren't being created. This comparison should now detect differences greater than 0.00000001 and will create new rate revisions accordingly.

v3.6.2

March 9, 2022

Bug fixes

  • Fixed an issue with non-escaped quotes when importing data into a Transformer When importing data into a Transformer, if option noquote is enabled then non-escaped quotes will no longer cause the import to fail.
  • Fixed a memory leak in the 'match' statement in Extractor scripts When using the 'match' statement many times in a loop, memory consumption would increase significantly. This issue has now been fixed.
  • Fixed an issue when displaying services in the rates screen When services from different datasets were linked to the same service category, all services in that category would show up in the rates screen, regardless of the dataset/report they belong to. This has now been resolved to honour the dataset a service belong to.

v3.6.1

February 21, 2022

Bug fixes

  • Fixes issue with incorrect status for workflow runs When a workflow run was interrupted during execution, the status of the run could not be read by the API.

v3.6.0

February 16, 2022

New features

  • Rate tiers The charge engine and reports now support tiered rates (beta feature)
  • Improved API documentation The API documentation has been overhaled, with more information and new examples added. Hopefully this will make using the API easier for users.
  • Signed backend components Backend executables are now code signed to avoid false-positive hits from A/V scanners.
  • SAML Token added to garbage collector For SAML users, a new SAML Token table has been added to the system. To make sure this doesn't grow to large over time, removing expired tokens has been added to the garbage collector.
  • Add key selector to resources at rate screen At the rate screen, added the possibility to select key as label and filter for services and accounts.
  • Added Extractor support for uppercase and lowercase of values
    Following is now possible in order to change casing of values in an Extractor: uppercase var_name | {buffer_name} lowercase var_name | {buffer_name}
  • Adding "last day" as possible charge model to services It is now possible to have a service charged on the last day of a month. The "last day" charge_model has been added to services to allow this.
    Please not that this applies to monthly services only.
  • Improve service validation on charge_model attribute The charge_model validation has been improved. Now the interval will be validated with the charge model.

Bug fixes

  • Fixed an issue which could cause workflows with a "Publish Report" or "Evaluate Budget" step to fail
  • Fixed incorrect payload sent to the IdP server when logging out using the SAML2 SLO endpoint The payload sent to the IdP server did not contain the correct NameID data needed to link the session to the user logging out. This was causing the logout process to fail in some situations.
  • Reset password redirect Resolved issue where a user could be redirected away from the reset password page.
  • Long JSON parslets are no longer truncated at a short length than they should be When expanding a JSON parslet, the maximum length of the resulting data is truncated at a shorter length the maximum allowable length of 8095 characters. This has now been fixed such that up to 8095 characters can be retrieved by a parslet.
  • Negative uplifts and adjustments for instances Fixed an issue where negative uplifts/adjustments were not visible under the instances report of summary.
  • Resolved an issue where an optional webhook notification input field was treated as required.
  • Recurring subscriptions end date bug When creating a recurring subscription, an error was shown if no end date was supplied. Recurring subscriptions should not require an end date. This has now been fixed.
  • Update resources relationship missing data exception When updating a resource's relationship with missing data attributes, an exception was thrown. This shouldn't be required. Now this will now only happen if the data is null.
  • Fixed an issue when using the word 'subroutine' in a 'print' statement Previously, a 'print' statement that had the word 'subroutine' as one of its arguments would cause the script to fail to execute. This has now been fixed.
  • Improve validation by enforcing maximum adjustment numbers For a given Account and given Service, no more than 16 Adjustments policies are allowed to be active at the same time. Validation has now been added for this.
  • Fixed an installer issue when using remote RabbitMQ server Previously the interactive installer would write an invalid/incomplete config.json when providing a remote RabbitMQ server. This has now been resolved.

v3.5.7

December 01, 2021

Bug fixes

  • Fixed an issue when installing RabbitMQ locally When using the interactive installer and installing RabbitMQ locally, the installer would store invalid values for the RabbitMQ configuration. This has now been resolved.
  • Fixed an issue when system returns from hibernation If a Windows system that is running the "Exivity Backend Service" would return from hibernation mode, the service (merlin.exe) would not recover and remain in a broken state. This has been resolved.
  • Fixed an issue with the Transformer editor Resolved a corner case whereby the editor could break when using Transformer editor code snippets.

v3.5.6

November 22, 2021

Bug fixes

  • Adjustment type Fixed an issue where the type of adjustment was always shown as premium.

v3.5.5

November 19, 2021

New features

  • The name of the EXIVITY_AGGR_COUNT column created by the 'aggregate' statement is now configurable

    The 'aggregate' statement now supports an optional parameter (called 'counter_column') which allows you to specify the name of the column into which the aggregation counters will be written. Please refer to the 'aggregate' documentation for more details.

  • Transformer scripts will now log a warning if no RDF files were updated or created

    When running a Transformer script that does not create or update an RDF file using the 'finish' statement, a warning will be written to the log to that effect.

  • The 'terminate' statement in a Transformer will now accept 'with error' as optional parameters

    The statement 'terminate with error' is now supported by Transformer scripts and will cause the processing of the current day to abruptly end. A message will be written to the logfile to the effect that the error was explicitly requested and the task will terminate. If the 'continue' option is enabled, processing will resume on the next day in the range (if a range was specified) else the workflow will exit.

Bug fixes

  • Fixed an issue when executing quoted scripts from a workflow

    When a script (i.e. Powershell) was quoted in a workflow step, the workflow would not execute the script. This has now been resolved.

  • Fixed an installer issue

    When installing RabbitMQ into a program path that contains spaces, RabbitMQ could fail to install the service. This has now been resolved.

  • Increased the number of API handlers

    This release now runs 18 concurrent API processes running on a node with the API service installed to allow a higher number of parallel requests to the REST API.

  • Fixed an issue with report level labels

    Fixed an issue where report labels weren't updated.

  • Fixed an issue with the Adjustments

    Resolved an issue where details in some cases weren't reflected in the form of the Adjustments screen.

  • Fixed issue with archiving old log files

    In some cases, collecting old log files resulted in archiving some files that were already archived before.

  • Fixed issue with updating an extractor

    When an extractor was updated with NULL arguments, the request was incorrectly considered invalid.

  • Fixed an issue when creating budgets

    Resolved an issue where there was unexpected behavior when creating a multi-level budget in the GUI

  • DEBUG level logs no longer contain the value of parameters provided to subroutines

    The values of parameters passed to subroutines are no longer included in DEBUG level logfiles as such values could potentially contain sensitive data

  • Fixed an issue when viewing proximity log

    Solved an issue where certain log types caused the log screen to fail.

  • Fixes issue with some users not being able to change password

    Some users with view_report permissions only were not able to change their password. This issue has now been fixed.

  • Log message could contain metadata

    Logs entries can contain 'context' to help debugging. This is usually one JSON string. Some log entries could contain multiple contents, which was unexpected. Now if this occurs, these contexts are merged into one JSON string.

  • Fixed an issue when clicking arrow list

    Solved issue where a list could disappear when clicking the arrow in a dropdown list in the GUI

  • Fixed an issue with the report level filter

    Resolved an issue where a default report level wasn't selected when selecting a new report in the GUI

  • Clarified the log entry written if an extractor script has an unmatched double quote on the last line

    In cases where the last line of an extractor script has an unmatched double-quote, and that last line is also not terminated with a carriage return, then an internal error would be generated. The result is correct (the script will not execute) but the error has now been changed to clearly indicate the exact nature of the problem.

  • Fixed an issue related to sorting of datasets

    Resolved an issue with the date sort of datasets in the GUI

v3.5.4

September 15, 2021

caution

Release Candidate - available to selected users only

New features

  • Added more information to audit logs when deleting services The audit log now contains the service key when a service is deleted. Previously it recorded the event,\ but did not include specific information about the service itself.

  • Added Filtering on workflow-step type The feature allows users to filter workflow steps by type.

  • The installer has now valid code signing applied

    As of this version, the Exivity installer will be signed using the Exivity code signing certificate in order to increase the security of the distributed installer package.

Bug fixes

  • Increased the number of API handlers This release now runs 18 concurrent API processes running on a node with the API service installed to allow a higher number of parallel requests to the REST API.
  • Fixed an issue with overwriting a Lookup table Solved an issue where saving a lookup could lead to unexpected behavior
  • Fixed an issue with user notification subscriptions Solved an issue where it was not possible to save a notification as a user
  • Fixed an issue when exporting the Consolidated Summary report Solved an issue where the consolidated export was only exporting the first account
  • Fixed a security issue related to User Access Control Solved an issue where the cache was not properly cleared and as such, the user could view invalidated data.
  • Fixed an issue with sorting service names in the summary report Services in the summary were sorted on ServiceName instead of Service Description. This has now been resolved.
  • Fixed an issue where a certain type of invalid XML parslet would cause an extractor crash
    In rare cases, using an XML parslet to extract an attribute value could cause a crash. This has now been fixed.
  • Fixed missing budget filter "service" bug When a user selected the "service" filter in a budget, this data was not stored correctly. This fixes this issue.
  • Fixed an issue with auto-completion There was an issue where auto-completion of example blocks in the Extractor/Transformer editor would not support "tabbing-through" function parameters. This has now been resolved. Additionally, an issue was fixed where the "rename" function would autocomplete wrongly to "convert".
  • Fixes issue with links generated from singular form of the resource type Links for relationships inside responses were generated using the singular form of the resource.
  • Fixes issue with incorrect links generated inside responses When a response contained a "link" attribute, it was incorrectly generated.
  • Better handling of hash and whitespace characters in quoted strings within extractor scripts
    Previously, a hash symbol at the start of a word in a quoted string literal would be treated as the start of a comment, causing the string to be truncated and an "Unmatched quote" error generated. Additionally, quoted strings containing multiple consecutive whitespace characters would be modified during execution such that they were replaced with a single space. These issues have both been fixed.

v3.5.3

August 27, 2021

caution

Release Candidate - available to selected users only

Bug fixes

  • Fixed an issue with the ordering of headings in the Transformer Preview ****There was an issue where the Transformer Preview would sort the headings in reversed order. This has now been resolved.
  • Fixed an issue when creating a Transformer from a template ****When creating a transformer from a template, after creation the GUI would show a "leave the page" popup. This has been resolved.
  • Fixed an issue when creating an Extractor from a template When creating an Extractor from a template, after creation the screen would not switch to the Variables tab. This has now been resolved.
  • Resolved issue where the user couldn't set alt_interval The user couldn't save a subscription that used alternative intervals because of invalid values. This is now solved.

v3.5.1

August 18, 2021

caution

Release Candidate - available to selected users only

Bug fixes

  • Fixed an installer error for the workflow migration script PHP environment errors could show up in the installer log during the execution of the workflow migration script. This has been resolved
  • Added cleanup steps to uninstaller to remove PSQL and RabbitMQ traces
  • Hidden scrollbar preview Resolved issue where the scrollbar wasn't visible in a Transcript Preview.
  • Fixed an issue with environments and global variables in Transformer scripts Attempting to use different environments, and the global variables within them, in a transformer script may have caused an error and the script to fail. This has now been fixed.
  • Workflow status Resolved an issue where the GUI could crash because of an invalid status state

v3.5.0

July 26, 2021

caution

Release Candidate - available to selected users only

New features

  • Implemented account lockout strategy User accounts will now get locked out for 15 minutes after 5 consecutive failed login attempts.
  • Account names are now set by the latest date seen Previously, when preparing reports account names were set based on the last data to be processed, even if that data was older than that used to originally set the account name. Now, when accounts are being synchronised during the report preparation process, names will only be updated if the data being processed is newer than that which was used to last set or update the name.
  • Increased calculation precision in Transformer scripts The precision of calculations in Transformer scripts has been increased to 14 decimal places.
  • Added new log files to the log rotation policy Log files generated by the Notification component and by the new Scheduler component are included in the log rotation policy.
  • Added the option to run a workflow for a date range When running a workflow manually, you can now choose to run it for a date range, not only for a single date. When running against a date range the steps are executed individually for each day in that range.
  • Redesign of the Data Pipelines > Workflows screen Complete overhaul of the Workflows page, improving the configuration user experience for individual steps and making it easier to review associated step logs.
  • Added a cascading DELETE parameter to the API API now supports a new cascade: boolean query parameter. This parameter, if true, will allow the severing of non-nullable relationships and will remove the related record afterwards. This new parameter specifically applies to the workflowstep and workflowschedule endpoints.
  • Data aware report filters Report filters only show entities available in the selected reporting date range
  • Highly available scheduler The scheduler has been rewritten to support the new message bus architecture and has the ability to run on multiple nodes at the same time.
  • Creating a new report now requires the "all accounts" permission Only users that have access to all accounts will be able to create new reports. This avoids situations where a user could previously create a new report that was not visible after creation.
  • API support for changing user login method It is now possible to change an existing users authentication method to local, LDAP or SAML2. Currently this is only supported by invoking the the REST API.
  • Changed behaviour of logout when Single Sign-On is configured Exivity now allows the logout endpoint (SLO endpoint) to remain unconfigured, in which case the user will be logged out only from the application, not from the entire Single Sign-On environment.
  • Budget notification
  • Summary report notification Users can now choose to receive a pre-defined report in either CSV or PDF format through a notification
  • File available notification
  • Admin managed notifications Admin users and users with the manage_users permissions now have the ability to add notification channels and subscriptions to other users. This allows admin users to grant users subscriptions to notification types they would otherwise not have.
  • Minimum commitment and Adjustments included in cost summary subtotals Details of minimum commitments and adjustments are now included in the cost summary subtotals for service categories.
  • Webhook notification channel Allow webhooks as notification channel, forwarding the original event as JSON payload to a custom webhook URL
  • Implement internal communications between components using RabbitMQ message broker This allows for improved multi-node setups

Bug fixes

  • Fixed an issue with manually created accounts When creating accounts manually in the GUI, on occasion an account could be created which did not fit correctly into the account hierarchy. This has now been fixed.
  • Fixed and issue with updating account names When preparing a report, it could be that some account names were not updated when they should have been. This has now been fixed.
  • Fixed saving service resources including 'budgetitems' relationship When saving a service resource including the budgetitems relationship, an error was returned. This has been fixed and the relationship between service and budgetitems works both ways.
  • Fixed an issue with some combinations of HTTP methods in extractors In extractor scripts, making an HTTP DELETE request could cause subsequent HTTP calls to continue to use the DELETE method even if another method was specified. This has now been fixed.
  • Added the 'notificationsubscription' relationship for a user entity When requesting a user entity, the notificationsubscription relationship can now be included in the response.
  • Audit screen freeze Fixed an issue where the audit screen could become unresponsive
  • Fix Publish Report notification The clear option for the account field now works.
  • Fix state update adjustments Fixed an issue where a field wouldn't be updated when commuting to the next resource.
  • Subscription inherited rates Fixed some incorrect behavior with rate inheritance on the subscription management screen
  • Removed the limit of CSV files that could be open at once in extractor scripts Previously, a maximum of 16 CSV files could be open for writing in extractor scripts. This limit has now been removed and any number of CSV files can be open simultaneously
  • Fix decimal inputs Fixed an issue where an input would not accept a decimal value with leading zero.
  • Lookup file Fixed an issue where switching between lookup files wouldnt cause the screen to be updated
  • Show manually created service Solved an issue where manually created services where not visible before a browser refresh
  • Disclaimer modal Fixed an issue where the disclaimer had to be dismissed twice
  • Fixed an issue with compound MSSQL statements in extractors where the first statement is not a SELECT Usually, SQL statements executed in an extractor script are based around some form of SELECT. However in some cases more complex compound statements are required. Previously, a statement using a temporary table in MS SQL server, such as ... CREATE TABLE #jos(Name char(20)) INSERT INTO #jos (teller) VALUES ('2') SELECT * FROM #jos; ... would not return any results, as the INSERT statement returns an empty result set. Extractors now ignore empty result sets in such statements and return the first result set that is not empty (assuming there is any data returned by the query at all).
  • Fixed an issue with transformer scripts when importing data with non-escaped quotes Importing data with non-escaped quotes could sometimes cause Transformer scripts to fail. This has now been fixed.
  • Fixed types for returned attributes When accessing various endpoints, id attributes were returned as integers instead of strings. This was fixed to comply with JSON:API specifications.
  • Fixed incorrect display of date fields in slack notifications When a slack notification was sent, the date of the notification was wrongly set to sometime in the future
  • Fixed incorrect display of extra HTML tags in emails When emails are sent, some HTML tags were shown as text in the email body
  • Fixed an issue with encoding of double quotes when exporting account data as CSV
  • Fixed long delay when displaying a large number of budgets when including reports
  • Fixed an issue with displaying workflow start date in dashboard Previously the start date of a workflow was displayed incorrectly in the Workflow dashboard widget
  • Fixed an issue with creating adjustments There was a problem where the GUI did not allow the creating of adjustments that had a non-integar amount. This has now been fixed.
  • Fixed a divide-by-zero error on reports In corner cases where the final chargeable quantity for all line-items on a report is 0, a divide-by-zero error would occur. This has now been fixed.
  • Fixed the description of the 'Budget' permission This permission only provides access to the Budget report. In the previous version, the description of this group permission contained false information.
  • Fixed an issue when configuring a Budget for a leaf node If a leaf node in the budget structure has the distribution set to even or account, the Budget engine generated a false warning that an amount for the node is left undistributed. This has now been resolved.

v3.4.3

March 22, 2021

New features

  • Usage data generation based on consumption start/stop events Added functionality to produce usage data from consumption start/stop/update events, including the consumption which spans several days. See event_to_usage statement description in Transform documentation for details.

v3.4.2

February 24, 2021

Bug fixes

  • Fixed an issue with SAML user account access provisioning Previously, user account access provisioning would grant access to a matching account, including all its child accounts. With this release, the SAML user account access provisioning only grants a user access to the first matching account (i.e. with the lowest depth) in the account hierarchy.
  • Fixed an issue where reports could become invalid for certain user account permission configurations
  • Revolved a race condition related to preparing a report ****On rare occasions the actions of multiple users administering accounts and reports simultaneously could result in duplicate charges in reports. This has now been fixed.
  • Fixed a rare cosmetic issue when updating rates in ETL When executing a services statement in a Transformer, if there was an existing service rate revision with a different rate for the same effective date as a new revision then an error containing the text "incorrect binary data format" would be logged. This issue was cosmetic, but has now been fixed.
  • Fixed a very rare issue with minimum commit Resolved an issue whereby it was possible on extremely rare occasions for the minimum commit calculations applied to one service to be incorrectly applied also to other services in a report.

v3.4.1

December 08, 2020

Bug fixes

  • Fixed an issue with PDF export of the summary report In certain environments, the PDF export feature was broken. This issue has now been resolved.
  • Default SAML user group re-applied when a user logs in An issue has been resolved which caused the default user group to be re-applied when existing users were logging in through a SAML Identity Provider.

v3.4.0

November 17, 2020

New features

  • Executing a Reports now requires a valid license

Bug fixes

  • Fixed a minor issue with the calendar widget

  • Fixed a minor issue with the SAML SLS endpoint

  • Fixed an issue with custom rates and subscriptions

    Sometimes a subscription would not reflect changes in custom rates for a service. This has now been fixed.

v3.3.0

November 02, 2020

caution

Due to security considerations, starting with this release, each user is bound to the logon provider set in the source attribute. E.g. if a user has their source set to 'local', they can't log in with the SAML2 or LDAP SSO provider.

New features

  • Improved user provisioning (beta) Added options to provision user attributes from a SAML Identity Provider/AD response. It's possible to provision the users display name, username and email address.
  • Added claims based account access provisioning (beta) Added options to provision users permission levels using attributes from a SAML Identity Provider/AD. It's possible to provision both the usergroup and user account access (by matching either the account key or metadata value to a SAML/AD response attribute).

Bug fixes

  • Change to log filenames for extractors and transformers When scheduling extractors and transformers with workflows, the selected environment is now part of the log filename to distinguish their log files when they are running at the same time.
  • Fixed opening curly brace detection When opening curly brace wasn't preceded by space, sometimes it wasn't properly processed. It has been fixed
  • Improved error message on lookups screen Fixed an issue where a user might get a confusing error message when saving a lookup file.
  • Fixes initializing directories in home directory There was a bug when the home directories were initially created and two directories were wrongly created in the /home directory.
  • Improved support for UTF-8 in usernames

v3.2.7

October 09, 2020

New features

  • Added support for the Safari web browser

    Exivity now supports the Safari web browser

  • Added ability to set custom escape character in Transformer Previewer Added a dropdown to the transformer previewer where the client can select which escape character to use during Transformer preview mode

Bug fixes

  • Fixed an issue with the Dataset Manager Resolved regression issues regarding the display of RDF dates
  • Fixed an issue with report filters There was a bug if a user accidentally submits a string instead of a number on filtering 'parent_account_id' with report. This is now being fixed
  • Fixed an issue with displaying workflow start times in the workflow list The time column of the workflow list omitted the hour at which the workflow would run for daily and monthly workflows
  • Resolve global variables in "uri" statement In some statements (i.e. uri) global variables weren't properly resolved. This has now been fixed
  • Fixed an issue with COGS charges for services with an average monthly charge model COGS charges for monthly services that used the average charge model could be slightly lower than they should be, as the COGS rate for the first day seen was not factored into the rate averaging. This has now been fixed
  • Fixed an issue when managing rates ****An aggregation_level error could occur when updating rates. This has now been resolved.

v3.2.5

September 30, 2020

Bug fixes

  • Improved error message when creating invalid revision When creating a duplicate rate revision for the same effective date, an appropriate error message is now shown
  • Improved error message for LDAP Added a more meaningful message when unable to connect to an LDAP server
  • Service Category names must be unique It was possible to have duplicate service category names. This could lead to confusion and has now been resolved. The Service Category name must now be unique
  • Resolved a timezone offset issue for Workflows Resolved an issue where timezones were incorrectly applied when creating workflows
  • Resolved an issue with the Reports menu Fixed an issue where the report screen would crash after selecting multiple reports

v3.2.4

September 9, 2020

Bug fixes

  • Increased the boundaries of some USE arithmetical operations

    The operators +=, -=, *= and /= were limited to a 32-bit range and this could cause an overflow in certain real-world applications. The range has now been increased to match that of the other arithmentical operations which is based on the range of a 64-bit floating point value: 1.7E +/- 308 (up to 15 digits).

  • Fixed an issue where the CSV export of the instance report could fail The CSV export of the instance report did not work when the usage column was included and some of the instances did not have any usage data

  • One-off subscriptions should ignore the charge_day field Only recurring subscriptions require the "charge day" field, but it was required for all subscriptions. This has now been fixed

  • Fixed a decimal precision issue with the timeline graph The Y-axis of the timeline sometimes displayed long floats. To resolve this the precision has been fixed to two decimals

  • Fix for "space" as thousand separator It is possible to select different symbols as a thousand separator for large numbers shown to users. One of the options, space (" "), was not saving correctly. This has now been resolved

  • Fix error handling transformer Fixed an issue where it was possible that a failed transformer error was not processed properly which prevented the transformer from giving the user feedback

  • Added index to speed-up report preparation During report preparation, Edify executes several queries to the adj_lookup table. An index has been adding to this table to improve performance

v3.2.1

September 1, 2020

  • Quantity and Charge Adjustment are now handled in strict order
    As of this release, quantity adjustments are applied first and before any charge related adjustments. This in turn enables the ordering of individual adjustment policies.
  • Implemented translations settings _(Beta)_ Implemented an automatic translation feature for Dutch, German, and French. This can be configured on a system or user level. Currently, this is released as a beta feature.
  • Delete old Nginx log files Old Nginx log files will now be deleted by the garbage collector. This will help reduce disk space.
  • Improve user error page Updated the error page to improve user experience. Customer logo will now be shown here, if it has been set.
  • Adjustment API endpoint will now accept order In the past, there was no way to reorder adjustments. Users had to delete and recreate them to do this. This has now been solved. The order field now takes in an order number. If this is not used, the current functionality will still work, using the creating date instead.
  • Reports can now include adjustment name The adjustment name can now be added to a report. This is useful for report users that do not have access to view the whole adjustment.
  • Support in UI for changing the order in which Adjustments are applied Since it is possible to create multiple Adjustments for a single account, they may affect each other. It is therefore desirable to have the ability to control the order in which they are applied. As of this version, it is possible to change the order in which Adjustments are applied.

Bug fixes

  • Fixed an issue when partial preparing manual services When partial prepare kicks in, it previously skipped manual services. This has now been resolve.

  • Fixed SAML ACS invalid schema error Some users were experiencing an Invalid Schema bug when accessing the /v1/auth/saml/acs endpoint. This has now been fixed.

  • Fixes "Nginx Log File" not found error The location of some log files could not be found. This has been resolved.

  • Improved invalid token handling Changed how this error is logged. It will now be treated as a notice instead of a warning.

  • Fixed an issue with running transformers

    In release 3.2.0 there was a problem running transformers from the GUI. This has now been fixed.

v3.1.5

July 21, 2020

Bug fixes

  • Premature validation warning

    Resolved an issue where a user could get a premature validation error for certain input fields.

  • Fixed an issue with the budget report

    With certain budget configurations, the budget report would display a message instead of the report even if the budget configuration was valid. This has now been resolved.

  • Improved user message when execution time is exceeded

    Improved the message when the execution time of an Extractor, Transformer or Report is being exceeded

  • Fixed an issue with budget leaf account distribution When configuring a budget for a budget leaf, the distribution setting will be forced to be of the type "shared"

  • Fixed an issue when deleting services Previously it wasn't possible to delete a service if it still had any associated rates. This behavior has now been corrected so that services including its relationships will be deleted

  • Fixed an issue with the Garbage collector exits code The Garbage collector would previously always return an exit code of 259 when invoked manually. This has been resolved

  • Fixed an issue where subscriptions could show up on more than one report In some cases, a subscription (created for an account associated with a specific report) could be shown when a different report was run. This has now been fixed

  • Fixed graph image export ****When exporting a graph chart (i.e. Pie, Bar, Line) in any of the reports (Accounts, Services Instances) the file download would not start. This has now been resolved

  • Restored indicators for account access list ****Pencil-like indicators will inform the user where nested accounts have been selected. This functionality was unintentionally removed from the user management screen but has been placed back

  • Horizon performance improvements Implemented two seperate changes to improve Horizon budget execution performance. (1) budget gets validated only once after a budget configuration change and (2) added a new database index to improve database query execution

  • Always show decimal values Resolved an issue where some values would be displayed using their scientific notation

  • Resolved issue when deleting services Fixed an issue where the user would get an error when making multiple delete requests for services

v3.1.2

July 3, 2020

New features

  • Ability to skip database backup when updating ****When updating the software, the user can now skip the PostgreSQL database backup to improve update speed

Bug fixes

  • Fixed an issue with the webproxy.conf proxy_pass URL

    When updating the software, the proxy_pass URL for the webproxy.conf NGINX configuration was always reverted back to https://127.0.0.1:8002. This has now been resolved

v3.1.1

June 28, 2020

caution

Fixed charges no longer available As of version 3.1.0, we're removing fixed charges (or: interval-based charges) because of the limited amount of use cases and low customer adoption with this feature. In case you are an Exivity customer and are still using this service parameter, please reach out to [email protected] so we can provide you with alternative solutions.

New features

  • Improved auditing when managing accounts manually Added a number of new audit points when performing manual account management
  • Auditing token creation correctly logs client IP address when API is behind a proxy server
  • Updating user profile information now requires providing the current password
  • Implemented current password validation A user is now required to enter his/her current password before any changes to its profile are applied
  • Added logging audit entries for metadata, service subscriptions, and budgets

Bug fixes

  • Fixed an issue where some users could select budgets even if it would not contain any details
  • Fixed an issue which sometimes caused the workflows screen to load for a long time
    A resource-intensive operation that ran whenever the workflow page is visited got removed
  • getCUPRs function ported to PSQL getCUPRs function was changed from using SQLite global DB to PSQL global DB
  • Mitigated a potential security issue (internal reference EXVT-3773)
  • Fixed an issue were sometimes log files would appear malformed in the Transformer run tab
  • Reverted the way a user deletes an RDF
  • Fixed form behavior in rates screen
  • Fixed "other" option behavior at services
  • Fix report filter When switching reports, some of the filters were not reset and appeared unused while they actually held a value not related to the currently selected report. This made the reports appear empty. This has been resolved.
  • When the API runs out of memory (possible for very large reports) it will respond with a descriptive message
  • Incorrect display of minimum_commit_delta_charge and minimum_commit_delta_quantity
    When a minimum commit quantity was set for a service rate revision, the resulting charges could show up incorrectly by having the quantity and minimum commit delta swapped on the reports

v3.0.5

May 26, 2020

Bug fixes

  • Fixed issue at /lookups where in specific cases an error was undefined

  • Fixed issue where user was shown an incorrect validation warning When providing a number with more then one decimal, the user interface would show an error message. This has been resolved.

  • Added cache check in partial preparation There was an issue that partial preparation code didn't check for cache table presence before analysis, which caused execution errors, and it has been fixed.

  • Fixed escape option behaviour in 'import' There was an error that '\"' sequence was always treated as escaped quoted even when 'escape' option switched off (default), it has been fixed.

  • Rate revision date never changes Transcript was trying to change rate revision date when it detects an attempt to create new revision with the same attributes but earlier date, which conflicted with database constraint, so it was removed in order to avoid execution errors.

  • Fixed issue where line breaks were not shown When providing an address for the summary report with multiple new lines, only the first would be shown. This has been resolved.

  • Fixed undefined tool tip at workflows The was a column which showed a tool tip with undefined as value. This has been resolved.

  • Select a single date for transformer run After introduction of a new calendar, the single date selection was missing. This has now been resolved.

  • Services and categories at subscriptions are now alphabetically sorted

  • Fixed an issue where dataset columns were missing After repreparing a report, the columns associated with a dataset were not visible. This has been resolved.

  • Fixed visibility newly created dataset When running a transcript, newly created datasets were only visible after refresh. This has been resolved.

  • Show red underline when incorrect value for textarea input

  • Show correct validation values when saving environment

    When saving an environment, we will now show the correct error messages for missing values.

v3.0.4

April 30, 2020

New features

  • New feature: Subscriptions ****When Beta features are enabled, users can now create one-off and recurring daily, monthly or yearly subscriptions for services for which a metered data source is not available.
  • New feature: Workflows widget When Beta features are enabled, a new Workflow traffic-light widget will be shown on the main Dashboard page.
  • New feature: Global Variables When Beta features are enabled, users can now manage Global Variables under System Administration. This enables users to decouple Extractor and Transformer variable values from scripts thus supporting different values on a per Exivity instance basis without changing underlying scripts.
  • New feature: Metadata for Services Metadata can now be added to all services just like with accounts. Define a metadata definition first, then attach the definition to a dataset in Data pipelines > Datasets. All services in this dataset will now use this set of metadata fields. Metadata information itself can be added and modified in Services > Overview and is available in the services reports.
  • Increased rounding of set to match calculate statement The Transformer set and calculate statemets now have had their rounding precision increased to 12 decimal places.
  • Added more information to the summary report The summary report now contains the following additional columns: service_key, account keys (between 1 and 5 inclusive depending on the report), start_date, end_date. These columns are also included in CSV exports.
  • Improved quoting in exported CSVs To avoid potential complications with Excel, any cell values in CSVs exported from Exivity that are not numbers and begin with any of the characters =,+,- or @ are now preceded with a single quote.
  • A new setting has been added to allow users to stay logged in. If disabled (default), users need to log in each time they open Exivity in their browser.
  • Administrators can now set the token lifetime. When the token lifetime expires, users need to log in again.
  • Added ability for users to log out of all devices.
  • Mitigated a potential security issue (internal reference EXVT-3457)
  • Mitigated a potential security issue (internal reference: EXVT-3455)
  • Mitigated a potential security issue (internal reference EXVT-3270)
  • Implemented a new charge model for monthly services The charge for a monthly services may now be based on the usage of a specific day in the month.
  • Improvements in report performance Reports are now pre-loaded in the database which speeds up report loading times in the GUI.
  • Added support for LDAP authentication LDAP authentication was available as beta feature already, and is now generally available. A guide will be added to our documentation soon. Configuration options are available in the Settings screen (Single sign-on tab).

Bug fixes

  • Fixed an issue with manage_metadata_definitions Granting the "Manage Metadata" permission is now possible when creating a security group
  • Fixed an edge case for incorrect net value on accounts table Whenever cogs or charge had 0 as value the net value wouldn't be displayed correctly on the details table of the accounts report.
  • Fixed an issue when creating a manual service Manual per unit cogs type services will not require cogs column
  • Fixed invalid format issue metadata lists Previously empty lines we're persisted as list option. Options are now trimmed and validated before persisting.
  • The API now requires additional attributes for certain service types
  • Fixed a small issue with the metadata selector in the report management screen
  • Removed toolbar from PDF export The Summary report PDF export included the toolbar on the top of every page of the PDF document. This has now been removed.
  • Fixed an Extractor XML parsing issue USE could previously fail when iterating over an empty XML node inside a foreach loop. This has now been resolved.
  • Fixed modified display issue in Accounts Overview When switching from Account Name to Account Key in the Accounts Overview screen, the modified state / pencil icon disappeared previously. This has now been resolved.
  • Fixed an issue when scrolling in the Accounts Overview When having a large amount of Accounts in a report definition, the Accounts Overview screen could generate cosmetic glitches when scrolling
  • Fixed a Transformer issue with skip_corrupted_records When import option skip_corrupted_records was set, import could fail if last column in the record is missing closing quote. This has been resolved.
  • Fixed a Transformer issue with aggregate ****When using the aggregate max function, Transcript could pick the wrong value.
  • Fixed a false warning about invalid COGS type in the logfile When preparing reports, in some cases a lot of warnings would appear in the logfile that state: Invalid cogs_type (0) in database for service ID nnn where "nnn" is a service ID. This was a false warning and could be ignored but looked concerning and could lead to larger logfiles. This issue has now been fixed.
  • Removed "remainder" option from lowest level accounts when setting budgets When a budget is set for an account at the deepest report level, the "remainder" option is no longer shown, as there are no sibling accounts to share the budget with.
  • Fixed an issue where (harmless) SQL errors could be logged when deleting services When deleting services, SQL errors could be present in the logfile for days where reports that reference those services had not been prepared. This has now been fixed.

Upgrading to version 3

note

Please ensure to read and understand all subjects that are mentioned here. Implement the suggested changes (where applicable) before upgrading to version 3 to avoid unexpected behavior.

danger

Upgrading to a v3.x.x will require upgrading to version v2.10.x first. The installer will verify this and displays a warning when this requirement is not satisfied.

PostgreSQL

The biggest single change is the use of a new database engine powering all application states, audit logs and processed report data. Upgrading to this new database engine is transparent and the installer will take care of installing the database server as part of the regular installation process. After or during the upgrade, it is possible to leverage an external database server.

Windows Services

In version 2.x.x there were only two Exivity Services installed:

Windows Services with Exivity version 2.x.x

With Exivity version 3.0.0 up to version 3.4.3, assuming all components are installed on a single host system, there was a total of 4 different services:

Windows Services with Exivity version 3.0.0 and =&lt; 3.4.3

As of version 3.5.0, the following Exivity services are to be considered when all components are deployed on a single host, there will be 7 different services:

Windows Services with Exivity version 3.5.0 and higher

In case you were using a service account in Exivity version 2.x.x for the Exivity Scheduling Service and the Exivity Web Service, you will have to reconfigure this service account for both services, as well as the Exivity API Service. In most cases, the Exivity Database Service may continue to run un the Local System account.

caution

In case your current Exivity version 2.x.x installation runs inside an Active/Passive Windows Cluster, you will need to re-register the Cluster Roles for the Exivity Scheduling Service. Additionally, a new Cluster Role should be created for the Exivity Database Service, in case you decide to not use an external database host.

Default TCP ports

In v2.x.x, the default port for the Exivity GUI was 8001 and 8002 for the Proximity API. Both services were already available through port 443 (the default port used for HTTPS traffic, which means clients don't have to explicitly specify the port) and in v3.x.x this will be used by default:

Default using port 443 for both UI and API

This is achieved by shipping a web proxy configuration for Nginx, which routes all requests starting with /v1/ to port 8002 and all other requests to port 8001. The recommended configuration is to not expose port 8001 to the public and only accept incoming traffic on port 443. Port 8002 may still be opened to external hosts, typically in a configuration where the Web and API/Backend components are deployed as separate hosts. In such a scenario it is advisable to allow communication from the Web node towards the API/Backend node on port 8002.

Default Security Settings

As of Exivity version 3, more strict security settings are applied by default. These can be found under Administration > Settings. One important item which should be considered when upgrading a multi-node environment is the use of CORS. It is required to list all possible front end UI nodes in the CORS origins field:

Administering security settings

Multiple hosts including https:// may be added while separating each URL using a , (comma) symbol. Wildcards may also be used as part of the hostname to match multiple URLs in one go such as: https://*.cors.exivity.io. An overview of all current security policies can be found here.

Transformer changes

@FILE_EXISTS and @FILE_EMPTY

The @FILE_EXISTS and @FILE_EMPTY functions in Transcript have been modified in a manner that may require changes to scripts that use them.

Previously, it would only check for files in the system and exported folders within the Exivity home directory, and if a specified path + filename did not start with system/ or exported/ then these would be prepended automatically before the check was done.

This behaviour has been changed in the following ways in v3.x.x:

  • Any path + filename within the Exivity home directory can now be checked
  • path + filenames are now accepted and treated as being relative to the Exivity home directory
  • The folders system/ and exported/ are no longer automatically prepended

Consider a file somefile.csv in the %EXIVITY_HOME_PATH%/exported folder. Previously with version 2.x.x a user could check for the existence of this file using the following example:

v2: FILE_EXISTS statement auto-prepends exported / system

In version 3 it is required to include the entire path relative to the %EXIVITY_HOME_PATH% :

v3: Path must be relative to %EXIVITY_HOME_PATH%

caution

This change may require modifications to existing Transformer scripts. This is because the system and exported will no longer be automatically prepended.

Extractor changes

HTTP server certificate validation

The default behaviour of the HTTP subsystem in USE was changed to fully validate server SSL certificates, which may cause some USE scripts to fail. This typically applies to data Extractors, which are connecting to on-premises data sources that use self-signed SSL certificates. In version 2.x.x, the default behavior was to ignore these certificate errors. You can identify these errors in your Extractor logs:

Identifying Certificate Errors in the Extractor logs

It is highly recommended to use valid SSL certificates, properly signed by a trusted CA (Certificate Authority). However, it is still possible to switch certificate validation off by specifying set http_secure no in an Extractor script before executing an HTTP request.

caution

The above will apply to all of your Data Extractors where you are connecting to (most likely internal) data sources which are using self-signed certificates. Make sure to apply this change before upgrading to v3 to avoid any data extraction errors.

Extractor & Transformer Schedules

In version 2.x.x it was still possible to schedule an Extractor or Transformer from the editor screen. This feature is removed from version 3.x.x. In case you still have schedules that are configured through this interface, you should Unschedule these and create an appropriate Workflow **** instead.

Example v2.x.x Schedule which will be removed in version 3.x.x

GUI changes

There are some minor changes in the GUI that are not backwards-compatible:

  • We removed the Excel export options from the reports. They were using the CSV format under the hood (i.e. they never actually produced valid Excel worksheets). In the future, we plan to implement proper Excel export formats for the reports, including a full summary report Excel export.
  • Removed functionality that would take a custom API port from the #port=xxx location hash parameter on the login screen. Specifying a custom API port (and hostname) is still possible by setting up a config.json file on your system.

Changes to data processing for reports

Due to changes to the processing of reports, when making changes to either services, rates or adjustments, associated reports should be prepared. In v2.x.x this was already required when making changes to services or rates. Since v3.x.x this will be also required when making changes to adjustments. We've planned further improvements to make this more transparent (i.e. handling the preparation of reports automatically in the background).

API changes

Normalised date/time data in responses

Some endpoints were returning dates and timestamps in different formats. This has been normalised in such a way that all responses use the same serialization for dates and timestamps:

  • A date is always represented as ISO-8601 string: "yyyy-mm-dd", e.g. "2020-01-29"
  • A date/time is always represented as ISO-8601 string in UTC: "yyyy-mm-ddThh:mm:ssZ", e.g. "2020-01-29T11:26:52Z". Note that the Z suffix denotes the UTC time standard.

This affects the responses (attributes) for the following group of API endpoints:

  • /v1/audit
    • created_at
  • /v1/budgetrevisions
    • effective_from
  • /v1/dsets
    • earliest_rdf
    • latest_rdf
    • rdf_detail.created
    • rdf_detail.updated
  • /v1/extractors
    • last_modified
  • /v1/log
    • created
    • lines.date
  • /v1/reports
    • data_status.first_date
    • data_status.last_date
    • data_status.status.date
  • /v1/services
    • created_at
    • updated_at
  • /v1/transformers
    • last_modified
  • /v1/workflows
    • created_at
    • updated_at
  • /v1/workflowschedules
    • start_time
    • next_run

Changed functionality

/v1/reports/{id}/run endpoint

  • The JSON format in the response is simplified. See examples below.

This is an example response from v2.x.x:

{
"report": [
{
"meta": {
// ...
},
"error": false,
"data": [
{
// ...
}
]
}
]
}

This is an example response from v3.x.x:

{
"report": [
{
// ...
}
]
}

Remove deprecated functionality

/v1/usergroups endpoint

Removed deprecated permission aliases.

  • upload_files (use manage_files instead)
  • manage_configuration (use manage_settings instead)
  • manage_system (use manage_settings instead)

/v1/reports/{id}/run endpoint

Functionality deprecated in v2.x.x has been removed. If you were relying on any of the following functionality, please use the suggested replacement instead:

  • The pdf/invoice option for the format query parameter has been removed. Please use pdf/summary instead.
  • The invoice_options query parameter has been removed in favour of summary_options.

/v1/configuration endpoint

  • Configuration keys prefixed with INVOICE_ are replaced by respective keys prefixed with SUMMARY_.

/v1/workflowsteplogs endpoint

Also relevant to other endpoints including workflowsteplogs .

  • Removed the last_log attribute. Include the last log by specifying the query parameters include=steplogs&related[steplogs][limit]=1&related[steplogs][sort]=-start_ts.
  • Removed the timestamp attribute. Use start_timestamp instead.
  • Removed the message attribute. Use a combination of status and output instead.

/v1/file endpoint

Only applicable to POST requests to this endpoint.

  • The filename in the response from this endpoint will no longer include the import/ prefix to better align for other requests in this endpoint. See the example below:
{
- "filename": "/import/generic/2020/01/31_uploaded_001.txt"
+ "filename": "/generic/2020/01/31_uploaded_001.txt"
}

/v1/usergroups endpoint

The following permissions have been removed in favour of their new counterparts:

  • UPLOAD_FILES has become MANAGE_FILES
  • MANAGE_CONFIGURATION has become MANAGE_SETTINGS
  • MANAGE_SYSTEM has become MANAGE_SETTINGS

Known issues

This page lists known issues with the latest version of Exivity. All isues that are resolved and released are mentioned under the Releases section.

Stacking of Quantity and Charge Adjustments Policies can cause negative charges

Affected versions

All versions of Exivity

Description

When creating two Absolute Discount Adjustment Policies, where both Policies apply to the same Account, Service and date Period, there is a chance of generating negative charges for the services where both Adjustment Policies apply to as can be seen in the following screenshot:

Workaround

The current workaround is to avoid stacking multiple Absolute Adjustments for each unique Account + Service combination. Instead, try to combine them within a single Adjustment Policy

Status

Since v3.6.4 this issue has been resolved.

Installing or Upgrading to version 3.5.6 populates invalid RabbitMQ settings

Affected versions

Exivity versions 3.5.0 till 3.5.6

Description

When installing or upgrading to version 3.5.0 - 3.5.6, when installing RabbitMQ on the local system, the initial configuration values are incorrectly populated:

Workaround

To work around this issue, you may uncheck the checkbox Install Local RabbitMQ Engine and then check the same checkbox again. The values will now be correctly populated.

In case you have already executed the upgrade progress and your system is broken, you will need to change the config.json to align the mq settings:

"mq": {
"servers": [
{
"host": "localhost",
"port": 5672,
"secure": false
}
],
"user": "guest",
"password": "guest",
"vhost": "/",
"nodeID": "TR2021",
"redialPeriod": 5
}

Status

This issue is currently being resolved (internal reference: EXVT-5042) and will be included with the 3.5.7 release.

Discount Adjustments are created as Premium

Affected versions

Exivity versions 3.5.0 till 3.5.5

Description

When a new Adjusmtent Discount policy is created, it will be created as a Premium policy instead. To confirm this behavior, when refreshing the screen they will show up as Premium:

Workaround

In order to create a discount policy in version 3.5.5, use the API interface to create one.

Status

This issue is resolved with the 3.5.6 release.

Installer upgrade generates an error: Error opening file for writing

Affected versions

Exivity versions 3.5.0 and higher

Description

When running the installer, an error could popup where the installer is unable to update certain files such as the erlsrv.exe executable:

Resolution

This issue occurs when Windows or a 3rd party application locks this file. This can happen with certain monitoring and anti-virus software. In the example given above, the solution would be temproraly stopping the Windows Event Log service, as shown in the screenshot below:

After stopping the service, click the Retry button in the installer.

Relative quantity discounts can cause negative charges with prorated monthly services

Affected versions

All version of Exivity

Description

When configuring a prorated monthly service, and then applying a relative quantity discount (adjustment), in certain cases the total charge can be less than 0 resulting in a credit. Although this might be an unusual configuration and might not always happen, it is important to be aware of this behavior.

Status

This issue is pending. (internal reference: EXVT-1337)

Exivity Backend Service does not start / access to merlin.exe has been denied

Affected versions

Exivity version 3.5.0 and higher

Description

Some Anti-Virus software vendors (specifically: McAfee and APEX) incorrectly flag the Exivity binary merlin.exe as a backdoor/trojan horse. As a result, the Exivity Backend Service might not be able to start as shown in the example below:

Backend Service might not be able tostart

The Windows event viewer may display the following error (depending on your A/V vendor):

A/V software may deny access to merlin.exe

Resolution

Response by certain A/V vendors:

[merlin.exe] is detected by [a coupe of] AV's as a BackDoor as it's functionality is very similar and malware authors can use this to their own advantage to compromise systems and gather sensitive system information.

We also understand that [merlin.exe] can be used for legitimate purposes and therefore we will change the classification of the sample submitted to PUP. This way will be able to exclude detection through our scanner configuration but at the same time we are still protecting our customers who may be not be aware of this software running on their systems.

Hence if you want to allow this application in your environment kindly exclude it by detection name.


Welcome

Welcome to the Documentation Blog. Here you will find information about:

  • our latest releases;
  • security announcements;
  • the archive