2.56.0

2026-06-01

This version of Tamanu requires Chrome 147 or later.

Artifacts

central container oci://ghcr.io/beyondessential/tamanu-central:v2.56.0
central linux-amd64 https://servers.ops.tamanu.io/2.56.0/central-2.56.0-linux-amd64.tar.zst
Download
central windows-amd64 https://servers.ops.tamanu.io/2.56.0/central-2.56.0-windows.tar.zst
Download
dbt-manifest any https://docs.data.bes.au/tamanu/v2.56.0/manifest.json
Download
facility container oci://ghcr.io/beyondessential/tamanu-facility:v2.56.0
facility linux-amd64 https://servers.ops.tamanu.io/2.56.0/facility-2.56.0-linux-amd64.tar.zst
Download
facility windows-amd64 https://servers.ops.tamanu.io/2.56.0/facility-2.56.0-windows.tar.zst
Download
frontend any https://servers.ops.tamanu.io/2.56.0/web-2.56.0.tar.zst
Download
frontend container oci://ghcr.io/beyondessential/tamanu-frontend:v2.56.0
mobile android https://clients.ops.tamanu.io/2.56.0/android/tamanu/app-release.apk
patient-portal any https://servers.ops.tamanu.io/2.56.0/patient-portal-2.56.0.tar.zst
Download
patient-portal container oci://ghcr.io/beyondessential/tamanu-patient-portal:v2.56.0

Changelog

Bugfixes 🐛

  • SAST: COOL-58 sast vulnerabilities rate limit (#9614)
  • SAST: COOL-58: sast vulnerabilities sensitive cookie (#9615)
  • adminPanel: Permissions table keyboard accessibility (#9540)
  • adminPanel: NASS-1898: manage program registries (#9517)
  • adminPanel: NASS-1898: manage program registries (#9517)
  • adminPanel: NASS-1898: manage program registries (#9517)
  • adminPanel: NASS-1898: manage program registries (#9517)
  • adminPanel: NASS-1898: manage program registries (#9517)
  • adminPanel: NASS-1898: manage program registries (#9517)
  • appointments: 2.56 hotfix: only send appointment email when checkbox ticked (#9857)
  • assets: TAM-6818: Patient cert logo (HOTFIX 2.56) (#9905)
  • assets: TAM-6818: Patient cert logo (HOTFIX 2.56) (#9905)
  • centralServer: Missing object-level permission check for GET /admin/programRegistry/:id (#9690)
  • ci: COOL-64: Improve CI momentarily (#9606)
  • ci: Increase timeout in database package tests (#9663)
  • database: hotfix 2.52 optimise note type migration (#9796)
  • deaths: Death certificate stuck in loading state when no villageId (#9590)
  • e2e: Fix broken tokens in E2E (#9649)
  • fhir: COOL-63: De-prioritise FHIR jobs created during migrations (#9586)
  • fhir: defuse FHIR search literal-replacements throw + detect Windows path-casing duplication (#9660)
  • integration: SAV-1150: Update mSupply API (#9568)
  • integrations: SAV-1150: Update config case (#9635)
  • invoicing: parse price list rules JSON on import (MAIN) (#9667)
  • invoicing: parse price list rules JSON on import (#9651)
  • invoicing: SAV-1054: Palau sliding fee scale (#9601)
  • invoicing: show correct patient subtotal on patient invoices tab (#9865)
  • invoicing: show patientSubtotal in patient invoices table (64a7f0e842)
  • invoicing: recalculate payment status when invoice is updated (#9874)
  • mobile: fix vitals survey freezes (#9735)
  • mobile: remove patient title from mobile model (#9745)
  • mobile: TAM-6812: fix lab test types not loading when category selected (hotfix 2.56) (#9884)
  • mobile: fix crash on initial sync when mobileSync settings missing (#9896)
  • models: Missing patientId property on PatientIssue (#9728)
  • patientPortal: Inaccurate type (#9804)
  • pdf: pad notes and medication cells in PDF printouts (#9632)
  • pdf: show original note author on encounter record printout (#9633)
  • pdf: reliably separate note content and footer on encounter progress record (#9644)
  • programRegistry: MAUI-6469: recover registration dates corrupted by survey submission (hotfix 2.46) (#9622)
  • programRegistry: clear search fields when switching program registries (#9912)
  • provisioning: Update provisioning data to work with default survey code (#9600)
  • provisioning: Revert duplicate codes in location provisioning (#9607)
  • reports: NOTAM-566: always include :timezone in report query replacements (#9630)
  • reviewHero: Test coverage custom tamanu agents (#9587)
  • security: Dependency updates for security patches (#9612)
  • settings: Treat secret settings as high risk (#9702)
  • sync: include prescriptions in sync when patient_ongoing_prescription tick changes (#9608)
  • sync: retain errored snapshot tables for 24h and batch-clean overnight (#9646)
  • sync: Suppress sequelize hooks when persisting sync data (#9711)
  • sync: include prescriptions in sync when patient_ongoing_prescription tick changes (#9623)
  • tests: Flaky CentralSyncManager test (#9788)
  • translation: bulk-fetch existing rows in admin save to avoid N+1 (#9710)
  • triage: update reason for encounter when chief complaint is edited (#9909)
  • triage: update encounter reason for encounter when chief complaint is edited (fcf6d2a87c)
  • web: Erroneously forwarded transient <LoadingIndicator> props (#9561)
  • web: Breadcrumb semantics & translations (#9685)
  • web: Untranslated copy & typographic fixes (#9457)
  • web: only remember email on successful login (#9709)
  • web: Suppressed non-404 error in <SurveyResponseDetailsModal> (#9740)
  • web: Inverted guard in <SurveyResponseDetailsModal> (#9749)
  • web: Erroneously forwarded <SurveyResultBadge> attribute (#9775)
  • web: Remove unsupported data-* props from <ClickAwayListener>s (#9763)
  • web: autocomplete crash when option label is nullish (#9882)
  • Bruno bootstrap serviceRequest filtering (#9679)- Date locale parse ordering (#9694)- Include imaging encounters in all outpatient encounter type checks (#9503)- Include 'other' sex value across sex checks in codebase (#9504)- propagate 2.52 fixes to release/2.56 (#9877)- propagate 2.52 fixes to release/2.56 (#9877)

Configuration ⚙️

  • email: generalise sender-address config as mail.from (#9656)

Documentation 📚

  • llm: Tighten translations rule for AI agents (#9691)

Features ⭐

  • admin: COOL-52: Admin impersonate role (#9202)
  • adminPanel: NASS-1898: manage program registries (#9517)
  • adminPanel: NASS-1898: migrate to MUI v7 Tabs and Tab (#9527)
  • adminPanel: NASS-1898: migrate to MUI v7 Tabs and Tab (#9527)
  • bruno: 1 click fhir endpoint testing (#9671)
  • db: COOL-57: replace migration chain with SQL baseline snapshot (#9572)
  • db: COOL-57: extend migration baseline snapshot to v2.41.5 (#9647)
  • email: 2.51: add SMTP and other nodemailer transport support (MAIN) (#9675)
  • email: 2.51: add SMTP and other nodemailer transport support (#9653)
  • fhir: NASS-1868: Lab request rejected status (#9128)
  • fhir: NASS-1871: Allow SENAITE to create reflex tests via the FHIR API (#9119)
  • fhir: TAM-6749: Allow SENAITE to specify the Lab Result method via the FHIR API (#9753)
  • fhir: NASS-1883: Allow SENAITE to specify a custom reference range for a lab test (#9772)
  • fhir: NASS-1883: Added mobile migration for lab_tests reference range columns (#9785)
  • fhir: TAM-6792: Allow SENAITE to specify the Labratory Officer of a Lab Test via the FHIR API (#9794)
  • formBuilder: SAV-1151: add configurable AI prompts (#9688)
  • invoicing: TAM-6825: add evaluationOrder to invoice price lists (HOTFIX 2.56) (#9929)
  • invoicing: TAM-6825: add evaluationOrder to invoice price lists (#9927)
  • labs: NASS-1875: Lab result history (#8989)
  • migrations: COOL-60: Preserve information about migrations (#9634)
  • pharmacyOrders: TAM-6739: Add setting to control the default prescription type when sending an order to the pharmacy (#9764)
  • pharmacyOrders: TAM-6739: Add setting to control the default prescription type when sending an order to the pharmacy (#9726)
  • programRegistry: SAV-1117: Program registry PLTFU auto flag (#9330)
  • settings: modal markdown editor for long ai prompts (#9681)
  • settings: SAV-1164: live cache invalidation across server and web (#9670)
  • settings: SAV-1165: settings secrets (#9109)
  • syntheticUsage: TAN-2608: Additional synthetic usage workflows (#9559)

Performance 🌊

  • mobile: Improve survey form performance on low-end devices (#9521)

Refactors 🛠️

  • email: generalise sender-address config as mail.from (#9656)
  • web: Return stable references from usePatientNavigation (#9684)
  • Tighten patient-issue-related constant types (80b73002c5)

Repo 📖

  • Narrow Kamaka codeowner gate to deploy workflows (#9708)

Revert ⏪

  • db: COOL-57: replace migration chain with SQL baseline snapshot (#9572)
  • db: COOL-57: replace migration chain with SQL baseline snapshot (#9572)
  • mobile: TAM-6812: revert lab test types hotfix (false positive) (#9897)

Security ⚠️

  • security: Dependency updates for security patches (#9612)
  • security: Dependency updates for security patches (#9612)
  • security: Dependency updates for security patches (#9612)
  • security: Dependency updates for security patches (#9612)
  • security: Dependency updates for security patches (#9612)
  • security: Dependency updates for security patches (#9612)
  • security: Dependency updates for security patches (#9612)
  • security: Dependency updates for security patches (#9612)
  • security: Dependency updates for security patches (#9612)
  • security: Dependency updates for security patches (#9612)
  • security: Dependency updates for security patches (#9612)
  • security: Dependency updates for security patches (#9612)
  • security: Dependency updates for security patches (#9612)
  • security: Dependency updates for security patches (#9612)
  • security: Dependency updates for security patches (#9612)
  • security: Dependency updates for security patches (#9612)
  • security: Dependency updates for security patches (#9612)
  • security: Dependency updates for security patches (#9612)
  • security: Dependency updates for security patches (#9612)
  • security: Dependency updates for security patches (#9612)
  • security: Dependency updates for security patches (#9612)
  • security: Dependency updates for security patches (#9612)

Testing 🧪

  • db: COOL-57: replace migration chain with SQL baseline snapshot (#9572)
  • Update test timeout (#9593)

Tweaks ⚖️

  • E2E: Speed up vaccine E2E spec (#9648)
  • bruno: TAN-2531: Add device id to bruno login payload (#9664)
  • bruno: Add pdf to diagnostic report (#9761)
  • e2e: Combine db setup for e2e shards (#9621)
  • e2e: Generate failure report when running from checkbox (#9750)
  • playwright: Include visual debug data in failed tests report when running locally (#9645)
  • review-hero: Add Save suppressions checkbox to PR template (#9700)
  • translations: Ignore dist directories in scrapeTranslations (#9807)
  • uiComponents: Don’t stringify primitive errors in forms (#9377)
  • web: SAV-1168: rename “Encounter summary” button to “Encounter record” (#9692)
  • web: Explicitly default <table>s to tabular figures (#9776)
  • Remove repetitive E2E tests already covered by endpoint tests (#9616)- Enforce E2E pass before merge (#9609)- restore E2E checkbox (#9746)
Copied to clipboard!