@ltikit/adapter-prisma
v0.1.1-rc.4
Published
Prisma PlatformStore + NonceStore adapters for ltikit — any Prisma-supported database.
Readme
@ltikit/adapter-prisma
Prisma PlatformStore + NonceStore for LTIkit — works against
any Prisma-supported database (SQLite, Postgres, MySQL, ...). Bring your own Prisma schema; this
adds two small models and maps them to the core stores.
Requires @ltikit/core.
npm i @ltikit/core @ltikit/adapter-prisma1. Add the models
Copy the two models from prisma/schema.example.prisma into your
own schema.prisma, then migrate:
npx prisma migrate dev --name add_ltikit2. Wire the stores
import { PrismaClient } from '@prisma/client'
import { createLti, staticKeyStore } from '@ltikit/core'
import { prismaPlatformStore, prismaNonceStore } from '@ltikit/adapter-prisma'
const prisma = new PrismaClient()
export const lti = createLti({
keys: staticKeyStore({ /* ...your tool keypair... */ }),
platforms: prismaPlatformStore(prisma),
nonces: prismaNonceStore(prisma),
})No hard dependency on @prisma/client: the client is accepted structurally (PrismaLike — just the
ltiPlatform / ltiNonce delegates), so any generated PrismaClient whose schema matches the two
models above satisfies it automatically.
Notes
- Single-use nonces are enforced by Prisma's per-row atomic
delete— a replayedstatehits a missing row (Prisma'sP2025), whichconsumeturns intonull. - Also implements the writable
MutablePlatformStorecontract, so Dynamic Registration auto-persists new platforms with no manual insert. - Different model names? Pass an object matching
PrismaLikethat aliases your own delegates:prismaPlatformStore({ ltiPlatform: prisma.myModel, ltiNonce: prisma.myOtherModel }).
Docs
Links
Repository · Issues · Need help? — paid setup/integration help available.
MIT
