Security overview

Version 0.1 · 2026-09-25

MDCare holds a clinic's medical device inventory, its maintenance history and the reports that prove it. That evidence is what an inspection turns on, so this page says what protects it, and - just as plainly - what does not yet.

What MDCare holds, and what it does not

The service records equipment, not patients. Devices, their locations, their manufacturers' maintenance requirements, the maintenances performed, the measurements taken and the documents uploaded as evidence. It also holds an account for each person who uses it: name, email address and role.

MDCare is not designed to process patient health data and asks for none. The one route by which such data could enter is a file a user uploads as a maintenance report. Customers should keep patient identifiers out of those files; nothing in the product needs them.

Separating one clinic from another

Every record belongs to exactly one organisation, and this is enforced twice.

In the application. Each request establishes which organisation it is acting for, and every query is filtered by it automatically. A query written without that context does not quietly return everything - it raises an error and the request fails. Tests walk the model registry, so a newly added table that is not covered breaks the build rather than shipping unprotected.

In the database. PostgreSQL row-level security policies sit underneath, on every table holding customer data, enforced for reads and for writes. They catch what the application layer by definition cannot: a raw query, a manual database session, a mistake. The application connects as an ordinary database role, never as a superuser, because a superuser bypasses these policies regardless of how they are written.

Access and authentication

Data in transit and at rest

Payments

Subscriptions are handled by Stripe. Card details are entered on Stripe's own page and are never received, transmitted or stored by MDCare. What we hold is the billing contact, the plan and the subscription status.

The audit trail

Creations, changes and deletions of device and maintenance records are written to an append-only trail: who, when, what changed, and the value before and after. Those entries cannot be edited or deleted through the application - the attempt is refused - because a maintenance history that can be rewritten afterwards proves nothing at an inspection.

Backups and recovery

Monitoring and change

What we do not do yet

Read this section first if you are assessing MDCare. A security page that lists only strengths tells you nothing you could not have guessed.

Reporting something

If you believe you have found a vulnerability, write to the security contact listed below. Please give us a description and the steps to reproduce it. We will acknowledge within five working days. We will not pursue anyone who reports a finding in good faith and does not access, alter or retain another customer's data.


AI-Fi Sarl.
Available in English only. French, German and Italian versions follow legal review, since a translated contract needs a lawyer per language.