Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
24afab6
fix(ci): fail the compliance run when tests never reach a verdict
quotentiroler Aug 13, 2026
083da37
chore: sync package versions
quotentiroler Aug 13, 2026
b28822d
πŸ”„ Update version to 0.3.13-alpha.202608131916.083da3785 (alpha) [skip…
github-actions[bot] Aug 13, 2026
7490202
Merge pull request #1016 from Max-Health-Inc/develop
proxy-smart-releaser[bot] Aug 13, 2026
8934ce4
chore: absorb main branch (resolve version conflicts) [proxy-smart-re…
proxy-smart-releaser[bot] Aug 13, 2026
82ff126
πŸ”„ Update version to 0.3.13-beta.202608131916.083da3785 (beta) [skip ci]
github-actions[bot] Aug 13, 2026
cfdc0c7
fix(ci): keep the compliance summary alive when the runner dies early
quotentiroler Aug 13, 2026
fee3071
πŸ”„ Update version to 0.3.14-alpha.202608131924.cfdc0c7f7 (alpha) [skip…
github-actions[bot] Aug 13, 2026
5739b47
Merge pull request #1018 from Max-Health-Inc/develop
proxy-smart-releaser[bot] Aug 13, 2026
0ac8f12
fix(ci): perform the EHR half of the EHR launch instead of scraping a…
quotentiroler Aug 13, 2026
8780695
chore: sync package versions
quotentiroler Aug 13, 2026
88b6b85
πŸ”„ Update version to 0.3.14-beta.202608131924.cfdc0c7f7 (beta) [skip ci]
github-actions[bot] Aug 13, 2026
6a355f9
chore: absorb test branch (resolve version conflicts) [proxy-smart-re…
proxy-smart-releaser[bot] Aug 13, 2026
a3d375b
Merge pull request #1019 from Max-Health-Inc/develop
proxy-smart-releaser[bot] Aug 13, 2026
1f6f883
docs: update CHANGELOG.md for PR #1019 [skip ci]
github-actions[bot] Aug 13, 2026
f6f0770
fix(ci): drive the authorization phase of the EHR launch, not just th…
quotentiroler Aug 13, 2026
961ab42
chore: sync package versions
quotentiroler Aug 13, 2026
68b308d
πŸ”„ Update version to 0.3.14-alpha.202608131946.961ab42c4 (alpha) [skip…
github-actions[bot] Aug 13, 2026
43fcdb1
Merge pull request #1020 from Max-Health-Inc/develop
proxy-smart-releaser[bot] Aug 13, 2026
10617b9
πŸ”„ Update version to 0.3.14-beta.202608131946.961ab42c4 (beta) [skip ci]
github-actions[bot] Aug 13, 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
309 changes: 268 additions & 41 deletions .github/scripts/inferno-oauth-automation.js

Large diffs are not rendered by default.

53 changes: 37 additions & 16 deletions .github/workflows/smart-compliance-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -1317,17 +1317,23 @@ jobs:
INFERNO_EXIT_CODE=${PIPESTATUS[0]}
cd $GITHUB_WORKSPACE

# Parse results from the log
if grep -q "PASS:" inferno-output.log; then
PASSED=$(grep -c "βœ“ PASS:" inferno-output.log || true)
FAILED=$(grep -c "βœ— FAIL:" inferno-output.log || true)
else
PASSED=0
FAILED=0
fi
PASSED=${PASSED:-0}
FAILED=${FAILED:-0}

# Read the runner's own tally instead of re-counting log markers, which
# also matched the per-poll progress lines and could not see the tests
# that never reached a verdict.
SUMMARY_LINE=$(grep -E "^Total: [0-9]+ \| Passed:" inferno-output.log | tail -1 || true)
# `|| true` on every extraction: under `bash -e` a failed grep would
# abort this step, losing the summary in exactly the case (runner died
# before printing its tally) where it is most needed.
field() {
echo "$SUMMARY_LINE" | tr '|' '\n' | grep -iE "^ *$1:" | sed 's/.*: *//' | tr -d ' ' | head -1 || true
}
TOTAL=$(field Total || true); TOTAL=${TOTAL:-0}
PASSED=$(field Passed || true); PASSED=${PASSED:-0}
FAILED=$(field Failed || true); FAILED=${FAILED:-0}
INCOMPLETE=$(field Incomplete || true); INCOMPLETE=${INCOMPLETE:-0}
OMITTED=$(field Omitted || true); OMITTED=${OMITTED:-0}
ERRORS=$(field Errors || true); ERRORS=${ERRORS:-0}

# Write summary
echo "" >> $GITHUB_STEP_SUMMARY
echo "## SMART 2.2.0 Compliance Test Results" >> $GITHUB_STEP_SUMMARY
Expand All @@ -1341,16 +1347,31 @@ jobs:

echo "" >> $GITHUB_STEP_SUMMARY
echo "### Test Summary" >> $GITHUB_STEP_SUMMARY
echo "- Total: $TOTAL" >> $GITHUB_STEP_SUMMARY
echo "- Passed: $PASSED" >> $GITHUB_STEP_SUMMARY
echo "- Failed: $FAILED" >> $GITHUB_STEP_SUMMARY
echo "- Never reached a verdict: $INCOMPLETE" >> $GITHUB_STEP_SUMMARY
echo "- Omitted (not applicable here): $OMITTED" >> $GITHUB_STEP_SUMMARY
echo "- Internal errors: $ERRORS" >> $GITHUB_STEP_SUMMARY
echo "- Test Stage: ${{ env.TEST_STAGE }}" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY

# Per-group marks were hardcoded to βœ“, so the summary claimed all four
# groups passed even when three of them never ran. Derive them.
echo "### Groups Tested" >> $GITHUB_STEP_SUMMARY
echo "- βœ“ Standalone Launch (Discovery + OAuth + OIDC + Token Refresh)" >> $GITHUB_STEP_SUMMARY
echo "- βœ“ Token Introspection" >> $GITHUB_STEP_SUMMARY
echo "- βœ“ Backend Services (client_credentials + asymmetric JWT)" >> $GITHUB_STEP_SUMMARY
echo "- βœ“ EHR Launch (EHR-initiated launch with patient context)" >> $GITHUB_STEP_SUMMARY

group_mark() {
if grep -qF "βœ— $1:" inferno-output.log; then echo "βœ—"; else echo "βœ“"; fi
}
echo "- $(group_mark 'Standalone Launch') Standalone Launch (Discovery + OAuth + OIDC + Token Refresh)" >> $GITHUB_STEP_SUMMARY
echo "- $(group_mark 'Token Introspection') Token Introspection" >> $GITHUB_STEP_SUMMARY
echo "- $(group_mark 'Backend Services') Backend Services (client_credentials + asymmetric JWT)" >> $GITHUB_STEP_SUMMARY
echo "- $(group_mark 'EHR Launch') EHR Launch (EHR-initiated launch with patient context)" >> $GITHUB_STEP_SUMMARY

if [ "$INCOMPLETE" -gt 0 ]; then
echo "" >> $GITHUB_STEP_SUMMARY
echo "> $INCOMPLETE test(s) never reached a verdict β€” see \"never reached a verdict\" in the log." >> $GITHUB_STEP_SUMMARY
fi

# Include FHIR server info
echo "" >> $GITHUB_STEP_SUMMARY
echo "### FHIR Server Configuration" >> $GITHUB_STEP_SUMMARY
Expand Down
12 changes: 12 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,18 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).

## [Unreleased]

## [0.3.14-beta.202608131924.cfdc0c7f7] - 2026-08-13

- πŸ”§ Chores & Improvements: CI/CD and version synchronization
- Update version to 0.3.14-beta.202608131924.cfdc0c7f7 (beta)
- chore: sync package versions
- πŸ› Bug Fixes: EHR launch flow fix
- fix(ci): perform the EHR half of the EHR launch instead of scraping a URL
- Corrects misnamed launch path handling and ensures proper iss correlation

**Full Changelog**: https://github.com/Max-Health-Inc/proxy-smart/pull/1019


## [0.3.11-RELEASE.202608121633.0ee3da2eb] - 2026-08-13

- ✨ Features
Expand Down
2 changes: 1 addition & 1 deletion backend/package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "proxy-smart-backend",
"displayName": "Proxy Smart Backend",
"version": "0.3.13-RELEASE.202608131856.7385093a0",
"version": "0.3.14-beta.202608131946.961ab42c4",
"type": "module",
"scripts": {
"test": "bun test --isolate",
Expand Down
2 changes: 1 addition & 1 deletion config/eslint/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@proxy-smart/eslint-config",
"version": "0.3.13-beta.202608131610.f7f7f64bd",
"version": "0.3.14-beta.202608131924.cfdc0c7f7",
"private": true,
"type": "module",
"exports": {
Expand Down
2 changes: 1 addition & 1 deletion deploy/infra/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"name": "proxy-smart-infra",
"displayName": "Proxy Smart Infrastructure",
"description": "AWS CDK infrastructure for Proxy Smart production deployment",
"version": "0.3.13-RELEASE.202608131856.7385093a0",
"version": "0.3.14-beta.202608131946.961ab42c4",
"private": true,
"type": "module",
"scripts": {
Expand Down
2 changes: 1 addition & 1 deletion frontend/smart-dicom-template/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"displayName": "SMART DICOM Algorithm Template",
"description": "Starter kit for building SMART on FHIR imaging algorithm apps. Clone, implement your algorithm in src/algorithm.ts, and deploy as a SMART app.",
"private": true,
"version": "0.3.13-beta.202608131610.f7f7f64bd",
"version": "0.3.14-beta.202608131924.cfdc0c7f7",
"type": "module",
"scripts": {
"dev": "vite --port 5180",
Expand Down
2 changes: 1 addition & 1 deletion frontend/ui/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"displayName": "Proxy Smart Admin UI",
"description": "A web-based administration interface for managing healthcare applications and resources via Proxy Smart.",
"private": true,
"version": "0.3.13-beta.202608131610.f7f7f64bd",
"version": "0.3.14-beta.202608131924.cfdc0c7f7",
"type": "module",
"scripts": {
"dev": "vite",
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "proxy-smart",
"version": "0.3.13-RELEASE.202608131856.7385093a0",
"version": "0.3.14-beta.202608131946.961ab42c4",
"repository": {
"type": "git",
"url": "git+https://github.com/Max-Health-Inc/proxy-smart.git"
Expand Down
2 changes: 1 addition & 1 deletion packages/app-store/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@proxy-smart/app-store",
"version": "0.3.13-beta.202608131610.f7f7f64bd",
"version": "0.3.14-beta.202608131924.cfdc0c7f7",
"private": false,
"type": "module",
"description": "SMART on FHIR app store β€” manifest discovery, visibility configuration, and registry CRUD. Framework-agnostic.",
Expand Down
2 changes: 1 addition & 1 deletion packages/auth/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@proxy-smart/auth",
"version": "0.3.13-beta.202608131610.f7f7f64bd",
"version": "0.3.14-beta.202608131924.cfdc0c7f7",
"private": false,
"type": "module",
"description": "SMART on FHIR STU 2.2.0 server-side authorization proxy β€” launch context, session management, token enrichment. Framework-agnostic, IdP-pluggable.",
Expand Down
2 changes: 1 addition & 1 deletion packages/cli/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@proxy-smart/cli",
"version": "0.3.13-beta.202608131610.f7f7f64bd",
"version": "0.3.14-beta.202608131924.cfdc0c7f7",
"private": false,
"type": "module",
"description": "Admin CLI for the proxy-smart SMART on FHIR authorization proxy. Authenticates via Keycloak OAuth (device flow or client_credentials) and drives the admin REST API.",
Expand Down
2 changes: 1 addition & 1 deletion packages/elysia-mcp/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@max-health-inc/elysia-mcp",
"version": "0.3.13-beta.202608131610.f7f7f64bd",
"version": "0.3.14-beta.202608131924.cfdc0c7f7",
"private": false,
"type": "module",
"description": "Auto-generate MCP tools and resources from Elysia routes via introspection. TypeBox-to-Standard-Schema bridge, Streamable HTTP transport, session management.",
Expand Down
2 changes: 1 addition & 1 deletion packages/patient-picker/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"displayName": "Proxy Smart Patient Picker",
"description": "Patient selection UI shown during SMART standalone launch when patient context is needed.",
"private": true,
"version": "0.3.13-beta.202608131610.f7f7f64bd",
"version": "0.3.14-beta.202608131924.cfdc0c7f7",
"type": "module",
"scripts": {
"dev": "vite --port 5176",
Expand Down
2 changes: 1 addition & 1 deletion scripts/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "proxy-smart-scripts",
"version": "0.3.13-RELEASE.202608131856.7385093a0",
"version": "0.3.14-beta.202608131946.961ab42c4",
"description": "CI/CD and development scripts for Proxy Smart",
"private": true,
"type": "module",
Expand Down
2 changes: 1 addition & 1 deletion testing/e2e/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@proxy-smart/e2e",
"version": "0.3.13-beta.202608131610.f7f7f64bd",
"version": "0.3.14-beta.202608131924.cfdc0c7f7",
"private": true,
"description": "End-to-end Playwright tests for Proxy Smart apps",
"scripts": {
Expand Down