@webda/graphql 4.0.0-beta.4 → 4.0.0-beta.6

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,39 @@ 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, one reading private fields, or a statement (DELETE,
119
+ * UPDATE, SELECT field list): GraphQL selection sets choose the fields
120
+ */
121
+ parseFilter(filter?: string): WebdaQL.PartialValidator | undefined;
122
+ /**
123
+ * {@link loadModelInstance} for an element of a list (links, maps): an element the caller may not read, or that
124
+ * no longer exists, is dropped (null) instead of failing the whole list, like a filtered query
125
+ * @param knownFieldsOrId - UUID string or object with known field values
126
+ * @param model - model class to load from
127
+ * @param context - web context for permission checks
128
+ * @param info - GraphQL field node describing the selection set
129
+ * @param filter - optional WebdaQL filter to apply to the result
130
+ * @returns the model instance, or null
131
+ */
132
+ loadListedInstance(knownFieldsOrId: string | {
133
+ uuid: string;
134
+ [key: string]: any;
135
+ }, model: ModelDefinition<any>, context: WebContext, info?: FieldNode, filter?: WebdaQL.PartialValidator): Promise<any>;
116
136
  /**
117
137
  * Load a model instance, optimizing to skip store reads when all requested fields are already known
118
138
  * @param knownFieldsOrId - UUID string or object with known field values
@@ -147,6 +167,43 @@ export declare class GraphQLService<T extends GraphQLParameters = GraphQLParamet
147
167
  * @returns array of event name strings the client subscribed to
148
168
  */
149
169
  getSubscribedEvents(info: GraphQLResolveInfo): string[];
170
+ /**
171
+ * Query a 1:n relation (ModelRelated) as the caller: the relation condition is merged into the client query, then
172
+ * filtered like any model query (permission query, canAct "get")
173
+ * @param related - the ModelRelated attribute of the source object
174
+ * @param related.getQuery - merges the relation condition into a query
175
+ * @param model - the target model class
176
+ * @param query - the client query
177
+ * @param context - the caller context
178
+ * @returns the readable related objects
179
+ */
180
+ queryRelated(related: {
181
+ getQuery(query: string): string;
182
+ }, model: any, query: string, context: any): Promise<{
183
+ results: any[];
184
+ continuationToken?: string;
185
+ }>;
186
+ /**
187
+ * Run a root query argument: the DomainService query with the caller permissions
188
+ * @param model - the model class
189
+ * @param query - the client query
190
+ * @param context - the caller context
191
+ * @returns the readable results
192
+ * @throws GraphQLError BAD_USER_INPUT for a statement (DELETE, UPDATE, SELECT field list)
193
+ */
194
+ queryModel(model: any, query: string, context: any): Promise<{
195
+ results: any[];
196
+ continuationToken?: string;
197
+ }>;
198
+ /**
199
+ * Refuse a query argument that is not a filter: DELETE and UPDATE are never run from GraphQL, and a SELECT field
200
+ * list is refused because the selection set already chooses the fields
201
+ *
202
+ * A query that does not parse is left to the query path, which reports it as before.
203
+ * @param query - the client query
204
+ * @throws GraphQLError BAD_USER_INPUT for a DELETE, an UPDATE or a SELECT field list
205
+ */
206
+ assertFilterQuery(query: string): void;
150
207
  /**
151
208
  * Create an async iterator that streams query results, updating when store events occur
152
209
  * @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, assertFilterOnly } 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,51 @@ 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, one reading private fields, or a statement (DELETE,
387
+ * UPDATE, SELECT field list): GraphQL selection sets choose the fields
388
+ */
389
+ parseFilter(filter) {
390
+ if (!filter) {
391
+ return undefined;
392
+ }
393
+ try {
394
+ const validator = new WebdaQL.PartialValidator(WebdaQL.unsanitize(filter));
395
+ assertNoPrivateFields(validator);
396
+ assertFilterOnly(validator);
397
+ return validator;
398
+ }
399
+ catch (err) {
400
+ throw new GraphQLError(err instanceof WebdaError.BadRequest ? err.message : "Invalid filter", {
401
+ extensions: { code: "BAD_USER_INPUT" }
402
+ });
403
+ }
404
+ }
405
+ /**
406
+ * {@link loadModelInstance} for an element of a list (links, maps): an element the caller may not read, or that
407
+ * no longer exists, is dropped (null) instead of failing the whole list, like a filtered query
408
+ * @param knownFieldsOrId - UUID string or object with known field values
409
+ * @param model - model class to load from
410
+ * @param context - web context for permission checks
411
+ * @param info - GraphQL field node describing the selection set
412
+ * @param filter - optional WebdaQL filter to apply to the result
413
+ * @returns the model instance, or null
414
+ */
415
+ async loadListedInstance(knownFieldsOrId, model, context, info, filter) {
416
+ try {
417
+ return await this.loadModelInstance(knownFieldsOrId, model, context, info, filter);
418
+ }
419
+ catch (err) {
420
+ if (err instanceof GraphQLError && err.extensions?.code === "NOT_FOUND") {
421
+ return null;
422
+ }
423
+ throw err;
424
+ }
425
+ }
378
426
  /**
379
427
  * Load a model instance, optimizing to skip store reads when all requested fields are already known
380
428
  * @param knownFieldsOrId - UUID string or object with known field values
@@ -408,21 +456,8 @@ let GraphQLService = (() => {
408
456
  }
409
457
  // Count the operation then and retrieve the model
410
458
  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
- }
459
+ // A missing object and an object the caller may not read answer the same NOT_FOUND
460
+ const modelInstance = await loadForAction(model, res.uuid || "", context, "get");
426
461
  if (filter && !filter.eval(modelInstance, false)) {
427
462
  return null;
428
463
  }
@@ -506,7 +541,7 @@ let GraphQLService = (() => {
506
541
  name
507
542
  });
508
543
  const input = new GraphQLInputObjectType({
509
- fields: this.getGraphQLFieldsFromSchema(schema, name + "Input", modelGraph, true),
544
+ fields: this.getGraphQLFieldsFromSchema(schema, name + "Input", modelGraph, true, getClientWritableAttributes(model)),
510
545
  name: name + "Input"
511
546
  });
512
547
  const actionsName = Object.keys(metadata.Actions);
@@ -544,14 +579,7 @@ let GraphQLService = (() => {
544
579
  }
545
580
  },
546
581
  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
- }
582
+ const object = await loadForAction(model, args.uuid, context, "delete");
555
583
  await object.delete();
556
584
  return {
557
585
  success: true
@@ -570,7 +598,8 @@ let GraphQLService = (() => {
570
598
  }
571
599
  },
572
600
  resolve: async (_, args, context) => {
573
- return await model.query(WebdaQL.unsanitize(args.query || ""));
601
+ // Same permission filtering as the DomainService query operation
602
+ return await this.queryModel(model, WebdaQL.unsanitize(args.query || ""), context);
574
603
  },
575
604
  subscribe: async (_source, args, context) => {
576
605
  this.log("DEBUG", "Subscription called on", args);
@@ -792,6 +821,55 @@ let GraphQLService = (() => {
792
821
  .filter(node => node.kind === "Field" && node.name.value !== "latestEventTime")
793
822
  .map(n => n.name.value);
794
823
  }
824
+ /**
825
+ * Query a 1:n relation (ModelRelated) as the caller: the relation condition is merged into the client query, then
826
+ * filtered like any model query (permission query, canAct "get")
827
+ * @param related - the ModelRelated attribute of the source object
828
+ * @param related.getQuery - merges the relation condition into a query
829
+ * @param model - the target model class
830
+ * @param query - the client query
831
+ * @param context - the caller context
832
+ * @returns the readable related objects
833
+ */
834
+ async queryRelated(related, model, query, context) {
835
+ this.assertFilterQuery(query);
836
+ return queryModelWithPermissions(model, related.getQuery(query), context);
837
+ }
838
+ /**
839
+ * Run a root query argument: the DomainService query with the caller permissions
840
+ * @param model - the model class
841
+ * @param query - the client query
842
+ * @param context - the caller context
843
+ * @returns the readable results
844
+ * @throws GraphQLError BAD_USER_INPUT for a statement (DELETE, UPDATE, SELECT field list)
845
+ */
846
+ async queryModel(model, query, context) {
847
+ this.assertFilterQuery(query);
848
+ return queryModelWithPermissions(model, query, context);
849
+ }
850
+ /**
851
+ * Refuse a query argument that is not a filter: DELETE and UPDATE are never run from GraphQL, and a SELECT field
852
+ * list is refused because the selection set already chooses the fields
853
+ *
854
+ * A query that does not parse is left to the query path, which reports it as before.
855
+ * @param query - the client query
856
+ * @throws GraphQLError BAD_USER_INPUT for a DELETE, an UPDATE or a SELECT field list
857
+ */
858
+ assertFilterQuery(query) {
859
+ let validator;
860
+ try {
861
+ validator = new WebdaQL.QueryValidator(query ?? "");
862
+ }
863
+ catch {
864
+ return;
865
+ }
866
+ try {
867
+ assertFilterOnly(validator);
868
+ }
869
+ catch (err) {
870
+ throw new GraphQLError(err.message, { extensions: { code: "BAD_USER_INPUT" } });
871
+ }
872
+ }
795
873
  /**
796
874
  * Create an async iterator that streams query results, updating when store events occur
797
875
  * @param model - model class to query
@@ -801,7 +879,10 @@ let GraphQLService = (() => {
801
879
  * @returns async iterator yielding updated query results on store changes
802
880
  */
803
881
  async registerAsyncIteratorQuery(model, plural, query, context) {
804
- let result = await model.query(query);
882
+ // Results are always filtered with the subscriber permissions (permission query and canAct "get")
883
+ this.assertFilterQuery(query);
884
+ const runQuery = () => queryModelWithPermissions(model, query, context);
885
+ let result = await runQuery();
805
886
  const queryInfo = new WebdaQL.QueryValidator(query);
806
887
  const updatedCallback = async (evt) => {
807
888
  this.log("TRACE", "Event from", evt.emitterId, evt.object_id);
@@ -811,6 +892,9 @@ let GraphQLService = (() => {
811
892
  // We let the other listeners finish before returning the object
812
893
  await new Promise(resolve => nextTick(resolve));
813
894
  result.results = await Promise.all(result.results.map(r => (r.getUUID() === evt.object_id ? model.ref(evt.object_id).get() : r)));
895
+ // The update may have removed the subscriber's access to the object
896
+ const allowed = await Promise.all(result.results.map(r => isModelActionAllowed(r, context, "get", model)));
897
+ result.results = result.results.filter((_r, i) => allowed[i]);
814
898
  return {
815
899
  continuationToken: result.continuationToken,
816
900
  results: result.results
@@ -822,14 +906,16 @@ let GraphQLService = (() => {
822
906
  Deleted: async (evt) => {
823
907
  if (!result.results.find(e => evt.object_id === e.getUUID()))
824
908
  return;
825
- result = await model.query(query);
909
+ result = await runQuery();
826
910
  return result;
827
911
  },
828
912
  Created: async (evt) => {
829
913
  // 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")) {
914
+ if (queryInfo.eval(evt.object) &&
915
+ !queryInfo.getOffset() &&
916
+ (await isModelActionAllowed(evt.object, context, "get", model))) {
831
917
  // Should check with the order by of the query to see if we need to recompute
832
- result = await model.query(query);
918
+ result = await runQuery();
833
919
  return result;
834
920
  }
835
921
  return;
@@ -857,7 +943,15 @@ let GraphQLService = (() => {
857
943
  // We rely on the cache of the store to get the full object
858
944
  // We let the other listeners finish before returning the object
859
945
  await new Promise(resolve => nextTick(resolve));
860
- return model.ref(evt.object_id).get();
946
+ let updated;
947
+ try {
948
+ updated = await model.ref(evt.object_id).get();
949
+ }
950
+ catch {
951
+ // Gone between the event and the read
952
+ }
953
+ // The update may have removed the subscriber's access: report it like a deletion (a throwing canAct refuses)
954
+ return updated && (await isModelActionAllowed(updated, context, "get", model)) ? updated : null;
861
955
  };
862
956
  const events = {
863
957
  Updated: updatedCallback,
@@ -870,15 +964,8 @@ let GraphQLService = (() => {
870
964
  Patched: updatedCallback,
871
965
  PartialUpdated: updatedCallback
872
966
  };
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
- }
967
+ // Ensure we have the permission to get the object: a refused read answers like a missing object
968
+ const modelInstance = await loadForAction(model, uuid, context, "get");
882
969
  // Listen on the model's repository typed events instead of legacy Store.* events.
883
970
  return new EventIterator(useRepository(model), events, identifier || useModelMetadata(model)?.Identifier, modelInstance).iterate();
884
971
  }
@@ -900,7 +987,10 @@ let GraphQLService = (() => {
900
987
  return { latestEventTime: Date.now(), [eventName]: evt };
901
988
  };
902
989
  const eventsMap = {};
903
- const modelInstance = uuid !== null ? await model.ref(uuid).get() : undefined;
990
+ if (uuid !== null) {
991
+ // Listening to an object requires reading it: a refused read answers like a missing object
992
+ await loadForAction(model, uuid, context, "get");
993
+ }
904
994
  events
905
995
  .filter(e => useCore().getModelStore(model)?.authorizeClientEvent?.(e, context) !== false)
906
996
  .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.6",
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/runtime": "4.0.0-beta.6",
22
+ "@webda/core": "4.0.0-beta.6",
23
+ "@webda/ql": "4.0.0-beta.6"
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.6"
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"