@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.
@@ -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":"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"}
1
+ {"version":3,"file":"graphql.service.d.ts","sourceRoot":"","sources":["../src/graphql.service.ts"],"names":[],"mappings":"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"}
@@ -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
- return (await Promise.all(src.map(i => this.loadModelInstance(i, this.app.getModel(link.model), context, info.fieldNodes.find(node => node.name.value === link.attribute), args.filter ? new WebdaQL.PartialValidator(WebdaQL.unsanitize(args.filter)) : undefined)))).filter(i => i !== null);
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
- return (await Promise.all(source[map.attribute].map(i => this.loadModelInstance(i, modelDefinition, context, info.fieldNodes.find(node => node.name.value === map.attribute), args.filter ? new WebdaQL.PartialValidator(WebdaQL.unsanitize(args.filter)) : undefined)))).filter(i => i !== null);
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(WebdaQL.unsanitize(args.query || ""), context);
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
- // Was initiated by the known graph
356
- if (fields[i] || skipFields.includes(i) || (schema.properties[i].readOnly && input)) {
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
- const modelInstance = await model.ref(res.uuid || "").get();
401
- if (!modelInstance) {
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
- const object = new model();
507
- object.load(args[name]);
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.ref(args.uuid).get();
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
- return await model.query(WebdaQL.unsanitize(args.query || ""));
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
- let result = await model.query(query);
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 model.query(query);
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) && !queryInfo.getOffset() && evt.object.canAct(context, "get")) {
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 model.query(query);
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
- return model.ref(evt.object_id).get();
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
- const modelInstance = await model.ref(uuid).get();
880
- // Ensure we have the permission to get the object
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
- const modelInstance = uuid !== null ? await model.ref(uuid).get() : undefined;
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"}
@@ -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",
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.3",
22
- "@webda/ql": "4.0.0-beta.3",
23
- "@webda/runtime": "4.0.0-beta.3"
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.3"
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": "git://github.com/loopingz/webda.io.git",
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"