Repository navigation
v0.2.5
What's Changed
What's Changed
- feat(mongodb): allow _id as the last _sort key after search parameters (#1693) by @doctorvk in #1695
- fix(mongodb): read resource-id sets through a cursor instead of distinct (#1697) by @doctorvk in #1698
- fix(ui): keep SQL export job ID copy available after polling by @Gordex2014 in #1694
- fix(sqlite,postgres): answer 503 + Retry-After when a transaction Bundle cannot begin (#1636, #1637) by @dougc95 in #1696
- test(auth): guard bundled Keycloak realm lets hfs-web import by @eterceros in #1718
- fix(postgres): keep the stored-SearchParameter load seeking by tenant by @eterceros in #1724
- fix(bulk-submit/s3): walk a manifest's receipt objects once instead of once per page (#1715) by @angela-helios in #1725
- perf(postgres): skip unmatched Observation lookups in native _has by @Gordex2014 in #1726
- fix(ui): stop Enter in SQL Export "Filter subjects" from submitting the form by @eterceros in #1727
- fix(bulk-submit): report stored-but-unindexed resources as warnings when HFS reindexes them by @eterceros in #1728
- fix(ui): the SQL rails' filter works when the server ignores name:contains (#1722) by @angela-helios in #1729
- fix(ui): in-page confirmations, editor Versions after save, quiet export cancel by @eterceros in #1730
- fix(persistence): build the patient export index on pg-es and surface export timeouts by @eterceros in #1731
- feat(ui): name SQL export downloads after the export job by @eterceros in #1732
- test(search): cover a trailing _id after search-parameter sort keys in the shared suite (#1713) by @smunini in #1733
- fix(composite): page split searches once, after filtering by secondary id sets (#1710) by @smunini in #1735
- fix(ui): move the CSV header switch out of SQL Export's Advanced card by @eterceros in #1737
- fix(ui): align search-parameter detail values with the badge indent by @eterceros in #1738
- fix(ui,rest): explain batch sign-in and size limits on /ui/batch, raise HFS_MAX_BODY_SIZE to 128 MiB by @eterceros in #1740
- fix(ui): place export job statuses before actions by @Gordex2014 in #1741
- ci(bench): make the default benchmark run all six storage setups by @dougc95 in #1743
- fix(ui): group arrays and reveal newly added editor elements by @Gordex2014 in #1745
- fix(postgres): plan transaction Bundle locks instead of taking the exclusive tenant gate (#1637) by @dougc95 in #1746
- fix(mongodb): retry an unlabelled TemporarilyUnavailable (365) transaction abort (#1700) by @dougc95 in #1760
- fix(fhirpath): hasValue() is false for complex types by @smunini in #1766
- test(mongodb): run the multi-key cases of the shared _sort missing-value suite (#1709) by @smunini in #1734
- fix(search): sort by _tag, _profile, _security and _source (#1711) by @smunini in #1736
- fix(ui): close export suggestions and validate manual references by @Gordex2014 in #1744
- fix(mongodb): load stored SearchParameters per tenant instead of scanning resources by @smunini in #1765
- fix(fhirpath): cap operator-chain depth at the parse boundary by @eterceros in #1768
- fix(ui): hide the result id tooltip when the editor modal opens by @smunini in #1773
- fix(ui): add cancel navigation to resource and SQL editors by @Gordex2014 in #1763
- feat(reindex): add idStart/idEnd ranges and a clearOnly mode (#1739) by @doctorvk in #1742
- feat(persistence): opt-in limit on concurrent broad MongoDB searches by @doctorvk in #1762
- fix(persistence): keep scalar string columns as strings in $sql-run by @eterceros in #1774
- fix(ui): retire legacy Queries and preserve shared search builders by @Gordex2014 in #1779
- fix(ui): busy state on write actions, keep the pasted id on create, no implicit submit in SQL editors by @andyguz17 in #1784
- fix(rest): hide backend text in $sql-export failure results; add nosniff/no-store to downloads by @dougc95 in #1785
- fix(sof): reject WITH-prefixed INSERT/UPDATE in the SQL SELECT-only check by @dougc95 in #1786
- docs(sof): document HFS_SOF_SQLQUERY_* settings; pin $sql-export dependency-cap error by @dougc95 in #1787
- fix(ui): a signed-in page's self-calls carry the session's bearer (#1671) by @angela-helios in #1782
- test(persistence): fix pinned-WAL lease test flake on slow checkpoints by @smunini in #1816
- fix(export): stop cancelled $sql-export jobs and retry failed output deletes by @dougc95 in #1788
- fix(ui): the SQL rails' filter also governs the main pane (#1780) by @angela-helios in #1781
- fix(mongodb): limit concurrent transaction Bundles to stop WiredTiger… by @dougc95 in #1783
- feat(reindex): id ranges on SQLite and PostgreSQL (#1767) by @smunini in #1817
- fix(sof): make patient, group and _since filters narrow every scan by @dougc95 in #1789
- Fix repeated Compartments delete confirmations and delegated UI handlers by @Gordex2014 in #1778
- fix(ui): an unknown /ui/... address renders the not-found page (#1673) by @angela-helios in #1790
- fix(sof): restrict and quote names and literals in generated SQL by @dougc95 in #1775
- fix(ui): wire the History Type Feed and System Feed tabs (#1674) by @angela-helios in #1791
- fix(ui): the query box runs GET /{type}/{id} as a read (#1675) by @angela-helios in #1792
- fix(ui): the sidebar rail fits a 768 px screen and shows when it scrolls (#1676) by @angela-helios in #1794
- fix(sof): bind patient lists as one parameter and make in-process _since inclusive by @dougc95 in #1796
- docs(rest): --help for HFS_SOF_SQLQUERY_MAX_ROWS and _TIMEOUT_SECS names $sql-export too by @dougc95 in #1807
- fix(sof): add a read-only authorizer to the SQL query engine (#1799) by @dougc95 in #1809
- fix(fhirpath): cache and cap terminology calls, reuse the shared runtime by @dougc95 in #1810
- fix(s3,ui): Compartments and Search Parameters work on standalone S3 (#1821) by @angela-helios in #1822
- fix(mongodb): weight transaction Bundle admission by entries and stop queue time using up the replay budget by @dougc95 in #1818
- fix(rest,sof): harden SQL-on-FHIR output (CSV formulas, runner header, presign TTL, file modes) by @dougc95 in #1795
- fix(rest): persist S3 export manifests so jobs survive a restart (#1801) by @dougc95 in #1815
- fix(sof): share one terminology session across a ViewDefinition run by @dougc95 in #1819
- fix(sql-export,s3): a cancel stops the S3 scan within seconds (#1823) by @angela-helios in #1825
- fix(postgres): retry a pooled connect that fails before reaching the server (#1793) by @angela-helios in #1829
- feat(ui): SQL editor polish — lint card, quick-fix menu, Tab completion, Format, run error placement (#1757) by @andyguz17 in #1832
- fix(sql-export): name the failed subject when a server fault's message is generic (#1800) by @dougc95 in #1820
- feat(ui): align Exports and SQL Exports — type order, delete confirmation, actions, detail page, Job card (#1758) by @andyguz17 in #1833
- test(persistence): move Mongo/S3 SoF since cutoffs past the first resource by @smunini in #1835
- fix(sof): bound the export queue, view shard memory and request inputs by @dougc95 in #1798
- fix(sof): stop the SQL Query dependency walk at the HFS_SOF_SQLQUERY_MAX_VDS node limit by @dougc95 in #1808
- ci(bench): add a cross-leg comparison table to the benchmark run summary by @dougc95 in #1842
- fix(s3,ui): standalone S3 seeds the conformance set it now lists (#1838) by @angela-helios in #1839
- fix(sof): make _since inclusive (at or after) in helios-sof filters and docs by @dougc95 in #1814
- fix(mongodb): answer 500 too-costly when a transaction Bundle is too large for the WiredTiger cache by @dougc95 in #1843
- fix(persistence): PostgreSQL ifNoneExist waiters go on together instead of one at a time (#1747) by @dougc95 in #1845
- fix(persistence): make composite arity mismatch a 400 on every backend by @dougc95 in #1846
- auth: add SMART launch context to Principal and narrow type-level Patient/$everything by @dougc95 in #1844
- feat(ui): page, sort and count the Patients and Groups lookups by @andyguz17 in #1852
- fix(fhirpath,sof): type terminology errors and stop caching transient ones by @dougc95 in #1853
- perf(sof): pre-resolve references only for a view that calls resolve() (#1858) by @angela-helios in #1859
- fix(sof): an unresolved reference fails the in-process run instead of a WARN by @angela-helios in #1871
- fix(auth): read Microsoft Entra ID scopes from roles and a string scp (#724) by @angela-helios in #1872
- fix(ui): keep single pasted export IDs as lookup queries by @Gordex2014 in #1860
- ui: share themed Since selectors across export forms by @Gordex2014 in #1861
- feat(ui): resource editor JSON pane is a live code editor with line markers (#1756) by @andyguz17 in #1869
- docs(book): set up Microsoft Entra ID as the identity provider (#1182) by @angela-helios in #1873
- fix(ui): the account menu falls back to preferred_username, not the opaque sub (#1874) by @angela-helios in #1875
- fix(sof): reject unusable inputs and correct stored results by @Gordex2014 in #1876
- docs(matrix): search Cari853 in the Patients picker on rows 5.2 and 7.g (#1596) by @mauripunzueta in #1877
- fix(elasticsearch): index the resource's own lastUpdated, not the indexing time (#1593) by @mauripunzueta in #1881
- fix(ui): an unseeded dashboard series plots only what the counters recorded, not a flat history (#1603) by @mauripunzueta in #1883
- perf(composite): prefetch pages on mongo-es and extract Elasticsearch pages on a rayon pool (#1250) by @mauripunzueta in #1882
- Fix deleted SQL libraries remaining in Recently used by @Gordex2014 in #1887
- Fix SQL contained composite slots and wildcard validation by @Gordex2014 in #1886
- docs(book): add the Okta page to the Identity Providers section (#1878) by @eterceros in #1879
- ui: confirm unsaved changes before internal navigation by @Gordex2014 in #1885
- docs(book): align the Entra ID page with the identity-provider skeleton (#1182) by @angela-helios in #1889
- ci(bench): report import throughput in resources/s over the import scenario by @dougc95 in #1901
- ci(bench): add single-resource insert suite and matrix row by @dougc95 in #1903
- ci(bench): add an indexing suite (timed Encounter $reindex) to the benchmark matrix by @dougc95 in #1904
- ci(bench): add a bulk-import suite that loads the corpus through $bulk-submit by @dougc95 in #1909
- fix(sof): order SQL expansions and apply final limits by @Gordex2014 in #1929
- transaction: fix forward references, conditional matching, overlapping writes, and entry effects by @doctorvk in #1931
- fix(postgres): resolve forward bundle references and reject overlapping writes (#1934) by @smunini in #1939
- fix(sqlite): search, id-only search and count wait for SQLite off the async worker (#1930) by @angela-helios in #1932
- fix(persistence): keep PostgreSQL count_by_tenant session owned until it settles (#1826) by @Gordex2014 in #1921
- fix(persistence): run SQLite count_by_tenant and list_tenants off the runtime (#1827) by @Gordex2014 in #1922
- fix(persistence): bound MongoDB count_by_tenant with a maxTimeMS budget (#1828) by @Gordex2014 in #1923
- feat(persistence): discover S3 tenants by presence instead of exhaustive counts (#1672) by @Gordex2014 in #1924
- feat(ui): shared background tenant inventory with passive Home totals (#1850) by @Gordex2014 in #1925
- ui(tenants): render the registry first and load counts separately (#1851) by @Gordex2014 in #1926
- test(tenants): verify the eight storage modes and measure Tenants count overhead (#1849) by @Gordex2014 in #1927
- fix(ui-tests): address causes of the nightly Elasticsearch matrix failures by @eterceros in #1891
- fix(persistence): bound PostgreSQL count_by_tenant with its own statement budget (#1911) by @Gordex2014 in #1936
- perf(persistence): count MongoDB resources by tenant from an index (#1910) by @Gordex2014 in #1937
- fix(rest): list S3 tenants in /admin/tenants and console metrics by discovery, not exhaustive counts (#1913) by @Gordex2014 in #1938
- fix(inferno): repair US Core fixture data the reference fix newly exposed by @smunini in #1940
- search(mongodb): plan searches with bounded probes, batched matching and estimated totals by @doctorvk in #1933
- fix: Mongo execution-test mongod crash, duplicate_mod lint, and admin_tenants_postgres flake by @smunini in #1944
- test(mongodb): fix flaky probe-reuse test by pinning tracing interest (#1942) by @smunini in #1943
- fix: run the SQL on FHIR guide's example ViewDefinitions (HL7/sql-on-fhir#410) by @smunini in #1950
- feat(mongodb): page broad default and _lastUpdated searches in resource order with batched complements by @doctorvk in #1951
- perf(search): resolve a _has hop from the reference index in one pass on SQLite (#1930) by @angela-helios in #1958
- perf(reindex): prefetch pages on every Elasticsearch-paired backend behind HFS_REINDEX_PREFETCH (#1250) by @mauripunzueta in #1959
- fix(persistence): read a zero-shard Elasticsearch answer as empty in aggregation counts (#1906) by @Gordex2014 in #1962
- feat(observability): expose PostgreSQL pool size, available and waiting on /metrics (#1907) by @Gordex2014 in #1963
- build(deps): bump quinn-proto to 0.11.19 for RUSTSEC-2026-0338..0342 by @mauripunzueta in #1967
- feat(hfs,s3): make bucket-per-tenant configurable from the binary (HFS_S3_TENANCY, HFS_S3_TENANT_BUCKETS, HFS_S3_SYSTEM_BUCKET) by @mauripunzueta in #1964
- fix(sof): page PostgreSQL view export by id keyset instead of one full sort by @eterceros in #1960
- perf(s3): page type/system _history from the keys under _since and without deletes (#1356) by @mauripunzueta in #1965
- fix(sqlite,dashboard): log long startup work — schema migrations and a slow first count (#1961) by @angela-helios in #1966
- refactor(persistence): delete the REST-unreachable native SQL chain builders (#1341) by @smunini in #1973
- feat(mongodb): index missing search parameters on resources by @doctorvk in #1984
- fix(persistence): don't replay a lone MongoDB Bundle's eviction rollback by @dougc95 in #1990
- fix(persistence): support nested/sibling repeat and nested unionAll in in-DB SoF runners by @eterceros in #1974
- feat(search): implement _in (List/Group membership) on R5/R6 by @eterceros in #1972
- feat(hts): support Value Set Composition Language (VCL) in $expand and $validate-code by @eterceros in #1980
- docs(skills): sync .agents/skills with .claude/skills and refresh root indexes [skip ci] by @eterceros in #1982
- fix(ui): skip dashboard storage work when headless by @Gordex2014 in #2010
- fix(mongodb): build idx_resources_missing_params under HFS_MONGODB_INDEX_BUILD by @smunini in #2013
- fix(mongodb): mark a parameter missing when none of its values builds a row by @smunini in #2012
- auth: enforce patient/ scopes as compartment grants confined to the launch patient (#1618) by @mauripunzueta in #1968
- feat(fhirpath): diagnose an unresolvable leading type identifier by @eterceros in #1971
- feat(sof): stream Parquet and Arrow IPC output instead of buffering the result by @eterceros in #1983
- fix(ui): apply the rail filter to "Recently used" and filter as the user types by @eterceros in #1987
- fix(fhirpath): type-guard semantic checks for upstream isSemanticChecks tests by @smunini in #2015
- test(mongodb): filter profiler entries by mongod's clock, not the client's by @smunini in #2023
- test(mongodb): isolate profiled searches by clearing system.profile by @smunini in #2022
- feat(elasticsearch): keep 1s refresh_interval, reconcile it on startup, warn on slow wait_for by @eterceros in #1979
- fix(persistence): date range index follow-ups for SQLite, PostgreSQL and Elasticsearch by @eterceros in #1988
- fix(persistence): flatten every repeating step in exists(criteria) in in-DB SOF runners by @eterceros in #1981
- feat(sof): append in-DB runner values straight to Arrow builders for Parquet/Arrow output by @eterceros in #1985
- fix(persistence): use shared ap range for SQLite _filter on quantity columns by @eterceros in #1986
- fix(sof): write integers outside the Int32 range to Parquet as Int64 instead of wrapping (#1811) by @mauripunzueta in #1995
- feat(s3): opt-in sharded keyspace layout (v2) to bound sibling fan-out by @eterceros in #2011
- ci(bench): name the loading operations and add a reindex row by @dougc95 in #2016
- perf(postgres): validate the cached SearchParameter overlay per write instead of re-reading ~1.5 MB of it (#1897) by @mauripunzueta in #1998
- fix(deps): bump rustls to 0.23.46 and document legacy 0.21 advisories by @smunini in #2043
- fix(fhirpath): use
=semantics in distinct()/isDistinct() for upstream testDistinct cases by @smunini in #2044 - fix(subscriptions): scope topic definitions by tenant by @Gordex2014 in #2021
- perf(sqlite): reference and compartment searches seek idx_search_reference by a bounded range (#1955) by @angela-helios in #2026
- perf(sqlite): take search candidates straight from the value indexes, without re-reading every index row (#1955) by @angela-helios in #2027
- fix(sqlite): keep the WAL bounded on every write path, and fold it back when idle and at shutdown (#2025) by @angela-helios in #2028
- feat(mongodb): add optional soft deadlines for searches and counts (#1905, part 3) by @doctorvk in #1992
- fix(subscriptions): bound delivery queues and isolate receivers by @Gordex2014 in #2024
- fix(persistence): restore main build — ResourceBatchPlan.missing in deadline test by @smunini in #2052
- ci: guarantee build headroom on Windows runners; stop incremental leak by @smunini in #2053
- fix(mongodb): retry single-resource writes when chunk migration aborts their transaction by @doctorvk in #1997
- test(mongodb): fix flaky post-timeout follow-up read in deadline test by @smunini in #2057
- ci(bench): report bulk-import ingest and initial index as matrix rows, make indexing opt-in by @dougc95 in #2039
- validate sql-export sink by @bomanaps in #2029
- fix(s3): retry manifest-state compare-and-swap on AWS 409 ConditionalRequestConflict by @dougc95 in #2058
- fix(s3): retry a GetObject whose body read fails, and answer 503 when the store stays unavailable by @dougc95 in #2059
- fix(ui): show "This value is required." when a missing SQL Export parameter blocks submit by @dougc95 in #2060
- fix(ui): keep off-server SQL export download links verbatim by @dougc95 in #2061
- build(ui): make helios-ui follow the FHIR versions helios-fhir is built with by @dougc95 in #2062
- feat(s3): share one configurable read limit across scans and reads (HFS_S3_SCAN_CONCURRENCY) by @dougc95 in #2066
- fix(hfs): non_blank_endpoint dead_code on s3-only builds (main lint break after #2029) by @smunini in #2076
- fix(bulk-submit): force path-style addressing when an S3 endpoint is set by @smunini in #2070
- fix(rest): give the validator R4B whenever helios-fhir has it, and require HFS_DEFAULT_FHIR_VERSION in builds without R4 by @dougc95 in #2067
- perf(rest): return freed heap to the OS after a large batch or transaction Bundle (#2020) by @angela-helios in #2073
- fix(persistence): write a large MongoDB Bundle's search rows after commit by @dougc95 in #2030
- perf(search, pg-es): resolve _has reverse chains with an Elasticsearch aggregation by @eterceros in #2085
- fix(ui): visual polish for light theme, cell tooltip, Recent dropdown and History list by @eterceros in #2083
- fix(postgres): lift statement_timeout for reindex resource type listing by @eterceros in #2082
- feat(sof): audit column types against the 3.0.0-ballot defaults and support ansi/type by @eterceros in #1989
- fix(persistence): end a MongoDB commit refused with 388 as too-costly by @dougc95 in #2054
- fix(rest): do not promise a lone eviction rollback's resubmit will fail by @dougc95 in #2055
- fix(postgres): accelerate Patient _has exact totals by @Gordex2014 in #2086
- fix(ui): render nested Observation component codes as text by @Gordex2014 in #2087
- fix(postgres): bound unit-qualified Observation quantity candidates by @Gordex2014 in #2091
- perf(sof): stream single-level repeat views on SQLite; cheaper array unnests and getResourceKey() by @smunini in #2098
- fix(fhirpath): calendar year/month vs UCUM 'a'/'mo' equality is empty by @smunini in #2101
- fix(postgres): avoid timeouts when sorting patient observations by most recent by @Gordex2014 in #2099
- fix(ui): label retained results after loading a query by @Gordex2014 in #2089
- test(mongodb): give the ordered-probe timeout test a 30 s probe budget by @dougc95 in #2092
- fix(deps): upgrade zip to 9 for RUSTSEC-2026-0367/0368/0369 by @smunini in #2102
- ui: theme remaining dropdowns and numeric inputs by @Gordex2014 in #2090
- fix(hts): preserve Coding properties in lookup and expansion by @doctorvk in #2096
- perf(mongodb): use existing token indexes for later search-filter membership checks by @doctorvk in #2097
- test(ui): accept backend key order in issue2079 effectivePeriod summary by @smunini in #2104
- perf(rest): return freed heap to the OS after dashboard reconcile queries (#2106) by @smunini in #2108
- fix(mongodb): verify reindex page deletes after chunk migrations by @doctorvk in #2081
- Cut the dashboard's repeated SQLite history and totals reads (#2107) by @smunini in #2109
- fix(ui): show the ViewDefinition icon in the View Definitions title row by @smunini in #2113
- fix(hts): match regex filters on property concept (#2115) by @smunini in #2117
- fix(hts): evaluate is-a on dotted codes without ECL (#2114) by @smunini in #2116
- fix(persistence): version-guarded restore_deleted, PUT race retry, and the two-handle cluster harness (Phase 0.1) by @aacruzgon in #905
- feat(sof): ValueSet/ConceptMap dependencies as SQL tables (#1824) by @mauripunzueta in #2100
- test(mongodb): fix two_concurrent_repairs_write_one_row_set flake by @smunini in #2118
- Fix/hts validate code versioned canonical by @sandhums in #2119
- fix(persistence): index composite ES documents at the primary version by @sandhums in #2103
- docs(releasing): regenerate the validator's R6 packs before a release [skip ci] by @smunini in #2126
- Fix/hts expand cycle and import closure by @sandhums in #2125
- fix(inferno): drop US-edition SNOMED version from patient 908 Encounter.type by @smunini in #2120
- fix(inferno): resolve PUT and forward references in the batch rewrite by @smunini in #2123
- fix(hts): resolve url|version on CodeSystem $validate-code and $lookup by @smunini in #2124
- chore: refresh R6 to 6.0.0-snapshot1 and regenerate validator R6 packs by @smunini in #2130
- fix(hts): finish /import?finalize=true closure rebuilds in the background by @smunini in #2131
- fix(hts): replace a concept's parent edges on re-import (#2129) by @smunini in #2132
- fix: R5-only build of composite sync; stabilize Mongo covered-plan tests by @smunini in #2134
- fix(hts): rebuild concept_closure on re-import instead of deferring to restart by @smunini in #2133
- test(hts): isolate PG finalize-closure test from concurrent backend startups by @smunini in #2135
New Contributors
Full Changelog: v0.2.4...v0.2.5