@cerebruminc/yates 4.0.1 → 4.1.0

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/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # Changelog
2
2
 
3
+ ## [4.1.0](https://github.com/cerebruminc/yates/compare/v4.0.1...v4.1.0) (2026-07-22)
4
+
5
+
6
+ ### Features
7
+
8
+ * split Yates migration from runtime setup ([8d078f8](https://github.com/cerebruminc/yates/commit/8d078f843c922c809323db4793c0262d5698d491))
9
+
3
10
  ## [4.0.1](https://github.com/cerebruminc/yates/compare/v4.0.0...v4.0.1) (2026-07-06)
4
11
 
5
12
 
package/README.md CHANGED
@@ -44,7 +44,51 @@ Client extensions share the same API as the Prisma Client, you can use the Yates
44
44
 
45
45
  The `setup` function will generate CRUD abilities for each model in your Prisma schema, as well as any additional abilities that you have defined in your configuration. It will then create a new PG role for each ability and apply the appropriate row-level security policies to each role. Finally, it will create a new PG role for each user role you specify and grant them the appropriate abilities.
46
46
 
47
- For Yates to be able to set the correct user role for each request, you must pass a function called `getContext` in the `setup` configuration that will return the user role for the current request. This function will be called for each request and the user role returned will be used to set the `role` in the current session. If you want to bypass RLS completely for a specific role, you can return `null` from the `getContext` function for that role.
47
+ For production deployments, prefer the explicit migration/runtime APIs instead of running policy reconciliation during normal application startup:
48
+
49
+ - `migrateYates(...)` applies roles, grants and row-level security policies. Run this from a deploy or migration job after Prisma migrations.
50
+ - `createYatesClient(...)` validates that the current manifest has already been applied, then returns the runtime Prisma extension client without mutating database authorization state.
51
+ - `validateYatesSetup(...)` performs the same non-mutating manifest validation without creating a client.
52
+
53
+ The older `setup(...)` API remains backwards compatible and still performs migration before returning a runtime client, but long-running app processes should avoid it so stale pods cannot downgrade database policies.
54
+
55
+ A consumer app can add a deployment-only migration script like this:
56
+
57
+ ```ts
58
+ // scripts/yates-migrate.ts
59
+ import { PrismaClient } from "@prisma/client";
60
+ import { migrateYates } from "@cerebruminc/yates";
61
+ import { customAbilities, getRoles } from "../src/rbac/abilities";
62
+
63
+ const prisma = new PrismaClient();
64
+
65
+ await migrateYates({
66
+ prisma,
67
+ customAbilities,
68
+ getRoles,
69
+ metadata: {
70
+ appName: process.env.npm_package_name,
71
+ appVersion: process.env.npm_package_version,
72
+ appRevision: process.env.GIT_SHA,
73
+ },
74
+ });
75
+
76
+ await prisma.$disconnect();
77
+ ```
78
+
79
+ Then run it after Prisma migrations and before rolling runtime pods, for example:
80
+
81
+ ```json
82
+ {
83
+ "scripts": {
84
+ "yates:migrate": "tsx scripts/yates-migrate.ts"
85
+ }
86
+ }
87
+ ```
88
+
89
+ Runtime startup should use `createYatesClient(...)` with the same `customAbilities` and `getRoles`; it will fail fast if the deploy job did not apply the current manifest.
90
+
91
+ For Yates to be able to set the correct user role for each request, you must pass a function called `getContext` in the runtime client configuration that will return the user role for the current request. This function will be called for each request and the user role returned will be used to set the `role` in the current session. If you want to bypass RLS completely for a specific role, you can return `null` from the `getContext` function for that role.
48
92
 
49
93
  For accessing the context of a Prisma query, we recommend using a package like [cls-hooked](https://www.npmjs.com/package/cls-hooked) to store the context in the current session.
50
94
 
package/dist/index.d.ts CHANGED
@@ -8,6 +8,16 @@ interface ResolvedSetupAbilityExpression {
8
8
  abilityExpression: string;
9
9
  policyExpression: string;
10
10
  }
11
+ export interface SetupMetadata {
12
+ appName?: string;
13
+ appRevision?: string;
14
+ appVersion?: string;
15
+ }
16
+ export interface SetupValidationResult {
17
+ actualHash: string;
18
+ expectedHash: string;
19
+ manifestId: string;
20
+ }
11
21
  export interface SetupManifestAbility {
12
22
  expression: string | null;
13
23
  model: string;
@@ -86,8 +96,16 @@ export interface SetupParams<ContextKeys extends string = string, YModels extend
86
96
  * Returning `null` will result in the permissions being skipped entirely.
87
97
  */
88
98
  getContext: GetContextFn<ContextKeys>;
99
+ metadata?: SetupMetadata;
89
100
  options?: ClientOptions;
90
101
  }
102
+ export type SetupMigrationParams<ContextKeys extends string = string, YModels extends Models = Models, K extends CustomAbilities<ContextKeys, YModels> = CustomAbilities<ContextKeys, YModels>> = Omit<SetupParams<ContextKeys, YModels, K>, "getContext">;
103
+ export declare class YatesSetupManifestMismatchError extends Error {
104
+ readonly manifestId: string;
105
+ readonly expectedHash: string;
106
+ readonly actualHash: string | null;
107
+ constructor(manifestId: string, expectedHash: string, actualHash: string | null);
108
+ }
91
109
  export declare const sanitizeSlug: (slug: string) => string;
92
110
  export declare class Yates {
93
111
  private prisma;
@@ -114,8 +132,8 @@ export declare class Yates {
114
132
  }[];
115
133
  };
116
134
  getSetupManifestId: () => string;
117
- getStoredSetupManifestHash: (manifestId: string, prisma?: PrismaExecutor) => Promise<string>;
118
- upsertSetupManifestHash: (manifestId: string, manifestHash: string, prisma?: PrismaExecutor) => Prisma.PrismaPromise<number>;
135
+ getStoredSetupManifestHash: (manifestId: string, prisma?: PrismaExecutor) => Promise<string | null>;
136
+ upsertSetupManifestHash: (manifestId: string, manifestHash: string, prisma?: PrismaExecutor, metadata?: SetupMetadata) => Prisma.PrismaPromise<number>;
119
137
  getDefaultAbilities: (models: Models[]) => Partial<DefaultAbilities<string, Prisma.ModelName>>;
120
138
  getBatchId(query: any): string | undefined;
121
139
  buildKeysString(obj: object): string;
@@ -131,11 +149,41 @@ export declare class Yates {
131
149
  client: {};
132
150
  }>;
133
151
  setRLS: <ContextKeys extends string, YModel extends Prisma.ModelName>(prisma: PrismaExecutor, table: string, roleName: string, slug: string, ability: Ability<ContextKeys, YModel>, resolvedExpression: ResolvedSetupAbilityExpression) => Promise<void>;
134
- createRoles: <ContextKeys extends string, YModels extends Prisma.ModelName, K extends CustomAbilities<string, Prisma.ModelName> = CustomAbilities<string, Prisma.ModelName>, T = DefaultAbilities<ContextKeys, YModels> & K>({ customAbilities, getRoles, options, }: {
152
+ prepareSetup: <ContextKeys extends string, YModels extends Prisma.ModelName, K extends CustomAbilities<string, Prisma.ModelName> = CustomAbilities<string, Prisma.ModelName>, T = DefaultAbilities<ContextKeys, YModels> & K>({ customAbilities, getRoles, }: {
153
+ customAbilities?: Partial<K> | undefined;
154
+ getRoles: (abilities: T) => {
155
+ [role: string]: "*" | AllAbilities<ContextKeys, YModels>[];
156
+ };
157
+ }) => Promise<{
158
+ abilities: Partial<DefaultAbilities<string, Prisma.ModelName>>;
159
+ defaultAbilities: Partial<DefaultAbilities<string, Prisma.ModelName>>;
160
+ roles: {
161
+ [role: string]: "*" | AllAbilities<ContextKeys, YModels>[];
162
+ };
163
+ setupManifest: {
164
+ abilities: SetupManifestAbility[];
165
+ databaseScope: string;
166
+ roles: {
167
+ grants: string[] | "*";
168
+ roleName: string;
169
+ }[];
170
+ };
171
+ setupManifestHash: string;
172
+ setupManifestId: string;
173
+ }>;
174
+ validateSetup: <ContextKeys extends string, YModels extends Prisma.ModelName, K extends CustomAbilities<string, Prisma.ModelName> = CustomAbilities<string, Prisma.ModelName>, T = DefaultAbilities<ContextKeys, YModels> & K>({ customAbilities, getRoles, }: {
175
+ customAbilities?: Partial<K> | undefined;
176
+ getRoles: (abilities: T) => {
177
+ [role: string]: "*" | AllAbilities<ContextKeys, YModels>[];
178
+ };
179
+ }) => Promise<SetupValidationResult>;
180
+ resolveSetupAbilityExpressions: (abilities: Partial<DefaultAbilities>) => Promise<Record<string, ResolvedSetupAbilityExpression>>;
181
+ createRoles: <ContextKeys extends string, YModels extends Prisma.ModelName, K extends CustomAbilities<string, Prisma.ModelName> = CustomAbilities<string, Prisma.ModelName>, T = DefaultAbilities<ContextKeys, YModels> & K>({ customAbilities, getRoles, metadata, options, }: {
135
182
  customAbilities?: Partial<K> | undefined;
136
183
  getRoles: (abilities: T) => {
137
184
  [role: string]: "*" | AllAbilities<ContextKeys, YModels>[];
138
185
  };
186
+ metadata?: SetupMetadata | undefined;
139
187
  options?: ClientOptions | undefined;
140
188
  }) => Promise<void>;
141
189
  reconcileRoles: <ContextKeys extends string, YModels extends Prisma.ModelName>({ abilities, defaultAbilities, prisma, resolvedSetupAbilityExpressions, roles, }: {
@@ -157,7 +205,38 @@ export declare class Yates {
157
205
  inspectRunTimeDataModel: () => RuntimeDataModel;
158
206
  }
159
207
  /**
160
- * Creates an extended client that sets contextual parameters and user role on every query
208
+ * Applies Yates roles, grants and row-level security policies. Run this from
209
+ * an explicit deployment/migration step, not from normal application startup.
210
+ **/
211
+ export declare const migrateYates: <ContextKeys extends string = string, YModels extends Prisma.ModelName = Prisma.ModelName, K extends CustomAbilities<ContextKeys, YModels> = CustomAbilities<ContextKeys, YModels>>(params: SetupMigrationParams<ContextKeys, YModels, K>) => Promise<void>;
212
+ /**
213
+ * Validates that the database has already had the current Yates manifest
214
+ * applied. This is safe for runtime startup because it does not create,
215
+ * alter, grant, revoke or drop database authorization state.
216
+ **/
217
+ export declare const validateYatesSetup: <ContextKeys extends string = string, YModels extends Prisma.ModelName = Prisma.ModelName, K extends CustomAbilities<ContextKeys, YModels> = CustomAbilities<ContextKeys, YModels>>(params: SetupMigrationParams<ContextKeys, YModels, K>) => Promise<SetupValidationResult>;
218
+ /**
219
+ * Creates an extended client that sets contextual parameters and user role on
220
+ * every query. Unlike setup(), this validates that migration already happened
221
+ * instead of mutating database authorization state during app startup.
222
+ **/
223
+ export declare const createYatesClient: <ContextKeys extends string = string, YModels extends Prisma.ModelName = Prisma.ModelName, K extends CustomAbilities<ContextKeys, YModels> = CustomAbilities<ContextKeys, YModels>>(params: SetupParams<ContextKeys, YModels, K>) => Promise<import("@prisma/client/runtime/library").DynamicClientExtensionThis<Prisma.TypeMap<import("@prisma/client/runtime/library").InternalArgs & {
224
+ result: {};
225
+ model: {};
226
+ query: {};
227
+ client: {};
228
+ }>, Prisma.TypeMapCb, {
229
+ result: {};
230
+ model: {};
231
+ query: {};
232
+ client: {};
233
+ }>>;
234
+ /**
235
+ * Creates an extended client that sets contextual parameters and user role on every query.
236
+ *
237
+ * This remains backwards compatible: it applies/migrates Yates database state
238
+ * before returning the runtime client. For application startup, prefer running
239
+ * migrateYates() in an explicit deploy step and createYatesClient() at runtime.
161
240
  **/
162
241
  export declare const setup: <ContextKeys extends string = string, YModels extends Prisma.ModelName = Prisma.ModelName, K extends CustomAbilities<ContextKeys, YModels> = CustomAbilities<ContextKeys, YModels>>(params: SetupParams<ContextKeys, YModels, K>) => Promise<import("@prisma/client/runtime/library").DynamicClientExtensionThis<Prisma.TypeMap<import("@prisma/client/runtime/library").InternalArgs & {
163
242
  result: {};
package/dist/index.js CHANGED
@@ -1,4 +1,19 @@
1
1
  "use strict";
2
+ var __extends = (this && this.__extends) || (function () {
3
+ var extendStatics = function (d, b) {
4
+ extendStatics = Object.setPrototypeOf ||
5
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ if (typeof b !== "function" && b !== null)
11
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
+ extendStatics(d, b);
13
+ function __() { this.constructor = d; }
14
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
+ };
16
+ })();
2
17
  var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
3
18
  if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
4
19
  return cooked;
@@ -113,7 +128,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
113
128
  return (mod && mod.__esModule) ? mod : { "default": mod };
114
129
  };
115
130
  Object.defineProperty(exports, "__esModule", { value: true });
116
- exports.setup = exports.Yates = exports.sanitizeSlug = void 0;
131
+ exports.setup = exports.createYatesClient = exports.validateYatesSetup = exports.migrateYates = exports.Yates = exports.sanitizeSlug = exports.YatesSetupManifestMismatchError = void 0;
117
132
  var crypto = __importStar(require("crypto"));
118
133
  var debug_1 = __importDefault(require("debug"));
119
134
  var cloneDeep_1 = __importDefault(require("lodash/cloneDeep"));
@@ -126,6 +141,19 @@ var VALID_OPERATIONS = ["SELECT", "UPDATE", "INSERT", "DELETE"];
126
141
  var SETUP_MANIFEST_VERSION = "1";
127
142
  var YATES_VERSION = require("../package.json").version;
128
143
  var debug = (0, debug_1.default)("yates");
144
+ var YatesSetupManifestMismatchError = /** @class */ (function (_super) {
145
+ __extends(YatesSetupManifestMismatchError, _super);
146
+ function YatesSetupManifestMismatchError(manifestId, expectedHash, actualHash) {
147
+ var _this = _super.call(this, "Yates setup manifest mismatch for ".concat(manifestId, ". Expected ").concat(expectedHash, ", found ").concat(actualHash !== null && actualHash !== void 0 ? actualHash : "none", ". Run the explicit Yates migration before starting the runtime client.")) || this;
148
+ _this.manifestId = manifestId;
149
+ _this.expectedHash = expectedHash;
150
+ _this.actualHash = actualHash;
151
+ _this.name = "YatesSetupManifestMismatchError";
152
+ return _this;
153
+ }
154
+ return YatesSetupManifestMismatchError;
155
+ }(Error));
156
+ exports.YatesSetupManifestMismatchError = YatesSetupManifestMismatchError;
129
157
  /**
130
158
  * This function is used to take a lock that is automatically released at the end of the current transaction.
131
159
  * This is very convenient for ensuring we don't hit concurrency issues when running setup code.
@@ -137,6 +165,15 @@ var upsertAbility = function (prisma, ability) {
137
165
  var ability_model = ability.ability_model, ability_name = ability.ability_name, ability_policy_name = ability.ability_policy_name, ability_description = ability.ability_description, ability_operation = ability.ability_operation, ability_expression = ability.ability_expression;
138
166
  return prisma.$queryRaw(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n\t\tINSERT INTO _yates._yates_abilities (ability_model, ability_name, ability_policy_name, ability_description, ability_operation, ability_expression)\n\t\tVALUES (", ", ", ", ", ", ", ", ", ", ", ")\n\t\tON CONFLICT (ability_policy_name) DO UPDATE\n\t\tSET ability_model = EXCLUDED.ability_model, ability_name = EXCLUDED.ability_name, ability_description = EXCLUDED.ability_description, ability_operation = EXCLUDED.ability_operation, ability_expression = EXCLUDED.ability_expression, updated_at = now();\n\t"], ["\n\t\tINSERT INTO _yates._yates_abilities (ability_model, ability_name, ability_policy_name, ability_description, ability_operation, ability_expression)\n\t\tVALUES (", ", ", ", ", ", ", ", ", ", ", ")\n\t\tON CONFLICT (ability_policy_name) DO UPDATE\n\t\tSET ability_model = EXCLUDED.ability_model, ability_name = EXCLUDED.ability_name, ability_description = EXCLUDED.ability_description, ability_operation = EXCLUDED.ability_operation, ability_expression = EXCLUDED.ability_expression, updated_at = now();\n\t"])), ability_model, ability_name, ability_policy_name, ability_description, ability_operation, ability_expression);
139
167
  };
168
+ var isMissingYatesSchemaError = function (error) {
169
+ var _a;
170
+ var code = error === null || error === void 0 ? void 0 : error.code;
171
+ var message = (_a = error === null || error === void 0 ? void 0 : error.message) !== null && _a !== void 0 ? _a : "";
172
+ return (code === "42P01" ||
173
+ code === "3F000" ||
174
+ message.includes("_yates_schema_syncs") ||
175
+ message.includes('schema "_yates" does not exist'));
176
+ };
140
177
  /**
141
178
  * In PostgreSQL, the maximum length for a role or policy name is 63 bytes.
142
179
  * This limitation is derived from the value of the NAMEDATALEN configuration parameter,
@@ -230,8 +267,8 @@ var Yates = /** @class */ (function () {
230
267
  takeLock(_this.prisma),
231
268
  _this.prisma.$executeRawUnsafe("\n\t\t\t\tCREATE SCHEMA IF NOT EXISTS _yates;\n\t\t\t"),
232
269
  _this.prisma.$executeRawUnsafe("\n\t\t\t\tCREATE TABLE IF NOT EXISTS _yates._yates_abilities (\n\t\t\t\t\tid SERIAL PRIMARY KEY,\n\t\t\t\t\tability_model TEXT NOT NULL,\n\t\t\t\t\tability_name TEXT NOT NULL,\n\t\t\t\t\tability_policy_name TEXT NOT NULL UNIQUE,\n\t\t\t\t\tability_description TEXT NOT NULL,\n\t\t\t\t\tability_operation TEXT NOT NULL,\n\t\t\t\t\tability_expression TEXT NOT NULL,\n\t\t\t\t\tcreated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,\n\t\t\t\t\tupdated_at TIMESTAMP\n\t\t\t\t);\n\t\t\t"),
233
- _this.prisma.$executeRawUnsafe("\n\t\t\t\tCREATE TABLE IF NOT EXISTS _yates._yates_schema_syncs (\n\t\t\t\t\tid TEXT PRIMARY KEY,\n\t\t\t\t\tmanifest_hash TEXT NOT NULL,\n\t\t\t\t\tmanifest_version TEXT,\n\t\t\t\t\tyates_version TEXT,\n\t\t\t\t\tapp_name TEXT,\n\t\t\t\t\tapplied_at TIMESTAMPTZ NOT NULL DEFAULT now()\n\t\t\t\t);\n\t\t\t"),
234
- _this.prisma.$executeRawUnsafe("\n\t\t\t\tDO $$\n\t\t\t\tBEGIN\n\t\t\t\t\tIF EXISTS (\n\t\t\t\t\t\tSELECT 1 FROM information_schema.columns\n\t\t\t\t\t\tWHERE table_schema = '_yates'\n\t\t\t\t\t\tAND table_name = '_yates_schema_syncs'\n\t\t\t\t\t\tAND column_name = 'yates_version'\n\t\t\t\t\t) AND NOT EXISTS (\n\t\t\t\t\t\tSELECT 1 FROM information_schema.columns\n\t\t\t\t\t\tWHERE table_schema = '_yates'\n\t\t\t\t\t\tAND table_name = '_yates_schema_syncs'\n\t\t\t\t\t\tAND column_name = 'manifest_version'\n\t\t\t\t\t) THEN\n\t\t\t\t\t\tALTER TABLE _yates._yates_schema_syncs RENAME COLUMN yates_version TO manifest_version;\n\t\t\t\t\tELSIF NOT EXISTS (\n\t\t\t\t\t\tSELECT 1 FROM information_schema.columns\n\t\t\t\t\t\tWHERE table_schema = '_yates'\n\t\t\t\t\t\tAND table_name = '_yates_schema_syncs'\n\t\t\t\t\t\tAND column_name = 'manifest_version'\n\t\t\t\t\t) THEN\n\t\t\t\t\t\tALTER TABLE _yates._yates_schema_syncs ADD COLUMN manifest_version TEXT;\n\t\t\t\t\tEND IF;\n\n\t\t\t\t\tIF NOT EXISTS (\n\t\t\t\t\t\tSELECT 1 FROM information_schema.columns\n\t\t\t\t\t\tWHERE table_schema = '_yates'\n\t\t\t\t\t\tAND table_name = '_yates_schema_syncs'\n\t\t\t\t\t\tAND column_name = 'yates_version'\n\t\t\t\t\t) THEN\n\t\t\t\t\t\tALTER TABLE _yates._yates_schema_syncs ADD COLUMN yates_version TEXT;\n\t\t\t\t\tEND IF;\n\t\t\t\tEND\n\t\t\t\t$$;\n\t\t\t"),
270
+ _this.prisma.$executeRawUnsafe("\n\t\t\t\tCREATE TABLE IF NOT EXISTS _yates._yates_schema_syncs (\n\t\t\t\t\tid TEXT PRIMARY KEY,\n\t\t\t\t\tmanifest_hash TEXT NOT NULL,\n\t\t\t\t\tmanifest_version TEXT,\n\t\t\t\t\tyates_version TEXT,\n\t\t\t\t\tapp_name TEXT,\n\t\t\t\t\tapp_version TEXT,\n\t\t\t\t\tapp_revision TEXT,\n\t\t\t\t\tapplied_at TIMESTAMPTZ NOT NULL DEFAULT now()\n\t\t\t\t);\n\t\t\t"),
271
+ _this.prisma.$executeRawUnsafe("\n\t\t\t\tDO $$\n\t\t\t\tBEGIN\n\t\t\t\t\tIF EXISTS (\n\t\t\t\t\t\tSELECT 1 FROM information_schema.columns\n\t\t\t\t\t\tWHERE table_schema = '_yates'\n\t\t\t\t\t\tAND table_name = '_yates_schema_syncs'\n\t\t\t\t\t\tAND column_name = 'yates_version'\n\t\t\t\t\t) AND NOT EXISTS (\n\t\t\t\t\t\tSELECT 1 FROM information_schema.columns\n\t\t\t\t\t\tWHERE table_schema = '_yates'\n\t\t\t\t\t\tAND table_name = '_yates_schema_syncs'\n\t\t\t\t\t\tAND column_name = 'manifest_version'\n\t\t\t\t\t) THEN\n\t\t\t\t\t\tALTER TABLE _yates._yates_schema_syncs RENAME COLUMN yates_version TO manifest_version;\n\t\t\t\t\tELSIF NOT EXISTS (\n\t\t\t\t\t\tSELECT 1 FROM information_schema.columns\n\t\t\t\t\t\tWHERE table_schema = '_yates'\n\t\t\t\t\t\tAND table_name = '_yates_schema_syncs'\n\t\t\t\t\t\tAND column_name = 'manifest_version'\n\t\t\t\t\t) THEN\n\t\t\t\t\t\tALTER TABLE _yates._yates_schema_syncs ADD COLUMN manifest_version TEXT;\n\t\t\t\t\tEND IF;\n\n\t\t\t\t\tIF NOT EXISTS (\n\t\t\t\t\t\tSELECT 1 FROM information_schema.columns\n\t\t\t\t\t\tWHERE table_schema = '_yates'\n\t\t\t\t\t\tAND table_name = '_yates_schema_syncs'\n\t\t\t\t\t\tAND column_name = 'yates_version'\n\t\t\t\t\t) THEN\n\t\t\t\t\t\tALTER TABLE _yates._yates_schema_syncs ADD COLUMN yates_version TEXT;\n\t\t\t\t\tEND IF;\n\n\t\t\t\t\tIF NOT EXISTS (\n\t\t\t\t\t\tSELECT 1 FROM information_schema.columns\n\t\t\t\t\t\tWHERE table_schema = '_yates'\n\t\t\t\t\t\tAND table_name = '_yates_schema_syncs'\n\t\t\t\t\t\tAND column_name = 'app_version'\n\t\t\t\t\t) THEN\n\t\t\t\t\t\tALTER TABLE _yates._yates_schema_syncs ADD COLUMN app_version TEXT;\n\t\t\t\t\tEND IF;\n\n\t\t\t\t\tIF NOT EXISTS (\n\t\t\t\t\t\tSELECT 1 FROM information_schema.columns\n\t\t\t\t\t\tWHERE table_schema = '_yates'\n\t\t\t\t\t\tAND table_name = '_yates_schema_syncs'\n\t\t\t\t\t\tAND column_name = 'app_revision'\n\t\t\t\t\t) THEN\n\t\t\t\t\t\tALTER TABLE _yates._yates_schema_syncs ADD COLUMN app_revision TEXT;\n\t\t\t\t\tEND IF;\n\t\t\t\tEND\n\t\t\t\t$$;\n\t\t\t"),
235
272
  ]);
236
273
  };
237
274
  this.createAbilityName = function (model, ability) {
@@ -349,22 +386,33 @@ var Yates = /** @class */ (function () {
349
386
  args_1[_i - 1] = arguments[_i];
350
387
  }
351
388
  return __awaiter(_this, __spreadArray([manifestId_1], __read(args_1), false), void 0, function (manifestId, prisma) {
352
- var rows;
389
+ var rows, error_1;
353
390
  var _a, _b;
354
391
  if (prisma === void 0) { prisma = this.prisma; }
355
392
  return __generator(this, function (_c) {
356
393
  switch (_c.label) {
357
- case 0: return [4 /*yield*/, prisma.$queryRawUnsafe("\n\t\t\t\tSELECT manifest_hash\n\t\t\t\tFROM _yates._yates_schema_syncs\n\t\t\t\tWHERE id = $1\n\t\t\t\tLIMIT 1;\n\t\t\t", manifestId)];
394
+ case 0:
395
+ _c.trys.push([0, 2, , 3]);
396
+ return [4 /*yield*/, prisma.$queryRawUnsafe("\n\t\t\t\t\tSELECT manifest_hash\n\t\t\t\t\tFROM _yates._yates_schema_syncs\n\t\t\t\t\tWHERE id = $1\n\t\t\t\t\tLIMIT 1;\n\t\t\t\t", manifestId)];
358
397
  case 1:
359
398
  rows = _c.sent();
360
399
  return [2 /*return*/, (_b = (_a = rows[0]) === null || _a === void 0 ? void 0 : _a.manifest_hash) !== null && _b !== void 0 ? _b : null];
400
+ case 2:
401
+ error_1 = _c.sent();
402
+ if (isMissingYatesSchemaError(error_1)) {
403
+ return [2 /*return*/, null];
404
+ }
405
+ throw error_1;
406
+ case 3: return [2 /*return*/];
361
407
  }
362
408
  });
363
409
  });
364
410
  };
365
- this.upsertSetupManifestHash = function (manifestId, manifestHash, prisma) {
411
+ this.upsertSetupManifestHash = function (manifestId, manifestHash, prisma, metadata) {
412
+ var _a, _b, _c;
366
413
  if (prisma === void 0) { prisma = _this.prisma; }
367
- return prisma.$executeRawUnsafe("\n\t\t\t\tINSERT INTO _yates._yates_schema_syncs (id, manifest_hash, manifest_version, yates_version, app_name, applied_at)\n\t\t\t\tVALUES ($1, $2, $3, $4, $5, now())\n\t\t\t\tON CONFLICT (id) DO UPDATE\n\t\t\t\tSET manifest_hash = EXCLUDED.manifest_hash,\n\t\t\t\t\tmanifest_version = EXCLUDED.manifest_version,\n\t\t\t\t\tyates_version = EXCLUDED.yates_version,\n\t\t\t\t\tapp_name = EXCLUDED.app_name,\n\t\t\t\t\tapplied_at = now();\n\t\t\t", manifestId, manifestHash, SETUP_MANIFEST_VERSION, YATES_VERSION, "yates");
414
+ if (metadata === void 0) { metadata = {}; }
415
+ return prisma.$executeRawUnsafe("\n\t\t\t\tINSERT INTO _yates._yates_schema_syncs (id, manifest_hash, manifest_version, yates_version, app_name, app_version, app_revision, applied_at)\n\t\t\t\tVALUES ($1, $2, $3, $4, $5, $6, $7, now())\n\t\t\t\tON CONFLICT (id) DO UPDATE\n\t\t\t\tSET manifest_hash = EXCLUDED.manifest_hash,\n\t\t\t\t\tmanifest_version = EXCLUDED.manifest_version,\n\t\t\t\t\tyates_version = EXCLUDED.yates_version,\n\t\t\t\t\tapp_name = EXCLUDED.app_name,\n\t\t\t\t\tapp_version = EXCLUDED.app_version,\n\t\t\t\t\tapp_revision = EXCLUDED.app_revision,\n\t\t\t\t\tapplied_at = now();\n\t\t\t", manifestId, manifestHash, SETUP_MANIFEST_VERSION, YATES_VERSION, (_a = metadata.appName) !== null && _a !== void 0 ? _a : "yates", (_b = metadata.appVersion) !== null && _b !== void 0 ? _b : null, (_c = metadata.appRevision) !== null && _c !== void 0 ? _c : null);
368
416
  };
369
417
  this.getDefaultAbilities = function (models) {
370
418
  var e_3, _a;
@@ -716,18 +764,16 @@ var Yates = /** @class */ (function () {
716
764
  }
717
765
  });
718
766
  }); };
719
- this.createRoles = function (_a) { return __awaiter(_this, [_a], void 0, function (_b) {
720
- var _c, txMaxWait, _d, txTimeout, runtimeDataModel, models, diff, defaultAbilities, abilities, models_2, models_2_1, model, ability, operation, roles, setupManifest, setupManifestHash, setupManifestId, resolvedSetupAbilityExpressions, _e, _f, _g, _i, model, _h, _j, _k, _l, slug, ability, roleName, _m, _o;
721
- var e_9, _p, _q;
722
- var _this = this;
723
- var _r;
724
- var customAbilities = _b.customAbilities, getRoles = _b.getRoles, _s = _b.options, options = _s === void 0 ? {} : _s;
725
- return __generator(this, function (_t) {
726
- switch (_t.label) {
767
+ this.prepareSetup = function (_a) { return __awaiter(_this, [_a], void 0, function (_b) {
768
+ var runtimeDataModel, models, diff, defaultAbilities, abilities, models_2, models_2_1, model, ability, operation, roles, setupManifest, setupManifestHash, setupManifestId;
769
+ var e_9, _c;
770
+ var _d;
771
+ var customAbilities = _b.customAbilities, getRoles = _b.getRoles;
772
+ return __generator(this, function (_e) {
773
+ switch (_e.label) {
727
774
  case 0: return [4 /*yield*/, this.ensureDatabaseScope()];
728
775
  case 1:
729
- _t.sent();
730
- _c = options.txMaxWait, txMaxWait = _c === void 0 ? 30000 : _c, _d = options.txTimeout, txTimeout = _d === void 0 ? 30000 : _d;
776
+ _e.sent();
731
777
  runtimeDataModel = this.inspectRunTimeDataModel();
732
778
  models = Object.keys(runtimeDataModel.models).map(function (m) { return runtimeDataModel.models[m].dbName || m; });
733
779
  if (customAbilities) {
@@ -745,7 +791,7 @@ var Yates = /** @class */ (function () {
745
791
  for (ability in customAbilities[model]) {
746
792
  operation =
747
793
  // biome-ignore lint/style/noNonNullAssertion: TODO fix this
748
- (_r = customAbilities[model][ability]) === null || _r === void 0 ? void 0 : _r.operation;
794
+ (_d = customAbilities[model][ability]) === null || _d === void 0 ? void 0 : _d.operation;
749
795
  if (!operation)
750
796
  continue;
751
797
  // biome-ignore lint/style/noNonNullAssertion: TODO fix this
@@ -757,7 +803,7 @@ var Yates = /** @class */ (function () {
757
803
  catch (e_9_1) { e_9 = { error: e_9_1 }; }
758
804
  finally {
759
805
  try {
760
- if (models_2_1 && !models_2_1.done && (_p = models_2.return)) _p.call(models_2);
806
+ if (models_2_1 && !models_2_1.done && (_c = models_2.return)) _c.call(models_2);
761
807
  }
762
808
  finally { if (e_9) throw e_9.error; }
763
809
  }
@@ -765,93 +811,153 @@ var Yates = /** @class */ (function () {
765
811
  setupManifest = this.createSetupManifest(abilities, roles);
766
812
  setupManifestHash = this.createSetupManifestHash(setupManifest);
767
813
  setupManifestId = this.getSetupManifestId();
814
+ return [2 /*return*/, {
815
+ abilities: abilities,
816
+ defaultAbilities: defaultAbilities,
817
+ roles: roles,
818
+ setupManifest: setupManifest,
819
+ setupManifestHash: setupManifestHash,
820
+ setupManifestId: setupManifestId,
821
+ }];
822
+ }
823
+ });
824
+ }); };
825
+ this.validateSetup = function (_a) { return __awaiter(_this, [_a], void 0, function (_b) {
826
+ var _c, setupManifestHash, setupManifestId, storedManifestHash;
827
+ var customAbilities = _b.customAbilities, getRoles = _b.getRoles;
828
+ return __generator(this, function (_d) {
829
+ switch (_d.label) {
830
+ case 0: return [4 /*yield*/, this.prepareSetup({ customAbilities: customAbilities, getRoles: getRoles })];
831
+ case 1:
832
+ _c = _d.sent(), setupManifestHash = _c.setupManifestHash, setupManifestId = _c.setupManifestId;
768
833
  return [4 /*yield*/, this.getStoredSetupManifestHash(setupManifestId)];
769
834
  case 2:
770
- if ((_t.sent()) ===
771
- setupManifestHash) {
772
- debug("Yates setup manifest unchanged; skipping role reconciliation");
773
- return [2 /*return*/];
835
+ storedManifestHash = _d.sent();
836
+ if (storedManifestHash !== setupManifestHash) {
837
+ throw new YatesSetupManifestMismatchError(setupManifestId, setupManifestHash, storedManifestHash);
774
838
  }
839
+ return [2 /*return*/, {
840
+ actualHash: storedManifestHash,
841
+ expectedHash: setupManifestHash,
842
+ manifestId: setupManifestId,
843
+ }];
844
+ }
845
+ });
846
+ }); };
847
+ this.resolveSetupAbilityExpressions = function (abilities) { return __awaiter(_this, void 0, void 0, function () {
848
+ var resolvedSetupAbilityExpressions, _a, _b, _c, _i, model, _d, _e, _f, _g, slug, ability, roleName, _h, _j;
849
+ var _k;
850
+ return __generator(this, function (_l) {
851
+ switch (_l.label) {
852
+ case 0:
775
853
  resolvedSetupAbilityExpressions = {};
776
- _e = abilities;
777
- _f = [];
778
- for (_g in _e)
779
- _f.push(_g);
854
+ _a = abilities;
855
+ _b = [];
856
+ for (_c in _a)
857
+ _b.push(_c);
780
858
  _i = 0;
781
- _t.label = 3;
782
- case 3:
783
- if (!(_i < _f.length)) return [3 /*break*/, 8];
784
- _g = _f[_i];
785
- if (!(_g in _e)) return [3 /*break*/, 7];
786
- model = _g;
787
- _h = abilities[model];
788
- _j = [];
789
- for (_k in _h)
790
- _j.push(_k);
791
- _l = 0;
792
- _t.label = 4;
793
- case 4:
794
- if (!(_l < _j.length)) return [3 /*break*/, 7];
795
- _k = _j[_l];
796
- if (!(_k in _h)) return [3 /*break*/, 6];
797
- slug = _k;
859
+ _l.label = 1;
860
+ case 1:
861
+ if (!(_i < _b.length)) return [3 /*break*/, 6];
862
+ _c = _b[_i];
863
+ if (!(_c in _a)) return [3 /*break*/, 5];
864
+ model = _c;
865
+ _d = abilities[model];
866
+ _e = [];
867
+ for (_f in _d)
868
+ _e.push(_f);
869
+ _g = 0;
870
+ _l.label = 2;
871
+ case 2:
872
+ if (!(_g < _e.length)) return [3 /*break*/, 5];
873
+ _f = _e[_g];
874
+ if (!(_f in _d)) return [3 /*break*/, 4];
875
+ slug = _f;
798
876
  ability =
799
877
  // biome-ignore lint/style/noNonNullAssertion: TODO fix this
800
878
  abilities[model][slug];
801
879
  if (!ability.expression) {
802
- return [3 /*break*/, 6];
880
+ return [3 /*break*/, 4];
803
881
  }
804
882
  roleName = this.createAbilityName(model, slug);
805
- _m = resolvedSetupAbilityExpressions;
806
- _o = roleName;
807
- _q = {
883
+ _h = resolvedSetupAbilityExpressions;
884
+ _j = roleName;
885
+ _k = {
808
886
  abilityExpression: ability.expression.toString()
809
887
  };
810
888
  return [4 /*yield*/, (0, expressions_1.expressionToSQL)(ability.expression, model)];
889
+ case 3:
890
+ _h[_j] = (_k.policyExpression = _l.sent(),
891
+ _k);
892
+ _l.label = 4;
893
+ case 4:
894
+ _g++;
895
+ return [3 /*break*/, 2];
811
896
  case 5:
812
- _m[_o] = (_q.policyExpression = _t.sent(),
813
- _q);
814
- _t.label = 6;
815
- case 6:
816
- _l++;
817
- return [3 /*break*/, 4];
818
- case 7:
819
897
  _i++;
820
- return [3 /*break*/, 3];
821
- case 8: return [4 /*yield*/, this.prisma.$transaction(function (tx) { return __awaiter(_this, void 0, void 0, function () {
822
- var prisma;
823
- return __generator(this, function (_a) {
824
- switch (_a.label) {
825
- case 0:
826
- prisma = tx;
827
- return [4 /*yield*/, takeLock(prisma)];
828
- case 1:
829
- _a.sent();
830
- return [4 /*yield*/, this.getStoredSetupManifestHash(setupManifestId, prisma)];
831
- case 2:
832
- if ((_a.sent()) ===
833
- setupManifestHash) {
834
- debug("Yates setup manifest unchanged after acquiring lock; skipping role reconciliation");
898
+ return [3 /*break*/, 1];
899
+ case 6: return [2 /*return*/, resolvedSetupAbilityExpressions];
900
+ }
901
+ });
902
+ }); };
903
+ this.createRoles = function (_a) { return __awaiter(_this, [_a], void 0, function (_b) {
904
+ var _c, txMaxWait, _d, txTimeout, _e, abilities, defaultAbilities, roles, setupManifestHash, setupManifestId, resolvedSetupAbilityExpressions;
905
+ var _this = this;
906
+ var customAbilities = _b.customAbilities, getRoles = _b.getRoles, metadata = _b.metadata, _f = _b.options, options = _f === void 0 ? {} : _f;
907
+ return __generator(this, function (_g) {
908
+ switch (_g.label) {
909
+ case 0:
910
+ _c = options.txMaxWait, txMaxWait = _c === void 0 ? 30000 : _c, _d = options.txTimeout, txTimeout = _d === void 0 ? 30000 : _d;
911
+ return [4 /*yield*/, this.prepareSetup({
912
+ customAbilities: customAbilities,
913
+ getRoles: getRoles,
914
+ })];
915
+ case 1:
916
+ _e = _g.sent(), abilities = _e.abilities, defaultAbilities = _e.defaultAbilities, roles = _e.roles, setupManifestHash = _e.setupManifestHash, setupManifestId = _e.setupManifestId;
917
+ return [4 /*yield*/, this.getStoredSetupManifestHash(setupManifestId)];
918
+ case 2:
919
+ if ((_g.sent()) ===
920
+ setupManifestHash) {
921
+ debug("Yates setup manifest unchanged; skipping role reconciliation");
922
+ return [2 /*return*/];
923
+ }
924
+ return [4 /*yield*/, this.resolveSetupAbilityExpressions(abilities)];
925
+ case 3:
926
+ resolvedSetupAbilityExpressions = _g.sent();
927
+ return [4 /*yield*/, this.prisma.$transaction(function (tx) { return __awaiter(_this, void 0, void 0, function () {
928
+ var prisma;
929
+ return __generator(this, function (_a) {
930
+ switch (_a.label) {
931
+ case 0:
932
+ prisma = tx;
933
+ return [4 /*yield*/, takeLock(prisma)];
934
+ case 1:
935
+ _a.sent();
936
+ return [4 /*yield*/, this.getStoredSetupManifestHash(setupManifestId, prisma)];
937
+ case 2:
938
+ if ((_a.sent()) ===
939
+ setupManifestHash) {
940
+ debug("Yates setup manifest unchanged after acquiring lock; skipping role reconciliation");
941
+ return [2 /*return*/];
942
+ }
943
+ return [4 /*yield*/, this.reconcileRoles({
944
+ abilities: abilities,
945
+ defaultAbilities: defaultAbilities,
946
+ prisma: prisma,
947
+ resolvedSetupAbilityExpressions: resolvedSetupAbilityExpressions,
948
+ roles: roles,
949
+ })];
950
+ case 3:
951
+ _a.sent();
952
+ return [4 /*yield*/, this.upsertSetupManifestHash(setupManifestId, setupManifestHash, prisma, metadata)];
953
+ case 4:
954
+ _a.sent();
835
955
  return [2 /*return*/];
836
- }
837
- return [4 /*yield*/, this.reconcileRoles({
838
- abilities: abilities,
839
- defaultAbilities: defaultAbilities,
840
- prisma: prisma,
841
- resolvedSetupAbilityExpressions: resolvedSetupAbilityExpressions,
842
- roles: roles,
843
- })];
844
- case 3:
845
- _a.sent();
846
- return [4 /*yield*/, this.upsertSetupManifestHash(setupManifestId, setupManifestHash, prisma)];
847
- case 4:
848
- _a.sent();
849
- return [2 /*return*/];
850
- }
851
- });
852
- }); }, { maxWait: txMaxWait, timeout: txTimeout })];
853
- case 9:
854
- _t.sent();
956
+ }
957
+ });
958
+ }); }, { maxWait: txMaxWait, timeout: txTimeout })];
959
+ case 4:
960
+ _g.sent();
855
961
  return [2 /*return*/];
856
962
  }
857
963
  });
@@ -1173,15 +1279,16 @@ var Yates = /** @class */ (function () {
1173
1279
  }());
1174
1280
  exports.Yates = Yates;
1175
1281
  /**
1176
- * Creates an extended client that sets contextual parameters and user role on every query
1282
+ * Applies Yates roles, grants and row-level security policies. Run this from
1283
+ * an explicit deployment/migration step, not from normal application startup.
1177
1284
  **/
1178
- var setup = function (params) { return __awaiter(void 0, void 0, void 0, function () {
1179
- var start, prisma, customAbilities, getRoles, getContext, yates, client;
1285
+ var migrateYates = function (params) { return __awaiter(void 0, void 0, void 0, function () {
1286
+ var start, prisma, customAbilities, getRoles, metadata, yates;
1180
1287
  return __generator(this, function (_a) {
1181
1288
  switch (_a.label) {
1182
1289
  case 0:
1183
1290
  start = performance.now();
1184
- prisma = params.prisma, customAbilities = params.customAbilities, getRoles = params.getRoles, getContext = params.getContext;
1291
+ prisma = params.prisma, customAbilities = params.customAbilities, getRoles = params.getRoles, metadata = params.metadata;
1185
1292
  yates = new Yates(prisma);
1186
1293
  return [4 /*yield*/, yates.init()];
1187
1294
  case 1:
@@ -1189,8 +1296,77 @@ var setup = function (params) { return __awaiter(void 0, void 0, void 0, functio
1189
1296
  return [4 /*yield*/, yates.createRoles({
1190
1297
  customAbilities: customAbilities,
1191
1298
  getRoles: getRoles,
1299
+ metadata: metadata,
1192
1300
  options: params.options,
1193
1301
  })];
1302
+ case 2:
1303
+ _a.sent();
1304
+ debug("Migration completed in", performance.now() - start, "ms");
1305
+ return [2 /*return*/];
1306
+ }
1307
+ });
1308
+ }); };
1309
+ exports.migrateYates = migrateYates;
1310
+ /**
1311
+ * Validates that the database has already had the current Yates manifest
1312
+ * applied. This is safe for runtime startup because it does not create,
1313
+ * alter, grant, revoke or drop database authorization state.
1314
+ **/
1315
+ var validateYatesSetup = function (params) { return __awaiter(void 0, void 0, void 0, function () {
1316
+ var prisma, customAbilities, getRoles, yates;
1317
+ return __generator(this, function (_a) {
1318
+ prisma = params.prisma, customAbilities = params.customAbilities, getRoles = params.getRoles;
1319
+ yates = new Yates(prisma);
1320
+ return [2 /*return*/, yates.validateSetup({
1321
+ customAbilities: customAbilities,
1322
+ getRoles: getRoles,
1323
+ })];
1324
+ });
1325
+ }); };
1326
+ exports.validateYatesSetup = validateYatesSetup;
1327
+ /**
1328
+ * Creates an extended client that sets contextual parameters and user role on
1329
+ * every query. Unlike setup(), this validates that migration already happened
1330
+ * instead of mutating database authorization state during app startup.
1331
+ **/
1332
+ var createYatesClient = function (params) { return __awaiter(void 0, void 0, void 0, function () {
1333
+ var prisma, customAbilities, getRoles, getContext, yates, client;
1334
+ return __generator(this, function (_a) {
1335
+ switch (_a.label) {
1336
+ case 0:
1337
+ prisma = params.prisma, customAbilities = params.customAbilities, getRoles = params.getRoles, getContext = params.getContext;
1338
+ yates = new Yates(prisma);
1339
+ return [4 /*yield*/, yates.validateSetup({
1340
+ customAbilities: customAbilities,
1341
+ getRoles: getRoles,
1342
+ })];
1343
+ case 1:
1344
+ _a.sent();
1345
+ client = yates.createClient(getContext, params.options);
1346
+ return [2 /*return*/, client];
1347
+ }
1348
+ });
1349
+ }); };
1350
+ exports.createYatesClient = createYatesClient;
1351
+ /**
1352
+ * Creates an extended client that sets contextual parameters and user role on every query.
1353
+ *
1354
+ * This remains backwards compatible: it applies/migrates Yates database state
1355
+ * before returning the runtime client. For application startup, prefer running
1356
+ * migrateYates() in an explicit deploy step and createYatesClient() at runtime.
1357
+ **/
1358
+ var setup = function (params) { return __awaiter(void 0, void 0, void 0, function () {
1359
+ var start, prisma, getContext, yates, client;
1360
+ return __generator(this, function (_a) {
1361
+ switch (_a.label) {
1362
+ case 0:
1363
+ start = performance.now();
1364
+ return [4 /*yield*/, (0, exports.migrateYates)(params)];
1365
+ case 1:
1366
+ _a.sent();
1367
+ prisma = params.prisma, getContext = params.getContext;
1368
+ yates = new Yates(prisma);
1369
+ return [4 /*yield*/, yates.ensureDatabaseScope()];
1194
1370
  case 2:
1195
1371
  _a.sent();
1196
1372
  client = yates.createClient(getContext, params.options);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cerebruminc/yates",
3
- "version": "4.0.1",
3
+ "version": "4.1.0",
4
4
  "description": "Role based access control for Prisma Apps",
5
5
  "main": "dist/index.js",
6
6
  "files": [