A clinic’s data stays the clinic’s. By design.
Senno runs the daily work between dental clinics and laboratories. It holds patient health data, so security is not a layer we added. It is how every data, key and release is built.
GDPR by design
Every patient right is a feature in Senno, not paperwork.
Senno processes health data for clinics and laboratories, who stay in control of their patients' data. For each right and duty in the GDPR there is a working answer in the product, ready to show to a patient or a supervisory authority.
Explicit consent for health data and AI
Health data is a special category under the GDPR. Before every interaction with Senno’s AI assistant, the patient’s explicit consent is checked. Without it, the assistant does not process their data, and the patient can withdraw consent at any time.
Access and portability
Patients export their own data themselves, in a portable format, without filing a request or waiting for the clinic.
Rectification that keeps the history
A correction is a new, attributed version. The record becomes accurate and the trail of who changed what, and when, stays complete.
Erasure that reaches the backups
Destroying a patient’s personal key makes their data unreadable everywhere at once, including in backups. The erasure itself stays on record as proof.
Minimisation and privacy by default
The AI reads text with names and contacts replaced by pseudonyms. Messages stay held until a person allows sending. Each team member sees only what their role needs.
Security of processing
Per-patient AES-256-GCM encryption, isolation of each organisation inside the database, encrypted off-site backups with tested restores, and more than 16,500 automated tests before every release.
Accountability you can show
A hash-chained audit record shows who did what and when, sealed by signed checkpoints. Clinics can demonstrate their processing to a supervisory authority.
The clinic in control, Senno as processor
Clinics and laboratories decide; Senno processes on their behalf. Each organisation’s data is walled off from every other one inside the database itself.
How the API is protected
Three ways in. One set of checks for all of them.
A person in the browser, a partner integration and Senno's own AI assistant all reach the same API. Each proves who it is in its own way, and then every request passes the same capability check, the same organisation scope and the same row-level security in the database.
Browser, phone or desktop app
Script, import or partner system
Acting for a signed-in person
1-hour access · optional 2FA
Hash only · expires · revocable
No names out · writes are proposals
This role may do this exact action 2 · Scope declared
One organisation, or it does not run 3 · Same transaction
Change and audit commit together 4 · Outbound guard
Nothing is sent until a person allows it
Only that organisation's rows
AES-256-GCM, one per patient
Hash-linked, append-only
Three callers, one gate. Whatever the way in, a request ends at the same capability check, organisation scope and row-level security.
A clinic or laboratory person signs in once through single sign-on. Access lasts one hour and renews quietly; two-factor codes can be required per person.
Integrations use a scoped token created for one job. Senno keeps only its hash, it expires on its own, and it can be revoked at any moment.
The assistant acts for the signed-in person through tools that never return names or contacts. What it writes is a proposal until that person signs.
Follow one request: six checks between a click and a patient record
-
01Single sign-onThe person signs in through Senno’s identity provider, with optional two-factor codes.
-
02Capability checkThe API checks that this role may perform this exact action.
-
03Scope declaredThe transaction states which organisation it acts for, or it does not run.
-
04Row-level securityPostgreSQL returns only rows of that organisation, even to a buggy query.
-
05Patient keySensitive fields decrypt only with that patient’s own key.
-
06Audit chainThe action is written to the hash-linked record in the same transaction.
Tokens and credentials
Short-lived, narrow, and stored only as a hash
Every way into Senno has its own kind of credential, built for one job. Each is tied to one organisation and to named capabilities, so a credential that leaks opens one narrow door for a short time, and it can be closed at once.
Personal token
≤ 24 hIntegration token
scopedAssistant access
per personDevice token
per deviceThe life of a personal token
-
1IssueA signed-in person creates it for one organisation.
-
2StoreSenno keeps only a hash. The secret is shown once.
-
3UseEach call passes capability, scope and row-level security.
-
4ExpireIt stops working on its own, at most 24 hours later.
-
5RevokeRevoked at any moment; the next call is refused.
Security principles in use today
Ten principles. Each one is code, not a policy document.
An automated check guards every principle below. If a change breaks one, that change does not ship.
Tenant isolation in the database
Every table enforces row-level security, forced even for the table owner. The application runs as a role without superuser rights, and every transaction declares which organisation it acts for.
Guard: a new table without forced row-level security fails the build.
One encryption key per patient
Clinical notes and identity fields are encrypted with AES-256-GCM. Each patient has their own data key, wrapped by a master key that is kept outside the backups.
Guard: every patient is created with a key.
Erasure by destroying the key
The right to be forgotten is cryptographic: destroying a patient’s key makes their data unreadable in the database and in every backup, while the audit record of the erasure stays.
Irreversible by design, previewed before it runs.
Hash-chained, append-only audit
Each audit record carries the fingerprint of the previous one, sealed by signed checkpoints. Histories cannot be edited or deleted: a correction is a new reversing record.
Database triggers refuse UPDATE and DELETE on histories.
Single sign-on and least privilege
People sign in through single sign-on with optional two-factor codes. What each person may do comes from explicit capabilities per role, never from being inside a network.
Guard: every route names the capability it needs.
Short-lived, revocable access tokens
Automation acts through personal tokens that live at most 24 hours, are stored only as a hash, can be revoked at once and can never create further tokens.
A database rule caps the lifetime at 24 hours.
AI proposes, a person signs
The assistant reads and suggests. Notes, messages and financial actions stay proposals until a person accepts them. Text reaches the model with names and contacts replaced.
Assistant tools never return a name, phone or address.
Nothing leaves without a person
SMS and e-mail stay held until a person opens the door for that organisation. With no explicit decision, the door is closed.
Closed by default: no row means no sending.
Secure development, proven on every change
More than 16,500 automated tests run on every release batch. Many read the code itself to catch a missing scope, a leaked secret or an unchecked route. New checks are proven by breaking the code on purpose.
Secrets are never in the repository, and a test enforces it.
Encrypted backups, tested restores
Databases and files are backed up daily. Copies leave the server only encrypted, and restore drills run on a schedule. The master key is never inside a backup.
Releases are verified on the live service after every deploy.
Compliance map
Built to the controls of GDPR, SOC 2 and ISO/IEC 27001
These three are different things. GDPR is the law we work under. SOC 2 is an audit report on a service's controls. ISO/IEC 27001 certifies how an organisation runs security. None of them certifies software. Pick a framework and a principle to see where each control lands.
Tenant isolation in the database
Every table enforces row-level security, forced even for the table owner. The application runs as a role without superuser rights, and every transaction declares which organisation it acts for.
One encryption key per patient
Clinical notes and identity fields are encrypted with AES-256-GCM. Each patient has their own data key, wrapped by a master key that is kept outside the backups.
Erasure by destroying the key
The right to be forgotten is cryptographic: destroying a patient’s key makes their data unreadable in the database and in every backup, while the audit record of the erasure stays.
Hash-chained, append-only audit
Each audit record carries the fingerprint of the previous one, sealed by signed checkpoints. Histories cannot be edited or deleted: a correction is a new reversing record.
Single sign-on and least privilege
People sign in through single sign-on with optional two-factor codes. What each person may do comes from explicit capabilities per role, never from being inside a network.
Short-lived, revocable access tokens
Automation acts through personal tokens that live at most 24 hours, are stored only as a hash, can be revoked at once and can never create further tokens.
AI proposes, a person signs
The assistant reads and suggests. Notes, messages and financial actions stay proposals until a person accepts them. Text reaches the model with names and contacts replaced.
Nothing leaves without a person
SMS and e-mail stay held until a person opens the door for that organisation. With no explicit decision, the door is closed.
Secure development, proven on every change
More than 16,500 automated tests run on every release batch. Many read the code itself to catch a missing scope, a leaked secret or an unchecked route. New checks are proven by breaking the code on purpose.
Encrypted backups, tested restores
Databases and files are backed up daily. Copies leave the server only encrypted, and restore drills run on a schedule. The master key is never inside a backup.
Senno acts as processor for clinics and laboratories, which remain controllers of their patients’ data. Article numbers refer to Regulation (EU) 2016/679.
SOC 2 is an independent auditor’s report on a service’s controls against the Trust Services Criteria. Codes refer to the 2017 criteria. Senno has no SOC 2 report yet.
ISO/IEC 27001 certifies an organisation’s security management for a defined scope, here the Senno platform. Codes refer to Annex A of the 2022 edition. Senno is not certified yet.
Health data
Every patient has their own key. Erasure destroys it.
Clinical notes and identity fields are encrypted with AES-256-GCM using a key that belongs to one patient. That key is itself encrypted by a master key kept outside the backups. When a patient asks to be forgotten, Senno destroys their key: the data becomes unreadable everywhere at once, including old backups. The audit record of the erasure stays.
- Search without decrypting, through a blind index
- Patients export their own data (GDPR Art. 15 and 20)
- Backups leave the server only encrypted, and restores are tested
- Name
- Joana M.7f3a·c91e·04bb·e2d0
- Clinical note
- Crown on 36, shade A2a9e1·77f0·d3c2·5b18
- Phone
- +351 9•• ••• •••0c4d·91aa·e7f3·2b60
- Audit record
- kept · erasure loggedkept · erasure logged
Demo data. In Senno the erasure is previewed first and cannot be undone.The data is still there, but no one can read it any more, in the database or in any backup.
AI with a person in charge
The AI prepares. A person decides and signs.
Senno's assistant reads and proposes. Every clinical note, message or financial action it suggests stays a proposal until a person accepts it. Names and contacts in text are replaced with pseudonyms before the model reads them, and the assistant's tools never return a name, phone or address.
Before any interaction with the assistant, Senno checks the patient's explicit consent. Voice notes and files a patient chooses to send are processed only under that consent.
Tamper-evident audit
Nothing is deleted. Everything is versioned and chained.
Each audit record carries the fingerprint of the one before it, and signed checkpoints seal the chain. Change one byte in the past and every later record stops matching. Histories are append-only: a correction is a new record that reverses the old one.
-
#10419f3a…e1Case sent to labprev 4c07…b2
-
#1042b61d…07Quote approvedprev 9f3a…e1
-
#10432e88…c4Note signedprev b61d…07
-
#1044d09c…5aAccess grantedprev 2e88…c4
-
#104571fe…93Checkpoint sealedprev d09c…5a
Where we are, plainly
The controls are built. Certification is the next step, not a claim.
Senno is not yet audited against SOC 2 or certified to ISO/IEC 27001. We publish what is done and what comes next, and partners can follow every open item in the tracker.
-
TodayControls in codeIsolation, per-patient encryption, crypto-erasure, audit chain, outbound guard and AI proposals run in production.
-
NextAssurance groundworkPlatform impact assessment, external penetration test, signed processor agreements and a public subprocessor list.
-
ThenSOC 2 Type IAn independent auditor reports on how the platform’s controls are designed, at a point in time.
-
AfterISO/IEC 27001 and SOC 2 Type IICertification of the platform scope, and an audit of how controls operate over months. No dates committed.
Need the details for your own review?
We share the security pack, the subprocessor list and the open-items tracker with clinics, laboratories and partners under NDA.