24th of July, 2025

Loome Platform Update: What’s New

We are excited to announce our latest Loome Platform update, packed with significant enhancements to improve your experience and productivity. This release introduces Loome Portal, a brand-new module designed to provide a unified, intuitive interface for managing and viewing all your assets and activities across the Loome ecosystem and integrated third-party platforms.

Beyond the new module, we’ve delivered substantial new features and performance improvements across our existing modules:

  • Loome Monitor now offers inline editing for results, customizable views and preferences, enhanced aggregate display and pivoting, and a reworked execution engine for significantly improved performance and reliability, especially with large datasets.

  • Loome Integrate benefits from reworked persistent staging for better performance and the addition of OneLake support for data loading in Microsoft Fabric.

  • Loome Assist features streamlined spend and usage retrieval from Azure for more timely insights.

This update also includes a framework upgrade for our Agent to .NET 8, bringing further performance gains and improved memory management, along with numerous minor improvements and bug fixes across all modules.

We encourage you to review the full release notes for detailed information on these exciting changes and the required Agent update. You can reach out to support@loomesoftware.com to for more information and assistance on any of these features.


Service Updates

Loome Portal: New Module

We are thrilled to announce the launch of Loome Portal, a new module designed to provide a central, intuitive interface for viewing all your assets and activities.

Loome Portal seamlessly integrates with all Loome Modules, offering a simple way to view your entire estate of jobs, quality rules, and resources. You can view associated activity data such as job executions, rule executions, and resource spend.

Loome Portal also integrates with 3rd party platforms such as Power BI and Azure Data Factory, with many more integrations planned.

You can provide a rich discovery experience for your users by configuring metadata and navigation controls, and build dashboards with metrics built on top of your assets and activities, along with many more features.

All clients will have access to Loome Portal under existing license agreements. In line with our commitment to providing a unified platform, you will have access to all modules within the platform.

We will reach out to you in the coming weeks to help you become acquainted with Loome Portal, but you can always reach out to support@loomesoftware.com to get started sooner.

Loome Monitor: Inline Editing

We have introduced a new inline editing experience to Loome Monitor results, allowing for quicker and more efficient data management directly within the grid.

You can now click the ‘Edit Records’ button to begin editing. Once in edit mode, simply double-click any cell to update its value. Use ‘Save Changes’ to apply your edits or ‘Cancel Changes’ to discard them.

Keyboard navigation and shortcuts are supported, and you can click the ‘Help’ button to find these and more information about inline editing.

Action Required: This feature requires an update to your Loome Agent. However, you can continue to use single record editing without updating.

Loome Monitor: Custom Views and Preferences

We have made a number of improvements to viewing results in Loome Monitor.

When viewing results in a Loome Monitor rule, we will now retain your filtering, sorting, and aggregation preferences. This allows you to drill into a record, make edits, and return to the grid without losing your previous configuration.

To clear all filters and sorting, simply click the ‘Reset View’ button in the top-right corner.

In addition, you can now save filtering, sorting, and aggregation configurations on the monitor results page as reusable views for all users. This allows for quick switching between different perspectives of your results. Views can be managed by Owners and Contributors, while all users can utilize them.

Loome Monitor: Aggregate Display and Pivoting

You can now apply aggregate functions to numeric and datetime columns when grouping data in Loome Monitor rule results. These functions appear in the grouping row, displaying both the aggregated value and the function used—for example, sum(119).

To configure these aggregations, use the toolbar slide-out on the right side of the rules grid. You can easily switch between different aggregation types—for instance, changing a numeric column’s aggregation from sum to average.

Available aggregate functions:

  • Numeric columns: Sum, Average, Minimum, Maximum, Count

  • Datetime columns: Minimum, Maximum, Average, Date Range

You can also use the pivot function to provide a summary view of all aggregate values.

This enhancement provides greater flexibility and insight when analyzing grouped data in your Monitor views.

Loome Monitor: Improvements to Rule Execution

We have reworked how Loome Monitor rules execute and how data is modified by the user, resulting in significant performance and reliability improvements.

We have significantly improved performance, especially on very large rules or rules with many key columns, and we have resolved many outstanding edge case issues that could cause failures in Loome Monitor.

The performance of the results view has been significantly improved, especially when viewing large reconciliations (e.g., 100,000+ records) with composite keys.

We have improved the reliability of updating records, particularly in determining when a change has taken place. In the underlying output database, a staging table has been added to facilitate this. Records are first staged and then entirely handled in the SQL engine. Previously, record updates took place in the agent before being sent to the SQL engine, which was slower and more prone to data type issues.

This new update engine can handle bulk updates, as used by the new Inline Editing feature.

Import/Export reliability has been improved, though we still plan to make significant performance improvements in a later update building on this foundation.

Action Required: After upgrading your agent, you will need to run your Loome Monitor rules on the new agent in order to edit records or use the import/export feature. You will still be able to view results. Any attempt to perform an editing action will advise you to run the rule to upgrade it.

Underlying Changes

We have made many changes to the underlying output database. This is of particular interest if you build downstream processes on top of the output database.

We have added a new key hash column that represents the user-supplied key column values, which can be used to join records in many places. We have also recalculated the existing row hash column with a more robust calculation to resolve edge case issues.

We have improved the ability to reconcile communications to the exact record version that was communicated when using the communications table.

When you upgrade your agent and run the Loome Monitor rule, we will perform a one-off upgrade of the output schema, including adding our new key hash column and recalculating the existing row hash column to conform to our new standard.

See the appendix below for an exact reference of changes.

Loome Monitor: Date and Time Filtering

We have implemented new functionality for filtering date and datetime columns in Loome Monitor results.

You can now filter by relative values, such as 24 hours, 7 days, or 1 month. You can do this by selecting the ‘Since’ type from the dropdown on the filter, and then filling out the value to filter on.

The user experience (UX) has been modified to improve usability. Date pickers now appear instantly in the filter popup instead of requiring an additional click. You will also now have an apply button so that you can configure your filter before applying it to the grid.

Loome Assist: New Spend and Usage Retrieval

We have significantly streamlined the retrieval of resource usage data (spend, hours, and storage) from Azure. This process is now executed in a single step, initiated by the agent at startup and repeated every two hours thereafter, allowing you to receive more timely spend information.

We have also resolved edge cases where you were unable to see spend information and implemented support for Azure CSP subscriptions as we have moved to the more reliable Azure Cost Management API for this functionality.

We are now more efficient at spend and usage retrieval, only retrieving the delta after the initial full sync.

Action Required: This feature requires an update to your Loome Agent. Once the new agent starts up, it will begin fetching spend information immediately. This can take several minutes.

Loome Integrate: Improvements to Persistent Staging

We have reworked how Loome Integrate persistent staging tasks execute, leading to significantly improved performance.

We have significantly improved performance, especially on very large persistent staging tasks or tasks with many key columns.

On a technical level, we have replaced the usage of user-supplied key columns in any logic or joins throughout, replacing them with usage of the existing row hash column and the newly added key hash column. This ensures predictable single-column joins that result in significantly improved performance on very large datasets.

We have also resolved issues with the generation of the row hash, including the issue where we could not generate a unique row hash in certain circumstances.

When you upgrade your agent and run the persistent staging task, we will perform a one-off upgrade of the output schema, including adding our new key hash column and recalculating the existing row hash column to conform to the new standard.

Action Required: After upgrading your agent, you will need to run your Loome Integrate persistent staging tasks to receive these improvements.

Loome Integrate: OneLake Support for Data Loading

We have added support for loading data into OneLake in Microsoft Fabric using the existing ADLS connector and the Parquet file format. This includes support for using the Loome Agent managed identity in Azure for authentication. We have added a template for OneLake to the ADLS connector.

We have also added support for using Azure managed identities with the existing ADLS connections.

Action Required: You will need to update your Loome Agent for this feature.

Documentation Updates

We’ve made substantial updates to our documentation. We have added a new section for Loome Portal, revamped our documentation for Loome Integrate, Loome Monitor, and Loome Assist, and added a legacy section for our on-premises products.

Release notes sections and knowledge base articles have been combined into a single location for all modules.

Some minor improvements and bug fixes below have already been deployed as hotfixes.

Improvements

  • All Modules: All code editing windows are now vertically expandable, providing more space for your code.

  • All Modules: We’ve added new date filtering controls in all grid views for more precise data selection.

  • All Modules: Updated the Azure Container Instances install command generated by the Agent Setup page to include --os-type Linux as it is now required by Azure CLI.

  • Loome Assist: Included deployment name and description of a solution collection in the ARM template output.

  • Loome Assist: Enhanced handling of various loading screens to improve user experience and responsiveness.

  • Loome Assist: Added support for configuring Azure Managed System Identities (MSI) for workstation deployments. This setting is managed at the account level and is enabled by default for new accounts. For existing accounts, MSI must be manually configured. When enabled, the MSI is automatically injected into the ARM template prior to deployment.

  • Loome Assist: Added a new type of action for solution collections: markdown action (a modal popup that renders your provided markdown).

  • Loome Assist: Improved the markdown experience: you can now use GitHub Flavoured Markdown, and all markdown output is sanitized before being rendered on the page.

  • Loome Assist: The Loome Assist tenant name will now be added as a tag on assets created in Azure for better organization.

  • Loome Assist: The system will now attempt to retrieve the currency of an account to display the correct currency code for any spend in the UI. This resolves issues where projects with no spend were not showing the correct currency.

  • Loome Integrate: Project and Task views now cache your sorting and filtering preferences, saving you time.

  • Loome Integrate: Changed line height of logging messages to display more information on screen, moved information column before message column and allowed message column to scroll to the right for improved readability.

  • Loome Monitor: Help Modal: A new help modal on the results page provides guidance on interacting with results.

Bug Fixes

  • All Modules: Resolved an issue where users were not redirected to the signed-out page upon logout.

  • Loome Assist: Fixed a bug that left VMs in an unmanageable state if they failed to start.

  • Loome Assist: Resolved an issue where the deployment modal of a solution collection was not reset when reopened.

  • Loome Assist: Corrected spelling of “Repository” on the new data repo page.

  • Loome Assist: Fixed an issue with creating projects using an API Key.

  • Loome Assist: Fixed a bug where project creators experienced an error when loading the project level application roles.

  • Loome Assist: Fixed a bug where resource cards on the project page would change position when retrieving spend.

  • Loome Integrate: Resolved an issue where dependent tasks would fail even after the initial task succeeded following retries where the parent job was configured with a retry policy.

  • Loome Integrate: Resolved an issue where the project jobs screen could become stuck on “Loading.”

  • Loome Integrate: Added connection string templates for using Azure Managed Identities with ADLS and OneLake Lakehouse files.

  • Loome Monitor: Fixed a bug preventing numeric fields from being used in record status configuration.

  • Loome Monitor: Fixed key validation issue for Snowflake-hosted rules.

  • Loome Monitor: Resolved issue where users were prompted to save changes after session timeout.

  • Loome Monitor: Fixed an issue where local datetime values were filtered by UTC values.

  • Loome Monitor: Fixed a bug where project users might be listed as API keys in the project permissions page.

  • Loome Monitor: Fixed a bug where editing a row in a rule with a composite key would produce a null/incorrect row addition to the grid until you refreshed the page.

  • Loome Monitor: Fixed a bug where money and smallmoney data types could not be filtered on the results view.

  • Loome Monitor: Fixed a number of validation issues on various data types in results editing.

  • Loome Monitor: Fixed issue with tooltips getting stuck on page.

  • Org Management: Fixed issue with notifications not working.

  • Org Management: Fixed an issue with the add tenants button sometimes not showing.

  • Org Management: Clicking the Add a technical contact or billing contact links now take you to the correct tab on the application roles page.

  • Org Management: Fixed an issue where browsing to a tenant from the management app would send you to another tenant if you were already logged in to that tenant previously.

Agent Updates

This update requires agent version - 2025.07.23.1

Please download a new install script and update your agent to use new features, improvements, and fixes.

Some features listed below have already been delivered via an agent hotfix.

Framework Upgrade

The agent has been updated to run on the .NET 8 platform, which provides significant performance improvements and better memory management, especially when running on Docker containers.

.NET 8 provides significant improvements to string handling, so processes such as Loome Monitor rules will see benefit here.

.NET 8 also provides first-class memory management when running on Docker containers. We should see improvements here when running on Azure Container Instances.

Some minor improvements and bug fixes below have already been deployed as hotfixes.

Improvements

  • All Modules: Updated to the latest Snowflake driver for improved performance and reliability.

  • All Modules: Significant performance improvements have been made across the board in the Agent.

  • Loome Assist: Significantly streamlined the retrieval of resource usage data (spend, hours, and storage) from Azure. This process is now executed in a single step, initiated by the agent at startup and repeated every two hours thereafter. After the initial sync, a delta sync will be performed, unlike the previous system that synced all spend data each time it ran.

  • Loome Assist: The Loome Assist tenant name will now be added as a tag on assets created in Azure.

  • Loome Assist: Currency retrieval for subscriptions has been added to ensure accurate display of spend currency codes in the UI.

  • Loome Integrate: Updated the Salesforce driver to the latest version.

  • Loome Integrate: Improved the wording on ADLS incremental migrations to better inform of no support for refresh periods.

  • Loome Integrate: Rework of persistent staging (see service feature above).

  • Loome Monitor: Rework of rule execution and editing (see service features above).

Bug Fixes

  • All Modules: Fixed Snowflake timestamp NTZ vs LTZ handling via driver update.

  • Loome Assist: Fixed a bug where solution collections with newer ARM templates would not deploy due to our usage of an older API version.

  • Loome Assist: Fixed an issue where the Loome Assist agent would not start up.

  • Loome Integrate: Improved logging hygiene by sanitizing all script task logs to remove non-ANSI characters, resolving issues where script tasks may log invalid characters to the log, causing a task to fail.

  • Loome Integrate: Fixed an issue where a changes-only migration to ADLS did not account for time zone conversion when calculating the max date value to use.

  • Loome Integrate: Fixed a bug where a Snowflake incremental migration on a datetimeoffset column type did not work.

  • Loome Integrate: Fixed a bug where altering columns in a persist staging task produced an error.

  • Loome Monitor: Fixed an issue caused by an older version of the agent whereby persist deleted records inserted into the metadata table were assigned an incorrect start date. This will be resolved the first time you run a rule on this new agent.

  • Loome Monitor: Fixed an issue caused by an older version of the agent whereby duplicate records were inserted into the metadata table. This will be resolved the first time you run a rule on this new agent.

  • Loome Monitor: Fixed an issue where deleting a rule and confirming to delete the underlying table structure in the output table would produce an error.

  • Loome Monitor: Fixed an issue where you could not run comms on a manual-only rule.

  • Loome Monitor: Fixed a bug where you could not update a record in a composite key rule where one of the key columns was of type BIT.

  • Loome Monitor: Fixed an error that occurred when modifying a Snowflake key column of type string.

Appendix

Loome Monitor Rule and Loome Integrate Persistent Staging Database Changes

Below is a list of changes that will take place when you upgrade your Loome Agent. These changes apply to both Loome Integrate Persistent Staging tasks and Loome Monitor Rules.

Modified Tables/Views

  • DataHash (Staging)

    • Added LM__KeyHash: This column is a hash of the user-supplied key columns. You can use this column to identify a set of rows.

    • Updated logic for LM__RowHash: Recalculated to resolve issues where identical hashes were produced for different combinations of input keys (e.g., [1, 11] and [11, 1]).

  • Data

    • Converted LM__PersistDeleted to boolean (SQL Server).

    • Added LM__PersistNew: This represents a new row added in the last run of PStage/Monitor Rule.

    • Added LM__KeyHash: This column is a hash of the user-supplied key columns. You can use this column to identify a set of rows.

    • Removed LM__DataSKey: This was not a unique value in all circumstances and is redundant due to LM__RowHash.

  • DataCurrent

    • Converted LM__PersistDeleted to boolean (SQL Server).

    • Added LM__PersistNew: This represents a new row added in the last run of PStage/Monitor.

    • Added LM__KeyHash: This column is a hash of the user-supplied key columns. You can use this column to identify a set of rows.

    • Added LM__RowHash: Recalculated to resolve issues where adjacent columns created the same value.

    • Removed LM__DataSKey: This was not a unique value in all circumstances and is redundant due to LM__RowHash.

  • DataHistory

    • Converted LM__PersistDeleted to boolean (SQL Server).

    • Added LM__PersistNew: This represents a new row added in the last run of PStage/Monitor.

    • Added LM__KeyHash: This column is a hash of the user-supplied key columns. You can use this column to identify a set of rows.

    • Removed LM__DataSKey: This was not a unique value in all circumstances and is redundant due to LM__RowHash.

Loome Monitor Rule Database Changes

Below is a list of changes that will take place when you upgrade your Loome Agent and then run your Loome Monitor Rule.

Modified Tables/Views

  • RecDataHash (Staging)

    • Added LM__KeyHash: This column is a hash of the user-supplied key columns. You can use this column to identify a set of rows.

    • Updated logic for LM__RowHash: Recalculated to resolve issues where identical hashes were produced for different combinations of input keys (e.g., [1, 11] and [11, 1]).

  • Calculations

    • Replaced user supplied keys with LM__RowHash.
  • RecData

    • Converted LM__PersistDeleted to boolean (SQL Server).

    • Added LM__PersistNew: This represents a new row added in the last run of PStage/Monitor.

    • Added LM__KeyHash: This column is a hash of the user-supplied key columns. You can use this column to identify a set of rows.

    • Removed LM__RecDataSKey: This was not a unique value in all circumstances and is redundant due to LM__RowHash.

  • RecDataCurrent

    • Converted LM__PersistDeleted to boolean (SQL Server).

    • Added LM__PersistNew: This represents a new row added in the last run of PStage/Monitor.

    • Added LM__KeyHash: This column is a hash of the user-supplied key columns. You can use this column to identify a set of rows.

    • Added LM__RowHash: Recalculated to resolve issues where adjacent columns created the same value.

    • Removed LM__RecDataSKey: This was not a unique value in all circumstances and is redundant due to LM__RowHash.

  • RecDataHistory

    • Converted LM__PersistDeleted to boolean (SQL Server).

    • Added LM__PersistNew: This represents a new row added in the last run of PStage/Monitor.

    • Added LM__KeyHash: This column is a hash of the user-supplied key columns. You can use this column to identify a set of rows.

    • Removed LM__DataSKey: This was not a unique value in all circumstances and is redundant due to LM__RowHash.

  • Metadata

    • Added LM__KeyHash: This column is a hash of the user-supplied key columns. You can use this column to identify a set of rows.

    • Removed LM__MetadataSKey: This was not a unique value in all circumstances and is redundant due to LM__RowHash.

  • MetadataCurrent

    • Added LM__KeyHash: This column is a hash of the user-supplied key columns. You can use this column to identify a set of rows.

    • Added LM__RowHash: Recalculated to resolve issues where adjacent columns created the same value.

    • Removed LM__MetadataSKey: This was not a unique value in all circumstances and is redundant due to LM__RowHash.

  • MetadataHistory

    • Added LM__KeyHash: This column is a hash of the user-supplied key columns. You can use this column to identify a set of rows.

    • Added LM__RowHash: Recalculated to resolve issues where adjacent columns created the same value.

    • Removed LM__MetadataSKey: This was not a unique value in all circumstances and is redundant due to LM__RowHash.

  • Results

    • Added LM__KeyHash: This column is a hash of the user-supplied key columns. You can use this column to identify a set of rows.

    • Added LM__DataRowHash: This is the LM__RowHash from the DataCurrent table.

    • Added LM__MetadataRowHash: This is the LM__RowHash from the MetadataCurrent table.

  • Communications

    • Added LM__DataRowHash: Use this to join back to the exact communicated row in the Data table.

    • Added LM__MetadataRowHash: Use this to join back to the exact communicated row in the Metadata table.

    • Added LM__Status: Copied as is from the results view when the row is communicated.

    • Removed key columns: Key columns are removed as they provided no way to join back on the exact row that was communicated.

    • Table archived on upgrade: We will archive this table on upgrade due to significant changes in how it operates and a new communications table will be created.

  • Mapping

    • Added AgentVersion: Each time a rule runs, the agent version will be listed against the rule.

    • Added Information: Information such as not being able to apply an index during a rule run will be added here.

New Tables/Views

  • DataUpdates (Staging): A new table to stage updates to the data table, specifically for manual and hybrid glossary and reference rules.

  • DataUpdatesHash (Staging): A new view to stage updates to the data table, specifically for manual and hybrid glossary and reference rules.

  • MetadataUpdates (Staging): A new table to stage updates to the metadata table.

  • MetadataUpdatesHash (Staging): A new view to stage updates to the metadata table.