Releases: checkmarble/marble
Release list
v1.5.0 - API csv ingestion, various improvements
Features
- New option to ingest large data files in csv format via public API
Improvements
- Display a brief summary of AI case reviews in the case manager main investigation page
- [Feature flagged for prod testing] More reliable batch execution for large batches of decisions
- Better optimized for display structure of side panels and input components
- Allow to use Timestamp data model fields (especially containing dates of birth) as input for screening rules (previously: necessary to send dates of brith as String)
- The entry point to configure custom filters for decision analytics had been gone for a while, washed away in a refactoring of the settings. It is now back, much easier to discover in a corner of the analytics page. Configure custom filters so that you can query statistics of decisions hit rates, false positive rates and more, by customer type, payment method or any other filter on your specific data.
- Better management of sessions: Stay logged in for up to 7 days, or up to 24h after the last activity, rather than be logged out after any 1h ouf inactivity and every 12h at most inconditionally.
Bug fixes
- Properly store and display the comments left when reviewing a continuous screening hit
- Less confusing pagination of results in continuous screening manual search ("max results 10" properly returns max 10 results in all situations)
- Correct action order when deleting and recreating a field on a table with the same name
- Tentative fix of a memory leak in the frontend container (pending prod testing)
Requires
- backend v1.5.0
- frontend v1.5.0
- motiva v0.9.2+
Tip
For self-hosted, remember to pass an appropriate value of SESSION_MAX_AGE (or leave untouched to use the default value of 604800=7d), rather than use the old default value of 43200=12h. Fine tune idle session timeout with SESSION_IDLE_TIMEOUT
v1.4 - Save manual screening searches & results, various performance & UX improvements
Features
- View a full history of manual screening searches, tagged by who did it. Save the results of a relevant manual screening for later consultation.
Improvements
- Self-foldable sidebar, for better screen space usage
- A large design system harmonization is in progress - revamping buttons, modals, panels and much more throughout the app. Part 1 is releasing in this version
- All pages now reliably redirect long form UUID path params in the app to the short UUID format
- Allow transactions, events tables to "belong to" several "person" tables via links: This unlocks hybrid B2B&B2C usecases where a transaction may be attached to either an organization account or a natural person account, combined with precise screening of the owner user. Any given transaction may still belong to only one user at a time.
- Offload screening result details to the blob storage (using the offloading bucket, similar to rule execution details). This will serve to avoid a massive increase in Database size growth when using the screening features
- Improve the performance of user search queries when processing delta files in continuous screening (requires Motiva v0.9.2+)
- Marble screening now works with custom datasets alongside LexisNexis or Opensanctions data - previously this only worked as a full replacement (see doc)
- Progressively rolling out (on the backend first) a release plan of Marble where we release "-rcX" tags at first, before the publicly available stable release
Bug fixes
- Reintroduce CSP which was accidentally and silently broken by the migration to tanstack start
- User data links and "next case" button in app open in a new tab instead of navigating
- Correct an error blocking decision workflows for decisions whose payload includes IP or GPS data
- Create the attached Firebase user when seeding a first org with admin via env params
- Pivot values are now soft-deleted, so that old cases cannot be unlinked from their reference customer if the data model changes
- Avoid creating duplicate alerts in continuous screening in case of retries (requires Redis)
- Fix "rule hit" conditions in decision to case workflows, which was broken for screening rules
Requires
- backend v1.4.0
- frontend v1.4.0
- motiva v0.9.2+
v1.3.0 - Redesigned case manager preview, various improvementds and bugfixes
Improvements
- Replace a markdown processing library, improving performance of the case manager page load
- Fewer clicks to activate a scenario version. Two clicks to go live, no annoying check boxes to tick. We're honestly sorry this one took us as long.
- Self-hosted customers can configure their screening data provider from the application (within what the license allows)
- Better error management (clearer error messages) in screening rule setup
- Major redesign in progress of the case manager page, for better rendering on smaller screens (window < 1200px). Currently available but feature flagged pending last changes, set
CASE_MANAGER_V2_ENABLED=allto try it out - Marble now uses Redis as an additional dependency, for improved performance on a range of features. We are rolling out usage in internal usecases progressively, but more and more parts of the app will not work properly without a Redis instance plugged in. See the installation guide for how to deploy it.
Bug fixes
- Correct an error that changed a 4XX http status into a 500 in some cases due to error handling
- Workflow execution works even if the decision payload contained IP/GPS type data
- Added deduplication of the processing of entities in sanctions delta files background processing
- Fixed a semi-random app crash during freeform screening search
- For self-hosted customers, custom screening dataset selection is back
Requires
- backend v1.3.3
- frontend v1.3.0
- motiva v0.9.2+
Important
Marble now uses Redis as an additional dependency. See the installation guide for details.
v1.2.0 - Screening with LexisNexis data
Features
- Marble screening is now compatible for use with LexisNexis sanctions, PEP and adverse media lists! Access to 26M profiles, fully on-prem (no data sent to any 3rd party) & 100% compatible with continuous screening, including new advanced filters on PEP categories & secondary PEP. Reach out to the Marble sales team to explore the option.
- Add rule builder operator to check on customer risk level (as computed from user risk scoring feature)
Improvements
- Store a "no hit" continuous_screening row when search is completed from an updated dataset, even if no hits were found
- Expose the (screening or regular) rule id on decision rule details in decisions public API
Bug fixes
- Fix missing family relative field in screening hits
- Fix screening whitelisting option no longer appearing in case of false positive hit
- Correct error where field creation in data model was incorrectly failing in some cases
- Fix translation issue on screening status (displaying "{{count}}")
- "New draft" scenario was no longer navigating to the new draft version
- Redirect to signed URL rather than streaming results through backend API for continuous screening data indexing
- Backport new continuous screening related query params in ingestion API from /v1beta to /v1 public API
- Using Opensanctions data, perform a search on client user data even for generic "legal entity" data (not "person" or "organization") in the datasets
- Clearer error mesage in the interface for decision screening rule failure (all input fields empty or null)
- Preprocessing steps (ignore words from a custom list & named entity recognition), if configured, are now blocking (an error or time out will fail the decision) + correct an error when reading custom list for preprocessing
Requires
- Marble backend v1.2.1
- Marble frontend v1.2.0
- Motiva v0.9.0
Warning
Customers already using the screening feature must replace the OPENSANCTIONS_API_HOST environment variable with SCREENING_OPENSANCTIONS_API_HOST (or SCREENING_LEXISNEXIS_API_HOST if using LexisNexis lists). Same prefix to add for SCREENING_OPENSANCTIONS_AUTH_METHOD and SCREENING_OPENSANCTIONS_API_KEY.
v1.1.0 - Continuous Screening webhooks, some UX & bug fixes
Improvements
- Send webhooks when Continuous Screening cases are created orreviewed (hit confirmed or dismissed)
- Improve secondary filter (birth date, country) format hints in free form sanction search
- Free form sanction search displays full detail of entities, with relatives and sanctions detail
- Back button in case manager now goes back to the inbox, not the overview page
Bug fixes
- Some old scenario rules using percentiles were not working properly
- Correct an error where on some code paths, ingested entities may not be picked up for continuous screening
- Silence an error on instance metadata upsert (non blocking)
- Fix intermittent
Unable to decode turbo-stream responseerrors on frontend - Fix field display order in case manager regression
- Fix scenario filter on decisions analytics page
- Re-introduce screening hit whitelisting for false positives that accidentally disappeared in a previous release
--
Container versions
Uses:
- backend v1.1.0
- frontend v1.1.1
- postgres 16+
- motiva v0.8.1+
v1.0.0 - Customer Risk Assessment, Semantic data model, perf improvements
Features
- Customer risk assessment fully integrated to Marble is live. Get in touch with the Marble team to activate it!
Calculate at onboarding and update continuously one or several scores tailored for your needs, to assess each customer risk and tune your detection sensibility to that.
Improvements
- The whole data model edition experience has been overhauled. Create tables in one batch, not field by field. Attach semantic types to tables and fields for cleaner display throughout the application, and more to come.
- The full Marble app has been ported to a new frontend framework. Expect much better navigation performance in the short term. In the longer term, this will unlock more user experience improvements for us.
- In case manager, show the "snooze rules" button only in cases where there are rules to snooze
Bug fixes
- Silence a non-blocking but high volume error log about continuous screening on ingestion
- Fix a regression that broke the auto-assignment feature silently in v0.65
- Proper (non blocking) handling of nul value input on fuzzy string matching opereator
- Fix blocking error in customer hub on empty name entity if searching by object_id
- Fix readability issues of some case manager graphs in dark mode
- Fix some UI glitches and other UI improvements on rule edition (rule name, ...)
--
Container versions
Uses:
- Marble backend v1.0.4
- Marble frontend v1.0.7
- Postgres v16+
- Motiva v0.7.4+
Breaking changes
Warning
The old, unversioned Marble public API, deprecated a year ago, is gone. See our migration guide and the v1 API documentation.
Note
Until now, Marble depended on an open-source dependency, Convoy, for webhooks dispatching. This was one additional piece of infrastructure to deploy to use the full Marble feature set. As of this version, we migrate to fully internal webhooks sending. New Marble deployments can ignore this message and just deploy without the CONVOY_ environment variables. Existing deployments should CONVOY_ environment variables while upgrading to Marble v1.0, as all existing endpoints will be automatically migrated to the new system.
v0.65.0 - Case manager analytics
Features
- A brand new page for analytics on cases is available. Get statistics on your case resolution times, suspicious activity reports, and on your case backlog, by inbox and by assigned analyst.
Improvements
- Improve the case manager panel to view transactions of a customer: better usage of vertical space, and allow to pin a column to the left for better horizontal scrolling
- NER timeout duration now configurable (
NER_TIMEOUT) for self-hosted customers - Public API post comment endpoint now accepts up to 16k characters, up from 2k.
Bug fixes
- prevent setting an object_id or updated_at field as non-required on a data model table
- fix a bug where the review alert input in the case manager no longer accepted spaces
- batch execution was broken for any scenario whose trigger condition includes a "!=" condition, is now fixed
Versions
backend: v0.65.1
frontend: v0.65.0
v0.64.0 - Natural language rule creation, redesigned case page
Features
- Construct rules using natural language in the Marble rule builder (Open beta)
Improvements
- Redesigned scenario home page and scenario list table
- Redesigned case manager main investigation page
Bug Fixes
- Fix some non-critical misconfigured permissions on public & internal API
- Fixed payload reparse issue, causing errors on batch scenario executions in some cases
- Fixed is in / is not in operator behavior when list is empty
- Fixed empty content display when no alias is set in custumer hub
- Fixed "add decision to case" button not working
- Fixed inbox members management buttons not being displayed
- Various QA, dark mode, and design fixes
- CVE security fix
- DuckDB version stability fixes - the release of early March introduced a memory leak on the worker
- Percentile values displayed between 0% and 100% but stored between 0 and 1 for the percentile aggregate operator, fixing a scenario runtime error
Versions
- Backend v0.64.0
- Frontend v0.64.3
v0.63.0 - IP & geoloc data, import/export, scenario presets & public API expansion
Features
- IP and GPS coordinates data are now supported: Ingest your data for customers, events in IP address or GPS coordinates data. Use enriched data (known VPN IP, TOR exit nodes, cloud provider...) in rules, screen transactions against blacklisted/whitelisted lists of IP ranges, visualize where a customer is located in the case manager and customer hub !
- Kickstart an empty organization with standardized data model and scenario examples: avoid the "white page" syndrome, keep the option to extend or modify the data model and rules in the way that makes most sense for your business. The list of available options will be expanded in the future.
- Import/export data from Marble: recreate an instance with your custom data model, scenarios and workflows, from an exported configuration from your existing instance. Most convenient for replicating your staging instance when going to prod, or to regularly make a replica of your prod instance for testing.
- Many extensions to the public API (see the doc):
- Case AI reviews: list, view and request an AI review for a case using the public API
- Ingested data objects annotation: read and write comments, attach files and tags, so you can see them in the case manager or extract them to your systems
- New endpoint to create a decision asynchronously (and optionally ingest the payload before doing so): most convenient for all workloads where a real-time response is not necessary
Improvements
- improve validation (especially error case) display for scenarios using screening rules
- harmonize case status icon throughout the app
- add custom instruction (review steps, etc) for the AI agent to review cases
Bug fixes
- add back the "mark as (un)available" button in the /account page
- silence some (non-blocking) errors related to ingesting data and continuous screening
- fix "case.decision_reviewed" webhook sending stale data
- fix CSP error for displaying image miniatures for files in the customer hub page
- error while evaluating case name template should not be blocking to generate a case, in decision workflows
- reading case comments with the public API, now includes comments (annotations) left on ingested objects from within the case
Uses:
- backend v0.63.1
- frontend v0.63.0
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