@cerbos/orm-prisma 2.0.0-alpha.2 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,22 +1,37 @@
1
1
  # Cerbos + Prisma ORM Adapter
2
2
 
3
- An adapter library that takes a [Cerbos](https://cerbos.dev) Query Plan ([PlanResources API](https://docs.cerbos.dev/cerbos/latest/api/index.html#resources-query-plan)) response and converts it into a [Prisma](https://prisma.io) where class object. This is designed to work alongside a project using the [Cerbos Javascript SDK](https://github.com/cerbos/cerbos-sdk-javascript).
3
+ An adapter library that takes a [Cerbos](https://cerbos.dev) Query Plan ([PlanResources API](https://docs.cerbos.dev/cerbos/latest/api/index.html#resources-query-plan)) response and converts it into a [Prisma](https://prisma.io) where clause object. This is designed to work alongside a project using the [Cerbos Javascript SDK](https://github.com/cerbos/cerbos-sdk-javascript).
4
4
 
5
5
  ## Features
6
6
 
7
7
  ### Supported Operators
8
8
 
9
+ #### Basic Operators
10
+
9
11
  - Logical operators: `and`, `or`, `not`
10
12
  - Comparison operators: `eq`, `ne`, `lt`, `gt`, `lte`, `gte`, `in`
11
- - Relation operators: `some`, `none`, `is`, `isNot`, `hasIntersection`
12
13
  - String operations: `startsWith`, `endsWith`, `contains`, `isSet`
13
- - Support for nested fields and relations
14
- - Support for both one-to-one, one-to-many and many-to-many relationships
14
+
15
+ #### Relation Operators
16
+
17
+ - One-to-one: `is`, `isNot`
18
+ - One-to-many/Many-to-many: `some`, `none`, `every`
19
+ - Collection operators: `exists`, `exists_one`, `all`, `filter`
20
+ - Set operations: `hasIntersection`
21
+
22
+ #### Advanced Features
23
+
24
+ - Deep nested relations support
25
+ - Automatic field inference
26
+ - Collection mapping and filtering
27
+ - Complex condition combinations
28
+ - Type-safe field mappings
15
29
 
16
30
  ## Requirements
17
31
 
18
32
  - Cerbos > v0.40
19
33
  - `@cerbos/http` or `@cerbos/grpc` client
34
+ - Prisma > v6.0
20
35
 
21
36
  ## Installation
22
37
 
@@ -42,6 +57,49 @@ queryPlanToPrisma({
42
57
 
43
58
  ### Basic Example
44
59
 
60
+ 1. Create a basic policy file in the `policies` directory:
61
+
62
+ ```yaml
63
+ apiVersion: api.cerbos.dev/v1
64
+ resourcePolicy:
65
+ resource: resource
66
+ version: default
67
+ rules:
68
+ - actions: ["view"]
69
+ effect: EFFECT_ALLOW
70
+ roles: ["USER"]
71
+ condition:
72
+ match:
73
+ expr: request.resource.attr.status == "active"
74
+ ```
75
+
76
+ 2. Start Cerbos PDP:
77
+
78
+ ```bash
79
+ docker run --rm -i -p 3592:3592 -v $(pwd)/policies:/policies ghcr.io/cerbos/cerbos:latest
80
+ ```
81
+
82
+ 3. Create Prisma schema (`prisma/schema.prisma`):
83
+
84
+ ```prisma
85
+ datasource db {
86
+ provider = "sqlite"
87
+ url = env("DATABASE_URL")
88
+ }
89
+
90
+ generator client {
91
+ provider = "prisma-client-js"
92
+ }
93
+
94
+ model Resource {
95
+ id Int @id @default(autoincrement())
96
+ title String
97
+ status String
98
+ }
99
+ ```
100
+
101
+ 4. Implement the mapper
102
+
45
103
  ```ts
46
104
  import { GRPC as Cerbos } from "@cerbos/grpc";
47
105
  import { PrismaClient } from "@prisma/client";
@@ -263,6 +321,89 @@ const result = await primsa.resource.findMany({
263
321
  });
264
322
  ```
265
323
 
324
+ ## Types
325
+
326
+ ### Query Plan Response Types
327
+
328
+ The adapter is fully typed and provides clear type definitions for all responses:
329
+
330
+ ```ts
331
+ import { PlanKind, QueryPlanToPrismaResult } from "@cerbos/orm-prisma";
332
+
333
+ // The result will be one of these types:
334
+ type QueryPlanToPrismaResult =
335
+ | {
336
+ kind: PlanKind.ALWAYS_ALLOWED | PlanKind.ALWAYS_DENIED;
337
+ }
338
+ | {
339
+ kind: PlanKind.CONDITIONAL;
340
+ filters: Record<string, any>;
341
+ };
342
+
343
+ // Example usage with type narrowing:
344
+ const result = queryPlanToPrisma({ queryPlan });
345
+
346
+ if (result.kind === PlanKind.CONDITIONAL) {
347
+ // TypeScript knows `filters` exists here
348
+ const records = await prisma.resource.findMany({
349
+ where: result.filters,
350
+ });
351
+ } else if (result.kind === PlanKind.ALWAYS_ALLOWED) {
352
+ // No filters needed
353
+ const records = await prisma.resource.findMany();
354
+ } else {
355
+ // Must be ALWAYS_DENIED
356
+ return [];
357
+ }
358
+ ```
359
+
360
+ ### Mapper Types
361
+
362
+ The mapper configuration is also fully typed:
363
+
364
+ ```ts
365
+ type MapperConfig = {
366
+ field?: string;
367
+ relation?: {
368
+ name: string;
369
+ type: "one" | "many";
370
+ field?: string;
371
+ fields?: {
372
+ [key: string]: MapperConfig; // Recursive for nested fields
373
+ };
374
+ };
375
+ };
376
+
377
+ type Mapper = { [key: string]: MapperConfig } | ((key: string) => MapperConfig);
378
+ ```
379
+
266
380
  ## Full Example
267
381
 
268
382
  A complete example application using this adapter can be found at [https://github.com/cerbos/express-prisma-cerbos](https://github.com/cerbos/express-prisma-cerbos)
383
+
384
+ ## Resources
385
+
386
+ ### Documentation
387
+
388
+ - [Cerbos Documentation](https://docs.cerbos.dev)
389
+ - [Prisma Documentation](https://www.prisma.io/docs)
390
+ - [Query Plan API Reference](https://docs.cerbos.dev/cerbos/latest/api/index.html#resources-query-plan)
391
+
392
+ ### Examples and Tutorials
393
+
394
+ - [Express + Prisma + Cerbos Example](https://github.com/cerbos/express-prisma-cerbos)
395
+ - [Cerbos Query Planning Guide](https://docs.cerbos.dev/cerbos/latest/policies/compile.html)
396
+ - [Prisma Filtering Guide](https://www.prisma.io/docs/concepts/components/prisma-client/filtering-and-sorting)
397
+
398
+ ### Related Projects
399
+
400
+ - [Cerbos JavaScript SDK](https://github.com/cerbos/cerbos-sdk-javascript)
401
+
402
+ ### Community
403
+
404
+ - [Cerbos Slack](https://community.cerbos.dev)
405
+ - [Cerbos GitHub Discussions](https://github.com/cerbos/cerbos/discussions)
406
+
407
+ ## License
408
+
409
+ Apache 2.0 - See [LICENSE](../LICENSE) for more information.
package/lib/cjs/index.js CHANGED
@@ -49,7 +49,7 @@ const resolveFieldReference = (reference, mapper) => {
49
49
  }
50
50
  }
51
51
  const activeConfig = config || matchedConfig;
52
- if (activeConfig === null || activeConfig === void 0 ? void 0 : activeConfig.relation) {
52
+ if (activeConfig?.relation) {
53
53
  const { name, type, fields } = activeConfig.relation;
54
54
  const matchedParts = matchedPrefix ? matchedPrefix.split(".") : [];
55
55
  const remainingParts = matchedPrefix
@@ -64,7 +64,7 @@ const resolveFieldReference = (reference, mapper) => {
64
64
  let currentParts = remainingParts;
65
65
  while (currentParts.length > 0) {
66
66
  const nextConfig = currentMapper[currentParts[0]];
67
- if (nextConfig === null || nextConfig === void 0 ? void 0 : nextConfig.relation) {
67
+ if (nextConfig?.relation) {
68
68
  relations.push({
69
69
  name: nextConfig.relation.name,
70
70
  type: nextConfig.relation.type,
@@ -75,14 +75,14 @@ const resolveFieldReference = (reference, mapper) => {
75
75
  currentParts = currentParts.slice(1);
76
76
  }
77
77
  else {
78
- field = (nextConfig === null || nextConfig === void 0 ? void 0 : nextConfig.field) || currentParts[currentParts.length - 1];
78
+ field = nextConfig?.field || currentParts[currentParts.length - 1];
79
79
  break;
80
80
  }
81
81
  }
82
82
  }
83
83
  return { path: field ? [field] : remainingParts, relations };
84
84
  }
85
- return { path: [(activeConfig === null || activeConfig === void 0 ? void 0 : activeConfig.field) || reference] };
85
+ return { path: [activeConfig?.field || reference] };
86
86
  };
87
87
  /**
88
88
  * Determines the appropriate Prisma operator based on relation type.
@@ -484,7 +484,6 @@ const buildPrismaFilterFromCerbosExpression = (expression, mapper) => {
484
484
  * and handles nested collections
485
485
  */
486
486
  const createScopedMapper = (collectionPath, variableName, fullMapper) => (key) => {
487
- var _a, _b, _c;
488
487
  // If the key starts with the variable name, it's accessing the collection item
489
488
  if (key.startsWith(variableName + ".")) {
490
489
  const strippedKey = key.replace(variableName + ".", "");
@@ -493,13 +492,13 @@ const createScopedMapper = (collectionPath, variableName, fullMapper) => (key) =
493
492
  const collectionConfig = typeof fullMapper === "function"
494
493
  ? fullMapper(collectionPath)
495
494
  : fullMapper[collectionPath];
496
- if ((_a = collectionConfig === null || collectionConfig === void 0 ? void 0 : collectionConfig.relation) === null || _a === void 0 ? void 0 : _a.fields) {
495
+ if (collectionConfig?.relation?.fields) {
497
496
  // For nested paths, traverse the fields configuration
498
497
  let currentConfig = collectionConfig.relation.fields;
499
498
  let field = parts[0];
500
499
  for (let i = 0; i < parts.length - 1; i++) {
501
500
  const part = parts[i];
502
- if ((_c = (_b = currentConfig[part]) === null || _b === void 0 ? void 0 : _b.relation) === null || _c === void 0 ? void 0 : _c.fields) {
501
+ if (currentConfig[part]?.relation?.fields) {
503
502
  currentConfig = currentConfig[part].relation.fields;
504
503
  field = parts[i + 1];
505
504
  }
@@ -515,3 +514,4 @@ const createScopedMapper = (collectionPath, variableName, fullMapper) => (key) =
515
514
  // For keys not referencing the collection item, use the full mapper
516
515
  return typeof fullMapper === "function" ? fullMapper(key) : fullMapper[key];
517
516
  };
517
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -45,7 +45,7 @@ const resolveFieldReference = (reference, mapper) => {
45
45
  }
46
46
  }
47
47
  const activeConfig = config || matchedConfig;
48
- if (activeConfig === null || activeConfig === void 0 ? void 0 : activeConfig.relation) {
48
+ if (activeConfig?.relation) {
49
49
  const { name, type, fields } = activeConfig.relation;
50
50
  const matchedParts = matchedPrefix ? matchedPrefix.split(".") : [];
51
51
  const remainingParts = matchedPrefix
@@ -60,7 +60,7 @@ const resolveFieldReference = (reference, mapper) => {
60
60
  let currentParts = remainingParts;
61
61
  while (currentParts.length > 0) {
62
62
  const nextConfig = currentMapper[currentParts[0]];
63
- if (nextConfig === null || nextConfig === void 0 ? void 0 : nextConfig.relation) {
63
+ if (nextConfig?.relation) {
64
64
  relations.push({
65
65
  name: nextConfig.relation.name,
66
66
  type: nextConfig.relation.type,
@@ -71,14 +71,14 @@ const resolveFieldReference = (reference, mapper) => {
71
71
  currentParts = currentParts.slice(1);
72
72
  }
73
73
  else {
74
- field = (nextConfig === null || nextConfig === void 0 ? void 0 : nextConfig.field) || currentParts[currentParts.length - 1];
74
+ field = nextConfig?.field || currentParts[currentParts.length - 1];
75
75
  break;
76
76
  }
77
77
  }
78
78
  }
79
79
  return { path: field ? [field] : remainingParts, relations };
80
80
  }
81
- return { path: [(activeConfig === null || activeConfig === void 0 ? void 0 : activeConfig.field) || reference] };
81
+ return { path: [activeConfig?.field || reference] };
82
82
  };
83
83
  /**
84
84
  * Determines the appropriate Prisma operator based on relation type.
@@ -480,7 +480,6 @@ const buildPrismaFilterFromCerbosExpression = (expression, mapper) => {
480
480
  * and handles nested collections
481
481
  */
482
482
  const createScopedMapper = (collectionPath, variableName, fullMapper) => (key) => {
483
- var _a, _b, _c;
484
483
  // If the key starts with the variable name, it's accessing the collection item
485
484
  if (key.startsWith(variableName + ".")) {
486
485
  const strippedKey = key.replace(variableName + ".", "");
@@ -489,13 +488,13 @@ const createScopedMapper = (collectionPath, variableName, fullMapper) => (key) =
489
488
  const collectionConfig = typeof fullMapper === "function"
490
489
  ? fullMapper(collectionPath)
491
490
  : fullMapper[collectionPath];
492
- if ((_a = collectionConfig === null || collectionConfig === void 0 ? void 0 : collectionConfig.relation) === null || _a === void 0 ? void 0 : _a.fields) {
491
+ if (collectionConfig?.relation?.fields) {
493
492
  // For nested paths, traverse the fields configuration
494
493
  let currentConfig = collectionConfig.relation.fields;
495
494
  let field = parts[0];
496
495
  for (let i = 0; i < parts.length - 1; i++) {
497
496
  const part = parts[i];
498
- if ((_c = (_b = currentConfig[part]) === null || _b === void 0 ? void 0 : _b.relation) === null || _c === void 0 ? void 0 : _c.fields) {
497
+ if (currentConfig[part]?.relation?.fields) {
499
498
  currentConfig = currentConfig[part].relation.fields;
500
499
  field = parts[i + 1];
501
500
  }
@@ -511,3 +510,4 @@ const createScopedMapper = (collectionPath, variableName, fullMapper) => (key) =
511
510
  // For keys not referencing the collection item, use the full mapper
512
511
  return typeof fullMapper === "function" ? fullMapper(key) : fullMapper[key];
513
512
  };
513
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -19,13 +19,16 @@ export interface QueryPlanToPrismaArgs {
19
19
  queryPlan: PlanResourcesResponse;
20
20
  mapper?: Mapper;
21
21
  }
22
- export interface QueryPlanToPrismaResult {
23
- kind: PlanKind;
24
- filters?: Record<string, any>;
25
- }
22
+ export type QueryPlanToPrismaResult = {
23
+ kind: PlanKind.ALWAYS_ALLOWED | PlanKind.ALWAYS_DENIED;
24
+ } | {
25
+ kind: PlanKind.CONDITIONAL;
26
+ filters: Record<string, any>;
27
+ };
26
28
  /**
27
29
  * Converts a Cerbos query plan to a Prisma filter.
28
30
  * @param {QueryPlanToPrismaArgs} args - The arguments containing the query plan and mapper.
29
31
  * @returns {QueryPlanToPrismaResult} The result containing the kind and filters.
30
32
  */
31
33
  export declare function queryPlanToPrisma({ queryPlan, mapper, }: QueryPlanToPrismaArgs): QueryPlanToPrismaResult;
34
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EAErB,QAAQ,EAET,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,QAAQ,EAAE,CAAC;AAEpB,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAE/C,MAAM,MAAM,YAAY,GAAG;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE;QACT,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,KAAK,GAAG,MAAM,CAAC;QACrB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE;YACP,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CAAC;SAC7B,CAAC;KACH,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,MAAM,GACd;IACE,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CAAC;CAC7B,GACD,CAAC,CAAC,GAAG,EAAE,MAAM,KAAK,YAAY,CAAC,CAAC;AAEpC,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,qBAAqB,CAAC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,uBAAuB,GAC/B;IACE,IAAI,EAAE,QAAQ,CAAC,cAAc,GAAG,QAAQ,CAAC,aAAa,CAAC;CACxD,GACD;IACE,IAAI,EAAE,QAAQ,CAAC,WAAW,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC9B,CAAC;AAEN;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,SAAS,EACT,MAAW,GACZ,EAAE,qBAAqB,GAAG,uBAAuB,CAiBjD"}
package/package.json CHANGED
@@ -1,23 +1,40 @@
1
1
  {
2
2
  "name": "@cerbos/orm-prisma",
3
- "version": "2.0.0-alpha.2",
3
+ "version": "2.0.1",
4
4
  "homepage": "https://cerbos.dev",
5
- "description": "",
5
+ "description": "Prisma adapter for Cerbos query plans",
6
6
  "private": false,
7
7
  "main": "./lib/cjs/index.js",
8
8
  "module": "./lib/esm/index.js",
9
+ "types": "./lib/types/index.d.ts",
10
+ "exports": {
11
+ ".": {
12
+ "require": "./lib/cjs/index.js",
13
+ "import": "./lib/esm/index.js",
14
+ "types": "./lib/types/index.d.ts"
15
+ }
16
+ },
9
17
  "files": [
10
- "lib/**/*"
18
+ "lib",
19
+ "README.md",
20
+ "LICENSE"
11
21
  ],
22
+ "sideEffects": false,
12
23
  "scripts": {
13
- "build": "tsc -p tsconfig.json && tsc -p tsconfig-cjs.json",
24
+ "clean": "rimraf lib",
25
+ "build": "npm run clean && npm run build:types && npm run build:cjs && npm run build:esm",
26
+ "build:types": "tsc -p tsconfig.types.json",
27
+ "build:cjs": "tsc -p tsconfig.cjs.json",
28
+ "build:esm": "tsc -p tsconfig.esm.json",
14
29
  "prepare": "npm run build",
15
- "preversion": "npm run lint",
30
+ "prepublishOnly": "npm test",
16
31
  "version": "git add -A src",
17
- "postversion": "git push && git push --tags",
18
32
  "test": "npx prisma db push --force-reset && cerbos run --log-level=error --set=storage.disk.directory=../policies --set=telemetry.disabled=true -- jest src/**.test.ts",
19
33
  "cerbos": "cerbos server --config=./cerbos-config.yaml"
20
34
  },
35
+ "engines": {
36
+ "node": ">=14.0.0"
37
+ },
21
38
  "author": "Cerbos",
22
39
  "license": "Apache-2.0",
23
40
  "devDependencies": {
@@ -27,10 +44,25 @@
27
44
  "prisma": "^6.4.1",
28
45
  "ts-jest": "^29.0.0",
29
46
  "ts-node": "^10.4.0",
30
- "typescript": "^5.0.0"
47
+ "typescript": "^5.0.0",
48
+ "expect-type": "^1.1.0",
49
+ "rimraf": "^5.0.0"
50
+ },
51
+ "peerDependencies": {
52
+ "@prisma/client": "^5.0.0 || ^6.0.0"
31
53
  },
32
54
  "dependencies": {
33
55
  "@cerbos/core": "^0.21.0",
34
56
  "@cerbos/grpc": "^0.20.0"
35
- }
57
+ },
58
+ "publishConfig": {
59
+ "access": "public"
60
+ },
61
+ "keywords": [
62
+ "cerbos",
63
+ "prisma",
64
+ "orm",
65
+ "authorization",
66
+ "permissions"
67
+ ]
36
68
  }
package/lib/index.d.ts DELETED
@@ -1,31 +0,0 @@
1
- import { PlanResourcesResponse, PlanKind } from "@cerbos/core";
2
- export { PlanKind };
3
- export type PrismaFilter = Record<string, any>;
4
- export type MapperConfig = {
5
- field?: string;
6
- relation?: {
7
- name: string;
8
- type: "one" | "many";
9
- field?: string;
10
- fields?: {
11
- [key: string]: MapperConfig;
12
- };
13
- };
14
- };
15
- export type Mapper = {
16
- [key: string]: MapperConfig;
17
- } | ((key: string) => MapperConfig);
18
- export interface QueryPlanToPrismaArgs {
19
- queryPlan: PlanResourcesResponse;
20
- mapper?: Mapper;
21
- }
22
- export interface QueryPlanToPrismaResult {
23
- kind: PlanKind;
24
- filters?: Record<string, any>;
25
- }
26
- /**
27
- * Converts a Cerbos query plan to a Prisma filter.
28
- * @param {QueryPlanToPrismaArgs} args - The arguments containing the query plan and mapper.
29
- * @returns {QueryPlanToPrismaResult} The result containing the kind and filters.
30
- */
31
- export declare function queryPlanToPrisma({ queryPlan, mapper, }: QueryPlanToPrismaArgs): QueryPlanToPrismaResult;