Skip to content

Manual test pass: SQLite + Elasticsearch backend #937

Description

@smunini

Summary

Run the manual testing pass in MANUAL_TESTING_MATRIX.md for the SQLite + Elasticsearch backend (HFS_STORAGE_BACKEND=sqlite-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 sqlite-es row of the per-backend environment table in section 5.

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=sqlite-es 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 sqlite-es row of the matrix table from section 1 of MANUAL_TESTING_MATRIX.md
  • build.log tail, hfs-sqlite-es.log, import-sqlite-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 sqlite-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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions