Skip to main content

Shared packages & examples

Extensions made by Prisma

The following is a list of extensions we've built at Prisma:

ExtensionDescription
@prisma/extension-accelerateEnables Accelerate, a global database cache available in 300+ locations with built-in connection pooling
@prisma/extension-pulseEnables Pulse, a service that captures change events from your database and delivers them instantly to your applications.
@prisma/extension-read-replicasAdds read replica support to Prisma Client

Extensions made by Prisma's community

The following is a list of extensions created by the community. If you want to create your own package, refer to the Shared Prisma Client extensions documentation.

ExtensionDescription
prisma-extension-supabase-rlsAdds support for Supabase Row Level Security with Prisma
prisma-extension-barkImplements the Materialized Path pattern that allows you to easily create and interact with tree structures in Prisma
prisma-cursorstreamAdds cursor-based streaming
prisma-gptLets you query your database using natural language
prisma-extension-cachingAdds the ability to cache complex queries
prisma-extension-cache-managerCaches model queries with any cache-manager compatible cache
prisma-extension-randomLets you query for random rows in your database
prisma-paginateAdds support for paginating read queries
prisma-extension-streamdalAdds support for Code-Native data pipelines using Streamdal
prisma-rbacAdds customizable role-based access control
prisma-extension-redisExtensive Prisma extension designed for efficient caching and cache invalidation using Redis and Dragonfly Databases
prisma-cache-extensionPrisma extension for caching and invalidating cache with Redis(other Storage options to be supported)

If you have built an extension and would like to see it featured, feel free to add it to the list by opening a pull request.

Examples

info

The following example extensions are provided as examples only, and without warranty. They are supposed to show how Prisma Client extensions can be created using approaches documented here. We recommend using these examples as a source of inspiration for building your own extensions.

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

Going further