Security

Where your lab’s data lives, and who can reach it

SamLab is offline-first: your patient data lives in a SQLite database file on your own lab PC, and the software runs with no internet at all. Cloud sync is off until you switch it on, and only then does data leave the building. Backups are yours to hold. Sign-in, per-user permissions and a result revision history are built in.

Your data is on your machine, not on ours

SamLab is a Windows desktop application with a local database. Register a patient and the row is written to a SQLite file on that PC, under the machine’s application-support folder, in a directory named for your organisation. That file is the primary copy of your lab, not a cache of something living elsewhere — which is why registration, billing, result entry, report printing and barcodes all keep working when the line is down.

A cloud-only LIS asks you to accept that every patient record your lab has ever produced sits on somebody else’s infrastructure as a condition of use. SamLab does not ask that. The default posture is that your data has never left the building; everything below describes what changes when you decide otherwise.

What crosses to the cloud — and only when you switch it on

Cloud sync ships off: the setting that enables it is seeded to zero on a fresh install, so a lab that never opens that screen never synchronises anything. Turn it on — usually for a second PC, a branch, or the web dashboard — and the boundary is exactly this.

DataLeaves your PC?What that means
Patients, bills, samples, results, mastersOnly with cloud sync onWritten to your local SQLite file first, always. With sync on they are mirrored to a per-organisation area of Firestore so a second PC, a branch or the web dashboard can read them.
Result revision historyNeverThe branch that entered a result owns the record of how it changed. This table is local by design and travels only inside your own backup file.
Activity / audit eventsOnly with cloud sync onAnd then only a named allowlist — logins, role changes, deletions, amended results, refused actions. The full trail stays on the PC.
Report PDFs shared by link or WhatsAppOnly when you use the featureA shared report is uploaded so the recipient can fetch it, behind a short-lived signed URL. Not sharing a report uploads nothing.
Licence, seat and device checksOnly with cloud sync onYour org code, plan and seat counts. No patient data is involved in a licence check.
Staff passwordsNeverLocal sign-in stores a PBKDF2 hash with a per-user random salt. Cloud sign-in is Firebase Auth, which never receives a plaintext password from us to store.

Backups, and who holds them

A backup is one file with a .samlab extension holding the whole database — patients, bills, results, masters, settings, letterhead and signatures — plus any report documents attached from disk. The write-ahead log is folded into the database before the snapshot, so the file includes the last few minutes of work rather than the last checkpoint.

It is a plain ZIP, and that is a decision rather than an oversight: an encrypted backup is only as good as its key, and a lab that has lost both its PC and its passphrase has lost its patients’ records permanently. A backup that always restores on click is worth more here. The trade is that the file deserves the care you give the paper register.

Backups run daily by default to a folder you choose. Connect Google Drive and they also upload to your own Google account, under a permission scope that lets SamLab touch only files SamLab created — it cannot read the rest of your Drive. We hold no copy of your backups.

Who can do what

Everyone works under their own login, and local passwords are stored as a PBKDF2-HMAC-SHA256 hash with a random per-user salt and 120,000 iterations — a figure chosen by measuring it on the kind of PC labs actually run, not copied off a blog. Permissions are per user and per menu, and each menu splits four ways, because "can open Billing" and "can delete a bill" are not the same decision.

  • Named sign-in for every userPBKDF2-HMAC-SHA256, per-user random salt, 120,000 iterations. Not a reversible encoding, and not one shared salt.Settings → Users
  • Per-user, per-menu permissionsEach menu splits into View, Add, Edit and Delete, so a receptionist can raise a bill without being able to delete one.Settings → Audit & Permissions
  • Idle auto-lockBlanks the screen behind a password prompt after N idle minutes, without signing the user out. Off until you set a timeout.Settings → Audit & Permissions
  • Result revision historyEvery result value versioned, with the previous value, the person, the time and the amendment reason.Sample Desk → Timeline
  • Activity trailLogins, role and permission changes, deletions, overrides and refused actions, on the machine that produced them.Settings → Audit & Permissions
  • Backups you holdDaily by default, to a folder you choose and — if you connect it — your own Google Drive. We keep no copy.Settings → Backup
  • Tenant isolation in the cloudDefault-deny rules scope every read and write to your own organisation, with an append-only audit log and no client hard-deletes.firestore.rules, deployed with the backend

The trail: what happened, and who did it

Two records run underneath everyday work. The activity trail captures logins, role and permission changes, staff added and removed, deletions, overrides, and actions refused because a limit was hit — written on the machine that produced them, complete whether or not you ever enable the cloud.

The second is result revision history, and it is the one an assessor asks about. Version 1 is the original entry; every value after it is stored with the value it replaced, the person, the timestamp, whether the replaced value had already been verified, and the amendment reason. A verified result locks: it can still be corrected, but the correction is a new version, never an overwrite. That history is not synced, and it travels inside your backup.

If you do use the cloud

Synced data lives in Google Firestore, reached over TLS, under a per-organisation path. Access is governed by security rules deployed with the backend rather than by application code alone — a distinction that matters, because a rule holds even against a client that has been tampered with.

Those rules default-deny, so a collection with no explicit block is readable and writable by nobody. Every business write must carry a server-set timestamp, which stops a machine with a wrong clock from overwriting newer records. Clients cannot hard-delete; deletion is a flag another device can still see. The cloud audit log is append-only — no client, including yours, can alter a row in it. On Google’s side, Firestore encrypts data at rest by default: a property of the platform we build on, not a control we operate.

DPDP: what is yours and what is ours

Under India’s Digital Personal Data Protection Act, 2023, your laboratory is the Data Fiduciary for the patient data it holds. We are your Data Processor for anything you sync to our infrastructure, and we process it only on your instructions. Our Terms and Privacy Policy say the same thing, because a buyer who finds those three documents disagreeing is right to stop reading.

The Act’s implementing Rules were notified in November 2025 and phase in over eighteen months, with the substantive obligations — notice, security safeguards, breach reporting within 72 hours — landing at the end of that window. Nothing here is legal advice; the sources we relied on are linked at the foot of the page so you can check them rather than take our word.

What we do not claim

Lab software is sold with a lot of unearned certification language. Here is the list of things SamLab is not, written down by us so you do not have to find it at diligence. If one of these is a hard requirement for your lab, say so early — we would rather lose the deal in week one than in month six.

  • ISO 27001 / SOC 2 certifiedWe hold neither, and no auditor has assessed us against either standard. If your procurement requires one, tell us early — it is a real cost and we would rather quote it than pretend.
  • HIPAA compliantHIPAA obligations attach to covered entities and their business associates in the United States. SamLab is built to Indian law first. We do not sign BAAs today and claim no HIPAA compliance.
  • NABL / CAP / ISO 15189 certified softwareAccreditation is granted to a laboratory, never to a software product. SamLab supports the evidence an assessor asks for — report formats, IQC, revision history, per-user access — but the certificate is yours, not ours.
  • Independently penetration testedNot yet. The cloud rules are reviewed and guard-tested in our own repository and the review notes are dated; that is internal assurance, not a third-party test.
  • Encryption at rest, everywhereFirestore encrypts data at rest on Google’s side by default — a platform property, not a control we operate. Your local database and your .samlab backup are NOT encrypted by SamLab: the backup is a standard ZIP so it always restores without a passphrase. Use BitLocker or an encrypted drive if your policy needs it.
  • An uptime SLAWe publish no uptime figure and offer no SLA credit. It matters less here than for a web-only LIS, for the honest reason that the desktop app keeps working when our infrastructure — or your internet — does not.
  • Device attestation on WindowsFirebase App Check cannot attest a Windows desktop today; the Flutter plugin exposes only a debug provider there. We say so rather than implying every connecting client is a verified copy of our app. Authentication and per-organisation rules still gate every request.

Your responsibilities and ours

Your laboratory

You are the Data Fiduciary for your patients’ data under the DPDP Act, 2023.

  • Patient notice and consent, and answering data-principal requests.
  • Who gets a login, what each login may do, and removing leavers.
  • The physical and network security of the PCs SamLab runs on — Windows accounts, antivirus, disk encryption, who can walk up to the counter machine.
  • Where your backups are kept and who can read them.
  • Deciding whether to switch cloud sync on at all.

SamLab

We are your Data Processor for anything you choose to sync to our infrastructure.

  • Processing synced data only on your instructions — never sold, never used for advertising, never used to train a model.
  • Keeping one organisation’s data unreadable to another, enforced in security rules rather than in application code alone.
  • Shipping security fixes through the normal update channel.
  • Telling you what we do not do, which is the rest of this page.

Reporting a security problem

If you find a vulnerability in SamLab, email support@samlab.in with what you found and how to reproduce it. We will acknowledge it and tell you what we are doing about it. Support hours are Mon–Sat, 9:30 AM – 7:00 PM IST. There is no paid bug-bounty programme today — we would still much rather hear from you than not. Once a report is confirmed and fixed, we credit the reporter in our security acknowledgements below, if they want to be named.

Security acknowledgements

Our thanks to the researchers below, who found a real problem in SamLab and told us privately so it could be fixed before anyone was affected. If that is you, write to us — we will credit you here once the issue is confirmed and closed.

  • Ganesh RKProfile Improper authentication in the account registration flow · August 2026

Frequently asked questions

Where is my lab’s data actually stored?+

In a SQLite database file on the Windows PC you installed SamLab on, under that machine’s application-support folder, in a directory named for your organisation. That file is the primary copy, and nothing about registering a patient, raising a bill, entering a result or printing a report requires the internet.

Does my patient data go to your servers?+

Not unless you switch cloud sync on, and it ships off. With sync enabled, business records are mirrored to a per-organisation area of Google Firestore so a second PC, a branch or the web dashboard can read them. Result revision history stays local even then.

Is SamLab HIPAA or ISO 27001 certified?+

No, and we will not say otherwise. SamLab holds no ISO 27001 or SOC 2 certification, does not claim HIPAA compliance and does not sign BAAs. Accreditations such as NABL, CAP and ISO 15189 are granted to laboratories, never to software.

Is my backup file encrypted?+

No. A .samlab backup is a standard ZIP of the whole database plus any attached report documents, deliberately unencrypted so it always restores without a passphrase or a lost key. That puts the choice of where it lives in your hands — treat the file as you would the paper register.

Can I stop one member of staff from deleting bills?+

Yes. Permissions are per user and per menu, and each menu splits into View, Add, Edit and Delete. A receptionist can hold View, Add and Edit on Billing with Delete withheld. Permission changes are themselves recorded in the activity trail.

If a technician changes a result after it was verified, can we tell?+

Yes. Every result value is versioned: version 1 is the original entry, and each later value is stored with the value it replaced, who entered it, when, and the reason given if the change went through Amend Mode. A verified result locks — it can still be corrected, but not silently.

What happens to my data if I stop paying?+

The database file stays on your PC and the backups stay wherever you put them; they are ordinary files in an open format. That follows from the offline-first design rather than from a policy we could quietly change.

How do I report a security problem?+

Email support@samlab.in with what you found and how to reproduce it. We will acknowledge it and tell you what we are doing about it. There is no paid bug-bounty programme today, and we would still much rather hear from you.

Sources

Every regulatory or platform fact stated above, with the page it came from and the date we last checked it. Nothing on this page is legal advice.

Is lab patient data safe in SamLab?

Patient records are held in a local database on the laboratory’s own computer, so the data does not leave the premises unless cloud sync is switched on. Access is controlled per user by role, actions are written to an audit log, and backups run to local storage and, optionally, to encrypted cloud storage.

7-day free trial · no card

Try the whole lab, free for 7 days.

No card. No catch. Run SamLab on your own data — online or offline — and feel the difference before you pay a rupee.