@webda/graphql 4.0.0-beta.4 → 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.
@@ -100,19 +100,38 @@ export declare class GraphQLService<T extends GraphQLParameters = GraphQLParamet
100
100
  * @returns GraphQL object type with results and continuationToken fields
101
101
  */
102
102
  getGraphQLQueryResult(type: any): GraphQLObjectType<any, any>;
103
- /**
104
- * `__` (server-only) fields already warned about, so each is logged once
105
- */
106
- private privateWarned;
107
103
  /**
108
104
  * Build GraphQL field definitions from a JSON Schema, enriching with relation resolvers from the model graph
109
105
  * @param schema - JSON Schema describing the model properties
110
106
  * @param defaultName - fallback name for generated types
111
107
  * @param webdaGraph - model relation graph (links, maps, queries, parent)
112
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)
113
110
  * @returns map of field names to GraphQL field configs
114
111
  */
115
- 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>;
116
135
  /**
117
136
  * Load a model instance, optimizing to skip store reads when all requested fields are already known
118
137
  * @param knownFieldsOrId - UUID string or object with known field values
@@ -147,6 +166,22 @@ export declare class GraphQLService<T extends GraphQLParameters = GraphQLParamet
147
166
  * @returns array of event name strings the client subscribed to
148
167
  */
149
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
+ }>;
150
185
  /**
151
186
  * Create an async iterator that streams query results, updating when store events occur
152
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,7 +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, updateFromInput } from "./mutations.js";
46
+ import { createFromInput, isInputAttribute, loadForAction, updateFromInput } from "./mutations.js";
47
47
  const GraphIQL = `
48
48
  <!doctype html>
49
49
  <html lang="en">
@@ -161,10 +161,6 @@ let GraphQLService = (() => {
161
161
  constructor() {
162
162
  super(...arguments);
163
163
  this.schema = __runInitializers(this, _instanceExtraInitializers);
164
- /**
165
- * `__` (server-only) fields already warned about, so each is logged once
166
- */
167
- this.privateWarned = new Set();
168
164
  }
169
165
  /**
170
166
  * Load and initialize GraphQL service parameters
@@ -233,6 +229,10 @@ let GraphQLService = (() => {
233
229
  return { type: AnyScalarType, description: "Map" };
234
230
  }
235
231
  for (const i in schema.properties) {
232
+ // Private (`__`) fields are server-only, at any depth
233
+ if (i.startsWith("__")) {
234
+ continue;
235
+ }
236
236
  const res = this.getGraphQLSchemaFromSchema(this.getJsonSchemaDefinition(schema.properties[i], schema.definitions), `${schema.title || defaultName}_${i}`, input);
237
237
  if (!res)
238
238
  continue;
@@ -276,9 +276,10 @@ let GraphQLService = (() => {
276
276
  * @param defaultName - fallback name for generated types
277
277
  * @param webdaGraph - model relation graph (links, maps, queries, parent)
278
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)
279
280
  * @returns map of field names to GraphQL field configs
280
281
  */
281
- getGraphQLFieldsFromSchema(schema, defaultName, webdaGraph, input) {
282
+ getGraphQLFieldsFromSchema(schema, defaultName, webdaGraph, input, writable = []) {
282
283
  const fields = {};
283
284
  const skipFields = [];
284
285
  const attributeFilter = (skip = false) => info => {
@@ -321,7 +322,8 @@ let GraphQLService = (() => {
321
322
  },
322
323
  resolve: async (source, args, context, info) => {
323
324
  const src = link.type === "LINKS_MAP" ? Object.values(source[link.attribute]) : source[link.attribute];
324
- 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);
325
327
  }
326
328
  };
327
329
  }
@@ -336,7 +338,8 @@ let GraphQLService = (() => {
336
338
  },
337
339
  resolve: async (source, args, context, info) => {
338
340
  const modelDefinition = this.app.getModel(map.model);
339
- 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);
340
343
  }
341
344
  };
342
345
  });
@@ -349,7 +352,7 @@ let GraphQLService = (() => {
349
352
  }
350
353
  },
351
354
  resolve: async (source, args, context, info) => {
352
- 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);
353
356
  this.countOperation(context, res.results.length);
354
357
  return res;
355
358
  }
@@ -357,14 +360,14 @@ let GraphQLService = (() => {
357
360
  });
358
361
  }
359
362
  for (const i in schema.properties) {
360
- if (i.startsWith("__") && !input && !this.privateWarned.has(`${defaultName}.${i}`)) {
361
- this.privateWarned.add(`${defaultName}.${i}`);
362
- this.log("WARN", `GraphQL may expose __ field ${i} of ${defaultName}; use toDTO()`);
363
+ // Private (`__`) fields are server-only: never part of an output or input type
364
+ if (i.startsWith("__")) {
365
+ continue;
363
366
  }
364
367
  // Was initiated by the known graph; inputs never carry private or behavior attributes
365
368
  if (fields[i] ||
366
369
  skipFields.includes(i) ||
367
- (input && (schema.properties[i].readOnly || !isInputAttribute(i, webdaGraph)))) {
370
+ (input && (schema.properties[i].readOnly || !isInputAttribute(i, webdaGraph, writable)))) {
368
371
  continue;
369
372
  }
370
373
  const prop = this.getGraphQLSchemaFromSchema(this.getJsonSchemaDefinition(schema.properties[i], schema.definitions), `${defaultName}_${i}`, input);
@@ -375,6 +378,49 @@ let GraphQLService = (() => {
375
378
  }
376
379
  return fields;
377
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
+ }
378
424
  /**
379
425
  * Load a model instance, optimizing to skip store reads when all requested fields are already known
380
426
  * @param knownFieldsOrId - UUID string or object with known field values
@@ -408,21 +454,8 @@ let GraphQLService = (() => {
408
454
  }
409
455
  // Count the operation then and retrieve the model
410
456
  this.countOperation(context);
411
- const modelInstance = await model.ref(res.uuid || "").get();
412
- if (!modelInstance) {
413
- throw new GraphQLError("Object not found", {
414
- extensions: {
415
- code: "NOT_FOUND"
416
- }
417
- });
418
- }
419
- if ((await modelInstance?.canAct?.(context, "get")) !== true) {
420
- throw new GraphQLError("Permission denied", {
421
- extensions: {
422
- code: "PERMISSION_DENIED"
423
- }
424
- });
425
- }
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");
426
459
  if (filter && !filter.eval(modelInstance, false)) {
427
460
  return null;
428
461
  }
@@ -506,7 +539,7 @@ let GraphQLService = (() => {
506
539
  name
507
540
  });
508
541
  const input = new GraphQLInputObjectType({
509
- fields: this.getGraphQLFieldsFromSchema(schema, name + "Input", modelGraph, true),
542
+ fields: this.getGraphQLFieldsFromSchema(schema, name + "Input", modelGraph, true, getClientWritableAttributes(model)),
510
543
  name: name + "Input"
511
544
  });
512
545
  const actionsName = Object.keys(metadata.Actions);
@@ -544,14 +577,7 @@ let GraphQLService = (() => {
544
577
  }
545
578
  },
546
579
  resolve: async (_, args, context) => {
547
- const object = await model.ref(args.uuid).get();
548
- if ((await object?.canAct?.(context, "delete")) !== true) {
549
- throw new GraphQLError("Permission denied", {
550
- extensions: {
551
- code: "PERMISSION_DENIED"
552
- }
553
- });
554
- }
580
+ const object = await loadForAction(model, args.uuid, context, "delete");
555
581
  await object.delete();
556
582
  return {
557
583
  success: true
@@ -570,7 +596,8 @@ let GraphQLService = (() => {
570
596
  }
571
597
  },
572
598
  resolve: async (_, args, context) => {
573
- 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);
574
601
  },
575
602
  subscribe: async (_source, args, context) => {
576
603
  this.log("DEBUG", "Subscription called on", args);
@@ -792,6 +819,19 @@ let GraphQLService = (() => {
792
819
  .filter(node => node.kind === "Field" && node.name.value !== "latestEventTime")
793
820
  .map(n => n.name.value);
794
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
+ }
795
835
  /**
796
836
  * Create an async iterator that streams query results, updating when store events occur
797
837
  * @param model - model class to query
@@ -801,7 +841,9 @@ let GraphQLService = (() => {
801
841
  * @returns async iterator yielding updated query results on store changes
802
842
  */
803
843
  async registerAsyncIteratorQuery(model, plural, query, context) {
804
- 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();
805
847
  const queryInfo = new WebdaQL.QueryValidator(query);
806
848
  const updatedCallback = async (evt) => {
807
849
  this.log("TRACE", "Event from", evt.emitterId, evt.object_id);
@@ -811,6 +853,9 @@ let GraphQLService = (() => {
811
853
  // We let the other listeners finish before returning the object
812
854
  await new Promise(resolve => nextTick(resolve));
813
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]);
814
859
  return {
815
860
  continuationToken: result.continuationToken,
816
861
  results: result.results
@@ -822,14 +867,16 @@ let GraphQLService = (() => {
822
867
  Deleted: async (evt) => {
823
868
  if (!result.results.find(e => evt.object_id === e.getUUID()))
824
869
  return;
825
- result = await model.query(query);
870
+ result = await runQuery();
826
871
  return result;
827
872
  },
828
873
  Created: async (evt) => {
829
874
  // If object match the query and is not in the result and can be read by the user
830
- 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))) {
831
878
  // Should check with the order by of the query to see if we need to recompute
832
- result = await model.query(query);
879
+ result = await runQuery();
833
880
  return result;
834
881
  }
835
882
  return;
@@ -857,7 +904,15 @@ let GraphQLService = (() => {
857
904
  // We rely on the cache of the store to get the full object
858
905
  // We let the other listeners finish before returning the object
859
906
  await new Promise(resolve => nextTick(resolve));
860
- 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;
861
916
  };
862
917
  const events = {
863
918
  Updated: updatedCallback,
@@ -870,15 +925,8 @@ let GraphQLService = (() => {
870
925
  Patched: updatedCallback,
871
926
  PartialUpdated: updatedCallback
872
927
  };
873
- const modelInstance = await model.ref(uuid).get();
874
- // Ensure we have the permission to get the object
875
- if ((await modelInstance?.canAct?.(context, "get")) !== true) {
876
- throw new GraphQLError("Permission denied", {
877
- extensions: {
878
- code: "PERMISSION_DENIED"
879
- }
880
- });
881
- }
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");
882
930
  // Listen on the model's repository typed events instead of legacy Store.* events.
883
931
  return new EventIterator(useRepository(model), events, identifier || useModelMetadata(model)?.Identifier, modelInstance).iterate();
884
932
  }
@@ -900,7 +948,10 @@ let GraphQLService = (() => {
900
948
  return { latestEventTime: Date.now(), [eventName]: evt };
901
949
  };
902
950
  const eventsMap = {};
903
- 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
+ }
904
955
  events
905
956
  .filter(e => useCore().getModelStore(model)?.authorizeClientEvent?.(e, context) !== false)
906
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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"}
@@ -1,12 +1,35 @@
1
1
  import type { ModelGraph } from "@webda/compiler";
2
+ import { GraphQLError } from "graphql";
2
3
  /**
3
- * Whether a model attribute is part of the generated GraphQL input type: private (`__`) attributes and behavior
4
- * attributes can only be changed server-side (or through the behavior's own actions)
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)
5
27
  * @param attribute - attribute name
6
28
  * @param graph - relations of the model
29
+ * @param writable - `_`-prefixed attributes the model accepts from clients (`getClientWritableAttributes()`)
7
30
  * @returns true when clients may send it
8
31
  */
9
- export declare function isInputAttribute(attribute: string, graph?: ModelGraph): boolean;
32
+ export declare function isInputAttribute(attribute: string, graph?: ModelGraph, writable?: string[]): boolean;
10
33
  /**
11
34
  * Create mutation: the client input is sanitized like the REST create (behavior and `__` fields removed)
12
35
  * @param model - model class
@@ -1 +1 @@
1
- {"version":3,"file":"mutations.d.ts","sourceRoot":"","sources":["../src/mutations.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAclD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,UAAU,GAAG,OAAO,CAK/E;AAED;;;;;;;GAOG;AACH,wBAAsB,eAAe,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAQxF;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,CAMtG"}
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 CHANGED
@@ -1,4 +1,4 @@
1
- import { sanitizeModelInput } from "@webda/core";
1
+ import { checkModelParent, checkModelPermission, checkModelReparent, createModel, getParentRelation, loadModelForAction, prepareCreateInput, sanitizeModelInput, useModelMetadata, WebdaError } from "@webda/core";
2
2
  import { GraphQLError } from "graphql";
3
3
  /**
4
4
  * @returns the GraphQL error of a refused mutation
@@ -11,14 +11,57 @@ function permissionDenied() {
11
11
  });
12
12
  }
13
13
  /**
14
- * Whether a model attribute is part of the generated GraphQL input type: private (`__`) attributes and behavior
15
- * attributes can only be changed server-side (or through the behavior's own actions)
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)
16
58
  * @param attribute - attribute name
17
59
  * @param graph - relations of the model
60
+ * @param writable - `_`-prefixed attributes the model accepts from clients (`getClientWritableAttributes()`)
18
61
  * @returns true when clients may send it
19
62
  */
20
- export function isInputAttribute(attribute, graph) {
21
- if (attribute.startsWith("__")) {
63
+ export function isInputAttribute(attribute, graph, writable = []) {
64
+ if (attribute.startsWith("__") || (attribute.startsWith("_") && !writable.includes(attribute))) {
22
65
  return false;
23
66
  }
24
67
  return !(graph?.behaviors ?? []).some(b => b.attribute === attribute);
@@ -32,14 +75,41 @@ export function isInputAttribute(attribute, graph) {
32
75
  * @throws GraphQLError PERMISSION_DENIED when the object refuses the create
33
76
  */
34
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 ?? {});
35
80
  const object = new model();
36
- object.load(sanitizeModelInput(model, input ?? {}));
37
- if ((await object.canAct?.(context, "create")) !== true) {
38
- throw permissionDenied();
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;
39
97
  }
40
- await object.save();
41
98
  return object;
42
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
+ }
43
113
  /**
44
114
  * Update mutation: like the REST update, the sanitized input is loaded onto the stored object, so the stored
45
115
  * behavior state is kept
@@ -51,10 +121,17 @@ export async function createFromInput(model, input, context) {
51
121
  * @throws GraphQLError PERMISSION_DENIED when the object refuses the update
52
122
  */
53
123
  export async function updateFromInput(model, uuid, input, context) {
54
- const object = await model.ref(uuid).get();
55
- if ((await object?.canAct?.(context, "update")) !== true) {
56
- throw permissionDenied();
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];
57
131
  }
58
- return object.load(sanitizeModelInput(model, input ?? {})).save();
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();
59
136
  }
60
137
  //# sourceMappingURL=mutations.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mutations.js","sourceRoot":"","sources":["../src/mutations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC;;GAEG;AACH,SAAS,gBAAgB;IACvB,OAAO,IAAI,YAAY,CAAC,mBAAmB,EAAE;QAC3C,UAAU,EAAE;YACV,IAAI,EAAE,mBAAmB;SAC1B;KACF,CAAC,CAAC;AACL,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,SAAiB,EAAE,KAAkB;IACpE,IAAI,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,CAAC,CAAC,KAAK,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;AACxE,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,KAAU,EAAE,KAAU,EAAE,OAAY;IACxE,MAAM,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;IAC3B,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;IACpD,IAAI,CAAC,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACxD,MAAM,gBAAgB,EAAE,CAAC;IAC3B,CAAC;IACD,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;IACpB,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,KAAU,EAAE,IAAY,EAAE,KAAU,EAAE,OAAY;IACtF,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;IAC3C,IAAI,CAAC,MAAM,MAAM,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACzD,MAAM,gBAAgB,EAAE,CAAC;IAC3B,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AACpE,CAAC"}
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.4",
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.4",
22
- "@webda/runtime": "4.0.0-beta.4",
23
- "@webda/ql": "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.4"
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"