diff --git a/.github/workflows/deploy-beta.yml b/.github/workflows/deploy-beta.yml index 22cd4ded5..c49a98966 100644 --- a/.github/workflows/deploy-beta.yml +++ b/.github/workflows/deploy-beta.yml @@ -42,6 +42,8 @@ on: required: true VITE_ENCRYPTION_SECRET: required: true + OPENAI_API_KEY: + required: false jobs: deploy: @@ -78,6 +80,7 @@ jobs: BETA_KEYCLOAK_ADMIN_PASSWORD: ${{ secrets.BETA_KEYCLOAK_ADMIN_PASSWORD }} BETA_KEYCLOAK_ADMIN_CLIENT_SECRET: ${{ secrets.BETA_KEYCLOAK_ADMIN_CLIENT_SECRET }} VITE_ENCRYPTION_SECRET: ${{ secrets.VITE_ENCRYPTION_SECRET }} + OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} run: | echo "πŸš€ Deploying Beta v${{ inputs.app_version }} to VPS (Docker Compose)..." @@ -95,6 +98,16 @@ jobs: fi " + # Clean up unused Docker resources to prevent disk-full failures + ${SSH_CMD} " + echo '🧹 Cleaning up unused Docker resources...' + docker image prune -af --filter 'until=168h' 2>/dev/null || true + docker container prune -f 2>/dev/null || true + docker volume prune -f 2>/dev/null || true + docker builder prune -af --keep-storage=2gb 2>/dev/null || true + echo \"πŸ“Š Disk usage: \$(df -h / | tail -1 | awk '{print \$5}') used\" + " + # Write env file from CI secrets (printf runs on CI, piped to VPS via SSH) printf '%s\n' \ "POSTGRES_PASSWORD=${BETA_POSTGRES_PASSWORD}" \ @@ -102,6 +115,7 @@ jobs: "KEYCLOAK_ADMIN_PASSWORD=${BETA_KEYCLOAK_ADMIN_PASSWORD}" \ "KEYCLOAK_ADMIN_CLIENT_SECRET=${BETA_KEYCLOAK_ADMIN_CLIENT_SECRET}" \ "VITE_ENCRYPTION_SECRET=${VITE_ENCRYPTION_SECRET}" \ + "OPENAI_API_KEY=${OPENAI_API_KEY}" \ | ${SSH_CMD} "cat > ${DEPLOY_DIR}/.env.beta && chmod 600 ${DEPLOY_DIR}/.env.beta" # Pull latest code and rebuild containers diff --git a/.github/workflows/deployment-strategy.yml b/.github/workflows/deployment-strategy.yml index a375a1cce..f6d555351 100644 --- a/.github/workflows/deployment-strategy.yml +++ b/.github/workflows/deployment-strategy.yml @@ -58,6 +58,8 @@ on: required: false BETA_KEYCLOAK_ADMIN_CLIENT_SECRET: required: false + OPENAI_API_KEY: + required: false jobs: deploy-beta: @@ -75,6 +77,7 @@ jobs: BETA_KEYCLOAK_ADMIN_PASSWORD: ${{ secrets.BETA_KEYCLOAK_ADMIN_PASSWORD }} BETA_KEYCLOAK_ADMIN_CLIENT_SECRET: ${{ secrets.BETA_KEYCLOAK_ADMIN_CLIENT_SECRET }} VITE_ENCRYPTION_SECRET: ${{ secrets.VITE_ENCRYPTION_SECRET }} + OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} deploy-production: name: Deploy Production (Azure/AWS) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5ddc6d2da..b9afb888e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,379 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). ## [Unreleased] +## [0.0.3-alpha.202603270523.8a72cdae] - 2026-03-27 + +- ✨ Features: add Proxy Smart logo icon to /apps page nav +- πŸ”§ Chores & Improvements: update beta/alpha version references for pre-release 0.0.3-alpha.202603270523.8a72cdae +- πŸ“š Documentation: update CHANGELOG.md for PR #269 + +**Full Changelog**: https://github.com/Max-Health-Inc/proxy-smart/pull/270 + + +## [0.0.3-alpha.202603270508.c9253829] - 2026-03-27 + +- πŸ› Bug Fixes: Show App Store only when user is signed out +- πŸ”§ Chores & Improvements: CI/CD and testing updates (dev SMART compliance report) + +**Full Changelog**: https://github.com/Max-Health-Inc/proxy-smart/pull/269 + + +## [0.0.3-alpha.202603270447.2f9c80a0] - 2026-03-27 + +- πŸ”§ Chores & Improvements: Internal maintenance and refactoring + - Refactor(shared-ui): extract AppHeader component from app headers + - CI/CD: Update version to 0.0.3-alpha.202603270447.2f9c80a0 (alpha) + +**Full Changelog**: https://github.com/Max-Health-Inc/proxy-smart/pull/268 + + +## [0.0.3-alpha.202603270441.5b5ab954] - 2026-03-27 + +- πŸ”§ Chores & Improvements: Internal maintenance updates and CI/CD housekeeping +- ✨ Features: None +- πŸ› Bug Fixes: Restore useMemo import in consent-app +- πŸ“š Documentation: Update CHANGELOG.md for PR #266 +- ⚠️ Breaking Changes: None + +**Full Changelog**: https://github.com/Max-Health-Inc/proxy-smart/pull/267 + + +## [0.0.3-alpha.202603270436.f1547658] - 2026-03-27 + +- πŸ”§ Chores & Improvements: Refactor access request logic to use primitive mode helpers (modeBy, modeKey) for stable dependencies + - Remove react useMemo import from useAccessRequests.ts + - Guard fetchRequests with modeBy/modeKey instead of mode + - Switch searchTasksByPatient/searchTasksByRequester to modeBy/modeKey + - Update effect dependencies to [modeBy, modeKey] and remove direct [mode] + +**Full Changelog**: https://github.com/Max-Health-Inc/proxy-smart/pull/266 + + +## [0.0.3-alpha.202603270407.6aa704dc] - 2026-03-27 + +- ✨ Features: expose MCP resources (GET routes) in admin endpoint config UI (quotentiroler) +- πŸ”§ Chores & Improvements: update beta/alpha version metadata and SMART compliance reports (ci-related) + +**Full Changelog**: https://github.com/Max-Health-Inc/proxy-smart/pull/265 + + +## [0.0.3-alpha.202603270356.21873b4b] - 2026-03-27 + +- ✨ Features: add agent scope context and Device fhirUser support (quotentiroler) + +**Full Changelog**: https://github.com/Max-Health-Inc/proxy-smart/pull/264 + + +## [0.0.3-alpha.202603270335.6642cc28] - 2026-03-27 + +- πŸ”§ Chores & Improvements: Consolidate OAuth & Events into a single OAuth tab; fix memory stats +- πŸ”§ Chores & Improvements: Update beta/dev SMART compliance reports (internal testing automation) + +**Full Changelog**: https://github.com/Max-Health-Inc/proxy-smart/pull/263 + + +## [0.0.3-alpha.202603270323.2babb9a9] - 2026-03-27 + +- ✨ Features: replace static 429 stat card with dynamic Top Error card (quotentiroler) +- πŸ”§ Chores & Improvements: update dev SMART compliance report (proxy-smart-releaser[bot]) + +**Full Changelog**: https://github.com/Max-Health-Inc/proxy-smart/pull/262 + + +## [0.0.3-alpha.202603270307.b7318334] - 2026-03-27 + +- πŸ”§ Chores & Improvements: use generated API client types instead of manual duplicates (quotentiroler) + +**Full Changelog**: https://github.com/Max-Health-Inc/proxy-smart/pull/261 + + +## [0.0.3-alpha.202603270233.e884c722] - 2026-03-27 + +- πŸ› Bug Fixes: auto-logout on monitoring 401 and improvements to E2E test stability +- πŸ”§ Chores & Improvements: CI/CD and versioning updates for alpha pre-release 0.0.3-alpha.202603270233.e884c722 + +**Full Changelog**: https://github.com/Max-Health-Inc/proxy-smart/pull/260 + + +## [0.0.3-alpha.202603270112.2b029cbe] - 2026-03-27 + +- ✨ Features: FHIR proxy request monitoring with 429/error tracking (quotentiroler) + +**Full Changelog**: https://github.com/Max-Health-Inc/proxy-smart/pull/259 + + +## [0.0.3-alpha.202603270100.b4b79f74] - 2026-03-27 + +- πŸ› Bug Fixes: Rate-limit avoidance for patient-portal via batch FHIR requests to reduce 429s +- πŸ”§ Chores & Improvements: Update version to 0.0.3-alpha.202603270100.b4b79f74 (alpha) + +**Full Changelog**: https://github.com/Max-Health-Inc/proxy-smart/pull/258 + + +## [0.0.3-alpha.202603270005.c4f44147] - 2026-03-27 + +- ✨ Features: Add E2E Playwright tests for patient-portal (70 test specs) +- πŸ”§ Chores & Improvements: Testing updates and internal maintenance (dev SMART compliance reports) + +**Full Changelog**: https://github.com/Max-Health-Inc/proxy-smart/pull/257 + + +## [0.0.3-alpha.202603262231.bcef1334] - 2026-03-27 + +- πŸ”§ Chores & Improvements: Update version to 0.0.3-alpha.202603262231.bcef1334 +- ✨ Features: SMART scope protocol mapper auto-provisioning, management UI, and logout fixes (quotentiroler) +- πŸ“š Documentation: CHANGELOG update note (from PR #255) + +**Full Changelog**: https://github.com/Max-Health-Inc/proxy-smart/pull/256 + + +## [0.0.3-alpha.202603262210.ca39219f] - 2026-03-26 + +- πŸ› Bug Fixes: set postLogoutRedirectUri in all SMART apps (quotentiroler) + +**Full Changelog**: https://github.com/Max-Health-Inc/proxy-smart/pull/255 + + +## [0.0.3-alpha.202603262146.90e44e07] - 2026-03-26 + +- πŸ”§ Chores & Improvements: Internal updates and maintenance + - Fix: use mutable token ref in MCP sessions to prevent stale auth + +Note: No user-facing features, bug fixes beyond internal auth fix, or documentation changes detected. + +**Full Changelog**: https://github.com/Max-Health-Inc/proxy-smart/pull/254 + + +## [0.0.3-alpha.202603262109.1f1eb8d7] - 2026-03-26 + +- ✨ Features: + - Add missing params schemas to admin routes for MCP tool exposure (quotentiroler) + +- πŸ”§ Chores & Improvements: + - CI/CI: Update version references to 0.0.3-alpha.202603262109.1f1eb8d7 + - Documentation: Update CHANGELOG with PR metadata + +Note: No breaking changes, bug fixes, or documentation/content changes beyond housekeeping detected. + +**Full Changelog**: https://github.com/Max-Health-Inc/proxy-smart/pull/253 + + +## [0.0.3-alpha.202603262009.6c2d2717] - 2026-03-26 + +- ✨ Features: Add comprehensive SMART Access Control tests (scope, write blocking, role-based filtering) plus test utilities. + +**Full Changelog**: https://github.com/Max-Health-Inc/proxy-smart/pull/252 + + +## [0.0.3-alpha.202603261959.0eedf22a] - 2026-03-26 + +- ✨ Features: SMART on FHIR access control feature set + - Adds configurable access control with scope enforcement, role-based filtering, and optional write blocking + - Introduces SMART access control module and core types, wired into backend config + - Adds new backend route integration for FHIR access control + +- πŸ”§ Chores & Improvements: CI/config updates for new feature + - Extends backend/config.ts with accessControl options (scopeEnforcement, roleBasedFiltering, readOnlyForUsers, patientScopedResources) + +- πŸ“š Documentation: (none) + +- ⚠️ Breaking Changes: (none) + +- πŸ› Bug Fixes: (none) + +**Full Changelog**: https://github.com/Max-Health-Inc/proxy-smart/pull/251 + + +## [0.0.3-alpha.202603261915.b85b32ac] - 2026-03-26 + +- ✨ Features: Introduce SMART on FHIR access control + - Add configurable accessControl settings (scopeEnforcement, roleBasedFiltering, readOnlyForUsers, patientScopedResources) + - Implement SMART access control module with scope enforcement, role-based filtering, and optional write blocking + - Wire config usage and logging into backend routes (FHIR) + +**Full Changelog**: https://github.com/Max-Health-Inc/proxy-smart/pull/250 + + +## [0.0.3-alpha.202603261227.e58ce3fa] - 2026-03-26 + +- πŸ› Bug Fixes: ESLint config fixes, lint error resolutions, CSS build fixes, and App Store button issue (quotentiroler) + +**Full Changelog**: https://github.com/Max-Health-Inc/proxy-smart/pull/249 + + +## [0.0.3-alpha.202603261153.437fd3f4] - 2026-03-26 + +- ✨ Features: None +- πŸ› Bug Fixes: None +- πŸ“š Documentation: None +- πŸ”§ Chores & Improvements: + - Refactor: remove redundancies and consolidate shared code (quotentiroler) +- ⚠️ Breaking Changes: None + +**Full Changelog**: https://github.com/Max-Health-Inc/proxy-smart/pull/248 + + +## [0.0.3-alpha.202603261142.f2bbdb5a] - 2026-03-26 + +- ✨ Features: wire IAL enforcement in FHIR proxy and complete Person link management UI +- πŸ”§ Chores & Improvements: internal maintenance (CI/CD and testing updates) +- πŸ“š Documentation: update CHANGELOG.md with PR notes + +**Full Changelog**: https://github.com/Max-Health-Inc/proxy-smart/pull/247 + + +## [0.0.3-alpha.202603260616.9f8b1020] - 2026-03-26 + +- πŸ”§ Chores & Improvements: Cleanup and maintenance of deploy-beta workflow + - Performs remote Docker prune/cleanup (images, containers, volumes, builders with 2GB kept) via SSH and outputs disk usage after cleanup + +**Full Changelog**: https://github.com/Max-Health-Inc/proxy-smart/pull/246 + + +## [0.0.3-alpha.202603260600.c6b0d8d9] - 2026-03-26 + +- πŸ› Bug Fixes: Remove hardcoded fake data from CertificatesDialog and LaunchContextManager (quotentiroler) + +**Full Changelog**: https://github.com/Max-Health-Inc/proxy-smart/pull/244 + + +## [0.0.3-alpha.202603260505.b938bcb4] - 2026-03-26 + +- ✨ Features: Wire up real SMART capabilities in FHIR server management UI (quotentiroler) +- πŸ”§ Chores & Improvements: Update dev SMART compliance report +- πŸ”§ Chores & Improvements: Update version to 0.0.3-alpha.202603260505.b938bcb4 +- πŸ“š Documentation: Update CHANGELOG.md for PR #242 + +**Full Changelog**: https://github.com/Max-Health-Inc/proxy-smart/pull/243 + + +## [0.0.3-alpha.202603260458.782b5ec9] - 2026-03-26 + +- πŸ”§ Chores & Improvements: Internal updates and maintenance + - Refactor: replace client-side CQL engine with server-side (quotentiroler) + +**Full Changelog**: https://github.com/Max-Health-Inc/proxy-smart/pull/242 + + +## [0.0.3-alpha.202603260233.96d79d26] - 2026-03-26 + +- ✨ Features: wire up CQL engine and Smart Forms SDC renderer in DTR app (quotentiroler) + +- πŸ”§ Chores & Improvements: update dev SMART compliance report + +- πŸ”§ Chores & Improvements: update version to 0.0.3-beta.202603260210.50141671 (beta) +- πŸ”§ Chores & Improvements: update version to 0.0.3-alpha.202603260233.96d79d26 (alpha) + +Note: No user-facing breaking changes, docs, or other fixes detected. + +**Full Changelog**: https://github.com/Max-Health-Inc/proxy-smart/pull/241 + + +## [0.0.3-alpha.202603260210.50141671] - 2026-03-26 + +- πŸ”§ Chores & Improvements: Deduplicated app configs, CSS theme, chart colors, and admin tabs into shared-ui +- πŸ“š Documentation: Updated CHANGELOG entry for PR #239 + +**Full Changelog**: https://github.com/Max-Health-Inc/proxy-smart/pull/240 + + +## [0.0.3-alpha.202603252257.1f554a11] - 2026-03-26 + +- ✨ Features: Register patient-portal in App Store and mono build pipeline (quotentiroler) + +- πŸ”§ Chores & Improvements: Update dev SMART compliance report (proxy-smart-releaser[bot]) +- πŸ”§ Chores & Improvements: Update version to 0.0.3-beta.202603252246.f07ac170 (beta) (github-actions[bot]) +- πŸ“š Documentation: Update CHANGELOG.md for PR #238 [skip ci] (github-actions[bot]) +- πŸ”§ Chores & Improvements: Update version to 0.0.3-alpha.202603252257.1f554a11 (alpha) (github-actions[bot]) + +**Full Changelog**: https://github.com/Max-Health-Inc/proxy-smart/pull/239 + + +## [0.0.3-alpha.202603252246.f07ac170] - 2026-03-25 + +- πŸ”§ Chores & Improvements: Introduced file-backed persistence for dynamically added FHIR servers + - Add fs/path usage, PersistedServer interface, and SERVERS_JSON_PATH + - Implement loadPersistedServers and savePersistedServers + - Prepare groundwork for persisting servers to fhir-servers.json +- πŸ”§ Chores & Improvements: Standardize newline handling and update ignore rules for backend + - Update backend/.gitignore with fhir-servers.json + - Ensure mcp.json newline issue is fixed + +**Full Changelog**: https://github.com/Max-Health-Inc/proxy-smart/pull/238 + + +## [0.0.3-alpha.202603252123.0938d55e] - 2026-03-25 + +- ✨ Features: Scaffold international patient portal with IPS/IPA (quotentiroler) + +**Full Changelog**: https://github.com/Max-Health-Inc/proxy-smart/pull/237 + + +## [0.0.3-alpha.202603252036.bae2a0a9] - 2026-03-25 + +- ✨ Features: surface brand logo in consent-app and dtr-app (quotentiroler) +- πŸ”§ Chores & Improvements: update beta and dev SMART compliance reports (proxy-smart-releaser[bot]) +- πŸ”§ Chores & Improvements: update version to 0.0.3-alpha.202603252036.bae2a0a9 (github-actions[bot]) + +**Full Changelog**: https://github.com/Max-Health-Inc/proxy-smart/pull/236 + + +## [0.0.3-alpha.202603251947.f10c9f3b] - 2026-03-25 + +- ✨ Features: pass OPENAI_API_KEY through beta deployment pipeline (quotentiroler) +- πŸ”§ Chores & Improvements: update beta and dev SMART compliance reports (proxy-smart-releaser[bot]) +- πŸ”§ Chores & Improvements: update changelog reference and version metadata (CI) + +**Full Changelog**: https://github.com/Max-Health-Inc/proxy-smart/pull/235 + + +## [0.0.3-alpha.202603251933.c56cbe7f] - 2026-03-25 + +- πŸ› Bug Fixes: Preserve bundle type on 304 response β€” return empty string cast to bundle type when If-None-Match matches ETag (ETag and Cache-Control behavior unchanged) + +**Full Changelog**: https://github.com/Max-Health-Inc/proxy-smart/pull/234 + + +## [0.0.3-alpha.202603251928.7a647e6d] - 2026-03-25 + +- ✨ Features: MCP resources, FHIR server delete, AI assistant fixes, IAL encoding fix; user-access branding, dynamic roles, code cleanup +- πŸ§ͺ ⚠️ Breaking Changes: (none) +- πŸ› Bug Fixes: wrap IALSettings hardcoded strings with t() for i18n +- πŸ“š Documentation: update CHANGELOG.md for PR #231, PR #232 +- πŸ”§ Chores & Improvements: version bumps, CI/CD housekeeping, SMART compliance report updates, code cleanup + +**Full Changelog**: https://github.com/Max-Health-Inc/proxy-smart/pull/233 + + +## [0.0.3-alpha.202603251726.4eb5bd90] - 2026-03-25 + +- ✨ Features: MCP resources, FHIR server delete, AI assistant fixes, IAL encoding fix +- πŸ”§ Chores & Improvements: user-access branding, dynamic roles, code cleanup +- πŸ“š Documentation: update CHANGELOG.md for PR #231 +- ⚠️ Breaking Changes: none +- πŸ› Bug Fixes: (none explicit beyond features) +Note: Only changes since last release included. + +**Full Changelog**: https://github.com/Max-Health-Inc/proxy-smart/pull/232 + + +## [0.0.3-alpha.202603241627.cdee7ff7] - 2026-03-25 + +- ✨ Features: user-access branding, dynamic roles, code cleanup (quotentiroler) +- πŸ”§ Chores & Improvements: internal maintenance and CI/CD updates +- πŸ“š Documentation: changelog update for PR #230 + +**Full Changelog**: https://github.com/Max-Health-Inc/proxy-smart/pull/231 + + +## [0.0.3-alpha.202603240754.fe065af2] - 2026-03-24 + +- πŸ”§ Chores & Improvements: UI spacing adjustments for hero container across breakpoints; header bottom padding tweaks +- πŸ”§ Chores & Improvements: Added enum-like validation sets and runtime sanitization for appType (fallback to backend-service or standalone-app) in admin routes + +**Full Changelog**: https://github.com/Max-Health-Inc/proxy-smart/pull/230 + + ## [0.0.2-beta.202603240700.0cadb793] - 2026-03-24 - πŸ”§ Chores & Improvements: Update version to 0.0.2-beta.202603240700.0cadb793 (beta) @@ -13,6 +386,14 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). **Full Changelog**: https://github.com/Max-Health-Inc/proxy-smart/pull/199 + +- πŸ”§ Chores & Improvements: CI workflow updates and versioning + - Enable production release workflow and fix workflow_dispatch + - Update version to 0.0.2-beta.202603240700.0cadb793 (beta) + +**Full Changelog**: https://github.com/Max-Health-Inc/proxy-smart/pull/228 + + ## [0.0.2-alpha.202603240346.274d844f] - 2026-03-24 - ✨ Features: Add KC_HOSTNAME_STRICT=true for beta with redirect URIs for consent/dtr apps diff --git a/Dockerfile b/Dockerfile index 9e5d848ad..8133a2a30 100644 --- a/Dockerfile +++ b/Dockerfile @@ -22,9 +22,11 @@ COPY consent-app/package.json ./consent-app/ COPY consent-app/lib/ ./consent-app/lib/ COPY dtr-app/package.json ./dtr-app/ COPY dtr-app/lib/ ./dtr-app/lib/ +COPY patient-portal/package.json ./patient-portal/ +COPY patient-portal/lib/ ./patient-portal/lib/ # Strip workspaces not included in Docker build to avoid install failures -RUN bun -e 'const p=JSON.parse(require("fs").readFileSync("./package.json","utf8")); p.workspaces=["backend","ui","shared-ui","consent-app","dtr-app"]; require("fs").writeFileSync("./package.json", JSON.stringify(p,null,2))' +RUN bun -e 'const p=JSON.parse(require("fs").readFileSync("./package.json","utf8")); p.workspaces=["backend","ui","shared-ui","consent-app","dtr-app","patient-portal"]; require("fs").writeFileSync("./package.json", JSON.stringify(p,null,2))' # Install dependencies for Docker-relevant workspaces only RUN bun install @@ -84,6 +86,13 @@ COPY dtr-app/ ./dtr-app/ WORKDIR /app/dtr-app RUN bun run build +# Patient Portal build stage +FROM build-deps AS patient-portal-build +COPY shared-ui/ ./shared-ui/ +COPY patient-portal/ ./patient-portal/ +WORKDIR /app/patient-portal +RUN bun run build + # Docs build stage (VitePress) FROM build-deps AS docs-build COPY docs/ ./docs/ @@ -110,6 +119,7 @@ COPY --from=backend-build /app/backend/public ./backend/public # Copy built SMART apps into backend public COPY --from=consent-app-build /app/consent-app/dist ./backend/public/apps/consent COPY --from=dtr-app-build /app/dtr-app/dist ./backend/public/apps/dtr +COPY --from=patient-portal-build /app/patient-portal/dist ./backend/public/apps/patient-portal # Verify no localhost URLs leaked into production bundles RUN if grep -rl 'localhost:8445' /app/backend/public/apps/ 2>/dev/null; then \ diff --git a/Dockerfile.mono b/Dockerfile.mono index 79b40c060..00ae22b58 100644 --- a/Dockerfile.mono +++ b/Dockerfile.mono @@ -19,6 +19,7 @@ COPY shared-ui/ ./shared-ui/ COPY ui/ ./ui/ COPY dtr-app/ ./dtr-app/ COPY consent-app/ ./consent-app/ +COPY patient-portal/ ./patient-portal/ COPY infra/ ./infra/ COPY scripts/ ./scripts/ COPY docs/ ./docs/ diff --git a/backend/.gitignore b/backend/.gitignore index 38260e3c8..d4422473c 100644 --- a/backend/.gitignore +++ b/backend/.gitignore @@ -43,4 +43,7 @@ package-lock.json **/*.bun # Runtime MCP server config (managed via UI) -mcp.json \ No newline at end of file +mcp.json + +# Runtime FHIR server config (managed via UI) +fhir-servers.json \ No newline at end of file diff --git a/backend/eslint.config.js b/backend/eslint.config.js index fac11569c..fa4d48a88 100644 --- a/backend/eslint.config.js +++ b/backend/eslint.config.js @@ -24,7 +24,7 @@ export default tseslint.config( "no-console": "off", // Allow console.log in backend "@typescript-eslint/no-unused-vars": [ "error", - { argsIgnorePattern: "^_" }, + { argsIgnorePattern: "^_", destructuredArrayIgnorePattern: "^_" }, ], "@typescript-eslint/no-explicit-any": "warn", }, diff --git a/backend/package.json b/backend/package.json index b2fc8751d..af3796112 100644 --- a/backend/package.json +++ b/backend/package.json @@ -1,7 +1,7 @@ { "name": "proxy-smart-backend", "displayName": "Proxy Smart Backend", - "version": "0.0.2-RELEASE.202603240700.0cadb793", + "version": "0.0.3-beta.202603270523.8a72cdae", "type": "module", "scripts": { "test": "bun test", diff --git a/backend/public/apps/index.html b/backend/public/apps/index.html index 5ee69902c..81b577330 100644 --- a/backend/public/apps/index.html +++ b/backend/public/apps/index.html @@ -70,7 +70,8 @@ max-width: 1080px; margin: 0 auto; display: flex; justify-content: space-between; align-items: center; } - .nav-brand { font-weight: 400; font-size: .95rem; } + .nav-brand { font-weight: 400; font-size: .95rem; display: inline-flex; align-items: center; gap: .45rem; } + .nav-brand img { height: 1.2em; width: 1.2em; } .nav-links { display: flex; gap: 1.5rem; list-style: none; } .nav-links a { font-family: var(--font-mono); @@ -271,7 +272,7 @@