Releases: checkmarble/marble
v0.62.0 - Customer hub, redesigned navigation, and a lot of smaller product improvements
Features
- Add a brand new Customer hub to the product, at root level navigation. Search users by name, view past alerts, tags, documents and comments, browse related data for a customer while staying in Marble.
- Add a new "Analyst" role in the product. An analyst does not have access to the configuration of rules and customer screening, only to the manual screening search, case manager and customer hub. An analyst still needs to be added to inboxes in the case manager to access them.
Improvements
- Completely revamped the root level navigation in the product. You now have access to 5 sections: detection (including scenarios, custom lists, decisions), continuous screening, manual screening search, case manager & investigation, and the new customer hub.
- Goes along with a redesign of navigation in settings, scenario list, addition of a "my account" page handling locale change, dark mode setting and logout
- Copy a scenario, creating a new scenario in draft status from an existing scenario. Copies the last version of all the rules, including workflows.
- Archive a scenario, making it displayed last in the table and less visible. This is a soft-delete, archived scenarios can still be unarchived.
- Filter decisions by the trigger object "object_id" in the decisions page. Improved design of the filters edit component.
- Great improvement on the alerts section UI in the case manager's main case page. Including access to screening results in an alert, if configured.
- Harmonization of button components throughout the app, continuing work to migrate Marble to a sleeker UI
- For customers using the continuous screening feature, the ingestion endpoints in the v1beta API now allows to activate monitoring, and optionally request an initial screening, at the same time as performing the ingestion (see doc). The change will be folded back into API v1 after a short beta test period. The same will be available on the CSV ingestion interface soon.
Bug fixes
- A typo was causing an infinite loop of index creation, preventing scenario publication in some cases (introduced in v0.60)
- Fix: AI case review takes into account client KYC data enrichment from web search
- Correct a bug on manual screening search, where entities with a matching score below 70% were never returned even if the setting was set lower
- It is no longer possible to create data model links between non-string - they were not working for actual usage since the beginning
- [self-hosted] Access to the analytics page now relies only on having the license and an analytics bucket configured, no longer on having the metabase environment variables configured
- Dataset filters on manual screening search where ineffective
- AI case review feature now no longer configurable (leading to noisy but non-blocking errors) on instances that do not have the license entitlement to it
- Reintroduce proper display of KO sanity check for AI case reviews in case manager, and correction of an error in the sanity check prompt that was creating high volumes of false positive "KO" checks.
- Case manager rule snooze panel: fix a bug where it would not properly display in arabic locale, correct an error on the empty state
- Fix error in the ingested object viewer that was not scrollable if a table had more fields than the component could display
- Fix form validation glitch in several places of the app, where clicking "cancel" would shift the layout and require a second click on the (now shifted) button to actually close the box
Caution
Two changes to the required versions of Postgres to deploy Marble, before you upgrade to v0.62:
- Postgres 16 is now required. Marble no longer supports Postgres 15 or earlier, and some parts of the product will be broken if you use it. Upgrade your postgres instance to version 16+ before installing this upgrade.
- The postgres database used for Marble must now have the postgis extension installed. Most cloud providers handle this, but if you are running your own PostgreSQL you need to do it manually. See the postgis documentation.
Uses:
- backend v0.62.2
- frontend v0.62.1
v0.61.1 - Fix permission error in rule builder
Corrects a permission error occurring on the rule builder if the organization does not have the continuous screening feature activated.
Uses:
- frontend: v0.61.1
- backend: v0.61.0
v0.60.0 - ongoing monitoring, free sanction search, data model field deletion
Features
- It is now belatedly possibly to delete parts of the data model that are not (or no longer) in use. We made sure this does not break your production, by preventing the deletion of fields, tables or links that are used in scenarios, but this should make the early back and forth of data model configuration much less annoying.
- The last missing bricks of ongoing monitoring for sanctions and PEP have been released. Includes in particular the viewing and updating of an existing ongoing monitoring configuration. Add your users to monitoring, get the initial screening results in return, then wait for any new matches on list updates...
- ... or perform manual free search on the regulatory lists for your investigations
- See the estimated risk level of cases (
escalate,investigate,likely false positive) on cases after the AI agent did the level 1 review, and filter cases by risk level in the case manager inbox. - Marble webhooks are no longer "ids only": receive the full useful payload in the webhooks we send. This is not a breaking change as the structure remains the same, more data has only been added to the payloads. The format is aligned on our v1 public API (with an additional custom header helping you decide which public API version format to parse, in anticipation of possible future versions).
- Self-hosted paid customers may now customize the Marble logo (on the top left corned of the page) with the
CUSTOM_LOGO_URLenv variable
Improvements
- Several small improvements designed to lower the tail latency (P99+) of creating decisions.
- A side effect of this is that storing the full detail of rule evaluation intermediate values is no longer guaranteed (it should still be there in the overwhelming majority of cases, but may in a degraded scenario be lost even though a decision has been created).
- As a consequence, storage of the decision rules inline will eventually be removed. We keep it for compatibility for now, but in 3 months it will become mandatory to configure a bucket with
OFFLOADING_BUCKET_URLto continue storing rule execution details
- CSV ingestion, manual batch scenario start time delay has been removed, they should now start as soon as triggered
- Make rule builder interactions feel faster with shorter hover fade-in and fade-out times
Bug fixes
- Longer fetch interval for river worker, for smaller CPU impact of job polling by the worker (most relevant for multi-tenant instances)
- Disallow all crawlers
- Fix strange highlight and search errors on rule builder operand selection, if multiple links with the same name are present in the data model
- Correct an bug where an error on calling the "go to next case" button would sometimes break the full case page
Versions
- backend: v0.60.0
- frontend: v0.60.0
Warning
Now that Marble webhooks are no longer "metadata only", you should be extra careful of not sending them to unsafe destinations with production data.
v0.59.0 - Ongoing monitoring, dark mode, median and other operators, perf improvements
Features
- Sanction, PEP and other watchlist continuous screening of customers is now available ! Get in touch with us if you want to try it out, this is the first entirely self-hostable customer screening tool that we know of.
- Browse the Marble app in dark mode ! Great if you work with low luminosity, or if you like higher contrast, this has been requested for a year and is now available !
- Use Median, Percentile, Standard-Deviation operators in rules. Available for all customers with a license.
Improvements
- Add the option to format dates and timestamps in US format (rather than only UK format as it was so far)
- Greatly improve page loading speed in the scenario and rule builder, especially for scenarios with many rules & iterations
Bug fixes
- Fix a possible Denial Of Service vulnerability on the frontend
Containers:
Uses
- Backend v0.59.0
- Frontend v0.59.1
v0.58.0 - Audit logs access page, favorite inbox
This is the last release of the year !
It's a minor one after last week's mega release with integrated analytics, but contains some useful features that had been requested for a while:
Features
- "Favorite inbox": in the case manager inbox page, select you favorite inbox to arrive directly on it every time you navigate to the inbox page !
- Access the write audit logs of the Marble application through an admin interface in the settings page: See the full audit trail for who published a scenario, modified a custom list, etc (licensed customers only)
Improvements
- Get a notification every few months in-app with new release notes, for self-hosted users
Bug fixes
- Bug on the navigation options creation menu (to navigate from reference customer to its transactions, users, events etc...) in the case manager would not allow to create more than one option for a given entity type
- Corrects a bug where some pieces of text (mostly numbers and dates) would display in a surprising format if a language different from the browser locale was chosen
Uses:
- Backend v0.58.1
- Frontend v0.58.1
v0.57.0 - Fully integrated analytics page, case write API
Features
- Marble now has an integrated analytics engine ! We have been preparing this for a few months, and are proud to make it available
- Access a fully integrated analytics page for decisions performance, without an external analytics database and without complex data pipelines.
- See the false positive rates on alerts (from Case Manager data), and filter all analytics by your data: for example, visualize the hit ratio of your rules, but only for high risk customers
- Cases write API: After the addition of the API to read cases in v0.54, we are adding the option to write cases in this version ! Add comments or files, close or reopen cases, set a final outcome... connecting your back-office to the Marble case manager.
- New Case Manager inbox management interface
- AI case review settings: configure on a per-inbox basis, in which situations the AI agent should perform a review of the case
- Single entrypoint to the case manager for admins and managers, with visibility of case volumes, auto-assignment configuration, and escalation workflows
Improvements
- Self-hosted Marble with OIDC authentication can now be deployed without setting up GCP credentials for Firebase
- Add option to set tags on the case in a decision to case workflow: for example, add a custom tag on cases every time a specific rule hits, and find those cases efficiently in the inbox
- Add option to filter cases by tag
- Add option in Named Entity Recognition to search hits without "Person" or "Organization" filter
- Screening with Named Entity Recognition always searched with the initial input string, on top of searching for more precise entity candidates
Bug fixes
- In the case manager, the cases count in inboxes now only counts open cases
- Case search by ID is back in the inbox page
- Pagination properly resets when updating filters in an inbox
- Display of rules with nested elements is fixed in rule "view" mode
- Corrected an issue where a rule was not saved when modifying the operator in the rule builder
- Screening rule matching threshold is now correctly copied to the new version of the rule when a new draft iteration is created
- Add jitter to max Postgres connection duration, to avoid mass connection reset
- Fix for OIDC using Azure
Uses:
- backend v0.57.0
- frontend v0.57.0
Important
The new integrated analytics requires an additional environment variable configuration to work, and some further deployment optimization for good production performance. See our deployment recommendations in the Marble doc.
Note
v0.56 has been skipped, for self-hosted customers. Some important corrections for properly working embedded analytics have been included in v0.57.
v0.55.0 - Revamped inbox view page
Features
- More work is done on the new, fully integrated analytics and reporting dashboard on decisions and rules. It's available on demand with a feature flag for early access, with general availability planned in the next release !
Improvements
- Revamped cases inbox page view - better design and responsivity, as first brick of a refined case manager navigation experience
- Various dependency upgrades
- Allow to migrate down the migrations using the Marble migrator entrypoint (avoids to migrate down by connecting directly to the database)
- Minor environment variable renaming:
ENABLE_GCP_TRACINGrenamed toENABLE_TRACING, default tracing exporter modified tootlp. - Technical configuration documentation - the list of environment variables and what they do - has been extended (though not 100% complete yet).
v0.54: Firebase-free OIDC SSO, Cases public API, Prometheus metrics
Features
- OIDC: Self-hosted customers may now authenticate to Marble with OpenID Connect SSO instead of Firebase. This is available from now on for all licensed customers of Marble, and compatible with the main identity providers (see details in the documentation). This was the last remaining dependency of Marble on Google Cloud infrastructure, and we're happy to finally lift if for customers with strong data-sovereignty (and other compliance) requirements !
- Public API v1beta for reading cases is now available ! It is still in beta because it may still evolve at the edges, but the general structure is there and can be integrated. More endpoints will follow over the next releases, to expose more data on the case and allow to create or edit them.
- Marble now exposes Prometheus metrics on decision creation, ingestion, screening execution, etc. The exact list of events (and their format) may still evolve. See how to configure it on the Marble configuration doc.
Improvements
- Performance improvements on the
POST /decisions/allendpoint - Expose a set of (opt-in) endpoints for cpu and memory profiling, to help debug memory leaks and similar issues.
Bug fixes
- Fuzzy string matching operators of the "bag of words" kind in the rule builder no longer return "100%" match (instead 0%) if one of the inputs is an empty string.
- Fix a bug introduced in v0.53 that broke the generation of data summary for test runs
Versions used
backend: europe-west1-docker.pkg.dev/marble-infra/marble/marble-backend:v0.54.3
frontend: europe-west1-docker.pkg.dev/marble-infra/marble/marble-frontend:v0.54.2
v0.53.0 - AI assist in rule creation, case manager batch actions
Deployment Warning
Caution
Marble v0.53 introduces a simple but important breaking change in deployment environment configuration.
Simply put:
- The Marble frontend container now expects
MARBLE_API_URLinstead ofMARBLE_API_URL_SERVER(with the same value: this is the url at which the frontend server can reach the backend api server) - The Marble backend container now expects a mandatory
FIREBASE_API_KEY(it is no longer useful to set it on the frontend)
Warning
Another, more minor, breaking change is introduced on the format of accepted PostgreSQL connection strings. It remains possible to define the Postgres connection parameters via the PG_HOSTNAME, PG_PORT, PG_USER... variables OR alternatively through the PG_CONNECTION_STRING environment variable. However, if using PG_CONNECTION_STRING, only the URL format (postgresql://[user[:password]@][netloc][:port][/dbname][?param1=value1&...]) is now allowed: the "key:value" format ("host=... user=... password=...") is now explicitly rejected. This is because it is incompatible with a new feature (integrated analytics) that we are introducing soon.
Note
ℹ️ Firebase emulator specific change:
If you run the demo Marble app with the Firebase auth emulator, the frontend now also expects TEST_FIREBASE_AUTH_EMULATOR_HOST instead of FIREBASE_AUTH_EMULATOR_HOST.
More generally, only configuration strictly specific to the frontend has been kept in the frontend container. All configuration that is useful for both the frontend and backend, is now exposed by the backend for the frontend (via MARBLE_API_URL).
Further, all remaining endpoints that called the backend API directly from the app (browser side) have been modified to route through the frontend server, so it is now easier to restrict how the backend is exposed.
This week's version of Marble comes with bulk changes in the case manager and introduces AI assistance in rule building.
Features
- We are starting to bring AI to assist in rule building ! In this release a description of the rule you're building is displayed live. It helps validate you are correctly building what you intent to, and instantly understand any rules ever created. More assistance coming soon. [only available in SaaS environment now]
- The case manager now supports bulk changes. Select multiple cases and in one click: move them to another inbox, assign them to a user or close them all.
Improvements
- New iteration on the Investigation AI review : improved analysis guidelines, output structure, and improved handling of cases with lots of decisions.
- Workflows modifications now have an audit trail
- Massive improvements on French and Arabic translations
- Additional fields are available to refine a Screening search.
- The screening API documentation has been fixed.
- Improvements on the critical path of decision creation, avoiding a write-read bottleneck with degraded performance on the
POST /decisions/allpath - Simplification of Marble configuration steps - duplicated environment variables have been centralized on the backend API, some required variables that were not useful for end users have been made optional
Versions used
- backend: europe-west1-docker.pkg.dev/marble-infra/marble/marble-backend:v0.53.3
- frontend: europe-west1-docker.pkg.dev/marble-infra/marble/marble-frontend:v0.53.1
v0.52.0 - decision data offloading
Features
- [infrastructure] Decision rule offloading: automatically offload voluminous decision execution details to a bucket, to keep the database instance size smaller. See more about this in
installation/data_offloading.mdor here.
Improvements
- Allow to pass a single IP address (not a range) for IP whitelisting
- Allow to open cases (and all other table rows as links) in a new tab with cmd/ctrl+click
- Search case by case_id, filter them by assignee, and make full text search much more relevant in the inbox page
- Set default pagination size to 50 elements, allow to increase it up to 100 and increase case results box size in inbox page
- Faster AI case review generation time
Bug fixes
- Fix a situation where the case manager page would fail to load on cases that contain many decisions - also, improve loading speed for the case manager main mage in all situations
- Correct a situation where several decisions related to the same customer, created at the same time, could open several cases even if the workflow is configured to group them into one case
- Add fields
nationality(for Person) orcountry(for Organization) to thePOST /screening/:screeningId/searchandPOST /screening/:screeningId/refineendpoints (was already handled by the endpoint but not documented)
Container versions
This release uses :
- Marble backend
v0.52.1 - Marble frontend
v0.52.0