Zyposoft
Security architecture

Every request has to getpast the same six checks.

Here is how a request travels through Zypocare One. Who is asking, what they are allowed to see, and what gets written down. Including the requests we refuse.

Who is askingTLS edgePermission gateDomain moduleThe recordEvent backboneWritten down
Zypocare One — how a request gets checkedPlatform architecture
Who is asking
Clinician · nurse · device
TLS edge
Reverse proxy, web tier
Permission gate
Route permission, branch
Domain module
Owns its own rules
The record
PostgreSQL, data tier
Event backbone
NATS JetStream
Fail any check and the request stops at the gate. Nothing is shown, and the refusal is recorded.
Every step above writes to the audit record — including the ones that were refused.
Passes every checkFails one — stopped at the gateShows the shape of the architecture, not a production topology.
Securityisnotafeatureyouaddattheend.Itistheshapeofthethingyoubuilt.Whocanreachwhat,andonwhoseauthority.Whathappenswhentheanswerisno.Andwhetheryoucanproveanyofitayearlater.
The six checks

Six layers, and a request has to satisfy all of them.

1

What the browser talks to

A server-rendered application covering the whole clinical and administrative surface, sitting behind a reverse proxy that terminates TLS. It is the only tier anything outside can reach.

The controlPresentation and access boundary
Next.js 16React 19TLS 1.2 and 1.3Reverse proxy
2

Deciding what you may see

Every route names the permission it requires. Before a query reaches a domain module it has already been cut down to the caller's branch and role, so there is no path where a general login stands in for authorisation.

The controlRoute guards and branch scoping
Permission per routeBranch scopingLeast privilegeSeparation of duties
3

Where the work happens

Each clinical or administrative domain is its own module, owning its own services, rules and screens. A module never reaches into another module's tables, which keeps a fault in one from becoming a fault in all of them, and lets new domains be added without disturbing what is already running.

The controlModular application core
NestJS 11Node.js 24No cross-module reads
4

How modules talk to each other

An order placed, a result verified, a charge raised: these travel as durable events rather than direct calls. Dashboards and projections stay consistent without one module being able to stall another.

The controlEvent backbone
NATS JetStreamDurable consumersTransactional outboxEvent contracts
5

The record itself

One relational record of truth behind a typed data layer, reachable only from the application tier. A patient moving from emergency to intensive care to discharge stays on a single continuous encounter.

The controlData tier
PostgreSQL 16Prisma ORMReachable only from the app tier
6

Knowing what happened

Activity is recorded append-only, so history is added to and never quietly rewritten. Sensitive records, medico-legal cases among them, carry SHA-256 hash chains, which means an altered history is detectable rather than merely unlikely.

The controlTamper-evident audit trail
Append-onlySHA-256 hash chainsPer-module tracingMetrics and dashboards
When the answer is no

The interesting part is what happens when a check fails.

It all checks out
The route names the permission it needs
The caller holds it, in this branch
The domain module answers
Written to the append-only log
Something does not
The permission or the branch does not match
It stops at the boundary, before any domain
Nothing is returned, not even a hint
The refusal is recorded too
When something is unclear, the answer is no. A system that guesses in order to stay helpful is a system that will eventually show the wrong record to the wrong person.
What is actually in place

The controls, in plain terms.

A named permission on every route
Every query scoped to a branch and a role
Approvals and grants cannot be self-authorised
Passwords never stored, only scrypt-derived material
Integration credentials sealed with AES-256-GCM
Append-only audit with SHA-256 hash chains
Optional OIDC federation with your identity provider
Connected devices and systems authenticate too
Database and event bus off the public network
Tracing and metrics attributable to one module
This describes the Zypocare One architecture: a modular core on one clinical record, separate runtime services and isolated deployment tiers. The platform is under active development and modules continue to be added. What your own deployment ends up with depends on your policies, your identity provider, your data-classification rules and your own security review. Certifications, key-management arrangements and retention are settled per engagement rather than claimed here, and we would rather put you in front of the people who can answer properly than print a number on a web page.
Working with your team

Your security people should be in the room early.

Not at the end, signing off something already built. These are the six conversations we expect to have with them.

01
Understand what you already require
Your policiesYour identity providerData classificationRetention rulesWho signs off
02
Map your branches and your roles
The branch structureThe roles in eachBreak-glass accessWhat is never shown
03
Decide how people sign in
Platform login or OIDC federationHow roles map acrossJoiners and leaversService accounts
04
Settle the audit trail and how long it lives
Which actionsRefusals as wellWhere it is keptHow longWho can read it
05
Test it the way an attacker would
Try the wrong roleTry another branchTry a stale sessionCheck nothing leaks in the error
06
Keep watching after go-live
Tracing and metricsReviewing accessHandling incidentsRe-checking after changes
Zyposoft Technologies is a product engineering company based in Bangalore, building software for healthcare and enterprise operations. Our products are Zypocare One, the connected hospital platform; Zypo Clinical AI, which adds intelligence a clinician can overrule; and the Integration Platform that keeps them working with the systems already in place.
Products
Zypocare OneZypo Clinical AIIntegration Platform
Solutions
Healthcare TransformationEnterprise Product EngineeringAI and AutomationCloud, Data and Integration
Company
About ZyposoftLeadershipPartnersCareersContact
Get in touch
Bangalore, IN
#7, Nisarga Layout
Chikkalsandra
Bangalore 560061
India
info@zyposoft.com
Security & GovernanceIdentity & AccessData PrivacyData Security
© 2026 Zyposoft Technologies. All rights reserved.
Privacy PolicyTerms of UseSitemap