@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 +7 -0
- package/README.md +45 -1
- package/dist/index.d.ts +83 -4
- package/dist/index.js +269 -93
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
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
|
|
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
|
-
|
|
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
|
-
*
|
|
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:
|
|
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
|
-
|
|
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.
|
|
720
|
-
var
|
|
721
|
-
var e_9,
|
|
722
|
-
var
|
|
723
|
-
var
|
|
724
|
-
|
|
725
|
-
|
|
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
|
-
|
|
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
|
-
(
|
|
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 && (
|
|
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
|
-
|
|
771
|
-
|
|
772
|
-
|
|
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
|
-
|
|
777
|
-
|
|
778
|
-
for (
|
|
779
|
-
|
|
854
|
+
_a = abilities;
|
|
855
|
+
_b = [];
|
|
856
|
+
for (_c in _a)
|
|
857
|
+
_b.push(_c);
|
|
780
858
|
_i = 0;
|
|
781
|
-
|
|
782
|
-
case
|
|
783
|
-
if (!(_i <
|
|
784
|
-
|
|
785
|
-
if (!(
|
|
786
|
-
model =
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
for (
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
case
|
|
794
|
-
if (!(
|
|
795
|
-
|
|
796
|
-
if (!(
|
|
797
|
-
slug =
|
|
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*/,
|
|
880
|
+
return [3 /*break*/, 4];
|
|
803
881
|
}
|
|
804
882
|
roleName = this.createAbilityName(model, slug);
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
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*/,
|
|
821
|
-
case
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
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
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
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
|
-
*
|
|
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
|
|
1179
|
-
var start, prisma, customAbilities, getRoles,
|
|
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,
|
|
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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"}
|