github DMJoh/Mediqux 2.0.0

3 hours ago

Major Release (Breaking Changes)

This release has breaking changes for existing deployments. Read "Breaking Changes" and "Upgrading from 1.x" below before you pull the new images.

Upgrading from 1.x

  1. Back up your database first:
    docker exec mediqux_postgres pg_dump -U mediqux_user mediqux_db > backup.sql
  2. Download the new docker-compose.yml and .env.example.
  3. Carry over your existing POSTGRES_PASSWORD, JWT_SECRET, PUID/PGID into the new .env (set APP_PORT to whatever your old FRONTEND_DOCKER_PORT was).
  4. docker compose pull && docker compose up -d. Migrations will run automatically.

⚠ Breaking Changes

  • Single exposed port now (APP_PORT) - BACKEND_URL, MEDIQUX_API_URL, FRONTEND_DOCKER_PORT, BACKEND_DOCKER_PORT are gone.
  • POST/PUT /api/users take a patientIds array now, not a single patientId.
  • The unused doctor role has been removed from users.
  • Self-service signup only works for the very first account; every account after that is admin-created.
  • License changed from CC BY-NC-SA 4.0 to AGPLv3.

Added

  • Full React/Vite/Tailwind frontend rewrite (old Bootstrap frontend kept under frontend-legacy/).
  • A user account can be linked to multiple patients.
  • Patient detail page now aggregates that patient's appointments, prescriptions, lab reports, diagnostic studies, and active medications.
  • New Settings page with selectable accent color.
  • Real backend connectivity indicator in the sidebar.
  • Inline form validation (errors show as you leave a field, not just on failed save).
  • POSTGRES_HOST to point at an external PostgreSQL instance.

Security

  • Fixed missing ownership checks on several read/write endpoints that let a scoped account access another patient's records.
  • Frontend container now runs as a non-root user.

Bug Fixes

  • Correct "Invalid credentials" message on bad login (was showing "Session expired").
  • Logout now returns to the dashboard, not the page you logged out from.
  • Two prescriptions of the same medication no longer share one status record.
  • Cleaner 401 on missing/expired tokens, distinguishable from an invalid one.
  • Fresh installs now get a real first-time setup screen to create the admin account.
  • Uploaded PDFs/attachments are no longer fetchable without auth via a raw static path.
  • TRUST_PROXY_HOPS fixes rate limiting behind the new single-port/Caddy setup.

Code Quality

  • Duplicated RBAC patient-scoping and several other repeated patterns consolidated into shared backend helpers.

Full details in CHANGELOG.md.

Full Changelog: 1.0.13...2.0.0

Don't miss a new Mediqux release

NewReleases is sending notifications on new releases.