Digital Personal Data Protection Act, 2023

Prove you were compliant. Not just that you meant to be.

A scanner finds the PAN number in your database. An auditor asks whether using it at 14:03 was covered by an active, purpose-specific consent. ScalePulse reconciles every processing event against the consent register, continuously, and keeps the evidence that stands up afterwards.

Data residency in IndiaPersonal data stays in your VPCEvidence held in WORM storage
app.scalepulse.in / findings
Controls passing17/20
Open findings6
Past SLA1
C-006Processing with no active consent · crm-syncCritical
C-012142 records past retention · ordersHigh
C-010Notice v7 missing ta-IN translationMedium
C-001Encryption verified · 14 datastoresPassing
consent ↔ processing reconciliation · livematched 0 unmatched 0
20controls mapped to operative sections
22scheduled languages checked on notices
0rows of personal data leaving your network
7 yrevidence retained, write-once
The gap

Discovery tells you what you hold. It cannot tell you what you did.

Every security tool on the market finds personal data at rest. None can say whether a given use of it was lawful, because that fact was never written to your database — it existed only in the moment your application acted.

The question you will actually be asked

“Was the campaign sent to this Data Principal at 14:03 on 11 March consented?”

Discovery alone

Unknown. The column is classified and the posture is green, but no record of the event exists — nothing was watching the decision.

You reconstruct it by hand from application logs, if they are still in retention, and hope the answer is the one you wanted.

ScalePulse

Yes. Purpose marketing.email, granted 11 March against notice signup-notice@v7, served in hi-IN.

With the consent artifact, the affirmative action that was captured, and a hash-chained trail of every state change since.

How it works

Connect, instrument, and then it does not stop.

01

Connect your datastores

A collector runs inside your own network, introspects schemas, and classifies fields against an India-first taxonomy — Aadhaar validated by checksum, PAN by entity code, GSTIN, UPI handles, IFSC against the bank register.

Credentials stay in your secret manager. Outbound connection only.

02

Instrument your application

The SDK records consent with the evidence that makes it defensible — which notice, which language, which affirmative act, at what moment — and emits purpose-bound processing events as they happen.

Consent checks are local and sub-millisecond. Safe in a hot path.

03

Monitor and evidence

Controls evaluate against the map and the event stream. Findings deduplicate into cases, route to the team that owns the system, and carry the evidence chain that produced them.

Every suppression carries a reason, an approver, and an expiry.

Control register

Twenty controls, each tied to an operative section.

Not two hundred. Each carries a parameter set signed off by counsel and reports its own precision, because a control running at twenty per cent precision is worse than no control — it spends the attention the others need.

Extract from the catalogCriticalHighMediumLow
RefControlSeveritySection
C-001Datastore holding personal data without encryption at restCriticals.8(5)
C-002Personal data reachable from the public networkCriticals.8(5)
C-005Personal data held outside the permitted region setHighs.16
C-006Processing recorded with no active consentHighs.6(1)
C-007Processing continued after consent was withdrawnHighs.6(6)
C-009Consent captured against a retired notice versionMediums.5
C-010Notice version missing a translation for a served localeMediums.5(3)
C-012Records retained past their purpose’s retention windowMediums.8(7)
C-015Data flow to a processor with no contract on fileMediums.8(2)
C-017Child-flagged Data Principal present in advertising eventsCriticals.9(3)
C-019Rights request approaching its response periodLows.12
C-020Notification window milestone at risk, or missedCriticals.8(6)
Section 5(3)

A notice nobody can read is not a notice.

The Act gives every Data Principal the right to a notice in English or any language in the Eighth Schedule. ScalePulse tracks which notice version was served, in which language, to whom — and raises a finding the moment a locale is served without a published translation.

Notice · as served
सूचनाHindiবিজ্ঞপ্তিBengaliనోటీసుTeluguஅறிவிப்புTamilસૂચનાGujaratiಸೂಚನೆKannadaഅറിയിപ്പ്Malayalamବିଜ୍ଞପ୍ତିOdiaਸੂਚਨਾPunjabiاطلاعUrduজাননীAssameseसूचनाMarathi
Data boundary

Your personal data never reaches us.

Data Principals are pseudonymised at the edge with a key held in your own KMS. We can join a consent to a processing event and prove the join — without ever knowing who anyone is. Re-identification happens only in your systems, at the moment you fulfil a request.

Your VPCcredentials never leave
PostgreSQLMongoDBAmazon S3SnowflakeKafkaCollectorYour app + SDK
The boundary

Outbound-only mTLS. Every payload passes an allowlist gate that drops anything not explicitly permitted, and a restricted identifier reaching that gate is a hard failure, not a warning.

Control plane · Mumbaimetadata only
Control engineFindingsConsent registerRights requestsNotification windowsEvidence · WORM

Crosses the boundary

  • Schema descriptors
  • Classification labels
  • Aggregate counts
  • Posture facts
  • Pseudonymous references

Never crosses

  • Row values
  • Raw identifiers
  • Aadhaar, in any form
  • Database credentials
  • Your pseudonymisation key
SDK

An afternoon to instrument.

Node and browser today, Python and Java next. Bounded queues, fire-and-forget writes, and a hard guarantee that it cannot break the request it sits inside.

checkout-api · campaigns.ts
import { ScalePulse } from '@scalepulse/sdk-node';

const sp = new ScalePulse({
  apiKey:     process.env.SP_API_KEY,
  subjectKey: process.env.SP_SUBJECT_KEY,  // hashed locally, never sent
  systemId:   'checkout-api',
  failOpen:   true,                        // degrade quietly, never block
});

// Record the grant with the evidence that makes it defensible
await sp.consent.grant({
  subject:       user.email,
  purposes:      ['marketing.email'],
  noticeVersion: 'signup-notice@v7',
  locale:        'hi-IN',
  evidence:      { ip, userAgent, checkboxIds, formVersion: 'v7' },
});

// Local. Sub-millisecond. No network call.
if (await sp.consent.check(user.email, 'marketing.email')) {
  await mailer.send(campaign, user.email);
}

// Or let the guard enforce it — a denial is itself evidence
await sp.guard('marketing.email', user.email, () =>
  mailer.send(campaign, user.email),
);
Section 8(6)

The notification window opens whether you are ready or not.

Declare a breach and a durable timer instantiates from the catalog. It survives deploys, restarts, and failover. Milestones are satisfied by artifacts, not by marking them done — and the resulting trail is the timeline you present to the Board.

41:18
remaining on the detailed report
2 of 3 attested
Data Principals intimatedartifact · notification record, hashed to evidenceattested
Board — initial intimationartifact · submission receiptattested
!Board — detailed reportescalates to the DPO, then to legal, as the window closesopen
Coverage

Where your data already lives.

Every connector declares its capabilities, so the platform tells you plainly that one can scan for retention but cannot execute an erasure — rather than discovering it when a request arrives. Dimmed entries are on the roadmap.

PostgreSQLMySQLMariaDBMongoDBAmazon S3SnowflakeKafkaAWS ConfigBigQueryRedshiftMSSQLOracleDynamoDBOpenSearchAzure BlobDatabricksSalesforceZendeskFreshworksZoho CRMOktaMicrosoft Entra
Design partner programme

Three partners. Then we build for them.

We are taking a small number of design partners in fintech, e-commerce, and health — sectors whose control priorities differ enough that building for the average of them would serve none of them well.