Skip to content

prisma/prisma-client-extensions

Prisma Client Extension Examples

This repository contains a number of examples of Prisma Client extensions.

The extensions in this repository are provided as examples only, and without warranty. They are not intended to be used in production environments.

Examples

Example Description
audit-log-context Provides the current user's ID as context to Postgres audit log triggers
callback-free-itx Adds a method to start interactive transactions without callbacks
computed-fields Adds virtual / computed fields to result objects
input-transformation Transforms the input arguments passed to Prisma Client queries to filter the result set
input-validation Runs custom validation logic on input arguments passed to mutation methods
instance-methods Adds Active Record-like methods like save() and delete() to result objects
json-field-types Uses strongly-typed runtime parsing for data stored in JSON columns
model-filters Adds reusable filters that can composed into complex where conditions for a model
obfuscated-fields Prevents sensitive data (e.g. password fields) from being included in results
query-logging Wraps Prisma Client queries with simple query timing and logging
readonly-client Creates a client that only allows read operations
retry-transactions Adds a retry mechanism to transactions with exponential backoff and jitter
row-level-security Uses Postgres row-level security policies to isolate data in a multi-tenant application
static-methods Adds custom query methods to Prisma Client models
transformed-fields Demonstrates how to use result extensions to transform query results and add i18n to an app
exists-fn Adds an exists function to all your models
update-delete-ignore-not-found Adds updateIgnoreOnNotFound and deleteIgnoreOnNotFound function to all your models

Authoring extensions

If you're interested in building an extension you want to share as a package, we recommend using the following starter repository.

Refer to our documentation to learn more about how to create and publish extensions.