Skip to content

Manual test pass: PostgreSQL backend #938

Description

@smunini

Summary

Run the manual testing pass in MANUAL_TESTING_MATRIX.md for the PostgreSQL backend (HFS_STORAGE_BACKEND=postgres) 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 postgres row of the per-backend environment table in section 5.

Infrastructure: start PostgreSQL 16 per section 4 (docker run ... postgres:16).

  • T0 Build with the CI selection: cargo build --workspace --all-features --release
  • T1 Start HFS with HFS_STORAGE_BACKEND=postgres HFS_DATABASE_URL=postgresql://helios:helios@localhost:5432/helios 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 postgres row of the matrix table from section 1 of MANUAL_TESTING_MATRIX.md
  • build.log tail, hfs-postgres.log, import-postgres.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 postgres 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