Skip to main content
Prisma Documentation Docs

Search documentation

Type to search this documentation.

On this pageOverview

Shared packages & examples (Prisma ORM v6) (/docs/orm/v6/prisma-client/client-extensions/extension-examples)

For the complete Prisma documentation index, see llms.txt. A markdown version of any docs page is available by appending .md to its URL.

Explore the Prisma Client extensions that have been built by Prisma and its community

Location: ORM > v6 > Prisma Client > Client Extensions > Shared packages & examples

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

Extension Description
@prisma/extension-accelerate Enables Accelerate, a global database cache available in 300+ locations with built-in connection pooling
@prisma/extension-read-replicas Adds read replica support to Prisma Client

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.

Extension Description
prisma-extension-supabase-rls Adds support for Supabase Row Level Security with Prisma
prisma-extension-bark Implements the Materialized Path pattern for creating and working with tree structures in Prisma
prisma-cursorstream Adds cursor-based streaming
prisma-gpt Lets you query your database using natural language
prisma-extension-caching Adds the ability to cache complex queries
prisma-extension-cache-manager Caches model queries with any cache-manager compatible cache
prisma-extension-random Lets you query for random rows in your database
prisma-paginate Adds support for paginating read queries
prisma-extension-streamdal Adds support for Code-Native data pipelines using Streamdal
prisma-rbac Adds customizable role-based access control
prisma-extension-redis Extensive Prisma extension designed for efficient caching and cache invalidation using Redis and Dragonfly Databases
prisma-cache-extension Prisma extension for caching and invalidating cache with Redis(other Storage options to be supported)
prisma-extension-casl Prisma client extension that utilizes CASL to enforce authorization logic on most simple and nested queries.
prisma-emitter-extension Prisma extension for emit events on CRUD operations based on configurable listeners.
prisma-prefixed-ids Automatically generates prefixed IDs for models, with configurable per-model prefixes and ID generation

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.

[!NOTE] 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.

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 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-method Demonstrates 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.
Suggest an edit

Propose a replacement for this page. The site team reviews it before applying any changes.

Export
Documentation menu