ENT Use case · Regulated software

Prove where every file lives.
And who touched it.

In regulated software the storage layer is where the hard questions land: which region, whose bucket, who accessed it, when was it deleted. Uplint answers each one by policy and by record — so the answer is a lookup, not an investigation.

Approved regions, enforced Signed URLs only, always logged Deletion you can prove
CLASSIFIED FILESPOLICY GATEAPPROVED DESTINATIONSPDFpatient-record.pdffile_8Kx92mPHI · INJPGkyc-passport.jpgfile_3Qa17vPII · EUZIPaudit-evidence.zipfile_Zp40dmCONFIDENTIALPDFstatement-q2.pdffile_c9Lm2eFINANCIAL · INustorage.policy4 checksregion approvedbucket ownerencryption at restaccess: signed onlyS3AWS S3ap-south-1 · Mumbaiapproved · INAZAzure Blobwesteuropeapproved · EUS3AWS S3customer bucketcustomer-ownedS3AWS S3us-east-1not approvedEVENTS · APPEND-ONLYactor · destination · timeuploadfile_8Kx92mbysvc_api→ap-south-112:04:11recordeduploadfile_3Qa17vbysvc_api→westeurope12:04:15recordeduploadfile_Zp40dmbysvc_api→customer bucket12:04:19recordeduploadfile_c9Lm2ebysvc_api→ap-south-112:04:23recordedPDFfile_8Kx92mJPGfile_3Qa17vZIPfile_Zp40dmPDFfile_c9Lm2e
02 The auditor’s questions

Five questions.
Five requests.

Every storage question an audit raises is answered by one record or one event list — the same ones your product uses every day, not a report assembled the week before.

Audit · storage controls5 questions
GET /v1/files/file_8Kx92m200
{  id: "file_8Kx92m",  name: "patient-record.pdf",  storage: "phi-india",  location: { provider: "s3", region: "ap-south-1", bucket: "phi-in" },  metadata: { tenant: "apollo", classification: "PHI" }}
The record is the source of truth for location. It changes only on a recorded move.
03 Controls as policy

Six controls.
Set once. Always on.

Each control is a setting on a storage target, applied to every file that lands there. Nothing depends on a developer remembering.

ControlWhat you setWhat Uplint enforcesEvidence
01ResidencyAllowed providers and regions per storage targetUploads land only in the allow list; moves outside it are refusedlocation on the file record · refused-move events
02OwnershipWhich bucket, in whose account, with whose credentialsObjects are written to the bucket you (or your customer) own; Uplint holds the record, not a copystorage connection · credential scope and rotation
03AccessSigned-URL only, with a maximum TTLNo public object paths; every URL is issued on your call and expiresurl events with actor, time and TTL
04Retention & deletionHow long each class of file livesDelete removes the object at the provider and closes the recorddelete event with reason and provider confirmation
05Audit trailNothing — it is always onUpload, url, move, delete and refusals are appended per fileevents per file, filterable by tenant and actor
06EncryptionProvider-managed keys, or your own where the provider allowsTLS to every provider; objects encrypted at rest by the provider you choseconnection settings · provider attestation
04 The frameworks

Built for the questions
these frameworks ask.

Different regimes, the same storage questions underneath. Uplint doesn’t make your product compliant — your programme does. It makes the storage part of that programme a set of settings with evidence attached.

  • Classification travels with the file as metadata
  • Retention is a target-level setting, not a cron job you wrote
  • The refusal is recorded too — an audit trail of what did not happen
DPDP · Indiaasks about
ResidencyDeletionAccess
GDPRasks about
ResidencyDeletionAudit trail
HIPAAasks about
AccessAudit trailEncryption
SOC 2asks about
AccessAudit trailOwnership
PCI DSSasks about
AccessEncryptionRetention
ISO 27001asks about
OwnershipAudit trailRetention
05 Residency without a second stack

One product.
Every approved region.

Indian health records in Mumbai, EU identity documents in Frankfurt, a bank’s statements in the bank’s own bucket — from one deployment, with one upload call, decided by the target the file is classified into.

  • Targets carry the allow list; files carry the classification
  • A customer-owned bucket is a target like any other
  • Moves between approved regions keep the file ID
storage.policytargets
phi-india: {allow: [{ provider: "s3", region: "ap-south-1" }],retention: "7y", access: "signed-url-only", max_ttl: 900},pii-eu: {allow: [{ provider: "azure", region: "westeurope" }],retention: "5y", deny_move_outside: true},bank-statements: {connection: "bank-own-bucket", // customer credentialsretention: "10y"}
records/upload.tsthe only call
await uplint.files.upload({ file, storage: "phi-india", metadata: { patient: id, classification: "PHI" } });
06 Questions

Straight answers.

Uplint is the file layer that gives your product the storage controls and evidence those programmes ask about. Certification and the overall programme remain yours: the objects live in your buckets, under your provider’s attestations, and Uplint supplies the policy enforcement and the per-file record you hand to the auditor.

THE AUDITOR’S FIRST QUESTION IS ABOUT FILES.

Answer with a lookup,
not an investigation.

Connect the buckets your regulator already approved, write the policy once, and let every file carry its own evidence.