Skip to content

Enforce system-only SMART export access#5674

Draft
mikaelweave wants to merge 2 commits into
mainfrom
mikaelweave-system-only-smart-exports
Draft

Enforce system-only SMART export access#5674
mikaelweave wants to merge 2 commits into
mainfrom
mikaelweave-system-only-smart-exports

Conversation

@mikaelweave

@mikaelweave mikaelweave commented Jul 15, 2026

Copy link
Copy Markdown
Contributor

Description

  • authorize SMART Bulk Data $export create, status, and cancel only through unconstrained system/ scopes while preserving RBAC and non-SMART behavior
  • separate population selection from output authorization: Patient/$export requires Patient access, and Group/{id}/$export requires Group and Patient access, in addition to every output type
  • preserve explicit _type subsets and reject scope overreach; when a partial system caller omits _type, infer and persist the authorized resource-type subset instead of requiring wildcard access
  • revalidate persisted export level, effective _type, and completed output types for status/cancel while preserving not-found masking and legacy no-_type wildcard behavior
  • document the decision and add focused unit, API, integration, and E2E coverage

Related issues

AB#197149

Testing

  • Export validator/status/cancel tests on .NET 8 and .NET 9
  • API RBAC ordering tests
  • SQL create-handler persistence tests
  • R4 E2E assembly compilation; focused E2E execution requires local testconfiguration.json

@mikaelweave
mikaelweave changed the base branch from mikaelweave-async-job-smart-scope-e2e-tests to main July 15, 2026 00:37
@mikaelweave
mikaelweave force-pushed the mikaelweave-system-only-smart-exports branch from 5de924c to 342cee6 Compare July 15, 2026 02:40
@mikaelweave mikaelweave changed the title Enforce system-only SMART operation access Enforce system-only SMART export access Jul 15, 2026
@codecov-commenter

codecov-commenter commented Jul 15, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 77.57%. Comparing base (05a3b2a) to head (cea06ee).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##             main    #5674      +/-   ##
==========================================
+ Coverage   77.51%   77.57%   +0.06%     
==========================================
  Files        1005     1006       +1     
  Lines       36950    37016      +66     
  Branches     5606     5621      +15     
==========================================
+ Hits        28640    28714      +74     
+ Misses       6952     6937      -15     
- Partials     1358     1365       +7     

see 11 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@mikaelweave
mikaelweave force-pushed the mikaelweave-system-only-smart-exports branch 3 times, most recently from 4b2ba57 to 90a2b82 Compare July 15, 2026 15:03
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 13c9cccc-8ec4-4b60-8da0-f36ee9ab8be5
@mikaelweave
mikaelweave force-pushed the mikaelweave-system-only-smart-exports branch 2 times, most recently from 7022c9f to ba21911 Compare July 16, 2026 20:15
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 13c9cccc-8ec4-4b60-8da0-f36ee9ab8be5
@mikaelweave
mikaelweave force-pushed the mikaelweave-system-only-smart-exports branch from ba21911 to 4a29e7f Compare July 16, 2026 20:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants