QNSP

Build Pattern · TypeScript

Build a FERPA-Aligned Secure LMS

FERPA-aligned coursework storage, privacy-safe search, and long retention for transcripts and records.

FERPA + PDPA-aligned LMS with QNSP vault for student record encryption, SSE-X for privacy-safe search across coursework, and long-retention archives for transcripts and academic records. Tenant isolation per institution; selective indexing for de-identification.

25 minTime to first PQC
TypeScriptPrimary SDK
3Services used

QNSP services used

Stack

Code

Real code, real SDK calls

Snippets reference the published @cuilabs/qnsp SDK surface (TypeScript, Python, Go, Rust mirror byte-for-byte).

Encrypt a transcript + index for instructor searchtypescript
import { QnspClient } from "@cuilabs/qnsp";

const qnsp = new QnspClient({ apiKey: process.env.QNSP_API_KEY! });

// Store transcript under per-student key (FERPA-aligned)
const transcript = await qnsp.vault.createSecret({
  name: `transcript:${studentId}:${termId}`,
  payloadB64: transcriptPdfBase64,
  retention: { lockUntil: "permanent" }, // FERPA: indefinite
});

// Selective index: only de-identified course outcomes, not grades
await qnsp.search.upsertVectors("course-outcomes", [{
  id: `${studentId}:${termId}`,
  vector: outcomeEmbedding,
  metadata: { courseCode, term: termId }, // no PII
}]);

Ship it

Get an API key and start building