Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
83 commits
Select commit Hold shift + click to select a range
c940b5a
feat(fhir): add version-agnostic get_compartment_params dispatch
aacruzgon May 15, 2026
75ded9a
refactor(rest): use helios_fhir::get_compartment_params in compartmen…
aacruzgon May 15, 2026
d236e5c
feat(persistence): add BulkExportError::LeaseLost variant
aacruzgon May 15, 2026
fe80542
feat(persistence): extend bulk-export types for the async kick-off flow
aacruzgon May 15, 2026
3b7bbb8
feat(persistence): add ExportOutputStore trait + supporting types
aacruzgon May 15, 2026
2ab8ea6
feat(persistence): add ExportWorkerStorage / ExportClaimStrategy / wo…
aacruzgon May 15, 2026
b881b46
feat(persistence): re-export new bulk-export traits and types from core
aacruzgon May 15, 2026
7950431
feat(sqlite): v7→v8 migration adds bulk-export lease + part_index col…
aacruzgon May 15, 2026
6d9c7dd
feat(sqlite): implement BulkExportJobStore (claim + worker + lifecycle)
aacruzgon May 15, 2026
d252040
feat(postgres): v7→v8 migration mirrors SQLite bulk-export columns
aacruzgon May 15, 2026
15fb673
feat(postgres): implement BulkExportJobStore for PostgreSQL
aacruzgon May 15, 2026
86c76ae
feat(s3): add S3Api::presign_get for pre-signed download URLs
aacruzgon May 15, 2026
e8bea5a
chore(s3): #[allow(dead_code)] on legacy bulk-export keyspace helpers
aacruzgon May 15, 2026
d4f4617
chore(s3): #[allow(dead_code)] on ExportJobState
aacruzgon May 15, 2026
d6d667f
chore(s3): #[allow(dead_code)] on internal delete_object helper
aacruzgon May 15, 2026
b6659b5
refactor(s3): remove BulkExportStorage; keep ExportDataProvider
aacruzgon May 15, 2026
ccd06e0
feat(s3): add S3OutputStore (multipart upload + pre-signed download)
aacruzgon May 15, 2026
8f55fd9
chore(s3): register output_store module + re-export public types
aacruzgon May 15, 2026
49856e0
test(s3): trim removed-impl tests; keep ExportDataProvider coverage
aacruzgon May 15, 2026
5596e0d
test(postgres): add testcontainers coverage for postgres-s3 job store
aacruzgon May 15, 2026
0f1b018
test(minio): swap removed start_export call for fetch_export_batch + …
aacruzgon May 15, 2026
349bab7
test(s3): swap removed start_export/get_export_manifest for fetch_exp…
aacruzgon May 15, 2026
fcf3329
feat(persistence): add LocalFsOutputStore backend
aacruzgon May 15, 2026
aaf48d0
feat(mongodb): add bulk-export trait stubs
aacruzgon May 15, 2026
eb3448d
chore(mongodb): register bulk_export stub module
aacruzgon May 15, 2026
81d4b5e
chore(persistence): expose local_fs backend module
aacruzgon May 15, 2026
8b93431
feat(composite): delegate ExportDataProvider/Patient/Group to primary
aacruzgon May 15, 2026
c8cceb1
feat(rest): add ExportFileAuth trait + BearerScopeAuth default impl
aacruzgon May 15, 2026
3731dd4
feat(rest): wire bulk-export Arc<dyn> trait objects into AppState
aacruzgon May 15, 2026
1de76d3
feat(rest): add BulkExportConfig with HFS_BULK_EXPORT_* env loading
aacruzgon May 15, 2026
ec991e9
feat(rest): add bulk-export HTTP handlers (kick-off / status / cancel…
aacruzgon May 15, 2026
b975df7
chore(rest): register bulk_export handler module + re-exports
aacruzgon May 15, 2026
e37a1ed
feat(rest): advertise $export operations in CapabilityStatement
aacruzgon May 15, 2026
faf8d2a
feat(rest): register bulk-export routes + add export-data-provider tr…
aacruzgon May 15, 2026
bbb39be
feat(rest): add create_app_with_auth_and_bulk_export + BulkExportBundle
aacruzgon May 15, 2026
8dd0ba1
test(rest): add bulk-export integration tests
aacruzgon May 15, 2026
abfc548
chore(hfs): add chrono dep for the bulk-export cleanup task
aacruzgon May 15, 2026
405d481
feat(hfs): wire bulk-export job store, output store, worker pool into…
aacruzgon May 15, 2026
c338bb0
docs(claude): document Bulk Data Export endpoints + env vars + recipe…
aacruzgon May 15, 2026
3a3dbb0
docs(hfs): add Bulk Data Export section to the hfs README [skip ci]
aacruzgon May 15, 2026
e5717bf
docs(roadmap): mark Bulk Data Export ($export) as shipped [skip ci]
aacruzgon May 15, 2026
e35df04
feat(docker): add bulk-export multi-instance docker-compose stack
aacruzgon May 15, 2026
bbee4f1
ci(inferno): add manual Inferno Bulk Data IG v2.0.0 workflow
aacruzgon May 15, 2026
15377a5
chore(deps): update Cargo.lock for the bulk-export changes
aacruzgon May 15, 2026
cae20cd
fix(persistence): avoid unnecessary since unwrap
aacruzgon May 15, 2026
e23fb00
feat(auth): add disabled JTI cache
aacruzgon May 15, 2026
a890c61
chore(auth): export disabled JTI cache
aacruzgon May 15, 2026
d7750e7
docs(auth): document disabled JTI backend
aacruzgon May 15, 2026
c743565
feat(hfs): support disabled JTI backend
aacruzgon May 15, 2026
179a845
ci(inferno): align bulk export with shared stack
aacruzgon May 15, 2026
2ce84aa
merge main into bulk export workflow
aacruzgon May 15, 2026
e8161b9
ci(inferno): preserve MinIO client alias
aacruzgon May 15, 2026
f6d0ce9
ci(inferno): run bulk export group
aacruzgon May 15, 2026
cc58a7d
chore(deps): update lettre for security audit
aacruzgon May 15, 2026
2ec13e6
ci(bulk-export): add external smoke workflow
aacruzgon May 15, 2026
cc4882c
test(bulk-export): add external smoke runner
aacruzgon May 15, 2026
84ba69c
ci(inferno): add since_timestamp input to bulk data test run
aacruzgon May 15, 2026
f1f4b89
test(rest): add coverage for bulk export auth, config validation, and…
aacruzgon May 15, 2026
924594a
fix(inferno): restore full-suite run so SMART Backend Services group …
aacruzgon May 15, 2026
975f30b
fix(hfs): create parent dir before opening embedded bulk export job DB
aacruzgon May 15, 2026
eedb80c
fix(smoke): replace gawk-only IGNORECASE with portable grep -i for he…
aacruzgon May 15, 2026
13a474f
fix(inferno): run SMART and Export groups sequentially via separate t…
aacruzgon May 15, 2026
08f9c34
fix(persistence): parse cursor timestamp as DateTime<Utc> in postgres…
aacruzgon May 15, 2026
fefca6b
fix(persistence): apply patient_refs filter in Patient-level export
aacruzgon May 15, 2026
3710735
fix(persistence): correct sqlite patient export params
aacruzgon May 16, 2026
b81d03c
test(persistence): cover sqlite patient export without since
aacruzgon May 16, 2026
b6e83a9
fix(fhirpath): remove redundant formatting borrow
aacruzgon May 16, 2026
d13ee1f
test(persistence): serialize postgres bulk export claims
aacruzgon May 16, 2026
ac1a53d
ci(inferno): fix bulk data auth discovery
aacruzgon May 16, 2026
143338a
ci(inferno): reuse smart auth for export tests
aacruzgon May 16, 2026
76744ef
ci(inferno): fix bulk export validation seed
aacruzgon May 16, 2026
170c05d
docs(persistence): document S3 bulk export output store
aacruzgon May 19, 2026
efe35bc
refactor(s3): mark delete_object as live API
aacruzgon May 19, 2026
9214dbc
refactor(s3): remove legacy export key helpers
aacruzgon May 19, 2026
86f9e86
refactor(s3): remove legacy ExportJobState model
aacruzgon May 19, 2026
70b3225
refactor(s3): remove unused delete_object wrapper
aacruzgon May 19, 2026
5953e2c
docs(hfs): remove bulk export details from README
aacruzgon May 19, 2026
46a819e
docs(bulk-export): add export example README
aacruzgon May 19, 2026
b06997f
docs(bulk-export): clarify compose stack is local example
aacruzgon May 19, 2026
501aba7
docs(bulk-export): clarify compose workflow usage
aacruzgon May 19, 2026
c3a5447
fix(deps): update astral-tokio-tar for audit
aacruzgon May 19, 2026
332bdd5
ci(bulk-export): limit smoke matrix to implemented backends
aacruzgon May 19, 2026
bf7d2e4
Merge remote-tracking branch 'origin/main' into feature/bulk-export
aacruzgon May 19, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 1 addition & 9 deletions .github/workflows/bulk-export-smoke.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,15 +28,7 @@ jobs:
{"backend":"sqlite","bulk_mode":"embedded-local","expectation":"full"},
{"backend":"sqlite","bulk_mode":"postgres-s3","expectation":"full"},
{"backend":"postgres","bulk_mode":"embedded-local","expectation":"full"},
{"backend":"postgres","bulk_mode":"postgres-s3","expectation":"full"},
{"backend":"sqlite-elasticsearch","bulk_mode":"embedded-local","expectation":"endpoint-unavailable"},
{"backend":"sqlite-elasticsearch","bulk_mode":"postgres-s3","expectation":"endpoint-unavailable"},
{"backend":"postgres-elasticsearch","bulk_mode":"embedded-local","expectation":"endpoint-unavailable"},
{"backend":"postgres-elasticsearch","bulk_mode":"postgres-s3","expectation":"endpoint-unavailable"},
{"backend":"mongodb","bulk_mode":"postgres-s3","expectation":"unsupported"},
{"backend":"mongodb-elasticsearch","bulk_mode":"postgres-s3","expectation":"endpoint-unavailable"},
{"backend":"s3","bulk_mode":"postgres-s3","expectation":"endpoint-unavailable"},
{"backend":"s3-elasticsearch","bulk_mode":"postgres-s3","expectation":"endpoint-unavailable"}
{"backend":"postgres","bulk_mode":"postgres-s3","expectation":"full"}
]'
MATRIX=$(jq -c --argjson versions "$FHIR_VERSIONS" \
Expand Down
Loading
Loading