@webda/graphql 4.0.0-beta.3 → 4.0.0-beta.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/lib/graphql.service.d.ts +40 -1
- package/lib/graphql.service.d.ts.map +1 -1
- package/lib/graphql.service.js +115 -70
- package/lib/graphql.service.js.map +1 -1
- package/lib/mutations.d.ts +53 -0
- package/lib/mutations.d.ts.map +1 -0
- package/lib/mutations.js +137 -0
- package/lib/mutations.js.map +1 -0
- package/package.json +10 -6
- package/webda.module.json +0 -4
package/lib/graphql.service.d.ts
CHANGED
|
@@ -106,9 +106,32 @@ export declare class GraphQLService<T extends GraphQLParameters = GraphQLParamet
|
|
|
106
106
|
* @param defaultName - fallback name for generated types
|
|
107
107
|
* @param webdaGraph - model relation graph (links, maps, queries, parent)
|
|
108
108
|
* @param input - if true, generate input types (skip readonly fields, skip relation resolvers)
|
|
109
|
+
* @param writable - `_`-prefixed attributes the model accepts from clients (input types only)
|
|
109
110
|
* @returns map of field names to GraphQL field configs
|
|
110
111
|
*/
|
|
111
|
-
getGraphQLFieldsFromSchema(schema: JSONSchema7, defaultName: string, webdaGraph?: ModelGraph, input?: boolean): any;
|
|
112
|
+
getGraphQLFieldsFromSchema(schema: JSONSchema7, defaultName: string, webdaGraph?: ModelGraph, input?: boolean, writable?: string[]): any;
|
|
113
|
+
/**
|
|
114
|
+
* Parse the `filter` argument of a links or maps field: WebdaQL evaluated on the linked objects, which may not read
|
|
115
|
+
* private (`__`) fields
|
|
116
|
+
* @param filter - the client filter
|
|
117
|
+
* @returns the validator, undefined without filter
|
|
118
|
+
* @throws GraphQLError BAD_USER_INPUT for an invalid filter or one reading private fields
|
|
119
|
+
*/
|
|
120
|
+
parseFilter(filter?: string): WebdaQL.PartialValidator | undefined;
|
|
121
|
+
/**
|
|
122
|
+
* {@link loadModelInstance} for an element of a list (links, maps): an element the caller may not read, or that
|
|
123
|
+
* no longer exists, is dropped (null) instead of failing the whole list, like a filtered query
|
|
124
|
+
* @param knownFieldsOrId - UUID string or object with known field values
|
|
125
|
+
* @param model - model class to load from
|
|
126
|
+
* @param context - web context for permission checks
|
|
127
|
+
* @param info - GraphQL field node describing the selection set
|
|
128
|
+
* @param filter - optional WebdaQL filter to apply to the result
|
|
129
|
+
* @returns the model instance, or null
|
|
130
|
+
*/
|
|
131
|
+
loadListedInstance(knownFieldsOrId: string | {
|
|
132
|
+
uuid: string;
|
|
133
|
+
[key: string]: any;
|
|
134
|
+
}, model: ModelDefinition<any>, context: WebContext, info?: FieldNode, filter?: WebdaQL.PartialValidator): Promise<any>;
|
|
112
135
|
/**
|
|
113
136
|
* Load a model instance, optimizing to skip store reads when all requested fields are already known
|
|
114
137
|
* @param knownFieldsOrId - UUID string or object with known field values
|
|
@@ -143,6 +166,22 @@ export declare class GraphQLService<T extends GraphQLParameters = GraphQLParamet
|
|
|
143
166
|
* @returns array of event name strings the client subscribed to
|
|
144
167
|
*/
|
|
145
168
|
getSubscribedEvents(info: GraphQLResolveInfo): string[];
|
|
169
|
+
/**
|
|
170
|
+
* Query a 1:n relation (ModelRelated) as the caller: the relation condition is merged into the client query, then
|
|
171
|
+
* filtered like any model query (permission query, canAct "get")
|
|
172
|
+
* @param related - the ModelRelated attribute of the source object
|
|
173
|
+
* @param related.getQuery - merges the relation condition into a query
|
|
174
|
+
* @param model - the target model class
|
|
175
|
+
* @param query - the client query
|
|
176
|
+
* @param context - the caller context
|
|
177
|
+
* @returns the readable related objects
|
|
178
|
+
*/
|
|
179
|
+
queryRelated(related: {
|
|
180
|
+
getQuery(query: string): string;
|
|
181
|
+
}, model: any, query: string, context: any): Promise<{
|
|
182
|
+
results: any[];
|
|
183
|
+
continuationToken?: string;
|
|
184
|
+
}>;
|
|
146
185
|
/**
|
|
147
186
|
* Create an async iterator that streams query results, updating when store events occur
|
|
148
187
|
* @param model - model class to query
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graphql.service.d.ts","sourceRoot":"","sources":["../src/graphql.service.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EAEX,aAAa,EACb,uBAAuB,EACvB,eAAe,EAEf,UAAU,
|
|
1
|
+
{"version":3,"file":"graphql.service.d.ts","sourceRoot":"","sources":["../src/graphql.service.ts"],"names":[],"mappings":"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"}
|
package/lib/graphql.service.js
CHANGED
|
@@ -32,7 +32,7 @@ var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn,
|
|
|
32
32
|
if (target) Object.defineProperty(target, contextIn.name, descriptor);
|
|
33
33
|
done = true;
|
|
34
34
|
};
|
|
35
|
-
import { DomainService, DomainServiceParameters, Route, WebdaError, useApplication, useCore, useCoreEvents, useModelMetadata, useRepository } from "@webda/core";
|
|
35
|
+
import { DomainService, DomainServiceParameters, Route, WebdaError, useApplication, useCore, useCoreEvents, useModelMetadata, useRepository, isModelActionAllowed, queryModelWithPermissions, getClientWritableAttributes, assertNoPrivateFields } from "@webda/core";
|
|
36
36
|
import * as WebdaQL from "@webda/ql";
|
|
37
37
|
import { EventIterator, MergedIterator } from "@webda/runtime";
|
|
38
38
|
import { GraphQLBoolean, GraphQLError, GraphQLInputObjectType, GraphQLList, GraphQLObjectType, GraphQLSchema, GraphQLString, printSchema } from "graphql";
|
|
@@ -43,6 +43,7 @@ import { WebSocketServer } from "ws";
|
|
|
43
43
|
import { AnyScalarType } from "./types/any.js";
|
|
44
44
|
import { DateScalar } from "./types/date.js";
|
|
45
45
|
import { GraphQLLong } from "./types/long.js";
|
|
46
|
+
import { createFromInput, isInputAttribute, loadForAction, updateFromInput } from "./mutations.js";
|
|
46
47
|
const GraphIQL = `
|
|
47
48
|
<!doctype html>
|
|
48
49
|
<html lang="en">
|
|
@@ -228,6 +229,10 @@ let GraphQLService = (() => {
|
|
|
228
229
|
return { type: AnyScalarType, description: "Map" };
|
|
229
230
|
}
|
|
230
231
|
for (const i in schema.properties) {
|
|
232
|
+
// Private (`__`) fields are server-only, at any depth
|
|
233
|
+
if (i.startsWith("__")) {
|
|
234
|
+
continue;
|
|
235
|
+
}
|
|
231
236
|
const res = this.getGraphQLSchemaFromSchema(this.getJsonSchemaDefinition(schema.properties[i], schema.definitions), `${schema.title || defaultName}_${i}`, input);
|
|
232
237
|
if (!res)
|
|
233
238
|
continue;
|
|
@@ -271,9 +276,10 @@ let GraphQLService = (() => {
|
|
|
271
276
|
* @param defaultName - fallback name for generated types
|
|
272
277
|
* @param webdaGraph - model relation graph (links, maps, queries, parent)
|
|
273
278
|
* @param input - if true, generate input types (skip readonly fields, skip relation resolvers)
|
|
279
|
+
* @param writable - `_`-prefixed attributes the model accepts from clients (input types only)
|
|
274
280
|
* @returns map of field names to GraphQL field configs
|
|
275
281
|
*/
|
|
276
|
-
getGraphQLFieldsFromSchema(schema, defaultName, webdaGraph, input) {
|
|
282
|
+
getGraphQLFieldsFromSchema(schema, defaultName, webdaGraph, input, writable = []) {
|
|
277
283
|
const fields = {};
|
|
278
284
|
const skipFields = [];
|
|
279
285
|
const attributeFilter = (skip = false) => info => {
|
|
@@ -316,7 +322,8 @@ let GraphQLService = (() => {
|
|
|
316
322
|
},
|
|
317
323
|
resolve: async (source, args, context, info) => {
|
|
318
324
|
const src = link.type === "LINKS_MAP" ? Object.values(source[link.attribute]) : source[link.attribute];
|
|
319
|
-
|
|
325
|
+
const filter = this.parseFilter(args.filter);
|
|
326
|
+
return (await Promise.all((src || []).map(i => this.loadListedInstance(i, this.app.getModel(link.model), context, info.fieldNodes.find(node => node.name.value === link.attribute), filter)))).filter(i => i !== null);
|
|
320
327
|
}
|
|
321
328
|
};
|
|
322
329
|
}
|
|
@@ -331,7 +338,8 @@ let GraphQLService = (() => {
|
|
|
331
338
|
},
|
|
332
339
|
resolve: async (source, args, context, info) => {
|
|
333
340
|
const modelDefinition = this.app.getModel(map.model);
|
|
334
|
-
|
|
341
|
+
const filter = this.parseFilter(args.filter);
|
|
342
|
+
return (await Promise.all((source[map.attribute] || []).map(i => this.loadListedInstance(i, modelDefinition, context, info.fieldNodes.find(node => node.name.value === map.attribute), filter)))).filter(i => i !== null);
|
|
335
343
|
}
|
|
336
344
|
};
|
|
337
345
|
});
|
|
@@ -344,7 +352,7 @@ let GraphQLService = (() => {
|
|
|
344
352
|
}
|
|
345
353
|
},
|
|
346
354
|
resolve: async (source, args, context, info) => {
|
|
347
|
-
const res = await source[query.attribute].query
|
|
355
|
+
const res = await this.queryRelated(source[query.attribute], this.app.getModel(query.model), WebdaQL.unsanitize(args.query || ""), context);
|
|
348
356
|
this.countOperation(context, res.results.length);
|
|
349
357
|
return res;
|
|
350
358
|
}
|
|
@@ -352,8 +360,14 @@ let GraphQLService = (() => {
|
|
|
352
360
|
});
|
|
353
361
|
}
|
|
354
362
|
for (const i in schema.properties) {
|
|
355
|
-
//
|
|
356
|
-
if (
|
|
363
|
+
// Private (`__`) fields are server-only: never part of an output or input type
|
|
364
|
+
if (i.startsWith("__")) {
|
|
365
|
+
continue;
|
|
366
|
+
}
|
|
367
|
+
// Was initiated by the known graph; inputs never carry private or behavior attributes
|
|
368
|
+
if (fields[i] ||
|
|
369
|
+
skipFields.includes(i) ||
|
|
370
|
+
(input && (schema.properties[i].readOnly || !isInputAttribute(i, webdaGraph, writable)))) {
|
|
357
371
|
continue;
|
|
358
372
|
}
|
|
359
373
|
const prop = this.getGraphQLSchemaFromSchema(this.getJsonSchemaDefinition(schema.properties[i], schema.definitions), `${defaultName}_${i}`, input);
|
|
@@ -364,6 +378,49 @@ let GraphQLService = (() => {
|
|
|
364
378
|
}
|
|
365
379
|
return fields;
|
|
366
380
|
}
|
|
381
|
+
/**
|
|
382
|
+
* Parse the `filter` argument of a links or maps field: WebdaQL evaluated on the linked objects, which may not read
|
|
383
|
+
* private (`__`) fields
|
|
384
|
+
* @param filter - the client filter
|
|
385
|
+
* @returns the validator, undefined without filter
|
|
386
|
+
* @throws GraphQLError BAD_USER_INPUT for an invalid filter or one reading private fields
|
|
387
|
+
*/
|
|
388
|
+
parseFilter(filter) {
|
|
389
|
+
if (!filter) {
|
|
390
|
+
return undefined;
|
|
391
|
+
}
|
|
392
|
+
try {
|
|
393
|
+
const validator = new WebdaQL.PartialValidator(WebdaQL.unsanitize(filter));
|
|
394
|
+
assertNoPrivateFields(validator);
|
|
395
|
+
return validator;
|
|
396
|
+
}
|
|
397
|
+
catch (err) {
|
|
398
|
+
throw new GraphQLError(err instanceof WebdaError.BadRequest ? err.message : "Invalid filter", {
|
|
399
|
+
extensions: { code: "BAD_USER_INPUT" }
|
|
400
|
+
});
|
|
401
|
+
}
|
|
402
|
+
}
|
|
403
|
+
/**
|
|
404
|
+
* {@link loadModelInstance} for an element of a list (links, maps): an element the caller may not read, or that
|
|
405
|
+
* no longer exists, is dropped (null) instead of failing the whole list, like a filtered query
|
|
406
|
+
* @param knownFieldsOrId - UUID string or object with known field values
|
|
407
|
+
* @param model - model class to load from
|
|
408
|
+
* @param context - web context for permission checks
|
|
409
|
+
* @param info - GraphQL field node describing the selection set
|
|
410
|
+
* @param filter - optional WebdaQL filter to apply to the result
|
|
411
|
+
* @returns the model instance, or null
|
|
412
|
+
*/
|
|
413
|
+
async loadListedInstance(knownFieldsOrId, model, context, info, filter) {
|
|
414
|
+
try {
|
|
415
|
+
return await this.loadModelInstance(knownFieldsOrId, model, context, info, filter);
|
|
416
|
+
}
|
|
417
|
+
catch (err) {
|
|
418
|
+
if (err instanceof GraphQLError && err.extensions?.code === "NOT_FOUND") {
|
|
419
|
+
return null;
|
|
420
|
+
}
|
|
421
|
+
throw err;
|
|
422
|
+
}
|
|
423
|
+
}
|
|
367
424
|
/**
|
|
368
425
|
* Load a model instance, optimizing to skip store reads when all requested fields are already known
|
|
369
426
|
* @param knownFieldsOrId - UUID string or object with known field values
|
|
@@ -397,21 +454,8 @@ let GraphQLService = (() => {
|
|
|
397
454
|
}
|
|
398
455
|
// Count the operation then and retrieve the model
|
|
399
456
|
this.countOperation(context);
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
throw new GraphQLError("Object not found", {
|
|
403
|
-
extensions: {
|
|
404
|
-
code: "NOT_FOUND"
|
|
405
|
-
}
|
|
406
|
-
});
|
|
407
|
-
}
|
|
408
|
-
if ((await modelInstance?.canAct?.(context, "get")) !== true) {
|
|
409
|
-
throw new GraphQLError("Permission denied", {
|
|
410
|
-
extensions: {
|
|
411
|
-
code: "PERMISSION_DENIED"
|
|
412
|
-
}
|
|
413
|
-
});
|
|
414
|
-
}
|
|
457
|
+
// A missing object and an object the caller may not read answer the same NOT_FOUND
|
|
458
|
+
const modelInstance = await loadForAction(model, res.uuid || "", context, "get");
|
|
415
459
|
if (filter && !filter.eval(modelInstance, false)) {
|
|
416
460
|
return null;
|
|
417
461
|
}
|
|
@@ -481,6 +525,9 @@ let GraphQLService = (() => {
|
|
|
481
525
|
continue;
|
|
482
526
|
if (!this.parameters.isIncluded(metadata.Identifier))
|
|
483
527
|
continue;
|
|
528
|
+
// Authentication state models (Ident, RefreshToken and subclasses) are internal unless explicitly listed
|
|
529
|
+
if (!this.isExposable(model, metadata.Identifier))
|
|
530
|
+
continue;
|
|
484
531
|
const schema = this.app.getSchema(i);
|
|
485
532
|
if (!schema)
|
|
486
533
|
continue;
|
|
@@ -492,7 +539,7 @@ let GraphQLService = (() => {
|
|
|
492
539
|
name
|
|
493
540
|
});
|
|
494
541
|
const input = new GraphQLInputObjectType({
|
|
495
|
-
fields: this.getGraphQLFieldsFromSchema(schema, name + "Input", modelGraph, true),
|
|
542
|
+
fields: this.getGraphQLFieldsFromSchema(schema, name + "Input", modelGraph, true, getClientWritableAttributes(model)),
|
|
496
543
|
name: name + "Input"
|
|
497
544
|
});
|
|
498
545
|
const actionsName = Object.keys(metadata.Actions);
|
|
@@ -503,18 +550,8 @@ let GraphQLService = (() => {
|
|
|
503
550
|
[name]: { type: input }
|
|
504
551
|
},
|
|
505
552
|
resolve: async (_, args, context) => {
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
this.log("INFO", "Create", object, context.getCurrentUserId());
|
|
509
|
-
if ((await object.canAct?.(context, "create")) !== true) {
|
|
510
|
-
throw new GraphQLError("Permission denied", {
|
|
511
|
-
extensions: {
|
|
512
|
-
code: "PERMISSION_DENIED"
|
|
513
|
-
}
|
|
514
|
-
});
|
|
515
|
-
}
|
|
516
|
-
await object.save();
|
|
517
|
-
return object;
|
|
553
|
+
this.log("INFO", "Create", name, context.getCurrentUserId());
|
|
554
|
+
return createFromInput(model, args[name], context);
|
|
518
555
|
}
|
|
519
556
|
};
|
|
520
557
|
}
|
|
@@ -527,17 +564,7 @@ let GraphQLService = (() => {
|
|
|
527
564
|
type: GraphQLString
|
|
528
565
|
}
|
|
529
566
|
},
|
|
530
|
-
resolve: async (_, args, context) =>
|
|
531
|
-
const object = await model.ref(args.uuid).get();
|
|
532
|
-
if ((await object?.canAct?.(context, "update")) !== true) {
|
|
533
|
-
throw new GraphQLError("Permission denied", {
|
|
534
|
-
extensions: {
|
|
535
|
-
code: "PERMISSION_DENIED"
|
|
536
|
-
}
|
|
537
|
-
});
|
|
538
|
-
}
|
|
539
|
-
return object.load(args[name]).save();
|
|
540
|
-
}
|
|
567
|
+
resolve: async (_, args, context) => updateFromInput(model, args.uuid, args[name], context)
|
|
541
568
|
};
|
|
542
569
|
}
|
|
543
570
|
// check for actions
|
|
@@ -550,14 +577,7 @@ let GraphQLService = (() => {
|
|
|
550
577
|
}
|
|
551
578
|
},
|
|
552
579
|
resolve: async (_, args, context) => {
|
|
553
|
-
const object = await model
|
|
554
|
-
if ((await object?.canAct?.(context, "delete")) !== true) {
|
|
555
|
-
throw new GraphQLError("Permission denied", {
|
|
556
|
-
extensions: {
|
|
557
|
-
code: "PERMISSION_DENIED"
|
|
558
|
-
}
|
|
559
|
-
});
|
|
560
|
-
}
|
|
580
|
+
const object = await loadForAction(model, args.uuid, context, "delete");
|
|
561
581
|
await object.delete();
|
|
562
582
|
return {
|
|
563
583
|
success: true
|
|
@@ -576,7 +596,8 @@ let GraphQLService = (() => {
|
|
|
576
596
|
}
|
|
577
597
|
},
|
|
578
598
|
resolve: async (_, args, context) => {
|
|
579
|
-
|
|
599
|
+
// Same permission filtering as the DomainService query operation
|
|
600
|
+
return await queryModelWithPermissions(model, WebdaQL.unsanitize(args.query || ""), context);
|
|
580
601
|
},
|
|
581
602
|
subscribe: async (_source, args, context) => {
|
|
582
603
|
this.log("DEBUG", "Subscription called on", args);
|
|
@@ -798,6 +819,19 @@ let GraphQLService = (() => {
|
|
|
798
819
|
.filter(node => node.kind === "Field" && node.name.value !== "latestEventTime")
|
|
799
820
|
.map(n => n.name.value);
|
|
800
821
|
}
|
|
822
|
+
/**
|
|
823
|
+
* Query a 1:n relation (ModelRelated) as the caller: the relation condition is merged into the client query, then
|
|
824
|
+
* filtered like any model query (permission query, canAct "get")
|
|
825
|
+
* @param related - the ModelRelated attribute of the source object
|
|
826
|
+
* @param related.getQuery - merges the relation condition into a query
|
|
827
|
+
* @param model - the target model class
|
|
828
|
+
* @param query - the client query
|
|
829
|
+
* @param context - the caller context
|
|
830
|
+
* @returns the readable related objects
|
|
831
|
+
*/
|
|
832
|
+
async queryRelated(related, model, query, context) {
|
|
833
|
+
return queryModelWithPermissions(model, related.getQuery(query), context);
|
|
834
|
+
}
|
|
801
835
|
/**
|
|
802
836
|
* Create an async iterator that streams query results, updating when store events occur
|
|
803
837
|
* @param model - model class to query
|
|
@@ -807,7 +841,9 @@ let GraphQLService = (() => {
|
|
|
807
841
|
* @returns async iterator yielding updated query results on store changes
|
|
808
842
|
*/
|
|
809
843
|
async registerAsyncIteratorQuery(model, plural, query, context) {
|
|
810
|
-
|
|
844
|
+
// Results are always filtered with the subscriber permissions (permission query and canAct "get")
|
|
845
|
+
const runQuery = () => queryModelWithPermissions(model, query, context);
|
|
846
|
+
let result = await runQuery();
|
|
811
847
|
const queryInfo = new WebdaQL.QueryValidator(query);
|
|
812
848
|
const updatedCallback = async (evt) => {
|
|
813
849
|
this.log("TRACE", "Event from", evt.emitterId, evt.object_id);
|
|
@@ -817,6 +853,9 @@ let GraphQLService = (() => {
|
|
|
817
853
|
// We let the other listeners finish before returning the object
|
|
818
854
|
await new Promise(resolve => nextTick(resolve));
|
|
819
855
|
result.results = await Promise.all(result.results.map(r => (r.getUUID() === evt.object_id ? model.ref(evt.object_id).get() : r)));
|
|
856
|
+
// The update may have removed the subscriber's access to the object
|
|
857
|
+
const allowed = await Promise.all(result.results.map(r => isModelActionAllowed(r, context, "get", model)));
|
|
858
|
+
result.results = result.results.filter((_r, i) => allowed[i]);
|
|
820
859
|
return {
|
|
821
860
|
continuationToken: result.continuationToken,
|
|
822
861
|
results: result.results
|
|
@@ -828,14 +867,16 @@ let GraphQLService = (() => {
|
|
|
828
867
|
Deleted: async (evt) => {
|
|
829
868
|
if (!result.results.find(e => evt.object_id === e.getUUID()))
|
|
830
869
|
return;
|
|
831
|
-
result = await
|
|
870
|
+
result = await runQuery();
|
|
832
871
|
return result;
|
|
833
872
|
},
|
|
834
873
|
Created: async (evt) => {
|
|
835
874
|
// If object match the query and is not in the result and can be read by the user
|
|
836
|
-
if (queryInfo.eval(evt.object) &&
|
|
875
|
+
if (queryInfo.eval(evt.object) &&
|
|
876
|
+
!queryInfo.getOffset() &&
|
|
877
|
+
(await isModelActionAllowed(evt.object, context, "get", model))) {
|
|
837
878
|
// Should check with the order by of the query to see if we need to recompute
|
|
838
|
-
result = await
|
|
879
|
+
result = await runQuery();
|
|
839
880
|
return result;
|
|
840
881
|
}
|
|
841
882
|
return;
|
|
@@ -863,7 +904,15 @@ let GraphQLService = (() => {
|
|
|
863
904
|
// We rely on the cache of the store to get the full object
|
|
864
905
|
// We let the other listeners finish before returning the object
|
|
865
906
|
await new Promise(resolve => nextTick(resolve));
|
|
866
|
-
|
|
907
|
+
let updated;
|
|
908
|
+
try {
|
|
909
|
+
updated = await model.ref(evt.object_id).get();
|
|
910
|
+
}
|
|
911
|
+
catch {
|
|
912
|
+
// Gone between the event and the read
|
|
913
|
+
}
|
|
914
|
+
// The update may have removed the subscriber's access: report it like a deletion (a throwing canAct refuses)
|
|
915
|
+
return updated && (await isModelActionAllowed(updated, context, "get", model)) ? updated : null;
|
|
867
916
|
};
|
|
868
917
|
const events = {
|
|
869
918
|
Updated: updatedCallback,
|
|
@@ -876,15 +925,8 @@ let GraphQLService = (() => {
|
|
|
876
925
|
Patched: updatedCallback,
|
|
877
926
|
PartialUpdated: updatedCallback
|
|
878
927
|
};
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
if ((await modelInstance?.canAct?.(context, "get")) !== true) {
|
|
882
|
-
throw new GraphQLError("Permission denied", {
|
|
883
|
-
extensions: {
|
|
884
|
-
code: "PERMISSION_DENIED"
|
|
885
|
-
}
|
|
886
|
-
});
|
|
887
|
-
}
|
|
928
|
+
// Ensure we have the permission to get the object: a refused read answers like a missing object
|
|
929
|
+
const modelInstance = await loadForAction(model, uuid, context, "get");
|
|
888
930
|
// Listen on the model's repository typed events instead of legacy Store.* events.
|
|
889
931
|
return new EventIterator(useRepository(model), events, identifier || useModelMetadata(model)?.Identifier, modelInstance).iterate();
|
|
890
932
|
}
|
|
@@ -906,7 +948,10 @@ let GraphQLService = (() => {
|
|
|
906
948
|
return { latestEventTime: Date.now(), [eventName]: evt };
|
|
907
949
|
};
|
|
908
950
|
const eventsMap = {};
|
|
909
|
-
|
|
951
|
+
if (uuid !== null) {
|
|
952
|
+
// Listening to an object requires reading it: a refused read answers like a missing object
|
|
953
|
+
await loadForAction(model, uuid, context, "get");
|
|
954
|
+
}
|
|
910
955
|
events
|
|
911
956
|
.filter(e => useCore().getModelStore(model)?.authorizeClientEvent?.(e, context) !== false)
|
|
912
957
|
.forEach(e => (eventsMap[e] = updatedCallback(e)));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graphql.service.js","sourceRoot":"","sources":["../src/graphql.service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"graphql.service.js","sourceRoot":"","sources":["../src/graphql.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import type { ModelGraph } from "@webda/compiler";
|
|
2
|
+
import { GraphQLError } from "graphql";
|
|
3
|
+
/**
|
|
4
|
+
* @returns the GraphQL error of a missing object, also used for an object the caller may not read
|
|
5
|
+
*/
|
|
6
|
+
export declare function notFound(): GraphQLError;
|
|
7
|
+
/**
|
|
8
|
+
* Run a core permission check, turning its WebdaErrors into the GraphQL errors of this module
|
|
9
|
+
* @param check - the core check
|
|
10
|
+
* @returns what the check returns
|
|
11
|
+
*/
|
|
12
|
+
export declare function asGraphQL<T>(check: () => Promise<T>): Promise<T>;
|
|
13
|
+
/**
|
|
14
|
+
* Load an object for an action as the caller, with the core rules (the model's static `canAct`, deny by default): a
|
|
15
|
+
* missing object and an object the caller may not read answer the same NOT_FOUND error; an object the caller may
|
|
16
|
+
* read but not act on answers PERMISSION_DENIED
|
|
17
|
+
* @param model - model class
|
|
18
|
+
* @param uuid - primary key
|
|
19
|
+
* @param context - request context
|
|
20
|
+
* @param action - the action ("get", "update", "delete"...)
|
|
21
|
+
* @returns the object
|
|
22
|
+
*/
|
|
23
|
+
export declare function loadForAction(model: any, uuid: any, context: any, action: string): Promise<any>;
|
|
24
|
+
/**
|
|
25
|
+
* Whether a model attribute is part of the generated GraphQL input type: private (`__`), server-managed (`_`) and
|
|
26
|
+
* behavior attributes can only be changed server-side (or through the behavior's own actions)
|
|
27
|
+
* @param attribute - attribute name
|
|
28
|
+
* @param graph - relations of the model
|
|
29
|
+
* @param writable - `_`-prefixed attributes the model accepts from clients (`getClientWritableAttributes()`)
|
|
30
|
+
* @returns true when clients may send it
|
|
31
|
+
*/
|
|
32
|
+
export declare function isInputAttribute(attribute: string, graph?: ModelGraph, writable?: string[]): boolean;
|
|
33
|
+
/**
|
|
34
|
+
* Create mutation: the client input is sanitized like the REST create (behavior and `__` fields removed)
|
|
35
|
+
* @param model - model class
|
|
36
|
+
* @param input - client input
|
|
37
|
+
* @param context - request context
|
|
38
|
+
* @returns the created object
|
|
39
|
+
* @throws GraphQLError PERMISSION_DENIED when the object refuses the create
|
|
40
|
+
*/
|
|
41
|
+
export declare function createFromInput(model: any, input: any, context: any): Promise<any>;
|
|
42
|
+
/**
|
|
43
|
+
* Update mutation: like the REST update, the sanitized input is loaded onto the stored object, so the stored
|
|
44
|
+
* behavior state is kept
|
|
45
|
+
* @param model - model class
|
|
46
|
+
* @param uuid - primary key
|
|
47
|
+
* @param input - client input
|
|
48
|
+
* @param context - request context
|
|
49
|
+
* @returns the updated object
|
|
50
|
+
* @throws GraphQLError PERMISSION_DENIED when the object refuses the update
|
|
51
|
+
*/
|
|
52
|
+
export declare function updateFromInput(model: any, uuid: string, input: any, context: any): Promise<any>;
|
|
53
|
+
//# sourceMappingURL=mutations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mutations.d.ts","sourceRoot":"","sources":["../src/mutations.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAavC;;GAEG;AACH,wBAAgB,QAAQ,IAAI,YAAY,CAMvC;AAED;;;;GAIG;AACH,wBAAsB,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAYtE;AAED;;;;;;;;;GASG;AACH,wBAAsB,aAAa,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAErG;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,UAAU,EAAE,QAAQ,GAAE,MAAM,EAAO,GAAG,OAAO,CAKxG;AAED;;;;;;;GAOG;AACH,wBAAsB,eAAe,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAqBxF;AAeD;;;;;;;;;GASG;AACH,wBAAsB,eAAe,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAatG"}
|
package/lib/mutations.js
ADDED
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import { checkModelParent, checkModelPermission, checkModelReparent, createModel, getParentRelation, loadModelForAction, prepareCreateInput, sanitizeModelInput, useModelMetadata, WebdaError } from "@webda/core";
|
|
2
|
+
import { GraphQLError } from "graphql";
|
|
3
|
+
/**
|
|
4
|
+
* @returns the GraphQL error of a refused mutation
|
|
5
|
+
*/
|
|
6
|
+
function permissionDenied() {
|
|
7
|
+
return new GraphQLError("Permission denied", {
|
|
8
|
+
extensions: {
|
|
9
|
+
code: "PERMISSION_DENIED"
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* @returns the GraphQL error of a missing object, also used for an object the caller may not read
|
|
15
|
+
*/
|
|
16
|
+
export function notFound() {
|
|
17
|
+
return new GraphQLError("Object not found", {
|
|
18
|
+
extensions: {
|
|
19
|
+
code: "NOT_FOUND"
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Run a core permission check, turning its WebdaErrors into the GraphQL errors of this module
|
|
25
|
+
* @param check - the core check
|
|
26
|
+
* @returns what the check returns
|
|
27
|
+
*/
|
|
28
|
+
export async function asGraphQL(check) {
|
|
29
|
+
try {
|
|
30
|
+
return await check();
|
|
31
|
+
}
|
|
32
|
+
catch (err) {
|
|
33
|
+
if (err instanceof WebdaError.NotFound) {
|
|
34
|
+
throw notFound();
|
|
35
|
+
}
|
|
36
|
+
if (err instanceof WebdaError.Forbidden || err instanceof WebdaError.Unauthorized) {
|
|
37
|
+
throw permissionDenied();
|
|
38
|
+
}
|
|
39
|
+
throw err;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Load an object for an action as the caller, with the core rules (the model's static `canAct`, deny by default): a
|
|
44
|
+
* missing object and an object the caller may not read answer the same NOT_FOUND error; an object the caller may
|
|
45
|
+
* read but not act on answers PERMISSION_DENIED
|
|
46
|
+
* @param model - model class
|
|
47
|
+
* @param uuid - primary key
|
|
48
|
+
* @param context - request context
|
|
49
|
+
* @param action - the action ("get", "update", "delete"...)
|
|
50
|
+
* @returns the object
|
|
51
|
+
*/
|
|
52
|
+
export async function loadForAction(model, uuid, context, action) {
|
|
53
|
+
return asGraphQL(() => loadModelForAction(model, uuid, context, action));
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Whether a model attribute is part of the generated GraphQL input type: private (`__`), server-managed (`_`) and
|
|
57
|
+
* behavior attributes can only be changed server-side (or through the behavior's own actions)
|
|
58
|
+
* @param attribute - attribute name
|
|
59
|
+
* @param graph - relations of the model
|
|
60
|
+
* @param writable - `_`-prefixed attributes the model accepts from clients (`getClientWritableAttributes()`)
|
|
61
|
+
* @returns true when clients may send it
|
|
62
|
+
*/
|
|
63
|
+
export function isInputAttribute(attribute, graph, writable = []) {
|
|
64
|
+
if (attribute.startsWith("__") || (attribute.startsWith("_") && !writable.includes(attribute))) {
|
|
65
|
+
return false;
|
|
66
|
+
}
|
|
67
|
+
return !(graph?.behaviors ?? []).some(b => b.attribute === attribute);
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Create mutation: the client input is sanitized like the REST create (behavior and `__` fields removed)
|
|
71
|
+
* @param model - model class
|
|
72
|
+
* @param input - client input
|
|
73
|
+
* @param context - request context
|
|
74
|
+
* @returns the created object
|
|
75
|
+
* @throws GraphQLError PERMISSION_DENIED when the object refuses the create
|
|
76
|
+
*/
|
|
77
|
+
export async function createFromInput(model, input, context) {
|
|
78
|
+
// Same input rules as the REST create: sanitized, parent link kept, client uuid ignored for UuidModels
|
|
79
|
+
const data = prepareCreateInput(model, input ?? {});
|
|
80
|
+
const object = new model();
|
|
81
|
+
object.load(data);
|
|
82
|
+
// The parent must exist and be readable: an unreadable parent answers like a missing one
|
|
83
|
+
await asGraphQL(() => checkModelParent(model, data?.[getParentRelation(model)?.attribute ?? ""], context));
|
|
84
|
+
// Let the model set its server-managed fields (e.g. the owner) from the caller, like the REST create
|
|
85
|
+
await object.prepareCreate?.(context);
|
|
86
|
+
// The same check as the REST create: the model's static canAct, a throwing canAct refuses
|
|
87
|
+
await asGraphQL(() => checkModelPermission(object, context, "create", model));
|
|
88
|
+
try {
|
|
89
|
+
// Create, never upsert: an existing key must not be overwritten
|
|
90
|
+
await createModel(object);
|
|
91
|
+
}
|
|
92
|
+
catch (err) {
|
|
93
|
+
if (err instanceof WebdaError.Conflict) {
|
|
94
|
+
throw new GraphQLError("Object already exists", { extensions: { code: "CONFLICT" } });
|
|
95
|
+
}
|
|
96
|
+
throw err;
|
|
97
|
+
}
|
|
98
|
+
return object;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* @param model - model class
|
|
102
|
+
* @returns its primary key fields (from the application metadata), `["uuid"]` when unknown
|
|
103
|
+
*/
|
|
104
|
+
function primaryKeyFields(model) {
|
|
105
|
+
try {
|
|
106
|
+
const fields = useModelMetadata(model)?.PrimaryKey;
|
|
107
|
+
return fields?.length ? fields : ["uuid"];
|
|
108
|
+
}
|
|
109
|
+
catch {
|
|
110
|
+
return ["uuid"];
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Update mutation: like the REST update, the sanitized input is loaded onto the stored object, so the stored
|
|
115
|
+
* behavior state is kept
|
|
116
|
+
* @param model - model class
|
|
117
|
+
* @param uuid - primary key
|
|
118
|
+
* @param input - client input
|
|
119
|
+
* @param context - request context
|
|
120
|
+
* @returns the updated object
|
|
121
|
+
* @throws GraphQLError PERMISSION_DENIED when the object refuses the update
|
|
122
|
+
*/
|
|
123
|
+
export async function updateFromInput(model, uuid, input, context) {
|
|
124
|
+
input = sanitizeModelInput(model, input ?? {});
|
|
125
|
+
// The key comes from the arguments: a body carrying another key would write over that other object
|
|
126
|
+
for (const field of primaryKeyFields(model)) {
|
|
127
|
+
if (input[field] !== undefined && String(input[field]) !== String(uuid)) {
|
|
128
|
+
throw new GraphQLError("Primary key mismatch", { extensions: { code: "BAD_USER_INPUT" } });
|
|
129
|
+
}
|
|
130
|
+
delete input[field];
|
|
131
|
+
}
|
|
132
|
+
const object = await loadForAction(model, uuid, context, "update");
|
|
133
|
+
// Moving the object to another parent requires reading the new parent
|
|
134
|
+
await asGraphQL(() => checkModelReparent(model, object, input, context));
|
|
135
|
+
return object.load(input).save();
|
|
136
|
+
}
|
|
137
|
+
//# sourceMappingURL=mutations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mutations.js","sourceRoot":"","sources":["../src/mutations.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webda/graphql",
|
|
3
|
-
"version": "4.0.0-beta.
|
|
3
|
+
"version": "4.0.0-beta.5",
|
|
4
4
|
"description": "GraphQL endpoint for your Webda Application",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"type": "module",
|
|
@@ -18,9 +18,9 @@
|
|
|
18
18
|
"graphql-ws": "^6.0.8",
|
|
19
19
|
"json-schema": "^0.4.0",
|
|
20
20
|
"ws": "^8.20.0",
|
|
21
|
-
"@webda/core": "4.0.0-beta.
|
|
22
|
-
"@webda/
|
|
23
|
-
"@webda/
|
|
21
|
+
"@webda/core": "4.0.0-beta.5",
|
|
22
|
+
"@webda/runtime": "4.0.0-beta.5",
|
|
23
|
+
"@webda/ql": "4.0.0-beta.5"
|
|
24
24
|
},
|
|
25
25
|
"devDependencies": {
|
|
26
26
|
"@types/node": "25.5.0",
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
"skott": "^0.35.8",
|
|
33
33
|
"source-map-support": "^0.5.21",
|
|
34
34
|
"vite": "^6.0.0",
|
|
35
|
-
"@webda/compiler": "^4.0.0-beta.
|
|
35
|
+
"@webda/compiler": "^4.0.0-beta.5"
|
|
36
36
|
},
|
|
37
37
|
"webda": {
|
|
38
38
|
"namespace": "Webda"
|
|
@@ -41,7 +41,11 @@
|
|
|
41
41
|
"url": "https://github.com/loopingz/webda.io/issues"
|
|
42
42
|
},
|
|
43
43
|
"homepage": "https://github.com/loopingz/webda.io#readme",
|
|
44
|
-
"repository":
|
|
44
|
+
"repository": {
|
|
45
|
+
"type": "git",
|
|
46
|
+
"url": "git+https://github.com/loopingz/webda.io.git",
|
|
47
|
+
"directory": "packages/graphql"
|
|
48
|
+
},
|
|
45
49
|
"license": "LGPL-3.0-only",
|
|
46
50
|
"nx": {
|
|
47
51
|
"implicitDependencies": [
|
package/webda.module.json
CHANGED
|
@@ -109,10 +109,6 @@
|
|
|
109
109
|
"additionalProperties": false,
|
|
110
110
|
"description": "Represent a file to store",
|
|
111
111
|
"properties": {
|
|
112
|
-
"challenge": {
|
|
113
|
-
"description": "Will be computed by the service\n\nhash of the content prefixed by 'WEBDA'",
|
|
114
|
-
"type": "string"
|
|
115
|
-
},
|
|
116
112
|
"hash": {
|
|
117
113
|
"description": "Will be computed by the service\n\nhash of the content",
|
|
118
114
|
"type": "string"
|