Search all 478 artefacts by title, document ID or content.
Whitepaper | Family 3, Security, Privacy & Trust Disclosures
Read this first. A security claim that is true for DM-1 can be false for DM-4. Every section of this document that is deployment-model-sensitive carries a per-model table or a variant note. Where you see a claim without one, it is true for all four models.
WPR-GL-001 v1.0.0, Last Modified On 31 July 2026, Tier: Public
| Deployment model | Applies | How this document varies |
|---|---|---|
DM-1 Dedicated (Pensieve Labs-hosted, isolated project) |
Yes | Baseline. Every statement is written for DM-1 unless marked otherwise. |
DM-2 Shared (Pensieve Labs-hosted, multi-tenant) |
Yes | Isolation, key management and blast-radius statements differ. Marked throughout. |
DM-3 Customer Cloud (hospital's own cloud project) |
Yes | The hospital owns the infrastructure. Several controls become shared or hospital-owned. Marked throughout. |
DM-4 On-Premise |
Yes | The hospital owns the hardware, the building and the network. Pensieve Labs operates none of it. A large number of controls below do not apply and are marked so explicitly. |
Read this first. A security claim that is true for DM-1 can be false for DM-4. Every section of this
document that is deployment-model-sensitive carries a per-model table or a variant note. Where you see a
claim without one, it is true for all four models.
This whitepaper describes how Pensieve is built, hosted, operated and defended. It is written
for two readers at once: the hospital's IT head or security reviewer, who needs named algorithms, named
services and named retention periods; and the medical director or managing trustee, who needs to understand
what happens to patient data and who can see it, without a networking background.
It is the document Pensieve Labs expects a hospital to read instead of asking for a certification.
Edsol Edtech Pvt. Ltd. holds no security certifications today. Section 16 says exactly what independent
validation exists, what does not, and what is planned. Section 17 lists what is not yet implemented. Both
sections are load-bearing: a hospital that reads them and still proceeds is a hospital that has made an
informed decision, which is the only kind of decision worth having.
Scope. Pensieve, the hospital operating system, in all four deployment models, together
with the systems Pensieve Labs uses to build, deploy and support it. The Trust Center
(https://trust.pensievelabs.org) is a separate property and is covered in Section 5.7.
Pensieve is the operating system a hospital runs its whole operation on. That is a larger claim
on a hospital's trust than a departmental module makes, and it carries a correspondingly larger security
obligation. This section states the position in one page.
1.1 The hospital owns its data. Pensieve Labs processes it. In every deployment model the hospital
is the Data Fiduciary and Edsol Edtech Pvt. Ltd. is the Data Processor. Pensieve Labs does not use
hospital data to train models, does not sell it, does not aggregate it into a product, and does not process
it for any purpose other than delivering the Platform under the Data Processing Agreement (DPA-GL-001).
1.2 Isolation is a deployment decision the hospital makes, not a default it inherits. Four models are
offered and all four are supported. DM-1 gives the hospital a dedicated cloud project, dedicated
database, dedicated storage and dedicated encryption keys. DM-2 shares infrastructure with logical
isolation. DM-3 puts everything in the hospital's own cloud account. DM-4 puts everything on the
hospital's own hardware. The security consequences of each are set out in Section 3 and, in more commercial terms,
in the Deployment Models paper (WPR-GL-004).
1.3 Data stays in India for Indian hospitals. For Indian deployments the Platform runs in Google Cloud
India regions and all customer data and all system logs remain within Indian jurisdiction. This satisfies
the ABDM Health Data Management Policy's localisation expectation and CERT-In Direction (iv), which requires
ICT system logs to be maintained within India. The exact region for a given deployment is recorded as
Deal data region on the Order Form. See the Data Residency Statement (DIS-GL-008).
1.4 Encryption is not a marketing word here. Data at rest is encrypted with AES-256 by the cloud
platform as a floor, and above that floor Pensieve Labs applies customer-managed encryption keys
(CMEK) in Cloud KMS: a dedicated key ring per hospital in DM-1 and DM-3, and per-tenant keys in
DM-2. Data in transit uses TLS 1.2 or 1.3 with modern cipher suites; plaintext HTTP is served only as a
redirect to HTTPS. Details, including key rotation periods and what Pensieve Labs can and cannot
decrypt, are in Section 5 and in the Encryption Disclosure (DIS-GL-011).
1.5 Every access to a patient record is logged, and the log is immutable and retained for at least
365 days. That number is chosen to satisfy the longest of three overlapping obligations: DPDP Rules 2025
Rule 6(1)(e) and Rule 8(3) (one year), and CERT-In's 180-day rolling requirement, so that one configuration
satisfies all of them. Logs are held in regional log buckets inside India with retention lock applied.
See Section 9 and the Log Retention Disclosure (DIS-GL-034).
1.6 External systems are called on the hospital's own credentials. Pensieve Labs deliberately does
not act as the registered participant in ABDM, NHCX, payment networks, insurer portals or messaging
gateways. The hospital holds its own facility registration and its own credentials;
Pensieve stores them encrypted in a per-tenant vault and uses them to act as the hospital, on
the hospital's authority. This is an architectural boundary, not a gap, and it is documented in full in the
Integration Boundary Statement (DIS-GL-024).
1.7 Pensieve is not a medical device and makes no clinical decisions. It does not diagnose,
triage, score, calculate patient-specific doses or recommend treatment. The boundary is stated formally in
the Clinical Safety Boundary Statement (DIS-GL-028) and it constrains the product roadmap, not merely the
marketing copy.
1.8 Edsol Edtech Pvt. Ltd. holds no security certifications. No ISO/IEC 27001. No SOC 2. No HITRUST.
No ABDM milestone certification. The company does not claim otherwise anywhere, and any document that
appears to claim otherwise is not a Pensieve Labs document. What exists instead is set out in Section 16 and
in the Trust & Assurance Overview (WPR-GL-005), together with target dates and named owners for what is
being obtained.
1.9 The commitment that matters most. Pensieve Labs will tell a hospital about a security incident
affecting its data within 4 hours of becoming aware of it, with enough content for the hospital to make
its own CERT-In report inside CERT-In's 6-hour window. That number is in the DPA, not only in this
whitepaper. See Section 10.
Five principles. Each one has a consequence you can check.
A hospital operating system that cannot be exited is not a platform; it is a hostage situation, and every
experienced hospital owner in India knows it. Pensieve Labs therefore treats exportability as a
security property rather than a commercial concession. The hospital's data is available for export in
documented, non-proprietary formats throughout the relationship, not only at termination, and the
deletion and return process is published in advance in DIS-GL-023, with a Certificate of Deletion issued
at the end of it.
How to check this: ask for an export during the evaluation, before signature. The capability either exists or it does not, and a demonstration takes minutes.
Most hospital software vendors describe a single architecture and let the buyer assume it is dedicated.
Pensieve Labs publishes four architectures and states plainly which one a given hospital is buying.
DM-1 appears on the Order Form. The isolation properties of the chosen model appear
in the Security Addendum. A hospital never has to infer its own architecture.
How to check this: read Section 3, then read WPR-GL-004, then look at the deployment model recorded on the
Order Form. All three must agree.
Pensieve LabsPensieve Labs personnel do not hold standing access to hospital production data. Access to a
production environment is time-bound, requested against a reason, approved, logged and expired. In DM-3
the hospital grants that access itself and can revoke it without contacting Pensieve Labs. In DM-4
Pensieve Labs has no access at all except through a session the hospital opens.
How to check this: ask for the access request record for the most recent support intervention on your
tenant. In DM-1, DM-2 and DM-3 it exists and is retrievable.
Every security claim in this document is written so that it can be falsified. Where a number exists, a key
length, a retention period, a notification window, a restore time, the number is given. Where a control
does not exist yet, Section 17 says so. Pensieve Labs would rather be caught being honest about a gap than be
caught overstating a control, because a hospital that discovers one overstatement will reasonably discount
every other statement in the document.
The Platform assumes that any one control can fail: a credential can leak, a dependency can carry a vulnerability, a person can be deceived. Controls are layered so that no single failure exposes a hospital's entire dataset: network isolation, then identity, then per-tenant authorisation, then per-tenant encryption keys, then immutable audit logging that makes the failure visible. Section 3 through Section 9 describe the layers in order.
Pensieve is a set of containerised services running on Google Cloud Run, backed by a managed
PostgreSQL database, object storage for documents and images, a managed secret store, and Cloud KMS for key
management. The same application code runs in all four deployment models; what changes is who owns the
project, where the boundary sits, and how many hospitals share a component.
flowchart TB
subgraph EDGE["Edge"]
U["Hospital users<br/>browser / device"]
LB["HTTPS load balancer<br/>TLS 1.2+, WAF"]
end
subgraph APP["Application tier: Cloud Run"]
API["Pensieve API services"]
WRK["Background workers<br/>jobs, exports, integrations"]
end
subgraph DATA["Data tier"]
DB[("PostgreSQL<br/>encrypted at rest")]
OBJ[("Object storage<br/>documents, images")]
VAULT[["Secret store<br/>hospital-supplied credentials"]]
KMS[["Cloud KMS<br/>encryption keys"]]
end
subgraph OBS["Observability"]
LOG[("Regional log bucket<br/>immutable, ≥365 days")]
end
EXT["External systems<br/>ABDM, NHCX, payments, labs, PACS"]
U -->|HTTPS| LB --> API
API --> DB
API --> OBJ
API --> VAULT
WRK --> DB
WRK -->|hospital's own credentials| EXT
KMS -.encrypts.-> DB
KMS -.encrypts.-> OBJ
KMS -.encrypts.-> VAULT
API --> LOG
WRK --> LOG
Text description of the diagram. Hospital users reach the Platform over HTTPS through a load balancer
that terminates TLS and applies web application firewall rules. The load balancer forwards to the
Pensieve API services running on Cloud Run. Those services, and a set of background workers,
read and write a PostgreSQL database and an object store, and read hospital-supplied credentials from a
secret store. Cloud KMS holds the keys that encrypt the database, the object store and the secret store.
Background workers are the only components that call external systems, and they do so using credentials the
hospital supplied. Every service writes to a regional, immutable log bucket with a retention period of at
least 365 days.
| Property | DM-1 Dedicated |
DM-2 Shared |
DM-3 Customer Cloud |
DM-4 On-Premise |
|---|---|---|---|---|
| Cloud project | One per hospital, inside Pensieve Labs's organisation |
Shared project per region | Hospital's own project | None (hospital hardware) |
| Compute | Dedicated Cloud Run services | Shared Cloud Run services | Dedicated, in hospital's project | Hospital's servers |
| Database | Dedicated instance | Shared instance, separate schema per tenant, row-level security | Dedicated instance | Hospital's instance |
| Object storage | Dedicated buckets | Shared buckets, per-tenant prefixes and per-tenant keys | Dedicated buckets | Hospital's storage |
| Encryption keys | Dedicated key ring and CMEK per hospital | Per-tenant data keys, Pensieve Labs-managed key ring |
Keys in the hospital's own KMS | Hospital-managed keys |
| Network boundary | Per-project VPC | Shared VPC, per-tenant application authorisation | Hospital's VPC | Hospital's LAN |
| Blast radius of an application flaw | One hospital | Potentially more than one tenant (see Section 3.4) | One hospital | One hospital |
| Who can reach production | Pensieve Labs under time-bound approval |
Pensieve Labs under time-bound approval |
Pensieve Labs under IAM roles the hospital grants and can revoke |
Nobody, unless the hospital opens a session |
| Cloud account owner | Edsol Edtech Pvt. Ltd. |
Edsol Edtech Pvt. Ltd. |
Hospital | Hospital |
| Backup custody | Pensieve Labs |
Pensieve Labs |
Hospital's project, Pensieve Labs-operated |
Hospital |
| Physical security | Inherited from Google Cloud | Inherited from Google Cloud | Inherited from Google Cloud | Hospital's own |
DM-1: dedicated, and the recommended defaultEach hospital gets its own Google Cloud project. That project contains its own Cloud Run services, its own database instance, its own storage buckets, its own KMS key ring and its own log bucket. Nothing inside it is shared with another hospital, and there is no code path in which a request authenticated to one project can read data in another, because the projects are separate cloud tenancies with separate IAM boundaries.
This is the model Pensieve Labs recommends and the one it can deploy fastest. The isolation argument
is short enough to be checked in one meeting, which is worth several days on the deal clock.
DM-2: shared, and how it is defendedDM-2 is the hardest model to defend honestly, so it is described in more detail than the others. The
Multi-Tenancy Isolation Disclosure (DIS-GL-032) carries the full treatment; this is the summary.
Isolation in DM-2 is logical, not physical. It rests on four layers:
WHERE clauses. A query that omits
the tenant predicate returns nothing rather than returning another hospital's rows. This matters because
application-layer-only scoping fails the moment one developer forgets one clause.The honest statement about DM-2: shared infrastructure means an application-layer flaw has a larger
potential blast radius than in DM-1. The four layers above are designed so that a single flaw is not
sufficient: an attacker would need to defeat tenant binding and row-level security or obtain another
tenant's key material. Pensieve Labs does not claim that a multi-tenant system is equivalent to a
dedicated one. A hospital that wants the shorter argument should choose DM-1.
DM-3: the hospital's own cloud projectThe hospital owns and pays for the cloud project. Pensieve Labs deploys and operates
Pensieve inside it under a delegated-access arrangement documented in the Delegated Cloud Access
& Administration Agreement.
What changes:
Pensieve Labs takes in
its own Cloud Audit Logs, logs Pensieve Labs cannot alter or delete.Pensieve Labs's access is granted by the hospital and revocable by the hospital, without notice
and without Pensieve Labs's cooperation. Roles are least-privilege and named in the agreement.Pensieve Labs cannot commit to an availability figure for a
project whose quotas, budget and organisation policy it does not control. SLA-GL-001 states the
DM-3 position explicitly.DM-4: on-premisePensieve runs on hardware the hospital owns, in a room the hospital controls, on a network the
hospital operates. Pensieve Labs supplies the software, the deployment, the upgrade path and support.
What Pensieve Labs does not control in DM-4, stated plainly: the physical security of the room;
who has console access; power and cooling; the network perimeter; the hypervisor and host operating system,
where the hospital chooses to manage them; the backup media and where they are stored; whether patches are
applied when they are shipped; and whether the environment is monitored at 03:00.
Consequently:
Pensieve Labs publishes no availability commitment for DM-4 hardware. SLA-GL-001 limits the
DM-4 commitment to Pensieve Labs's own response times, not to uptime.DM-4 are a function of the hospital's backup practice. Pensieve Labs can
configure and test a backup regime and will do so; it cannot commit to a restore time for media it never
sees. DIS-GL-014 carries the per-model position.Pensieve Labs
tunnel into a hospital's server room. The Offshore/Remote Access Disclosure (DIS-GL-033) describes the
mechanism, the logging and the hospital's ability to observe and terminate a session.DM-4 materially extends the go-live timeline and Pensieve Labs says so at qualification rather
than at cutover. See WPR-GL-004 Section 7.The On-Premise Supplement to the MSA covers hardware specification, environmental requirements, physical
security expectations, backup custody, patching windows and the remote-access mechanism. It is a
prerequisite to a DM-4 deployment, not an afterthought.
Pensieve Labs operates separate development, staging and production environments. Production data is
never copied into development or staging. Where realistic data is needed for testing,
Pensieve Labs uses generated data. Where a defect can only be reproduced with production data, it is
investigated in the production environment under the time-bound access process in Section 4.5, and never by
exporting a copy to a laptop.
Two populations of identity exist and they are kept entirely separate: hospital users, who use the
Platform, and Pensieve Labs personnel, who build and operate it. They authenticate through
different systems, hold different credentials, and appear differently in the audit log.
| Capability | Position |
|---|---|
| Password authentication | Supported. Minimum length and complexity enforced; credentials stored as salted hashes using a memory-hard algorithm, never reversibly encrypted and never in plaintext |
| Multi-factor authentication | Supported and configurable per role. Pensieve Labs requires MFA for every account holding an administrative or full-record-access role, and recommends it for all clinical roles |
| Single sign-on | SAML 2.0 and OpenID Connect supported where the hospital operates an identity provider. Where SSO is enabled, the hospital's identity provider controls password policy, MFA and de-provisioning |
| Session management | Idle timeout and absolute session lifetime, both configurable per hospital; sessions are invalidated server-side on sign-out, password change and role change |
| Brute-force protection | Progressive rate limiting and lockout on repeated failure, per account and per source |
| Shared accounts | Not permitted for any role that can view or amend a patient record. This is a NABH expectation as well as a Pensieve Labs control: a record entry that cannot be attributed to a named person is not a record |
On shared logins. The single most common security failure in Indian hospital deployments is not an
attacker; it is a ward terminal with one login shared by six people across three shifts. Pensieve
is designed to make individual login practical: fast switching, device-bound convenience factors and
role-appropriate session lifetimes, because a control that makes clinical work slower will be defeated by
the people doing clinical work. This is discussed further in Section 18.2, where it is a hospital responsibility.
Access is role-based, with permissions granted to roles and roles granted to users. Roles are scoped by function (registration, nursing, pharmacy, laboratory, billing, stores, HR, administration) and, where the hospital requires it, by organisational unit: a ward, a department, a site.
Three properties matter to a hospital reviewer:
Pensieve Labs configures this during onboarding; the hospital decides the split.Full detail is in the Authentication & Access Control Disclosure (DIS-GL-012).
The hospital nominates its own administrators. Pensieve Labs does not create hospital user accounts
after go-live except at the hospital's written request through the support channel. Administrator actions (creating a user, changing a role, resetting a credential, changing a masters record) are logged and are
visible to the hospital in its own audit trail, not only to Pensieve Labs.
Pensieve Labs personnel identity| Control | Position |
|---|---|
| Corporate identity | Every person has a single named identity. No shared engineering accounts |
| Multi-factor | Phishing-resistant authentication (WebAuthn / passkey or hardware security key) is required for the identity provider, the cloud console, the source repository and the secret store |
| Device requirement | Administrative access is only possible from a Pensieve Labs-managed device with disk encryption enabled and screen lock enforced |
| Privileged roles | Granted to named individuals, reviewed quarterly, and recorded in the Access Review Register |
| Joiners, movers, leavers | Access is granted on a documented request at joining, adjusted on role change, and revoked on the last working day. Revocation is a checklist item with an owner, not an expectation |
Pensieve Labs reaches production data: the control a hospital should actually interrogateThis is the control that decides whether everything else in this document matters, so it is stated precisely.
| Step | What happens |
|---|---|
| 1 | An engineer raises an access request naming the tenant, the reason, the scope and the duration |
| 2 | A second person approves it. Self-approval is not possible |
| 3 | A time-bound, least-privilege role is granted. It expires automatically; there is no manual revocation step to forget |
| 4 | Every action taken under that grant is written to Cloud Audit Logs, which Pensieve Labs engineers cannot alter or delete |
| 5 | The grant, the reason and the approver are retained and are disclosable to the hospital on request |
Per deployment model:
| Model | Who approves Pensieve Labs access |
Can the hospital revoke it unilaterally? | Can the hospital see it? |
|---|---|---|---|
DM-1 |
Pensieve Labs second approver |
On request, contractually | Yes: access records disclosable on request |
DM-2 |
Pensieve Labs second approver |
On request, contractually | Yes: access records disclosable on request |
DM-3 |
The hospital, through its own IAM | Yes, immediately and unilaterally | Yes, in the hospital's own Cloud Audit Logs |
DM-4 |
The hospital opens a session or no access exists | Yes, by not opening a session | Yes, the hospital operates the mechanism |
DM-3 and DM-4 give the hospital structural control over Pensieve Labs's access. DM-1 and DM-2
give it contractual control plus disclosure. A hospital for whom "we can cut them off ourselves" is
non-negotiable should choose DM-3.
The Encryption Disclosure (DIS-GL-011) is the source of truth for this area. What follows is the summary
a security reviewer needs.
All customer data at rest is encrypted. Two layers apply.
Layer 1: platform default. Data stored in Google Cloud is encrypted at the storage layer with AES-256 using an envelope scheme: data encryption keys (DEKs) protect the data and are themselves wrapped by key encryption keys (KEKs), with KEKs generated using Google's cryptographic library and a NIST SP 800-90Ar1 CTR-DRBG random number generator (Google Cloud: Default encryption at rest). This layer requires no configuration and cannot be switched off.
Layer 2: customer-managed encryption keys (CMEK). Above the default, Pensieve Labs configures
CMEK in Cloud KMS so that the KEK protecting a hospital's data is a key with an identity, a rotation
schedule, an access policy and an audit trail. Cloud KMS keys are 256-bit AES-GCM
(Google Cloud: CMEK).
| Model | Key arrangement | Key ring owner | Rotation |
|---|---|---|---|
DM-1 |
Dedicated key ring and dedicated CMEK per hospital, covering database, object storage and the secret store | Edsol Edtech Pvt. Ltd. |
Automatic, at a configured period recorded in DIS-GL-011 |
DM-2 |
Per-tenant data encryption keys wrapped by a KEK in a Pensieve Labs-managed key ring |
Edsol Edtech Pvt. Ltd. |
Automatic, same period |
DM-3 |
CMEK in the hospital's own Cloud KMS, in the hospital's project | Hospital | Hospital-controlled |
DM-4 |
Keys held by the hospital in the on-premise key store | Hospital | Hospital-controlled |
The consequence a hospital should understand. In DM-3 and DM-4 the hospital holds the keys.
If the hospital disables or destroys a key, Pensieve Labs cannot decrypt the data, cannot restore it,
and cannot recover it. That is the correct behaviour for a key the hospital controls, and it is stated here
so it is never a surprise. Key destruction in DM-3/DM-4 is an irreversible act the hospital should
protect with its own approval process.
max-age and includeSubDomains.DIS-GL-024) are made over TLS. Where a hospital's existing
system (a legacy analyser, an older PACS node) cannot offer TLS, the connection is confined to the
hospital's own network segment and the limitation is recorded in the deployment record rather than
quietly accepted. See Section 17.6.Hospital-supplied credentials for external systems (ABDM client credentials, NHCX participant credentials, payment gateway keys, SMS and WhatsApp provider tokens, insurer portal logins, e-mail credentials) are held in a managed secret store, encrypted under the tenant's key, with access restricted to the specific Platform service that needs them.
Specifically:
Pensieve Labs's cooperation, because they are the hospital's credentials, issued
to the hospital.The full treatment is the BYOK/BYOC Credential Handling Disclosure (DIS-GL-025).
Pensieve Labs can decryptStated plainly, because vendors are usually vague here.
| Model | Can Pensieve Labs technically decrypt hospital data? |
|---|---|
DM-1 |
Yes, through the operational path in Section 4.5: approved, time-bound, logged. Pensieve Labs holds the key ring |
DM-2 |
Yes, on the same basis |
DM-3 |
Only while the hospital's IAM grant and key access are in place. The hospital can end this at any moment |
DM-4 |
No, other than within a session the hospital opens on its own infrastructure |
Pensieve does not implement client-side encryption under a key Pensieve Labs cannot reach
in DM-1 and DM-2. Claiming otherwise would be false: a platform that must index, search, bill and report
across the hospital's data must be able to process it. What Pensieve Labs offers instead is a
controlled, approved, logged and time-bound access path, plus the DM-3 and DM-4 options for hospitals
that require structural rather than procedural control. This is listed again in Section 17.
Backups inherit the encryption of their source and are encrypted under the same key hierarchy. Backup storage location follows the deployment's data region. Restore testing is covered in Section 11.
TLS certificates for Pensieve Labs-hosted deployments are managed automatically with renewal well
ahead of expiry and monitored for expiry as a production alert. In DM-3 and DM-4 certificate issuance
may be the hospital's, depending on the ingress design; the deployment record names the owner.
https://trust.pensievelabs.org is a separate application from the Platform. It contains
Pensieve Labs's document library and deal-lifecycle records; it does not contain patient data and is
not connected to any hospital's Platform instance. It runs on a different stack (see DIS-GL-009 for the
sub-processors) and is held to the same transport-security standard: TLS 1.2+, HSTS, a content security
policy, and /.well-known/security.txt per RFC 9116.
All hospital traffic enters through an HTTPS load balancer. In front of the application there is a web application firewall with rules covering the OWASP Top 10 classes: injection, cross-site scripting, path traversal, protocol anomalies, plus rate limiting and bot controls. Requests are size-limited and timeout-bounded.
Pensieve Labs supports IP allow-listing for administrative roles where a hospital wants Platform
administration restricted to its own network ranges. This is configured per hospital and is not on by
default, because a hospital with clinicians on mobile networks will find it obstructive; it is offered, and
the hospital chooses.
Pensieve Labs's own
monitoring endpoints. A compromised component cannot casually exfiltrate to an arbitrary host.Volumetric and protocol-level attack absorption is inherited from Google Cloud's edge infrastructure.
Application-layer rate limiting is applied at the load balancer per source and per authenticated principal.
Pensieve Labs does not claim immunity from a determined denial-of-service attack; it claims a
mitigation posture and an incident path (Section 10).
| Model | Perimeter owner | Pensieve Labs visibility |
|---|---|---|
DM-1 / DM-2 |
Edsol Edtech Pvt. Ltd., in Google Cloud |
Full |
DM-3 |
Hospital: its VPC, its firewall rules, its organisation policy | As granted by the hospital |
DM-4 |
Hospital: its LAN, its firewall, its internet gateway | None. Pensieve Labs cannot see, defend or monitor the hospital's network |
In DM-4 the network security of the deployment is the hospital's network security. Pensieve Labs
supplies a recommended segmentation design in the On-Premise Supplement and will review the hospital's
implementation on request, but it does not operate it and does not warrant it.
Hospitals may test their own deployment. The rules are published in the Customer Penetration Testing Policy and are summarised here because reviewers look for them:
Permitted, with at least seven days' written notice to info@pensievelabs.org, against
the hospital's own tenant only: port scanning and banner grabbing; automated vulnerability scanners and
manual tooling against the hospital's own deployment infrastructure and web application; testing detection
and alerting within the hospital's own tenant; and attempts to escape process sandboxing or
containerisation.
Prohibited: denial-of-service testing of any kind; targeting resources or data belonging to any other
tenant; social engineering or phishing of Pensieve Labs personnel or hospital staff; attacks against
infrastructure that is not part of the hospital's tenant; and moving beyond proof of concept for code
execution, container escape or lateral movement.
Pensieve Labs will respond to Medium severity findings and above. Low and Informational findings are
recorded but not individually responded to.
The Secure Software Development Lifecycle Disclosure (DIS-GL-018) is the source of truth. This is the
summary.
flowchart LR
A["Design<br/>threat consideration"] --> B["Branch<br/>protected main"]
B --> C["Peer review<br/>mandatory, second person"]
C --> D["Automated checks<br/>SAST, dependency scan, secret scan, tests"]
D --> E["Build<br/>immutable, versioned artefact"]
E --> F["Staging<br/>no production data"]
F --> G["Change record<br/>approval, rollback plan"]
G --> H["Production<br/>progressive rollout"]
H --> I["Monitor<br/>error rate, latency, alerts"]
I -->|regression| J["Roll back<br/>to previous artefact"]
Text description. A change is designed, developed on a branch off a protected main branch, reviewed by a second person, and put through automated static analysis, dependency scanning, secret scanning and tests. A passing change produces an immutable versioned build artefact, which is deployed to staging (which never holds production data), then released to production under a change record with an approval and a rollback plan, using a progressive rollout. Production is monitored, and a regression triggers a roll back to the previous artefact.
| Control | Position |
|---|---|
| Branch protection | main is protected. Direct pushes are blocked. Every change arrives by pull request |
| Peer review | Mandatory. A change cannot be merged by its own author alone |
| Static analysis (SAST) | Runs on every pull request; covers the OWASP Top 10 classes and language-specific unsafe patterns |
| Dependency scanning | Runs on every pull request and on a schedule against the default branch, so a vulnerability disclosed after merge is still found |
| Secret scanning | Runs on every pull request and across history. A detected credential is treated as compromised and rotated, not merely removed from the diff |
| Automated tests | Unit and integration tests gate the merge |
| Build integrity | Builds are reproducible from a tagged commit and produce a versioned, immutable container image. Images are scanned before deployment |
| Infrastructure as code | Cloud infrastructure is defined in code and reviewed the same way application code is. Console changes to production configuration are exceptions and are recorded |
| Change management | Every production release carries a change record with the change, the approver, the rollout plan and the rollback trigger. See DIS-GL-031 |
Secure, HttpOnly and SameSite-scoped.DM-2 the database's row-level security is the backstop (Section 3.4) precisely because this class of flaw is
the one an application layer is most likely to get wrong.Clinical and financial records in Pensieve are append-only at the audit layer. An amendment
creates a new version and preserves the prior one with the amending user, timestamp and reason. A
medication order is not edited in place; it is discontinued and re-issued. This is a NABH information
management expectation (a system to keep track of changes made to records) and it is also the property that
makes a medico-legal record defensible three years later. Section 9 covers retention.
Pensieve uses machine learning for non-clinical functions only. It does not diagnose, triage,
score clinical risk, calculate patient-specific doses or recommend treatment. Where a feature uses a model,
the AI/ML Feature Disclosure (DIS-GL-027) names the function, the data used, the human review step and
the hospital's opt-out. Hospital data is not used to train models offered to other hospitals. The
regulatory boundary is set out in DIS-GL-028.
The Vulnerability Management & Patching Disclosure (DIS-GL-017) carries the full policy.
| Source | Cadence |
|---|---|
| Dependency scanning in CI | Every pull request, plus a daily scan of the default branch |
| Container image scanning | On every build and on a schedule for images already deployed |
| Cloud configuration scanning | Continuous, against the cloud provider's security posture tooling |
| Static analysis | Every pull request |
| Vulnerability disclosure from external researchers | Continuous, under the published Vulnerability Disclosure Policy |
| Independent penetration testing | See Section 16 for the current status and cadence |
| Customer-initiated testing | On notice, per Section 6.5 |
Severity is assigned using CVSS v3.1 base score adjusted for exploitability in Pensieve's
actual configuration: a critical CVE in a code path that is not reachable is triaged accordingly, and the
reasoning is recorded rather than assumed.
| Severity | Target time to remediate or mitigate in production |
|---|---|
| Critical: remotely exploitable, no authentication, affects customer data | 72 hours |
| High | 14 days |
| Medium | 60 days |
| Low | Next scheduled release cycle |
| Informational | Recorded; no committed timeline |
"Mitigate" includes a virtual patch at the WAF, disabling a feature, or restricting a network path, where a code fix will take longer. A mitigation is recorded with the residual risk and a date for the permanent fix. Missed targets are recorded rather than reclassified.
DM-1, DM-2: Pensieve Labs patches everything: application, container base images, managed
service versions, inside the windows above. The hospital has no patching obligation.DM-3: Pensieve Labs patches the Platform. The hospital's cloud organisation policy, quotas and
maintenance windows can delay a patch; where that happens Pensieve Labs records the delay and
notifies the hospital.DM-4: Pensieve Labs ships the patch; the hospital applies it, or authorises Pensieve Labs
to apply it in a scheduled window. A DM-4 hospital that defers patches carries the residual risk, and
Pensieve Labs records the notification and the deferral. This is the single largest security
difference between DM-4 and the other three models and it is the reason DM-4 requires a contractual
patching window.Pensieve Labs publishes a Vulnerability Disclosure Policy and a /.well-known/security.txt per
RFC 9116. Commitments: acknowledge a report within 3 business days, complete triage within 10 business
days, and give the reporter a status update at least every 30 days until closure.
Pensieve Labs will not pursue legal action against a researcher acting in good faith within the
published scope. Reports go to info@pensievelabs.org.
Pensieve Labs does not currently operate a paid bug bounty programme. See Section 17.
A software bill of materials is produced per release in CycloneDX and SPDX formats and published
alongside the Third-Party & Open Source Dependency Disclosure (DIS-GL-019). Its purpose is operational,
not decorative: when the next widely exploited library vulnerability is announced, a hospital can determine
in minutes whether Pensieve is affected, and so can Pensieve Labs.
| Log class | Contents |
|---|---|
| Clinical and record access | Which user viewed, created or amended which record, when, from which session. This is the log a hospital needs for a medico-legal question or a NABH assessment |
| Administrative | User creation, role change, permission change, master data change, configuration change |
| Authentication | Sign-in success and failure, MFA events, session termination, lockout |
| Cloud audit | Every action taken against cloud resources, including by Pensieve Labs personnel: Admin Activity and Data Access audit logs, the latter explicitly enabled because it is off by default |
| Application | Errors, latency, job execution, integration calls and their outcomes |
| Integration | Every call to an external system: which system, which hospital credential, when, the outcome, but never the credential itself |
≥ 365 days, inside India for Indian deployments, immutable.
The number is the highest of three overlapping requirements, so that one configuration satisfies all of them:
| Requirement | Period | Source |
|---|---|---|
| DPDP Rules 2025, Rule 6(1)(e) and Rule 8(3) | 1 year | Processing logs and associated traffic data |
| CERT-In Directions of 28 April 2022, Direction (iv) | 180 days rolling, maintained within Indian jurisdiction | All ICT system logs |
Pensieve Labs standard |
365 days minimum | Takes the longest of the above |
Configuration specifics that a reviewer should verify, because the cloud defaults do not satisfy the requirement out of the box:
Pensieve Labs.The Log Retention & Localisation Disclosure (DIS-GL-034) carries the configuration in full, and the Audit
Logging & Traceability Disclosure (DIS-GL-013) covers what the hospital can query itself.
Per-model position: in DM-3 the log bucket is in the hospital's project and the hospital controls
retention; Pensieve Labs configures the above and tells the hospital if the hospital changes it. In
DM-4 log retention is entirely the hospital's responsibility; Pensieve Labs configures the
application to emit the logs and specifies the required retention in the On-Premise Supplement, but cannot
enforce it on hardware it does not control.
Credentials, secrets, API keys, session tokens, full payment card numbers and passwords are never written to any log. Redaction happens at the logging boundary. Where a diagnostic genuinely requires a payload, the payload is redacted before it is written, not after.
Production is monitored continuously for availability, error rate, latency, saturation, job failure,
certificate expiry, backup success and integration failure. Alerts route to an on-call engineer. The
severity model and response times are in SLA-GL-001.
Security-relevant detections include: repeated authentication failure and credential stuffing patterns; anomalous administrative activity; access outside a granted window; unusual bulk record access or export volume; unexpected egress; and cloud configuration drift from the infrastructure-as-code baseline.
Honest statement: Pensieve Labs operates monitoring and alerting with an on-call rotation. It does
not operate a 24×7 staffed security operations centre, and it does not describe its alerting as one.
See Section 17.
The Incident Response & Breach Notification Commitment (DIS-GL-016) is the binding statement; this is the
summary and it does not vary from it.
An incident affecting an Indian hospital starts three clocks that run in parallel. Pensieve Labs's
commitments are designed so the hospital can meet the ones that bind it.
flowchart LR
D["T0<br/>Pensieve Labs becomes aware"] --> P["≤4 hours<br/>Pensieve Labs notifies the hospital<br/>with reportable content"]
P --> C["≤6 hours from the hospital<br/>noticing the incident<br/>Hospital reports to CERT-In"]
P --> B["Without delay, then 72 hours<br/>Hospital reports to the<br/>Data Protection Board"]
P --> R["Without delay<br/>Hospital notifies affected<br/>Data Principals"]
| # | Clock | Window | Who reports | Basis |
|---|---|---|---|---|
| 0 | Pensieve Labs → hospital |
≤ 4 hours from Pensieve Labs's awareness |
Edsol Edtech Pvt. Ltd. |
DPA-GL-001, contractual |
| 1 | Hospital → CERT-In | 6 hours from noticing | Hospital | CERT-In Directions, 28 April 2022, Direction (ii) |
| 2 | Hospital → Data Protection Board | Without delay, then a detailed report within 72 hours | Hospital | DPDP Rules 2025, Rule 7(2), in force 14 May 2027 |
| 3 | Hospital → affected Data Principals | Without delay | Hospital | DPDP Rules 2025, Rule 7(1), in force 14 May 2027 |
Why the 4-hour commitment is the number that matters. CERT-In's window is six hours from the moment the
hospital notices. If a vendor takes a day to tell the hospital, the hospital cannot comply. A four-hour
commitment leaves the hospital two hours to act, and it is checkable after the fact against the incident
record. Pensieve Labs states it contractually rather than aspirationally.
Enough for the hospital to file its own report without a second round trip: what happened; when it was
detected and when it is believed to have started; which systems and which categories of data are affected;
the number of affected records or a bounded estimate; whether the incident is contained; what
Pensieve Labs has done; what the hospital should do; and a named contact. Where a fact is not yet
known, the notification says so rather than delaying until everything is known.
| Phase | What happens |
|---|---|
| Detect | From monitoring, a support report, a researcher report, or a sub-processor notice |
| Triage | Severity assigned; incident commander named; the 4-hour clock starts at awareness, not at triage |
| Contain | Isolate the affected component, revoke credentials, block the path. Containment precedes root-cause analysis |
| Notify | Affected hospitals inside 4 hours. Sub-processor and regulator notifications as applicable |
| Eradicate and recover | Remove the cause; restore service; verify integrity before restoring access |
| Review | A written post-incident review with root cause, timeline, contributing factors and remediation actions with named owners and dates |
Hospitals receive the post-incident review for incidents affecting their data.
| Model | Who detects | Who declares | Who notifies the regulator |
|---|---|---|---|
DM-1 / DM-2 |
Pensieve Labs monitoring, or the hospital |
Either | Hospital: it is the Data Fiduciary. Pensieve Labs supplies the content |
DM-3 |
Pensieve Labs monitoring inside the hospital's project, or the hospital's own tooling |
Either | Hospital |
DM-4 |
Hospital: Pensieve Labs has no visibility of the hospital's infrastructure |
Hospital | Hospital |
In DM-4 Pensieve Labs will support an investigation and will provide application-level analysis, but
it cannot detect an incident on hardware and a network it cannot see. A DM-4 hospital needs its own
detection capability, and this document says so before the contract is signed rather than after the
incident.
Pensieve Labs runs an incident-response tabletop exercise on a scheduled cadence and publishes a
two-page summary: the date, the scenario, participants by role, the decisions taken, the clock performance
against each statutory window, and the remediation actions with owners. The current status of this
programme, including whether an exercise has been run yet, is in WPR-GL-005.
The Backup, Retention & Recovery Disclosure (DIS-GL-014) and the BC/DR Statement (DIS-GL-015) are the
sources of truth. This is the summary a reviewer needs.
| Element | Position |
|---|---|
| Database | Automated backups with point-in-time recovery, retained per the deployment's configured period |
| Object storage | Versioned, with soft-delete retention so an accidental or malicious deletion is recoverable |
| Configuration | Infrastructure and configuration are in version control; an environment can be rebuilt from code |
| Encryption | Backups are encrypted under the same key hierarchy as live data (Section 5) |
| Location | Backups remain in the deployment's data region. For Indian deployments, inside India |
| Ransomware resistance | Backups are held in storage that the application's own service identity cannot delete, so a compromise of the application does not reach the backups |
Pensieve Labs publishes targets only where it controls the infrastructure. Contractual values for a
specific deal are Deal RTO hours and Deal RPO minutes on the Order Form.
| Model | RTO commitment | RPO commitment | Who executes the restore |
|---|---|---|---|
DM-1 |
Committed in SLA-GL-001 and recorded as Deal RTO hours |
Committed and recorded as Deal RPO minutes |
Pensieve Labs |
DM-2 |
Committed, same basis | Committed, same basis | Pensieve Labs |
DM-3 |
Committed subject to the hospital's cloud project remaining available, funded and within quota | Committed on the same basis | Pensieve Labs, inside the hospital's project |
DM-4 |
No Pensieve Labs RTO commitment. Restore time depends on hospital hardware, media and staff |
No Pensieve Labs RPO commitment beyond the configured backup schedule |
Hospital, with Pensieve Labs support |
This table is the honest version. A vendor that offers the same RTO for on-premise hardware it has never seen as for its own cloud is either not thinking or not telling the truth.
A restore drill is worth more than a continuity policy, so Pensieve Labs runs drills and publishes the
measurements: the date, the tenant restored, the source backup, the measured RTO against the commitment,
the measured RPO against the commitment, and any defects found and fixed. The cadence is quarterly. The
date of the most recent drill and its results are published on the Trust Center; if that date is stale, it
is stale in public, which is the point.
DM-4 drills are run jointly with the hospital, because the hospital holds the media.
Two questions a hospital's advocate will ask, answered in advance:
Edsol Edtech Pvt. Ltd. stops trading?" Source code escrow is available, with a master
deposit and beneficiary accession by joinder rather than a fresh tripartite negotiation per deal. The
Escrow Policy & Beneficiary Accession Note states the agent, the deposit scope, the release conditions and
the date of the last verification.WPR-GL-400) and the Data
Deletion & Return Disclosure (DIS-GL-023) state the export formats, the timeline, the cost and the
verification, in advance and in public.The Data Protection & Privacy Whitepaper (WPR-GL-003) and the Data Processing Agreement (DPA-GL-001)
are the sources of truth. This section states the security-relevant parts and does not restate the DPA.
In all four deployment models: the hospital is the Data Fiduciary. Edsol Edtech Pvt. Ltd. is the Data
Processor. In GDPR jurisdictions the equivalent roles are controller and processor. Pensieve Labs
processes personal data only on the hospital's documented instructions, which are the Platform's configured
functions plus anything the hospital instructs in writing.
Pensieve Labs does not determine the purposes of processing, does not use hospital data for its own
purposes, does not use it to train models offered to others, and does not disclose it to any third party
except the sub-processors listed in DIS-GL-009 or where compelled by law, in which case, unless legally
prohibited, Pensieve Labs notifies the hospital first so the hospital can seek relief.
| Deployment jurisdiction | Position |
|---|---|
| India | All customer personal data and all system logs are stored and processed in Google Cloud India regions and remain within Indian jurisdiction. The exact region is Deal data region, named on the Order Form. No customer personal data is transferred outside India |
| Other markets | The region is named on the Order Form. DIS-GL-008 states the position per market and per model, including where a market's requirements are not currently met |
A note on honesty here. Pensieve Labs does not have infrastructure in every market it can sell in.
Where a market requires in-country hosting that Pensieve Labs cannot yet provide, DIS-GL-008 says so
in that market's section rather than describing residency in general terms. Do not infer residency for a
market from this whitepaper; read the statement for the market.
In DM-3 residency is determined by the region the hospital selects for its own project. In DM-4 the
data is wherever the hospital's server room is, which is the strongest residency answer available and is one
of the two legitimate reasons to choose DM-4.
Pensieve implements a configurable retention schedule per record class, because Indian
retention obligations are not uniform: in-patient medical records carry a three-year minimum under the
professional conduct regulations, DPDP processing logs carry a one-year minimum, and a hospital's own
policy or its accreditation body may require longer. The Data Classification & Handling Disclosure
(DIS-GL-022) and the retention matrix set out the classes.
On termination, DIS-GL-023 governs: the hospital receives its data in documented formats, then
Pensieve Labs deletes it from live systems and from backups on the stated schedule, and issues a
Certificate of Deletion. Backup deletion is not instantaneous (it follows the backup rotation) and the
disclosure states the actual period rather than implying immediacy.
Pensieve Labs's support process is designed to avoid moving patient data. Support staff work from
identifiers and error references, not from record contents. Where a defect can only be understood by
looking at a record, the access is made under Section 4.5 in the production environment, and no copy is taken.
Screenshots containing patient data are not accepted through the support channel and are deleted if
received.
Pensieve Labs builds the mechanisms; the hospital operates them. Consent notices, the grievance
officer, responses to Data Principal rights requests, and the decision about what data to collect at all
are the hospital's. Pensieve provides the consent notice engine, the rights-request workflow
and the evidence trail; WPR-GL-003 describes the split. Section 18 restates the security-relevant parts.
The Personnel Security & Background Verification Disclosure (DIS-GL-020) is the source of truth.
| Control | Position |
|---|---|
| Background verification | Identity and employment verification is performed before access to production systems is granted. The scope is stated in DIS-GL-020 |
| Confidentiality | Every person with access to hospital data is bound by a written confidentiality obligation that survives the end of their engagement |
| Contractors | Held to the same access controls, the same device requirements and the same confidentiality obligations as employees. Contractors are named in the access register |
| Security training | Delivered at induction and refreshed annually, covering phishing, credential handling, data handling in a healthcare context, and the incident-reporting duty |
| Acceptable use | A written policy governs the handling of hospital data on Pensieve Labs devices, including the prohibition on copying production data to a local machine |
| Devices | Managed, disk-encrypted, screen-locked, with endpoint protection and automatic updates. Personal devices cannot reach production |
| Offboarding | Access revocation on the last working day is a checklist item with a named owner and a recorded completion |
Scale statement. Edsol Edtech Pvt. Ltd. is a small company. That has two consequences worth stating
rather than hiding. First, the number of people who can reach production is small, which is a genuine
security advantage: the population to control is small enough to enumerate. Second, full separation of
duties between development and operations is not achievable at this size, and Pensieve Labs does not
claim it. The compensating controls are mandatory peer review (Section 7.2), the second-approver requirement on
production access (Section 4.5), and immutable audit logs that the accessing engineer cannot alter (Section 9.2). This
appears again in Section 17.
The Subprocessor Register (DIS-GL-009) is public, versioned and dated. For each entry it names the
sub-processor, its legal entity, the service it provides, the categories of data it processes, the
processing location, and the date it was added. It is deliberately falsifiable: a hospital can check that
the named entities exist and do what is claimed.
Change notification. Pensieve Labs notifies hospitals in advance of adding a sub-processor that
will process customer personal data, within the notice period stated in DPA-GL-001, and the hospital may
object. The Sub-Processor Change Log (DIS-GL-010) is the running record.
Per model: in DM-3 and DM-4 the hosting sub-processor disappears from the chain entirely, because
the hospital owns the infrastructure. The register marks which entries apply to which models.
| Control | Position |
|---|---|
| Dependency provenance | Dependencies are resolved from the official registries with integrity hashes recorded in a committed lock file. A dependency cannot change without a reviewed commit |
| Dependency review | New dependencies require review. The review considers maintenance status, ownership and licence, not only functionality |
| Vulnerability response | Per Section 8.2. The SBOM (Section 8.5) is what makes a same-day answer possible when a widely exploited library vulnerability is announced |
| Base images | Container base images are pinned to a digest and rebuilt on a schedule so that operating-system patches reach production without waiting for a feature release |
| Build environment | Builds run in an ephemeral, isolated environment. Build credentials are short-lived and scoped |
| Artefact integrity | Deployed images are referenced by immutable digest, not by mutable tag |
Pensieve Labs relies on the major cloud provider's own published independent audit reports for the
infrastructure layer and reviews them annually. It does not re-audit a hyperscale cloud provider, and it
does not present the provider's certifications as its own, a distinction Section 16.4 makes precisely, because
it is the most commonly misrepresented point in vendor security documentation.
Almost all of this is inherited, and Pensieve Labs says so rather than implying it operates data
centres.
DM-1, DM-2, DM-3The Platform runs in Google Cloud data centres. Physical access control, perimeter security, visitor
management, environmental controls, power redundancy, fire suppression and secure media destruction at
those facilities are operated by Google, not by Edsol Edtech Pvt. Ltd.. Pensieve Labs personnel
have no physical access to any data centre holding hospital data, and cannot obtain it.
Pensieve Labs's obligations at this layer are therefore: to select a provider with independently
audited physical controls; to review that provider's audit reports annually; and to state accurately that
these controls are inherited. DIS-GL-021 records the review.
DM-4: on-premisePhysical security is entirely the hospital's. The server room, its lock, its access list, its cameras,
its air conditioning, its UPS, its fire suppression and the custody of its backup media are the hospital's
responsibility. Pensieve Labs specifies minimum requirements in the On-Premise Supplement: controlled
access to the room, an access log, environmental control adequate to the hardware specification, power
protection, and off-site backup custody, and will review the hospital's arrangements on request. It does
not operate them and does not warrant them.
This is not a minor caveat. In a DM-4 deployment, an unlocked server-room door defeats every cryptographic
control in Section 5.
Pensieve Labs's own premisesPensieve Labs does not hold hospital patient data on premises. Work is done against cloud
environments from managed devices (Section 13). Paper records containing customer confidential information are not
held routinely; where they exist (executed contracts, for example), they are held securely and are covered
by the retention schedule.
This is the section a sceptical reviewer should read first. It is written to be checked.
Edsol Edtech Pvt. Ltd. holds no security certifications and no independent security attestations
today. Everything in Section 2 to Section 15 of this document is Pensieve Labs's own description of its own
controls. That description is detailed and specific precisely so that it can be tested, but it has not been
independently audited, and this document does not pretend otherwise.
| Evidence | What it is | Independent? | Where |
|---|---|---|---|
| This whitepaper | Pensieve Labs's own description of its controls, per deployment model, dated and versioned |
No, self-asserted | https://trust.pensievelabs.org |
| Architecture and data-flow diagrams | Per deployment model, showing every point where patient data crosses a boundary | No: self-asserted | DIS-GL-006 |
| Subprocessor Register | Named entities, services, data categories, locations, dates | No, but falsifiable. Every entry can be checked against a real company | DIS-GL-009 |
| Data Processing Agreement | Pre-drafted, published, with the DPDP Rule 6 security schedule mapped clause by clause | No, but contractual, and therefore enforceable rather than merely asserted | DPA-GL-001 |
Vulnerability Disclosure Policy and security.txt |
Published scope, safe harbour, response commitments | No, but externally testable. Anyone can send a report and time the response | https://trust.pensievelabs.org |
| Transport security grades | Third-party scanners score Pensieve Labs's own endpoints on TLS configuration and security headers |
Yes: third-party tools, publicly re-runnable by anyone | Linked from the Trust Center |
| Cloud provider audit reports | Google Cloud's independent audits covering the infrastructure layer | Yes, but they are Google's, not Pensieve Labs's. See Section 16.4 |
Google's own trust site |
| SBOM per release | CycloneDX and SPDX | No, but machine-checkable | DIS-GL-019 |
The live status of every item, including anything obtained since this document was last modified, is
maintained in the Trust & Assurance Overview (WPR-GL-005), which is the register. Where WPR-GL-005 and
this whitepaper differ, WPR-GL-005 is correct, because it is updated more often.
| Not held | Consequence for a buyer |
|---|---|
| ISO/IEC 27001:2022 certification | No accredited third party has assessed Pensieve Labs's information security management system |
| ISO/IEC 27017 / 27018 | No certified cloud-specific or processor-privacy control assessment |
| SOC 2 Type I or Type II, SOC 1, SOC 3 | No licensed practitioner has issued an opinion on control design or operating effectiveness |
| HITRUST (any tier) | Not pursued. It is a United States health-plan artefact with no demand in Pensieve Labs's markets, and Pensieve Labs would rather say that than imply a roadmap it does not intend to execute |
| ABDM M1/M2/M3 milestone certification | Pensieve Labs is deliberately not an ABDM-certified system. See Section 16.5 and DIS-GL-024; this one has real operational consequences and must be read |
| NHCX participant certification | Same boundary. The hospital is the participant |
| ISO 13485 / IEC 62304 | Not held and not sought. Pensieve is not a medical device (DIS-GL-028) |
| An independent penetration test that has been completed | See Section 16.6 |
| A paid bug bounty programme | Not operated. Disclosure is handled under the VDP (Section 8.4) |
Pensieve Labs is careful aboutA hospital reviewer will see "Google Cloud" in this document and may reasonably ask what that inherits. The precise position:
Pensieveis deployed on Google Cloud Platform. Google Cloud services in the India regions are empanelled by the Ministry of Electronics and Information Technology following an independent audit by STQC, and Google Cloud holds its own independent certifications and audit reports for its infrastructure.Edsol Edtech Pvt. Ltd.is not itself empanelled and is not itself certified. Empanelment and certification at the infrastructure layer say nothing about the security of the application layer, which isPensieve Labs's responsibility.
Any vendor, including Pensieve Labs, who compresses that into "we are MeitY empanelled" or "we are
ISO 27001 certified through our cloud provider" is misrepresenting. If you are evaluating other vendors
alongside Pensieve Labs, this is a useful question to put to all of them.
Pensieve Labs does not hold ABDM milestone certification and does not onboard to NHCX in its own name.
The hospital is the registered health facility, holds its own facility registry identifier, and holds its
own NHCX participant credentials; Pensieve integrates using those credentials and acts as the
hospital, on the hospital's authority.
This is a deliberate architectural boundary and it is stated affirmatively. It is also the single most
likely source of a go-live surprise in this business, so it is documented in full, with a responsibility
matrix naming who does what, in the Integration Boundary Statement (DIS-GL-024). A hospital in a state
that mandates an ABDM-certified system, or a hospital pursuing an accreditation criterion that requires
one, must read DIS-GL-024 Section 3 before signing.
Pensieve Labs publishes target dates rather than intentions. A target that is missed is re-dated in
public with a reason, not quietly removed.
| Item | Class | Owner | Target |
|---|---|---|---|
| Independent VAPT by a CERT-In empanelled auditing organisation, with the Safe-to-Host certificate and a publishable attestation letter | Independent attestation | Roadmap certin vapt owner |
Roadmap certin vapt target |
| Self-assessed CAIQ v4 published on the CSA STAR Registry at Level 1 | Structured self-declaration on a public third-party register | Roadmap caiq owner |
Roadmap caiq target |
| ISO/IEC 27001:2022 Statement of Applicability and ISMS policy set, published uncertified | Self-declaration | Roadmap soa owner |
Roadmap soa target |
| Cyber liability and technology errors & omissions insurance certificate | Third-party instrument | Roadmap insurance owner |
Roadmap insurance target |
| Source-code escrow, master deposit with beneficiary accession | Third-party instrument | Roadmap escrow owner |
Roadmap escrow target |
| Documented BC/DR restore drill with measured RTO and RPO | Self-assessed, but measured and dated | Roadmap bcdr drill owner |
Roadmap bcdr drill target |
| Incident-response tabletop exercise with clock performance against the CERT-In and DPDP windows | Self-assessed, measured | Roadmap tabletop owner |
Roadmap tabletop target |
| Independent penetration test by an internationally recognised firm, with a publishable attestation letter | Independent attestation | Roadmap pentest owner |
Roadmap pentest target |
| ISO/IEC 27001:2022 certification, with ISO/IEC 27017:2015 and ISO/IEC 27018:2019 in the same scope | Accredited certification | Roadmap iso27001 owner |
Roadmap iso27001 target |
| SOC 2 Type I, then Type II, then a publishable SOC 3 | Independent attestation | Roadmap soc2 owner |
Roadmap soc2 target |
WPR-GL-005 carries the live version of this table with current status against each date.
Three arguments, offered without embellishment.
Pensieve Labs.Pensieve Labs starts clean. The ISO/IEC 27001:2013 edition was withdrawn on 31 October 2025 and
non-transitioned certificates are dead. A vendor showing a 2013-edition certificate today is showing an
expired one. Pensieve Labs holds nothing and says so; when it certifies, it will certify against
the current edition with no transition debt. It is worth asking every vendor in your evaluation for the
edition year on their certificate.Pensieve Labs is asking a hospital
to run its entire operation on software from a company it has not heard of. One discovered
overstatement would end that conversation permanently. The incentive to be accurate here is stronger
than the incentive to look impressive, and this document is written accordingly.Everything below is true as at 31 July 2026. This section is maintained, not written once.
17.1 No independent audit of these controls. No certification body, licensed practitioner or independent assessor has examined the controls described in Section 2 to Section 15. Section 16.6 gives the plan.
17.2 No 24×7 staffed security operations centre. Monitoring and alerting run continuously and route to
an on-call engineer, but there is no staffed watch floor. Detection of a slow, quiet intrusion outside
business hours depends on automated alerting rather than on human observation. Pensieve Labs describes
this as monitoring with on-call response, and does not describe it as a SOC.
17.3 Limited separation of duties. At Edsol Edtech Pvt. Ltd.'s current size, the same small group both
builds and operates the Platform. Compensating controls are mandatory peer review, second-person approval
for production access, and immutable audit logs the accessing engineer cannot alter. Pensieve Labs
does not claim a segregated operations function.
17.4 Pensieve Labs can technically decrypt hospital data in DM-1 and DM-2. There is no
customer-held-key architecture in the Pensieve Labs-hosted models that would make this impossible; the
Platform must process the data to do its job. The control is procedural and audited (Section 4.5), not
cryptographic. Hospitals that require a structural control should choose DM-3 or DM-4.
17.5 DM-2 isolation is logical. See Section 3.4. A hospital that will not accept logical isolation should
choose DM-1, and Pensieve Labs will not argue.
17.6 Legacy device integrations may not support modern transport security. Some laboratory analysers and older imaging nodes speak protocols that predate TLS. Where such a device is in scope, the connection is confined to the hospital's own network segment and the limitation is recorded in the deployment record. It is not silently accepted and it is not described as encrypted.
17.7 No paid bug bounty programme. Vulnerability disclosure is handled under the VDP with the response
commitments in Section 8.4. A funded bounty programme attracts more scrutiny than an unfunded policy, and
Pensieve Labs does not currently operate one.
17.8 No formal, tested disaster-recovery site failover for DM-4. Pensieve Labs cannot test
failover for infrastructure it does not control. DM-4 continuity depends on the hospital's own
arrangements (Section 11.2).
17.9 Availability figures are not published as a general claim. SLA-GL-001 carries availability
commitments with their measurement method, exclusions and the deployment models they apply to. This
whitepaper deliberately does not quote an uptime percentage, because a percentage without a measurement
method is not a commitment.
17.10 No formal internal audit programme yet. There is no independent internal audit function reviewing the controls in this document against a schedule. This is a normal consequence of company size and it is a gap; the ISMS work in Section 16.6 introduces it.
Security is shared. The table below is the summary; the binding allocation is in the Security Addendum and,
for data protection, in DPA-GL-001.
| Area | DM-1 |
DM-2 |
DM-3 |
DM-4 |
|---|---|---|---|---|
| Physical security of the hosting facility | Pensieve Labs (inherited from cloud) |
Pensieve Labs (inherited) |
Pensieve Labs (inherited) |
Hospital |
| Cloud account ownership, billing, organisation policy | Pensieve Labs |
Pensieve Labs |
Hospital | n/a |
| Network perimeter of the deployment | Pensieve Labs |
Pensieve Labs |
Hospital | Hospital |
| Operating system and hypervisor patching | Pensieve Labs (managed services) |
Pensieve Labs |
Pensieve Labs |
Hospital, unless contracted otherwise |
| Platform patching | Pensieve Labs |
Pensieve Labs |
Pensieve Labs |
Pensieve Labs ships; hospital authorises the window |
| Encryption key custody | Pensieve Labs |
Pensieve Labs |
Hospital | Hospital |
| Backup execution | Pensieve Labs |
Pensieve Labs |
Pensieve Labs |
Hospital |
| Backup media custody and off-site copy | Pensieve Labs |
Pensieve Labs |
Hospital (its project) | Hospital |
| Log retention configuration | Pensieve Labs |
Pensieve Labs |
Pensieve Labs configures; hospital owns |
Hospital |
| Detection and monitoring of the infrastructure | Pensieve Labs |
Pensieve Labs |
Shared | Hospital |
| User account lifecycle, roles and periodic review | Hospital | Hospital | Hospital | Hospital |
| Enforcing individual (non-shared) logins on the floor | Hospital | Hospital | Hospital | Hospital |
| Credentials for external systems (ABDM, NHCX, gateways) | Hospital | Hospital | Hospital | Hospital |
| Consent notices and Data Principal rights responses | Hospital | Hospital | Hospital | Hospital |
| Regulatory breach notification | Hospital | Hospital | Hospital | Hospital |
| Endpoint security of hospital workstations | Hospital | Hospital | Hospital | Hospital |
Everything above matters. These five are the ones that determine whether a Pensieve deployment
is secure in practice, and all five are the hospital's.
Pensieve Labs will make individual
login as fast as it can be made; the hospital must require it.Pensieve cannot defend a reception workstation that is shared,
unpatched and running unrelated software downloaded from the internet.DIS-GL-024
and DIS-GL-025 set out exactly what the hospital must supply and when.A short list, offered because a hospital with no security staff often does not know what to ask:
Deal data region) and the residency statement for the hospital's market.DIS-GL-024), read in full, before any ABDM or NHCX commitment is
made to a state authority, an insurer or an accreditation body.| Purpose | Channel |
|---|---|
| Vulnerability report | info@pensievelabs.org, also published in /.well-known/security.txt per RFC 9116 |
| Security questionnaire, diligence request or architecture review | info@pensievelabs.org |
| Notice of intended customer-initiated testing (seven days' notice, Section 6.5) | info@pensievelabs.org |
| Suspected incident affecting a live deployment | The support escalation path in SLA-GL-001, and info@pensievelabs.org in parallel |
| Privacy and data protection, including Data Principal matters | info@pensievelabs.org |
| Everything else | info@pensievelabs.org |
Pensieve Labs acknowledges vulnerability reports within 3 business days and completes triage within
10 business days (Section 8.4). Security questionnaires are answered from the published evidence base; where a
question is not covered by a published artefact, the answer is written and then published, so the next
hospital does not have to ask.
| Area | Document |
|---|---|
| Deployment models in full, with cost and timeline | WPR-GL-004 Deployment Models Explained |
What Pensieve Labs has, is getting, and does not have |
WPR-GL-005 Trust & Assurance Overview |
| Architecture in technical depth | WPR-GL-002 Architecture & Technical Overview |
| Privacy and DPDP in full | WPR-GL-003 Data Protection & Privacy Whitepaper |
| Where data lives | DIS-GL-008 Data Residency Statement |
| Who else touches the data | DIS-GL-009 Subprocessor Register, DIS-GL-010 Change Log |
| Encryption specifics | DIS-GL-011 Encryption Disclosure |
| Identity and access specifics | DIS-GL-012 Authentication & Access Control Disclosure |
| Audit trail | DIS-GL-013 Audit Logging & Traceability Disclosure |
| Backups, RTO and RPO | DIS-GL-014 Backup, Retention & Recovery Disclosure |
| Continuity | DIS-GL-015 BC/DR Statement |
| Incident and breach timelines | DIS-GL-016 Incident Response & Breach Notification Commitment |
| Patching | DIS-GL-017 Vulnerability Management & Patching Disclosure |
| Development process | DIS-GL-018 Secure SDLC Disclosure |
| Dependencies and SBOM | DIS-GL-019 Third-Party & Open Source Dependency Disclosure |
| People | DIS-GL-020 Personnel Security Disclosure |
| Physical | DIS-GL-021 Physical & Environmental Security Disclosure |
| Deletion and return | DIS-GL-023 Data Deletion & Return Disclosure |
| Integration boundary, ABDM and NHCX | DIS-GL-024 Integration Boundary Statement, DIS-GL-026 ABDM/NHCX RACI |
| Hospital-supplied credentials | DIS-GL-025 BYOK/BYOC Credential Handling Disclosure |
| Machine learning features | DIS-GL-027 AI/ML Feature Disclosure |
Why Pensieve is not a medical device |
DIS-GL-028 Clinical Safety Boundary Statement |
| Multi-tenancy in depth | DIS-GL-032 Multi-Tenancy Isolation Disclosure |
| Who can see hospital data, from where | DIS-GL-033 Offshore/Remote Access & Support Model Disclosure |
| Log retention configuration | DIS-GL-034 Log Retention & Localisation Disclosure |
| Service levels | SLA-GL-001 Service Level Agreement |
| Processing terms | DPA-GL-001 Data Processing Agreement |
| Exit | WPR-GL-400 Exit & Data Portability Commitment |
| Version | Date | Author | Summary |
|---|---|---|---|
| 1.0.0 | 31 July 2026 |
Pensieve Labs Security |
First published edition. Per-deployment-model treatment throughout; assurance section states zero certifications held; limitations section published. |