You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Run the manual testing pass in MANUAL_TESTING_MATRIX.md for the PostgreSQL + Elasticsearch backend (HFS_STORAGE_BACKEND=pg-es) and record the results in this issue.
The matrix is organised backend-first: every backend gets the same T0 through T8 sequence. This issue covers one row of that matrix.
Procedure
Follow MANUAL_TESTING_MATRIX.md sections 2 through 12 in order, using the pg-es row of the per-backend environment table in section 5.
Infrastructure: start PostgreSQL 16 and Elasticsearch 8.15.0 per section 4. Infrastructure: start Elasticsearch 8.15.0 per section 4. Set HFS_COMPOSITE_SYNC_MODE=synchronous and HFS_ELASTICSEARCH_WRITE_REFRESH=wait_for (section 5 common env) so searches are read-your-write during T2 and T3. Confirm in the log or with HFS_LOG_LEVEL=debug that T3 searches are served by Elasticsearch, and that curl localhost:9200/_cat/indices/hfs* document counts match the T2 totals.
T0 Build with the CI selection: cargo build --workspace --all-features --release
T1 Start HFS with HFS_STORAGE_BACKEND=pg-es HFS_DATABASE_URL=postgresql://helios:helios@localhost:5432/helios HFS_ELASTICSEARCH_NODES=http://localhost:9200 and confirm /health, /metadata, and /ui
T2 Import at least 10,000 resources from the Synthea bulk_1k archive (record wall-clock time, bundle count, resource total)
T3 One search per type: string, token, date, number, quantity, reference, uri, composite, special, plus chained, reverse-chained, _include/_revinclude, _sort, paging, _content, POST search
T4 Bulk Data $export: system, patient, group; all three NDJSON format spellings; unsupported format returns 400; UI /ui/bulk-export
T5 Create a ViewDefinition via API and via /ui/sql/view-definitions; examine $sql-run output in json, csv, ndjson, parquet
T6 $sql-export with a ViewDefinition subject, a SQLQuery Library subject, and a SQLView Library subject, cycling all four formats; UI /ui/sql/export
T7 Create a SubscriptionTopic (R4 backport Basic) and rest-hook Subscription, trigger notifications, verify delivery, $status, $events
T8 Verify the /ui/subscriptions activity dashboard (cards, table row, sparkline, failure streak, rehydration after restart)
Results to attach
The filled-in pg-es row of the matrix table from section 1 of MANUAL_TESTING_MATRIX.md
build.log tail, hfs-pg-es.log, import-pg-es.log, and the T2 timing line
One T4 manifest and one T6 result manifest
Screenshots of /ui after import, /ui/sql/export with a completed card, and /ui/subscriptions after T8
For any failure: the request, the OperationOutcome, the log excerpt, and a link to the issue filed for it
Acceptance criteria
Every T0 through T8 cell for the pg-es row is marked pass, or marked fail with a linked issue, or marked N/A where section 1's expected-support table says the capability is unsupported on this backend
Results and artifacts listed above are attached to this issue
Summary
Run the manual testing pass in
MANUAL_TESTING_MATRIX.mdfor the PostgreSQL + Elasticsearch backend (HFS_STORAGE_BACKEND=pg-es) and record the results in this issue.The matrix is organised backend-first: every backend gets the same T0 through T8 sequence. This issue covers one row of that matrix.
Procedure
Follow
MANUAL_TESTING_MATRIX.mdsections 2 through 12 in order, using thepg-esrow of the per-backend environment table in section 5.Infrastructure: start PostgreSQL 16 and Elasticsearch 8.15.0 per section 4. Infrastructure: start Elasticsearch 8.15.0 per section 4. Set
HFS_COMPOSITE_SYNC_MODE=synchronousandHFS_ELASTICSEARCH_WRITE_REFRESH=wait_for(section 5 common env) so searches are read-your-write during T2 and T3. Confirm in the log or withHFS_LOG_LEVEL=debugthat T3 searches are served by Elasticsearch, and thatcurl localhost:9200/_cat/indices/hfs*document counts match the T2 totals.cargo build --workspace --all-features --releaseHFS_STORAGE_BACKEND=pg-es HFS_DATABASE_URL=postgresql://helios:helios@localhost:5432/helios HFS_ELASTICSEARCH_NODES=http://localhost:9200and confirm/health,/metadata, and/uibulk_1karchive (record wall-clock time, bundle count, resource total)_include/_revinclude,_sort, paging,_content, POST search$export: system, patient, group; all three NDJSON format spellings; unsupported format returns 400; UI/ui/bulk-export/ui/sql/view-definitions; examine$sql-runoutput in json, csv, ndjson, parquet$sql-exportwith a ViewDefinition subject, a SQLQuery Library subject, and a SQLView Library subject, cycling all four formats; UI/ui/sql/exportBasic) and rest-hook Subscription, trigger notifications, verify delivery,$status,$events/ui/subscriptionsactivity dashboard (cards, table row, sparkline, failure streak, rehydration after restart)Results to attach
pg-esrow of the matrix table from section 1 ofMANUAL_TESTING_MATRIX.mdbuild.logtail,hfs-pg-es.log,import-pg-es.log, and the T2 timing line/uiafter import,/ui/sql/exportwith a completed card, and/ui/subscriptionsafter T8Acceptance criteria
pg-esrow is marked pass, or marked fail with a linked issue, or marked N/A where section 1's expected-support table says the capability is unsupported on this backend