Security & privacy

Student data deserves defence in depth

Vidyalaya holds some of the most sensitive records a family will ever share — a child's identity, health, attendance and fees. We engineer for that. Access is least-privilege by default, tenants are isolated at the database, and privacy tooling is built in, not bolted on.

Least-privilege by default Per-tenant isolation DSAR export & erasure Audit logging Signed webhooks
Access control

Everyone sees exactly what their job needs — and no more

A cashier should never open a counselling note. A teacher should never touch payroll. Vidyalaya enforces that with a permission catalog that is defined in code — versioned, reviewed and tested — rather than an editable database table someone can quietly widen.

  • 39 named roles resolve to 27 least-privilege permission profiles — principal, teacher, cashier, bursar, librarian, counsellor, nurse, DPO, auditor, parent, student and more.
  • Fine-grained permissions as domain.action — e.g. exam.publish, payment.reconcile, privacy.erase — not coarse "admin/staff" gates.
  • Deny by default. Unknown roles get nothing; a role can only do what the catalog explicitly grants.
  • Segregation of duties. IT admins manage accounts and config but hold no student PII; auditors are strictly read-only; erasure is restricted to superusers and the Data Protection Officer.
Data isolation

One school can never see another's data

Every school is a separate tenant. Isolation is enforced twice, so a single mistake can't leak a record.

Application layer

Every query filters by the caller's tenant_id, taken from their signed token — never from user input. Each service has tests proving a token for one tenant cannot read another's rows.

Database layer — row-level security

PostgreSQL row-level security adds a second, database-enforced boundary: a per-tenant policy means even a query that forgot its filter returns only the current tenant's rows. Shipped and tested on the student service as the reference for platform-wide rollout.

Belt and suspenders: the application filter is the primary guard and is enforced everywhere today; row-level security is additive hardening being rolled out service by service.

Privacy & compliance

Privacy rights, built into the product

The mechanics of a data-subject request are the same whether you are under India's DPDP, the EU's GDPR or the US's FERPA. Vidyalaya ships the machinery; a per-country config pack sets the deadlines and retention numbers.

DSAR export

One endpoint returns a complete, consistent snapshot of everything held about a student — profile, guardians, documents and lifecycle events — as a single JSON bundle, read in one isolated transaction.

Right to erasure

Anonymise-in-place: names become "Erased", identifying fields are nulled, documents are removed — while ledger references stay intact for statutory financial retention. A second erase is refused, not silently repeated.

Audit logging

Every export and erasure writes an audit record — who did what, to whom, when — queryable per tenant. DSAR fulfilment itself has to be demonstrable, so it is logged like any privileged action.

Data residency & retention

Country packs carry the privacy regime, retention window and consent rules per tenant, so a group can run schools under different regimes from one platform.

Regime-agnostic by design

The same export and erase flows satisfy a DPDP data-principal request, a GDPR subject request or a FERPA records request — configuration changes the numbers, not the mechanics.

Designed to support your obligations

These controls are built to help your school meet DPDP, GDPR and FERPA duties. We are candid about scope — see the honesty note below — rather than claiming certifications we do not hold.

Authentication

Hardened at the front door

Getting in is the first thing an attacker tries, so it is the first thing we harden.

  • Argon2 password hashing — a modern, memory-hard algorithm; passwords are never stored in the clear.
  • Short-lived JWT access tokens (15 minutes) carrying tenant, roles and scope, paired with a longer-lived refresh token.
  • Refresh-token rotation. Each refresh mints a new token and retires the old one; a token replayed after its short grace window is rejected — surfacing stolen-token reuse.
  • Rate-limiting & lockout. Repeated failed logins lock the account for 15 minutes and return HTTP 429 — blunting brute-force and credential-stuffing.
  • Signed webhooks. Inbound payment-gateway callbacks are verified with HMAC-SHA256 over the raw body, bound to a timestamp to defeat replay; an invalid signature is a 401.
  • Overflow-safe money handling. Every money input is bounded and aggregated with saturating arithmetic, so no crafted amount can corrupt a school's totals.

Straight talk about certifications

We do not currently hold SOC 2 or ISO 27001 certification, and we will not claim otherwise. What we can show you is real, working machinery — access control, tenant isolation, DSAR tooling, audit logging and hardened authentication — that is designed to support your compliance obligations under DPDP, GDPR and FERPA. Some hardening, such as platform-wide row-level security and automated retention enforcement, is being rolled out progressively; we are happy to walk you through exactly what is enforced today.

See the controls for yourself

Bring your hardest security question. We would rather earn trust with detail than slogans.