@baseplate-dev/project-builder-server 0.6.4 → 0.6.5
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 +32 -0
- package/dist/actions/definition/build-ts-description-registry.d.ts +18 -0
- package/dist/actions/definition/build-ts-description-registry.d.ts.map +1 -0
- package/dist/actions/definition/build-ts-description-registry.js +48 -0
- package/dist/actions/definition/build-ts-description-registry.js.map +1 -0
- package/dist/actions/definition/configure-plugin.action.d.ts.map +1 -1
- package/dist/actions/definition/configure-plugin.action.js +84 -19
- package/dist/actions/definition/configure-plugin.action.js.map +1 -1
- package/dist/actions/definition/disable-plugin.action.d.ts.map +1 -1
- package/dist/actions/definition/disable-plugin.action.js +14 -1
- package/dist/actions/definition/disable-plugin.action.js.map +1 -1
- package/dist/actions/definition/draft-session.d.ts +3 -0
- package/dist/actions/definition/draft-session.d.ts.map +1 -1
- package/dist/actions/definition/draft-session.js +2 -0
- package/dist/actions/definition/draft-session.js.map +1 -1
- package/dist/actions/definition/find-plugin-by-key.d.ts +6 -0
- package/dist/actions/definition/find-plugin-by-key.d.ts.map +1 -0
- package/dist/actions/definition/find-plugin-by-key.js +15 -0
- package/dist/actions/definition/find-plugin-by-key.js.map +1 -0
- package/dist/actions/definition/get-entity-schema.action.d.ts.map +1 -1
- package/dist/actions/definition/get-entity-schema.action.js +2 -6
- package/dist/actions/definition/get-entity-schema.action.js.map +1 -1
- package/dist/actions/definition/get-plugin-info.action.d.ts +21 -0
- package/dist/actions/definition/get-plugin-info.action.d.ts.map +1 -0
- package/dist/actions/definition/get-plugin-info.action.js +118 -0
- package/dist/actions/definition/get-plugin-info.action.js.map +1 -0
- package/dist/actions/definition/index.d.ts +1 -0
- package/dist/actions/definition/index.d.ts.map +1 -1
- package/dist/actions/definition/index.js +1 -0
- package/dist/actions/definition/index.js.map +1 -1
- package/dist/actions/definition/schema-to-type-string.d.ts +11 -0
- package/dist/actions/definition/schema-to-type-string.d.ts.map +1 -0
- package/dist/actions/definition/schema-to-type-string.js +20 -0
- package/dist/actions/definition/schema-to-type-string.js.map +1 -0
- package/dist/actions/definition/stage-update-entity.action.d.ts.map +1 -1
- package/dist/actions/definition/stage-update-entity.action.js +2 -2
- package/dist/actions/definition/stage-update-entity.action.js.map +1 -1
- package/dist/actions/definition/validate-draft.d.ts +6 -5
- package/dist/actions/definition/validate-draft.d.ts.map +1 -1
- package/dist/actions/definition/validate-draft.js +12 -8
- package/dist/actions/definition/validate-draft.js.map +1 -1
- package/dist/actions/diff/diff-project.action.d.ts.map +1 -1
- package/dist/actions/diff/diff-project.action.js +10 -12
- package/dist/actions/diff/diff-project.action.js.map +1 -1
- package/dist/actions/registry.d.ts +36 -0
- package/dist/actions/registry.d.ts.map +1 -1
- package/dist/actions/registry.js +2 -1
- package/dist/actions/registry.js.map +1 -1
- package/dist/actions/sync/sync-all-projects.action.d.ts.map +1 -1
- package/dist/actions/sync/sync-all-projects.action.js +7 -0
- package/dist/actions/sync/sync-all-projects.action.js.map +1 -1
- package/dist/actions/sync/sync-project.action.d.ts.map +1 -1
- package/dist/actions/sync/sync-project.action.js +4 -0
- package/dist/actions/sync/sync-project.action.js.map +1 -1
- package/dist/actions/utils/run-in-worker.js.map +1 -1
- package/dist/actions/utils/trpc.js +1 -1
- package/dist/actions/utils/trpc.js.map +1 -1
- package/dist/compiler/backend/authorizer-compiler.d.ts +13 -8
- package/dist/compiler/backend/authorizer-compiler.d.ts.map +1 -1
- package/dist/compiler/backend/authorizer-compiler.js +183 -39
- package/dist/compiler/backend/authorizer-compiler.js.map +1 -1
- package/dist/compiler/backend/authorizer-expression-codegen-utils.d.ts +23 -0
- package/dist/compiler/backend/authorizer-expression-codegen-utils.d.ts.map +1 -0
- package/dist/compiler/backend/authorizer-expression-codegen-utils.js +36 -0
- package/dist/compiler/backend/authorizer-expression-codegen-utils.js.map +1 -0
- package/dist/compiler/backend/graphql.d.ts.map +1 -1
- package/dist/compiler/backend/graphql.js +1 -0
- package/dist/compiler/backend/graphql.js.map +1 -1
- package/dist/compiler/backend/query-filter-compiler.d.ts +0 -6
- package/dist/compiler/backend/query-filter-compiler.d.ts.map +1 -1
- package/dist/compiler/backend/query-filter-compiler.js +54 -29
- package/dist/compiler/backend/query-filter-compiler.js.map +1 -1
- package/dist/compiler/compile-packages.d.ts +2 -2
- package/dist/compiler/compile-packages.js +3 -3
- package/dist/compiler/compile-packages.js.map +1 -1
- package/dist/compiler/root/root-package-compiler.d.ts.map +1 -1
- package/dist/compiler/root/root-package-compiler.js +14 -5
- package/dist/compiler/root/root-package-compiler.js.map +1 -1
- package/dist/compiler/web/web-compiler.d.ts.map +1 -1
- package/dist/compiler/web/web-compiler.js +6 -2
- package/dist/compiler/web/web-compiler.js.map +1 -1
- package/dist/core-modules/index.d.ts.map +1 -1
- package/dist/core-modules/index.js +14 -10
- package/dist/core-modules/index.js.map +1 -1
- package/dist/dev-server/auth-plugin.d.ts.map +1 -1
- package/dist/dev-server/auth-plugin.js +2 -1
- package/dist/dev-server/auth-plugin.js.map +1 -1
- package/dist/diff/formatters.d.ts +16 -7
- package/dist/diff/formatters.d.ts.map +1 -1
- package/dist/diff/formatters.js +63 -68
- package/dist/diff/formatters.js.map +1 -1
- package/dist/fastify-plugins/graceful-shutdown.js +1 -1
- package/dist/service/builder-service.js +1 -1
- package/dist/service/builder-service.js.map +1 -1
- package/dist/sync/sync-metadata-service.d.ts.map +1 -1
- package/dist/sync/sync-metadata-service.js +2 -1
- package/dist/sync/sync-metadata-service.js.map +1 -1
- package/dist/template-extractor/delete-template.js +1 -1
- package/dist/template-extractor/delete-template.js.map +1 -1
- package/dist/templates/utils/extractor-config.js +1 -1
- package/package.json +11 -11
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { prismaModelAuthorizerGenerator } from '@baseplate-dev/fastify-generators';
|
|
2
|
-
import { ModelUtils, parseAuthorizerExpression, } from '@baseplate-dev/project-builder-lib';
|
|
3
|
-
import { lowercaseFirstChar
|
|
2
|
+
import { ModelUtils, parseAuthorizerExpression, visitAuthorizerExpression, } from '@baseplate-dev/project-builder-lib';
|
|
3
|
+
import { lowercaseFirstChar } from '@baseplate-dev/utils';
|
|
4
|
+
import { generateFieldRefOrLiteralCode } from './authorizer-expression-codegen-utils.js';
|
|
4
5
|
/**
|
|
5
|
-
*
|
|
6
|
+
* Build a visitor that generates TypeScript boolean-check code from
|
|
7
|
+
* authorizer expression AST nodes.
|
|
6
8
|
*
|
|
7
9
|
* Transforms the implicit-context DSL into explicit context code:
|
|
8
10
|
* - `model.field` stays as `model.field`
|
|
@@ -12,39 +14,47 @@ import { lowercaseFirstChar, quot } from '@baseplate-dev/utils';
|
|
|
12
14
|
* - `hasRole(model.relation, 'role')` becomes `await foreignAuthorizer.hasRoleById(ctx, model.fkField, 'role')`
|
|
13
15
|
* - `A || B` becomes `(A) || (B)`
|
|
14
16
|
*/
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
const left =
|
|
19
|
-
const right =
|
|
17
|
+
function createAuthorizerCodeVisitor(codeContext) {
|
|
18
|
+
return {
|
|
19
|
+
fieldComparison(node) {
|
|
20
|
+
const left = generateFieldRefOrLiteralCode(node.left);
|
|
21
|
+
const right = generateFieldRefOrLiteralCode(node.right);
|
|
20
22
|
return `${left} ${node.operator} ${right}`;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
+
},
|
|
24
|
+
hasRole(node) {
|
|
23
25
|
return `ctx.auth.hasRole('${node.role}')`;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
+
},
|
|
27
|
+
hasSomeRole(node) {
|
|
26
28
|
const roles = node.roles.map((r) => `'${r}'`).join(', ');
|
|
27
29
|
return `ctx.auth.hasSomeRole([${roles}])`;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
+
},
|
|
31
|
+
nestedHasRole(node) {
|
|
30
32
|
const resolved = getResolvedRelation(codeContext, node.relationName);
|
|
31
33
|
return `await ${resolved.foreignAuthorizerVar}.hasRoleById(ctx, model.${resolved.localFkFieldName}, '${node.role}')`;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
+
},
|
|
35
|
+
nestedHasSomeRole(node) {
|
|
34
36
|
const resolved = getResolvedRelation(codeContext, node.relationName);
|
|
35
|
-
// Generate individual hasRoleById calls joined with ||
|
|
36
37
|
const checks = node.roles.map((role) => `await ${resolved.foreignAuthorizerVar}.hasRoleById(ctx, model.${resolved.localFkFieldName}, '${role}')`);
|
|
37
38
|
return checks.length === 1 ? checks[0] : `(${checks.join(' || ')})`;
|
|
38
|
-
}
|
|
39
|
-
|
|
39
|
+
},
|
|
40
|
+
relationFilter(node) {
|
|
41
|
+
return generateRelationFilterCode(node, codeContext);
|
|
42
|
+
},
|
|
43
|
+
isAuthenticated() {
|
|
40
44
|
return 'ctx.auth.isAuthenticated';
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
const left =
|
|
44
|
-
const right =
|
|
45
|
+
},
|
|
46
|
+
binaryLogical(node, _ctx, visit) {
|
|
47
|
+
const left = visit(node.left);
|
|
48
|
+
const right = visit(node.right);
|
|
45
49
|
return `(${left}) ${node.operator} (${right})`;
|
|
46
|
-
}
|
|
47
|
-
}
|
|
50
|
+
},
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Generate TypeScript code from an authorizer expression AST node.
|
|
55
|
+
*/
|
|
56
|
+
export function generateAuthorizerExpressionCode(node, codeContext) {
|
|
57
|
+
return visitAuthorizerExpression(node, createAuthorizerCodeVisitor(codeContext));
|
|
48
58
|
}
|
|
49
59
|
/**
|
|
50
60
|
* Get the resolved relation info from the code context, throwing if not found.
|
|
@@ -59,19 +69,57 @@ function getResolvedRelation(codeContext, relationName) {
|
|
|
59
69
|
}
|
|
60
70
|
return resolved;
|
|
61
71
|
}
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
72
|
+
/**
|
|
73
|
+
* Generate code for a relation filter expression (exists/all).
|
|
74
|
+
*
|
|
75
|
+
* For `exists` (some): checks if any related record matches conditions.
|
|
76
|
+
* For `all` (every): checks if no related record fails conditions.
|
|
77
|
+
*/
|
|
78
|
+
function generateRelationFilterCode(node, codeContext) {
|
|
79
|
+
const resolved = getResolvedRelationFilter(codeContext, node.relationName);
|
|
80
|
+
// Build the condition entries
|
|
81
|
+
const conditionEntries = node.conditions.map((condition) => {
|
|
82
|
+
const valueCode = generateFieldRefOrLiteralCode(condition.value);
|
|
83
|
+
return `${condition.field}: ${valueCode}`;
|
|
84
|
+
});
|
|
85
|
+
// Check if any condition references an auth field (needs null guard)
|
|
86
|
+
const authFieldConditions = node.conditions.filter((c) => c.value.type === 'fieldRef' && c.value.source === 'auth');
|
|
87
|
+
const fkCondition = `${resolved.foreignKeyFieldName}: model.${resolved.localFieldName}`;
|
|
88
|
+
const allConditions = [fkCondition, ...conditionEntries].join(', ');
|
|
89
|
+
if (node.operator === 'some') {
|
|
90
|
+
const countExpr = `(await prisma.${resolved.prismaAccessor}.count({ where: { ${allConditions} } })) > 0`;
|
|
91
|
+
if (authFieldConditions.length > 0) {
|
|
92
|
+
// Null guard: if any auth field is null, the filter can't match
|
|
93
|
+
const nullChecks = authFieldConditions
|
|
94
|
+
.map((c) => `${generateFieldRefOrLiteralCode(c.value)} != null`)
|
|
95
|
+
.join(' && ');
|
|
96
|
+
return `(${nullChecks} ? ${countExpr} : false)`;
|
|
67
97
|
}
|
|
68
|
-
|
|
69
|
-
|
|
98
|
+
return countExpr;
|
|
99
|
+
}
|
|
100
|
+
// operator === 'every': count records that DON'T match, expect 0
|
|
101
|
+
const notConditions = conditionEntries.join(', ');
|
|
102
|
+
const everyExpr = `(await prisma.${resolved.prismaAccessor}.count({ where: { ${fkCondition}, NOT: { ${notConditions} } } })) === 0`;
|
|
103
|
+
if (authFieldConditions.length > 0) {
|
|
104
|
+
const nullChecks = authFieldConditions
|
|
105
|
+
.map((c) => `${generateFieldRefOrLiteralCode(c.value)} != null`)
|
|
106
|
+
.join(' && ');
|
|
107
|
+
return `(${nullChecks} ? ${everyExpr} : false)`;
|
|
108
|
+
}
|
|
109
|
+
return everyExpr;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Get the resolved relation filter info from the code context, throwing if not found.
|
|
113
|
+
*/
|
|
114
|
+
function getResolvedRelationFilter(codeContext, relationName) {
|
|
115
|
+
if (!codeContext) {
|
|
116
|
+
throw new Error(`Relation filter expression references relation '${relationName}' but no code context was provided`);
|
|
70
117
|
}
|
|
71
|
-
|
|
72
|
-
|
|
118
|
+
const resolved = codeContext.resolvedRelationFilters.get(relationName);
|
|
119
|
+
if (!resolved) {
|
|
120
|
+
throw new Error(`Relation filter expression references relation '${relationName}' which was not resolved`);
|
|
73
121
|
}
|
|
74
|
-
return
|
|
122
|
+
return resolved;
|
|
75
123
|
}
|
|
76
124
|
/**
|
|
77
125
|
* Resolve relation info for nested authorizer expressions on a model.
|
|
@@ -108,6 +156,93 @@ function resolveNestedRelations(appBuilder, model, nestedRoleRefs) {
|
|
|
108
156
|
}
|
|
109
157
|
return { resolvedRelations, foreignModelNames };
|
|
110
158
|
}
|
|
159
|
+
/**
|
|
160
|
+
* Resolve a local relation for relation filter (FK is on this model).
|
|
161
|
+
* localRef = field on this model, foreignRef = field on the foreign model.
|
|
162
|
+
*/
|
|
163
|
+
function resolveLocalRelationFilter(appBuilder, model, relation) {
|
|
164
|
+
if (relation.references.length !== 1) {
|
|
165
|
+
throw new Error(`Relation '${relation.name}' on model '${model.name}' has ${relation.references.length} FK references. Relation filters only support single-key relations.`);
|
|
166
|
+
}
|
|
167
|
+
const foreignKeyFieldName = appBuilder.nameFromId(relation.references[0].foreignRef);
|
|
168
|
+
if (!foreignKeyFieldName) {
|
|
169
|
+
throw new Error(`Could not resolve foreign FK field for relation '${relation.name}' on model '${model.name}'`);
|
|
170
|
+
}
|
|
171
|
+
const localFieldName = appBuilder.nameFromId(relation.references[0].localRef);
|
|
172
|
+
if (!localFieldName) {
|
|
173
|
+
throw new Error(`Could not resolve local field for relation '${relation.name}' on model '${model.name}'`);
|
|
174
|
+
}
|
|
175
|
+
const foreignModel = ModelUtils.byIdOrThrow(appBuilder.projectDefinition, relation.modelRef);
|
|
176
|
+
return {
|
|
177
|
+
prismaAccessor: lowercaseFirstChar(foreignModel.name),
|
|
178
|
+
foreignKeyFieldName,
|
|
179
|
+
localFieldName,
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Resolve a foreign/reverse relation for relation filter (FK is on the other model).
|
|
184
|
+
* The relation is defined on otherModel, so:
|
|
185
|
+
* - localRef = FK field on otherModel (becomes foreignKeyFieldName)
|
|
186
|
+
* - foreignRef = join field on current model (becomes localFieldName)
|
|
187
|
+
*/
|
|
188
|
+
function resolveForeignRelationFilter(appBuilder, otherModel, relation) {
|
|
189
|
+
if (relation.references.length !== 1) {
|
|
190
|
+
throw new Error(`Foreign relation '${relation.foreignRelationName}' (via ${otherModel.name}.${relation.name}) has ${relation.references.length} FK references. Relation filters only support single-key relations.`);
|
|
191
|
+
}
|
|
192
|
+
// For foreign relations, the mapping is inverted:
|
|
193
|
+
// localRef on the relation = FK on the other model (e.g., blogId on BlogPost)
|
|
194
|
+
// foreignRef on the relation = join field on the current model (e.g., id on Blog)
|
|
195
|
+
const foreignKeyFieldName = appBuilder.nameFromId(relation.references[0].localRef);
|
|
196
|
+
if (!foreignKeyFieldName) {
|
|
197
|
+
throw new Error(`Could not resolve FK field for foreign relation '${relation.foreignRelationName}' on model '${otherModel.name}'`);
|
|
198
|
+
}
|
|
199
|
+
const localFieldName = appBuilder.nameFromId(relation.references[0].foreignRef);
|
|
200
|
+
if (!localFieldName) {
|
|
201
|
+
throw new Error(`Could not resolve join field for foreign relation '${relation.foreignRelationName}'`);
|
|
202
|
+
}
|
|
203
|
+
return {
|
|
204
|
+
prismaAccessor: lowercaseFirstChar(otherModel.name),
|
|
205
|
+
foreignKeyFieldName,
|
|
206
|
+
localFieldName,
|
|
207
|
+
};
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Resolve relation info for relation filter expressions (exists/all) on a model.
|
|
211
|
+
*
|
|
212
|
+
* Searches both local relations (FK on this model) and foreign/reverse relations
|
|
213
|
+
* (FK on other models pointing to this model via foreignRelationName).
|
|
214
|
+
*/
|
|
215
|
+
function resolveRelationFilters(appBuilder, model, relationFilterRefs) {
|
|
216
|
+
const resolvedFilters = new Map();
|
|
217
|
+
for (const { relationName } of relationFilterRefs) {
|
|
218
|
+
if (resolvedFilters.has(relationName)) {
|
|
219
|
+
continue;
|
|
220
|
+
}
|
|
221
|
+
// Try local relations first (FK on this model)
|
|
222
|
+
const localRelation = model.model.relations.find((r) => r.name === relationName);
|
|
223
|
+
if (localRelation) {
|
|
224
|
+
// Local relation: localRef is on this model, foreignRef is on the foreign model
|
|
225
|
+
resolvedFilters.set(relationName, resolveLocalRelationFilter(appBuilder, model, localRelation));
|
|
226
|
+
continue;
|
|
227
|
+
}
|
|
228
|
+
// Search foreign/reverse relations: other models that point TO this model
|
|
229
|
+
let found = false;
|
|
230
|
+
for (const otherModel of appBuilder.projectDefinition.models) {
|
|
231
|
+
const foreignRel = otherModel.model.relations.find((r) => r.modelRef === model.id && r.foreignRelationName === relationName);
|
|
232
|
+
if (foreignRel) {
|
|
233
|
+
// Foreign relation: the relation is defined on otherModel
|
|
234
|
+
// localRef = FK field on otherModel, foreignRef = join field on current model
|
|
235
|
+
resolvedFilters.set(relationName, resolveForeignRelationFilter(appBuilder, otherModel, foreignRel));
|
|
236
|
+
found = true;
|
|
237
|
+
break;
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
if (!found) {
|
|
241
|
+
throw new Error(`Relation '${relationName}' not found on model '${model.name}' (checked both local and foreign relations)`);
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
return resolvedFilters;
|
|
245
|
+
}
|
|
111
246
|
/**
|
|
112
247
|
* Build model authorizer generators for all models in a feature
|
|
113
248
|
* that have non-empty authorizer roles.
|
|
@@ -123,11 +258,13 @@ export function buildAuthorizersForFeature(appBuilder, featureId) {
|
|
|
123
258
|
throw new Error(`Model '${model.name}' must have exactly one primary key field to use model authorizer. Found ${primaryKeyFields.length}.`);
|
|
124
259
|
}
|
|
125
260
|
const idFieldName = primaryKeyFields[0].name;
|
|
126
|
-
// Collect all nested role refs across all roles
|
|
261
|
+
// Collect all nested role refs and relation filter refs across all roles
|
|
127
262
|
const allNestedRoleRefs = [];
|
|
263
|
+
const allRelationFilterRefs = [];
|
|
128
264
|
const parsedRoles = authorizer.roles.map((role) => {
|
|
129
265
|
const parsed = parseAuthorizerExpression(role.expression);
|
|
130
266
|
allNestedRoleRefs.push(...parsed.nestedRoleRefs);
|
|
267
|
+
allRelationFilterRefs.push(...parsed.relationFilterRefs);
|
|
131
268
|
return { role, parsed };
|
|
132
269
|
});
|
|
133
270
|
// Resolve relation info if there are nested refs
|
|
@@ -137,17 +274,24 @@ export function buildAuthorizersForFeature(appBuilder, featureId) {
|
|
|
137
274
|
resolvedRelations: new Map(),
|
|
138
275
|
foreignModelNames: [],
|
|
139
276
|
};
|
|
140
|
-
|
|
277
|
+
// Resolve relation filter info if there are relation filter refs
|
|
278
|
+
const resolvedRelationFilters = allRelationFilterRefs.length > 0
|
|
279
|
+
? resolveRelationFilters(appBuilder, model, allRelationFilterRefs)
|
|
280
|
+
: new Map();
|
|
281
|
+
const codeContext = resolvedRelations.size > 0 || resolvedRelationFilters.size > 0
|
|
282
|
+
? { resolvedRelations, resolvedRelationFilters }
|
|
283
|
+
: undefined;
|
|
141
284
|
return prismaModelAuthorizerGenerator({
|
|
142
285
|
modelName: model.name,
|
|
143
286
|
idFieldName,
|
|
144
287
|
foreignAuthorizerModelNames: foreignModelNames,
|
|
145
288
|
roles: parsedRoles.map(({ role, parsed }) => {
|
|
146
|
-
const hasNestedRefs = parsed.nestedRoleRefs.length > 0
|
|
289
|
+
const hasNestedRefs = parsed.nestedRoleRefs.length > 0 ||
|
|
290
|
+
parsed.relationFilterRefs.length > 0;
|
|
147
291
|
const expressionCode = generateAuthorizerExpressionCode(parsed.ast, codeContext);
|
|
148
292
|
let roleCode;
|
|
149
293
|
if (hasNestedRefs) {
|
|
150
|
-
// Nested refs
|
|
294
|
+
// Nested refs and relation filters are async
|
|
151
295
|
roleCode = parsed.requiresModel
|
|
152
296
|
? `async (ctx, model) => ${expressionCode}`
|
|
153
297
|
: `async (ctx) => ${expressionCode}`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authorizer-compiler.js","sourceRoot":"","sources":["../../../src/compiler/backend/authorizer-compiler.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"authorizer-compiler.js","sourceRoot":"","sources":["../../../src/compiler/backend/authorizer-compiler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared utilities for authorizer expression code generation.
|
|
3
|
+
*
|
|
4
|
+
* Used by both the authorizer compiler (boolean checks) and
|
|
5
|
+
* the query filter compiler (Prisma where clauses).
|
|
6
|
+
*/
|
|
7
|
+
import type { FieldRefNode, LiteralValueNode } from '@baseplate-dev/project-builder-lib';
|
|
8
|
+
/**
|
|
9
|
+
* Serialize a literal value as a TypeScript literal string.
|
|
10
|
+
*
|
|
11
|
+
* - Strings are quoted with `quot()`
|
|
12
|
+
* - Numbers and booleans are emitted as-is via `String()`
|
|
13
|
+
*/
|
|
14
|
+
export declare function serializeLiteralValue(value: string | number | boolean): string;
|
|
15
|
+
/**
|
|
16
|
+
* Generate TypeScript code for a field reference or literal value.
|
|
17
|
+
*
|
|
18
|
+
* - `model.field` → `model.field`
|
|
19
|
+
* - auth field → `ctx.auth.field`
|
|
20
|
+
* - literal → serialized value
|
|
21
|
+
*/
|
|
22
|
+
export declare function generateFieldRefOrLiteralCode(node: FieldRefNode | LiteralValueNode): string;
|
|
23
|
+
//# sourceMappingURL=authorizer-expression-codegen-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authorizer-expression-codegen-utils.d.ts","sourceRoot":"","sources":["../../../src/compiler/backend/authorizer-expression-codegen-utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,YAAY,EACZ,gBAAgB,EACjB,MAAM,oCAAoC,CAAC;AAI5C;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAC/B,MAAM,CAKR;AAED;;;;;;GAMG;AACH,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,YAAY,GAAG,gBAAgB,GACpC,MAAM,CAQR"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared utilities for authorizer expression code generation.
|
|
3
|
+
*
|
|
4
|
+
* Used by both the authorizer compiler (boolean checks) and
|
|
5
|
+
* the query filter compiler (Prisma where clauses).
|
|
6
|
+
*/
|
|
7
|
+
import { quot } from '@baseplate-dev/utils';
|
|
8
|
+
/**
|
|
9
|
+
* Serialize a literal value as a TypeScript literal string.
|
|
10
|
+
*
|
|
11
|
+
* - Strings are quoted with `quot()`
|
|
12
|
+
* - Numbers and booleans are emitted as-is via `String()`
|
|
13
|
+
*/
|
|
14
|
+
export function serializeLiteralValue(value) {
|
|
15
|
+
if (typeof value === 'string') {
|
|
16
|
+
return quot(value);
|
|
17
|
+
}
|
|
18
|
+
return String(value);
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Generate TypeScript code for a field reference or literal value.
|
|
22
|
+
*
|
|
23
|
+
* - `model.field` → `model.field`
|
|
24
|
+
* - auth field → `ctx.auth.field`
|
|
25
|
+
* - literal → serialized value
|
|
26
|
+
*/
|
|
27
|
+
export function generateFieldRefOrLiteralCode(node) {
|
|
28
|
+
if (node.type === 'literalValue') {
|
|
29
|
+
return serializeLiteralValue(node.value);
|
|
30
|
+
}
|
|
31
|
+
if (node.source === 'model') {
|
|
32
|
+
return `model.${node.field}`;
|
|
33
|
+
}
|
|
34
|
+
return `ctx.auth.${node.field}`;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=authorizer-expression-codegen-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authorizer-expression-codegen-utils.js","sourceRoot":"","sources":["../../../src/compiler/backend/authorizer-expression-codegen-utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAE5C;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CACnC,KAAgC;IAEhC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,6BAA6B,CAC3C,IAAqC;IAErC,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;QACjC,OAAO,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;QAC5B,OAAO,SAAS,IAAI,CAAC,KAAK,EAAE,CAAC;IAC/B,CAAC;IACD,OAAO,YAAY,IAAI,CAAC,KAAK,EAAE,CAAC;AAClC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graphql.d.ts","sourceRoot":"","sources":["../../../src/compiler/backend/graphql.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAkB3D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"graphql.d.ts","sourceRoot":"","sources":["../../../src/compiler/backend/graphql.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAkB3D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AA+TtE,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,sBAAsB,EAClC,SAAS,EAAE,MAAM,GAChB,eAAe,EAAE,CAkBnB"}
|
|
@@ -217,6 +217,7 @@ function buildEnumFileForModel(enumFileId, enums) {
|
|
|
217
217
|
children: {
|
|
218
218
|
enums: enums.map((enumConfig) => pothosPrismaEnumGenerator({
|
|
219
219
|
enumName: enumConfig.name,
|
|
220
|
+
valueDescriptions: Object.fromEntries(enumConfig.values.flatMap((v) => v.description ? [[v.name, v.description]] : [])),
|
|
220
221
|
})),
|
|
221
222
|
},
|
|
222
223
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graphql.js","sourceRoot":"","sources":["../../../src/compiler/backend/graphql.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"graphql.js","sourceRoot":"","sources":["../../../src/compiler/backend/graphql.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,12 +22,6 @@ interface QueryFilterCodeContext {
|
|
|
22
22
|
/**
|
|
23
23
|
* Generate TypeScript code from an authorizer expression AST node,
|
|
24
24
|
* producing a Prisma where clause instead of a boolean check.
|
|
25
|
-
*
|
|
26
|
-
* - `model.field === userId` → `{ field: ctx.auth.userId }`
|
|
27
|
-
* - `hasRole('admin')` → `ctx.auth.hasRole('admin')` (boolean → true/false)
|
|
28
|
-
* - `hasSomeRole([...])` → `ctx.auth.hasSomeRole([...])` (boolean)
|
|
29
|
-
* - `A || B` → `queryHelpers.or([A, B])`
|
|
30
|
-
* - `A && B` → `queryHelpers.and([A, B])`
|
|
31
25
|
*/
|
|
32
26
|
export declare function generateQueryFilterExpressionCode(node: AuthorizerExpressionNode, codeContext?: QueryFilterCodeContext): string;
|
|
33
27
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-filter-compiler.d.ts","sourceRoot":"","sources":["../../../src/compiler/backend/query-filter-compiler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,
|
|
1
|
+
{"version":3,"file":"query-filter-compiler.d.ts","sourceRoot":"","sources":["../../../src/compiler/backend/query-filter-compiler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EAKzB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAU3D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAOtE;;GAEG;AACH,UAAU,yBAAyB;IACjC,wDAAwD;IACxD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gDAAgD;IAChD,gBAAgB,EAAE,MAAM,CAAC;IACzB,2EAA2E;IAC3E,qBAAqB,EAAE,MAAM,CAAC;CAC/B;AAED;;GAEG;AACH,UAAU,sBAAsB;IAC9B,+DAA+D;IAC/D,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAC;CACzD;AAyDD;;;GAGG;AACH,wBAAgB,iCAAiC,CAC/C,IAAI,EAAE,wBAAwB,EAC9B,WAAW,CAAC,EAAE,sBAAsB,GACnC,MAAM,CAKR;AAoQD;;;;GAIG;AACH,wBAAgB,2BAA2B,CACzC,UAAU,EAAE,sBAAsB,EAClC,SAAS,EAAE,MAAM,GAChB,eAAe,EAAE,CAanB"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { prismaModelQueryFilterGenerator } from '@baseplate-dev/fastify-generators';
|
|
2
|
-
import { ModelUtils, parseAuthorizerExpression, } from '@baseplate-dev/project-builder-lib';
|
|
3
|
-
import { lowercaseFirstChar
|
|
2
|
+
import { ModelUtils, parseAuthorizerExpression, visitAuthorizerExpression, } from '@baseplate-dev/project-builder-lib';
|
|
3
|
+
import { lowercaseFirstChar } from '@baseplate-dev/utils';
|
|
4
|
+
import { generateFieldRefOrLiteralCode, serializeLiteralValue, } from './authorizer-expression-codegen-utils.js';
|
|
4
5
|
/**
|
|
5
|
-
*
|
|
6
|
-
*
|
|
6
|
+
* Build a visitor that generates Prisma where clause code from
|
|
7
|
+
* authorizer expression AST nodes.
|
|
7
8
|
*
|
|
8
9
|
* - `model.field === userId` → `{ field: ctx.auth.userId }`
|
|
9
10
|
* - `hasRole('admin')` → `ctx.auth.hasRole('admin')` (boolean → true/false)
|
|
@@ -11,42 +12,50 @@ import { lowercaseFirstChar, quot } from '@baseplate-dev/utils';
|
|
|
11
12
|
* - `A || B` → `queryHelpers.or([A, B])`
|
|
12
13
|
* - `A && B` → `queryHelpers.and([A, B])`
|
|
13
14
|
*/
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
function createQueryFilterCodeVisitor(codeContext) {
|
|
16
|
+
return {
|
|
17
|
+
fieldComparison(node) {
|
|
17
18
|
return generateFieldComparisonWhereCode(node.left, node.right, node.operator);
|
|
18
|
-
}
|
|
19
|
-
|
|
19
|
+
},
|
|
20
|
+
hasRole(node) {
|
|
20
21
|
return `ctx.auth.hasRole('${node.role}')`;
|
|
21
|
-
}
|
|
22
|
-
|
|
22
|
+
},
|
|
23
|
+
hasSomeRole(node) {
|
|
23
24
|
const roles = node.roles.map((r) => `'${r}'`).join(', ');
|
|
24
25
|
return `ctx.auth.hasSomeRole([${roles}])`;
|
|
25
|
-
}
|
|
26
|
-
|
|
26
|
+
},
|
|
27
|
+
isAuthenticated() {
|
|
27
28
|
return 'ctx.auth.isAuthenticated';
|
|
28
|
-
}
|
|
29
|
-
|
|
29
|
+
},
|
|
30
|
+
nestedHasRole(node) {
|
|
30
31
|
const resolved = getResolvedQueryFilter(codeContext, node.relationName);
|
|
31
32
|
const roles = `'${node.role}'`;
|
|
32
33
|
return `${resolved.foreignQueryFilterVar}.buildNestedWhere(ctx, '${resolved.relationFieldName}', [${roles}])`;
|
|
33
|
-
}
|
|
34
|
-
|
|
34
|
+
},
|
|
35
|
+
nestedHasSomeRole(node) {
|
|
35
36
|
const resolved = getResolvedQueryFilter(codeContext, node.relationName);
|
|
36
37
|
const roles = node.roles.map((r) => `'${r}'`).join(', ');
|
|
37
38
|
return `${resolved.foreignQueryFilterVar}.buildNestedWhere(ctx, '${resolved.relationFieldName}', [${roles}])`;
|
|
38
|
-
}
|
|
39
|
-
|
|
39
|
+
},
|
|
40
|
+
relationFilter(node) {
|
|
41
|
+
return generateRelationFilterWhereCode(node);
|
|
42
|
+
},
|
|
43
|
+
binaryLogical(node, _ctx, visit) {
|
|
40
44
|
const helper = node.operator === '||' ? 'or' : 'and';
|
|
41
45
|
// Flatten consecutive same-operator chains so A && B && C becomes
|
|
42
46
|
// queryHelpers.and([A, B, C]) instead of queryHelpers.and([queryHelpers.and([A, B]), C])
|
|
43
47
|
const operands = collectLogicalOperands(node, node.operator);
|
|
44
|
-
const operandCode = operands
|
|
45
|
-
.map((operand) => generateQueryFilterExpressionCode(operand, codeContext))
|
|
46
|
-
.join(', ');
|
|
48
|
+
const operandCode = operands.map((operand) => visit(operand)).join(', ');
|
|
47
49
|
return `queryHelpers.${helper}([${operandCode}])`;
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
+
},
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Generate TypeScript code from an authorizer expression AST node,
|
|
55
|
+
* producing a Prisma where clause instead of a boolean check.
|
|
56
|
+
*/
|
|
57
|
+
export function generateQueryFilterExpressionCode(node, codeContext) {
|
|
58
|
+
return visitAuthorizerExpression(node, createQueryFilterCodeVisitor(codeContext));
|
|
50
59
|
}
|
|
51
60
|
/**
|
|
52
61
|
* Collect all operands from a chain of the same logical operator.
|
|
@@ -79,13 +88,29 @@ function getResolvedQueryFilter(codeContext, relationName) {
|
|
|
79
88
|
return resolved;
|
|
80
89
|
}
|
|
81
90
|
/**
|
|
82
|
-
*
|
|
91
|
+
* Generate a Prisma where clause for a relation filter expression (exists/all).
|
|
92
|
+
*
|
|
93
|
+
* For `exists` (some): `{ relationName: { some: { ...conditions } } }`
|
|
94
|
+
* For `all` (every): `{ relationName: { every: { ...conditions } } }`
|
|
83
95
|
*/
|
|
84
|
-
function
|
|
85
|
-
|
|
86
|
-
|
|
96
|
+
function generateRelationFilterWhereCode(node) {
|
|
97
|
+
const prismaOperator = node.operator === 'some' ? 'some' : 'every';
|
|
98
|
+
// Build condition entries
|
|
99
|
+
const conditionEntries = node.conditions.map((condition) => {
|
|
100
|
+
const valueCode = generateFieldRefOrLiteralCode(condition.value);
|
|
101
|
+
return `${condition.field}: ${valueCode}`;
|
|
102
|
+
});
|
|
103
|
+
const conditionsCode = conditionEntries.join(', ');
|
|
104
|
+
const whereClause = `{ ${node.relationName}: { ${prismaOperator}: { ${conditionsCode} } } }`;
|
|
105
|
+
// Check if any condition references an auth field (needs null guard)
|
|
106
|
+
const authFieldConditions = node.conditions.filter((c) => c.value.type === 'fieldRef' && c.value.source === 'auth');
|
|
107
|
+
if (authFieldConditions.length > 0) {
|
|
108
|
+
const nullChecks = authFieldConditions
|
|
109
|
+
.map((c) => `${generateFieldRefOrLiteralCode(c.value)} != null`)
|
|
110
|
+
.join(' && ');
|
|
111
|
+
return `(${nullChecks} ? ${whereClause} : false)`;
|
|
87
112
|
}
|
|
88
|
-
return
|
|
113
|
+
return whereClause;
|
|
89
114
|
}
|
|
90
115
|
/**
|
|
91
116
|
* Generate a Prisma where clause from a field comparison.
|