For AI agents: the documentation index is at /docs/mdmbox/llms.txt. A Markdown version of this page is available at /docs/mdmbox/release-notes.md or by requesting it with the Accept: text/markdown header.
MDMbox Docs

Release notes

Release notes are grouped by monthly version. Each version lists compatible Aidbox monthly versions. See Versions and compatibility for the supported range and Docker release tags.

October 2026 (2610.0)

Docker tags: 2610.0, 2610, latest

Tested Aidbox versions: 2605.15 (LTS), 2606.7, 2607.7, 2608.8, 2609.4, 2610.0.

Features and improvements

  • Security updates — Updated Java 25 and application dependencies, and moved the container to a patched Wolfi base with glibc. Derived Docker images use apk for additional system packages.

  • Container healthcheck — The healthcheck uses GET /healthz and works with GNU Wget in the new container base.

  • Shared database upgrades — Updating MDMbox preserves the FHIR packages installed by Aidbox, including when Aidbox restarts after the update. Existing matching model definitions and weight thresholds remain unchanged.

  • Model builder — Create patient matching models in the Admin UI, from data preparation to validation and use in production. Define matching fields with SQL on FHIR ViewDefinitions and inspect their values and statistics. Train a probabilistic model with automatic candidate selection and learned comparison parameters, without labeled training pairs, or write deterministic matching logic in JavaScript. Automatic training accounts for detected relationships between fields and considers spelling errors when choosing candidate keys. Customize comparisons in the editor with an optional AI assistant. Validate candidate pairs across the full prepared population, inspect explanations and choose review and same-person thresholds. Validation can be paused, resumed and reopened. Save a versioned model and use its ID for online $match, Bulk matching and Continuous matching. Existing FHIR matching models remain supported.

    Automatically trained models achieved 99.45–100% pairwise F1 on held-out synthetic FEBRL1–4 partitions without SSN. On NC Voters 5M and 10M, selecting thresholds on separate validation queries yielded 91.79% and 91.68% query-retrieval F1. Read Introducing Model builder in MDMbox for the workflow, automatic and configured precision/recall/F1, evaluation protocol and limitations.

  • Bulk query strategy — Set bulkQueryStrategy to "or" (default) or "union" in a Bulk Start request. Compare the strategies on the same prepared snapshot; each job retains its model version and strategy when resumed.

  • Prometheus monitoring — A separate metrics endpoint reports request rate, response codes, latency by route, JVM usage, and database connections. A Grafana dashboard includes route and status breakdowns.

  • Aidbox App integration — Improved delivery of CSV exports and incremental Admin UI updates through Aidbox Apps. With Aidbox's response streaming, bulk and continuous matching downloads begin before the complete file is generated, and UI events arrive as MDMbox sends them. Aidbox no longer holds the complete response body in memory.

  • Direct Admin UI access for development — With MDMBOX_AUTH_ENABLED=false, the Admin UI can open directly on the MDMbox address without Aidbox sign-in. Authentication remains enabled by default.

Response streaming is available with Aidbox 2610.0 or later. We recommend that version or later for App integration. Earlier supported Aidbox versions continue to serve the UI and downloads with buffered responses; see App integration compatibility.

September 2026

Docker tags: 2609.0, 2609

Compatible Aidbox versions: 2605, 2606, 2607, 2608, 2609.

Features and improvements

  • Admin UI through Aidbox — Open MDMbox at /mdmbox on the Aidbox address. Aidbox handles browser sign-in, sign-out, and UI authorization through AccessPolicies. Anonymous browser navigation redirects to Aidbox login and returns to the requested page after sign-in. Direct UI access to MDMbox returns HTTP 403; a separate MDMbox UI role or login is no longer required.
  • Automatic App setup — MDMbox registers App/mdmbox and its UI, API, and Swagger operations at startup, keeping the App secret across restarts. It seeds policies for the login redirect and public API documentation. MDMBOX_ADMIN_ID and MDMBOX_ADMIN_PASSWORD create an initial Aidbox user and a UI AccessPolicy; existing policies are preserved.
  • Shared database startup — Fixed fresh MDMbox installation when Aidbox has already initialized the shared database.
  • SQL matching helpers — Canonical names are mdm_unaccent, mdm_unaccent_upper, mdm_unaccent_upper_no_spaces, and mdm_jaro_winkler. Upgrades retain legacy names as compatibility aliases, preserving existing model expressions and indexes. Fresh installations create the canonical helpers; use them when importing models from earlier versions.
  • API access through Aidbox — The App exposes MDMbox operations at /api/* on Aidbox. Set MDMBOX_API_AIDBOX_APP_ONLY=true to enforce Aidbox AccessPolicies by rejecting direct protected API requests with HTTP 403. MDMbox verifies App credentials and uses the identity authenticated by Aidbox.
  • Continuous matching — A persistent process matches existing records and keeps its results current as records are inserted, updated, and deleted. Changes to prepared fields recompute affected matches and weights; deletions retract pairs, while manual decisions and merge history remain available. Pause and Resume retain completed results and captured changes; active processes recover after restarts and hand over during rolling updates. The Admin UI shows separate change-application and matching progress with batch diagnostics. Download CSV or NDJSON, or browse results as paginated JSON with a decision-status filter.

Configuration and upgrade changes

  • Set the same BOX_WEB_BASE_URL in Aidbox and MDMbox. MDMbox now requires this public Aidbox URL at startup; the legacy AIDBOX_BASE_URL alias is accepted, while MDMBOX_AIDBOX_URL is no longer used.
  • Set MDMBOX_AIDBOX_APP_ENDPOINT_URL to the MDMbox endpoint reachable from Aidbox. Its default is http://mdmbox:3000/api/aidbox-app-proxy; Kubernetes deployments should use their MDMbox Service address.
  • Replace direct Admin UI links with the Aidbox /mdmbox address. MDMBOX_ADMIN_ROLE, the separate UI Client, and MDMbox browser sessions are no longer used. Configure UI and App API access with Aidbox AccessPolicies.
  • Direct API authentication remains enabled by default and supports Basic Client credentials, Aidbox access tokens, and external JWT validation. MDMBOX_API_AIDBOX_APP_ONLY defaults to false; enable it when all protected API access must go through Aidbox.
  • Continuous processes created by versions that captured only inserts rebuild prepared data and results on their first Start or automatic recovery after the upgrade. Automatic recovery uses the saved model version and includes earlier updates and deletions. See Continuous matching upgrades.

See Authentication, Configuration reference, and Continuous matching for setup, API behavior, and upgrade guidance.

August 2026

Docker tag: 2608

Compatible Aidbox versions: 2605, 2606, 2607, 2608.

Improvements

  • Server-managed merge — Reference discovery can use type-specific GIN expression indexes on related-resource tables, including nested references. Create the matching indexes in the resource database to accelerate large-table searches; the documentation includes an Encounter-to-Patient index example.
  • Bulk matching — Start prepares data when needed, then runs matching. Changes to scoring rules reuse prepared data; index changes update only indexes.
  • Bulk matching commands and status responses now use FHIR Parameters. Status includes job progress, and /status/{job-id} lets you follow a specific job.

API changes

  • Replace calls to /api/bulk-match/{model-id}/prepare with /api/bulk-match/{model-id}/start. To rebuild prepared data, pass {"refreshSourceData": true} to Start. Update response parsing to read FHIR parameters by name; see the Bulk matching API examples.

UI changes

  • Admin navigation — New sidebar navigation groups Models, Matching, and Algorithms, with separate Merge and Unmerge pages.
  • Bulk matching — Separate Start job and Refresh and start actions let you reuse prepared data or rebuild it from current source records. Job activity shows per-worker timelines, batch details, and paginated batch history.

Last updated: