@webda/core 4.0.0-beta.5 → 4.0.0-beta.7

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.
Files changed (157) hide show
  1. package/README.md +6 -5
  2. package/lib/application/application.d.ts.map +1 -1
  3. package/lib/application/application.js +18 -6
  4. package/lib/application/application.js.map +1 -1
  5. package/lib/application/iconfiguration.d.ts +31 -0
  6. package/lib/application/iconfiguration.d.ts.map +1 -1
  7. package/lib/application/iconfiguration.js.map +1 -1
  8. package/lib/application/unpackedapplication.d.ts.map +1 -1
  9. package/lib/application/unpackedapplication.js +2 -1
  10. package/lib/application/unpackedapplication.js.map +1 -1
  11. package/lib/bin/cli-phase.d.ts +18 -2
  12. package/lib/bin/cli-phase.d.ts.map +1 -1
  13. package/lib/bin/cli-phase.js +25 -0
  14. package/lib/bin/cli-phase.js.map +1 -1
  15. package/lib/bin/cli.d.ts +19 -0
  16. package/lib/bin/cli.d.ts.map +1 -1
  17. package/lib/bin/cli.js +120 -41
  18. package/lib/bin/cli.js.map +1 -1
  19. package/lib/configurations/configuration.service.d.ts +7 -0
  20. package/lib/configurations/configuration.service.d.ts.map +1 -1
  21. package/lib/configurations/configuration.service.js +18 -5
  22. package/lib/configurations/configuration.service.js.map +1 -1
  23. package/lib/configurations/kubernetesconfiguration.service.d.ts.map +1 -1
  24. package/lib/configurations/kubernetesconfiguration.service.js +1 -4
  25. package/lib/configurations/kubernetesconfiguration.service.js.map +1 -1
  26. package/lib/contexts/httpcontext.d.ts +15 -1
  27. package/lib/contexts/httpcontext.d.ts.map +1 -1
  28. package/lib/contexts/httpcontext.js +61 -19
  29. package/lib/contexts/httpcontext.js.map +1 -1
  30. package/lib/contexts/operationcontext.d.ts +6 -0
  31. package/lib/contexts/operationcontext.d.ts.map +1 -1
  32. package/lib/contexts/operationcontext.js +16 -2
  33. package/lib/contexts/operationcontext.js.map +1 -1
  34. package/lib/contexts/restcontext.d.ts +110 -0
  35. package/lib/contexts/restcontext.d.ts.map +1 -0
  36. package/lib/contexts/restcontext.js +247 -0
  37. package/lib/contexts/restcontext.js.map +1 -0
  38. package/lib/contexts/streamingcontext.d.ts +71 -0
  39. package/lib/contexts/streamingcontext.d.ts.map +1 -0
  40. package/lib/contexts/streamingcontext.js +93 -0
  41. package/lib/contexts/streamingcontext.js.map +1 -0
  42. package/lib/contexts/webcontext.d.ts +20 -0
  43. package/lib/contexts/webcontext.d.ts.map +1 -1
  44. package/lib/contexts/webcontext.js +43 -10
  45. package/lib/contexts/webcontext.js.map +1 -1
  46. package/lib/contexts/websocketcontext.d.ts +39 -0
  47. package/lib/contexts/websocketcontext.d.ts.map +1 -0
  48. package/lib/contexts/websocketcontext.js +67 -0
  49. package/lib/contexts/websocketcontext.js.map +1 -0
  50. package/lib/core/asyncqueue.d.ts +50 -0
  51. package/lib/core/asyncqueue.d.ts.map +1 -0
  52. package/lib/core/asyncqueue.js +96 -0
  53. package/lib/core/asyncqueue.js.map +1 -0
  54. package/lib/core/core.d.ts +21 -2
  55. package/lib/core/core.d.ts.map +1 -1
  56. package/lib/core/core.js +87 -24
  57. package/lib/core/core.js.map +1 -1
  58. package/lib/core/icore.d.ts +14 -1
  59. package/lib/core/icore.d.ts.map +1 -1
  60. package/lib/core/icore.js.map +1 -1
  61. package/lib/core/instancestorage.d.ts +1 -0
  62. package/lib/core/instancestorage.d.ts.map +1 -1
  63. package/lib/core/instancestorage.js +1 -0
  64. package/lib/core/instancestorage.js.map +1 -1
  65. package/lib/core/operations.d.ts +49 -6
  66. package/lib/core/operations.d.ts.map +1 -1
  67. package/lib/core/operations.js +187 -24
  68. package/lib/core/operations.js.map +1 -1
  69. package/lib/deployers/git.d.ts +4 -2
  70. package/lib/deployers/git.d.ts.map +1 -1
  71. package/lib/deployers/git.js +44 -5
  72. package/lib/deployers/git.js.map +1 -1
  73. package/lib/deployers/packager.d.ts +38 -0
  74. package/lib/deployers/packager.d.ts.map +1 -1
  75. package/lib/deployers/packager.js +70 -18
  76. package/lib/deployers/packager.js.map +1 -1
  77. package/lib/deployers/packager.service.d.ts +33 -0
  78. package/lib/deployers/packager.service.d.ts.map +1 -0
  79. package/lib/deployers/packager.service.js +112 -0
  80. package/lib/deployers/packager.service.js.map +1 -0
  81. package/lib/errors/errors.d.ts +15 -0
  82. package/lib/errors/errors.d.ts.map +1 -1
  83. package/lib/errors/errors.js +20 -0
  84. package/lib/errors/errors.js.map +1 -1
  85. package/lib/index.d.ts +7 -1
  86. package/lib/index.d.ts.map +1 -1
  87. package/lib/index.js +6 -0
  88. package/lib/index.js.map +1 -1
  89. package/lib/models/permissions.d.ts +12 -1
  90. package/lib/models/permissions.d.ts.map +1 -1
  91. package/lib/models/permissions.js +29 -2
  92. package/lib/models/permissions.js.map +1 -1
  93. package/lib/rest/restoperationstransport.service.d.ts +108 -0
  94. package/lib/rest/restoperationstransport.service.d.ts.map +1 -1
  95. package/lib/rest/restoperationstransport.service.js +348 -9
  96. package/lib/rest/restoperationstransport.service.js.map +1 -1
  97. package/lib/rest/router.service.d.ts +1 -1
  98. package/lib/rest/router.service.d.ts.map +1 -1
  99. package/lib/rest/router.service.js.map +1 -1
  100. package/lib/services/audit.model.d.ts.map +1 -1
  101. package/lib/services/audit.model.js +7 -3
  102. package/lib/services/audit.model.js.map +1 -1
  103. package/lib/services/authenticatedencryption.d.ts +25 -0
  104. package/lib/services/authenticatedencryption.d.ts.map +1 -0
  105. package/lib/services/authenticatedencryption.js +56 -0
  106. package/lib/services/authenticatedencryption.js.map +1 -0
  107. package/lib/services/cloudbinary.d.ts.map +1 -1
  108. package/lib/services/cloudbinary.js +3 -2
  109. package/lib/services/cloudbinary.js.map +1 -1
  110. package/lib/services/command.d.ts +7 -1
  111. package/lib/services/command.d.ts.map +1 -1
  112. package/lib/services/command.js +4 -0
  113. package/lib/services/command.js.map +1 -1
  114. package/lib/services/cryptoservice.service.d.ts +405 -25
  115. package/lib/services/cryptoservice.service.d.ts.map +1 -1
  116. package/lib/services/cryptoservice.service.js +779 -72
  117. package/lib/services/cryptoservice.service.js.map +1 -1
  118. package/lib/services/httpserver.service.d.ts.map +1 -1
  119. package/lib/services/httpserver.service.js +15 -9
  120. package/lib/services/httpserver.service.js.map +1 -1
  121. package/lib/services/icryptoservice.d.ts +11 -0
  122. package/lib/services/icryptoservice.d.ts.map +1 -1
  123. package/lib/services/icryptoservice.js +2 -0
  124. package/lib/services/icryptoservice.js.map +1 -1
  125. package/lib/services/mailer.service.d.ts +4 -0
  126. package/lib/services/mailer.service.d.ts.map +1 -1
  127. package/lib/services/mailer.service.js +8 -1
  128. package/lib/services/mailer.service.js.map +1 -1
  129. package/lib/services/operationstransport.d.ts +13 -0
  130. package/lib/services/operationstransport.d.ts.map +1 -1
  131. package/lib/services/operationstransport.js +28 -6
  132. package/lib/services/operationstransport.js.map +1 -1
  133. package/lib/services/pki.encrypter.d.ts +214 -0
  134. package/lib/services/pki.encrypter.d.ts.map +1 -0
  135. package/lib/services/pki.encrypter.js +350 -0
  136. package/lib/services/pki.encrypter.js.map +1 -0
  137. package/lib/services/secretscheck.d.ts +120 -0
  138. package/lib/services/secretscheck.d.ts.map +1 -0
  139. package/lib/services/secretscheck.js +322 -0
  140. package/lib/services/secretscheck.js.map +1 -0
  141. package/lib/services/servicecommands.d.ts +8 -4
  142. package/lib/services/servicecommands.d.ts.map +1 -1
  143. package/lib/services/servicecommands.js +14 -5
  144. package/lib/services/servicecommands.js.map +1 -1
  145. package/lib/session/manager.model.d.ts +3 -1
  146. package/lib/session/manager.model.d.ts.map +1 -1
  147. package/lib/session/manager.model.js +6 -3
  148. package/lib/session/manager.model.js.map +1 -1
  149. package/lib/stores/store.d.ts +20 -1
  150. package/lib/stores/store.d.ts.map +1 -1
  151. package/lib/stores/store.js +29 -1
  152. package/lib/stores/store.js.map +1 -1
  153. package/lib/test/objects.d.ts.map +1 -1
  154. package/lib/test/objects.js +3 -1
  155. package/lib/test/objects.js.map +1 -1
  156. package/package.json +15 -15
  157. package/webda.module.json +224 -50
@@ -0,0 +1,96 @@
1
+ /**
2
+ * A push-based async iterable: producers push, one consumer iterates. `end()` (or the consumer leaving the loop)
3
+ * finishes it; items pushed after the end are dropped.
4
+ */
5
+ export class AsyncQueue {
6
+ items = [];
7
+ waiters = [];
8
+ done = false;
9
+ sizes = [];
10
+ bytes = 0;
11
+ size;
12
+ /**
13
+ * @param options - optional settings
14
+ * @param options.size - measures an item in bytes, to track `pendingBytes`
15
+ */
16
+ constructor(options = {}) {
17
+ this.size = options.size;
18
+ }
19
+ /**
20
+ * @returns whether the queue is finished
21
+ */
22
+ get ended() {
23
+ return this.done;
24
+ }
25
+ /**
26
+ * @param item - the next item
27
+ * @param size - its size in bytes (defaults to the size function's result)
28
+ */
29
+ push(item, size) {
30
+ if (this.done)
31
+ return;
32
+ const waiter = this.waiters.shift();
33
+ if (waiter)
34
+ waiter({ value: item, done: false });
35
+ else {
36
+ const bytes = size ?? this.size?.(item) ?? 0;
37
+ this.items.push(item);
38
+ this.sizes.push(bytes);
39
+ this.bytes += bytes;
40
+ }
41
+ }
42
+ /**
43
+ * @returns the size of the items pushed and not yet consumed (0 when no size is given)
44
+ */
45
+ get pendingBytes() {
46
+ return this.bytes;
47
+ }
48
+ /**
49
+ * @returns the number of items pushed and not yet consumed
50
+ */
51
+ get pending() {
52
+ return this.items.length;
53
+ }
54
+ /**
55
+ * No more items.
56
+ * @param discard - also drop the items not consumed yet
57
+ */
58
+ end(discard = false) {
59
+ if (discard) {
60
+ this.items.length = 0;
61
+ this.sizes.length = 0;
62
+ this.bytes = 0;
63
+ }
64
+ if (this.done)
65
+ return;
66
+ this.done = true;
67
+ for (const waiter of this.waiters.splice(0))
68
+ waiter({ value: undefined, done: true });
69
+ }
70
+ /**
71
+ * @returns the next item, without ending the queue (unlike breaking out of a for await)
72
+ */
73
+ next() {
74
+ if (this.items.length > 0) {
75
+ const value = this.items.shift();
76
+ this.bytes -= this.sizes.shift();
77
+ return Promise.resolve({ value, done: false });
78
+ }
79
+ if (this.done)
80
+ return Promise.resolve({ value: undefined, done: true });
81
+ return new Promise(resolve => this.waiters.push(resolve));
82
+ }
83
+ /**
84
+ * @returns the iterator
85
+ */
86
+ [Symbol.asyncIterator]() {
87
+ return {
88
+ next: () => this.next(),
89
+ return: async () => {
90
+ this.end();
91
+ return { value: undefined, done: true };
92
+ }
93
+ };
94
+ }
95
+ }
96
+ //# sourceMappingURL=asyncqueue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"asyncqueue.js","sourceRoot":"","sources":["../../src/core/asyncqueue.ts"],"names":[],"mappings":"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"}
@@ -63,11 +63,29 @@ export declare class Core implements ICore {
63
63
  */
64
64
  configurationService?: string;
65
65
  applicationConfiguration: Configuration;
66
+ /**
67
+ * Last error of the services that could not be created, by service name
68
+ */
69
+ protected serviceErrors: Record<string, any>;
66
70
  /**
67
71
  * Create a new Core
68
72
  * @param application - the application instance
69
73
  */
70
74
  constructor(application?: Application);
75
+ /**
76
+ * Compute each service configuration from the application configuration
77
+ *
78
+ * The service configuration is the global parameters merged with the service own configuration.
79
+ */
80
+ protected computeServicesConfiguration(): void;
81
+ /**
82
+ * Decrypt the encrypted values of the application configuration
83
+ *
84
+ * `crypt:<encrypter>:<data>` values become {@link SecretString} and `scrypt:<encrypter>:<data>`
85
+ * plain strings. It runs before any service is created: the encrypters must be
86
+ * registered by the loaded modules.
87
+ */
88
+ protected decryptConfiguration(): Promise<void>;
71
89
  /**
72
90
  * Get the configuration object
73
91
  * @returns {Configuration} the result
@@ -194,8 +212,9 @@ export declare class Core implements ICore {
194
212
  */
195
213
  protected createService(service: string): AbstractService<import("../index.js").ServiceParameters, {}>;
196
214
  /**
197
- * Auto-register application beans as services if not already configured.
198
- * Tests can disable by overriding getBeans() to return empty/undefined.
215
+ * Declare application beans as services if not already configured.
216
+ * The services themselves are created along with the configured ones.
217
+ * Tests can disable by overriding registerBeans().
199
218
  */
200
219
  registerBeans(): void;
201
220
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/core/core.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAEjE,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,KAAK,EAAE,KAAK,UAAU,EAAE,MAAM,eAAe,CAAC;AAEvD,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE/C,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAI7E,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAEhD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAKnD,MAAM,MAAM,UAAU,GAClB,SAAS,GACT,SAAS,GACT,WAAW,GACX,UAAU,GACV,cAAc,GACd,gBAAgB,GAChB,OAAO,GACP,UAAU,GACV,SAAS,CAAC;AAMd;;;;;GAKG;AACH,qBAAa,IAAK,YAAW,KAAK;IAChC;;;OAGG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAM;IACzD;;;OAGG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAM;IAC7C;;OAEG;IACH,SAAS,CAAC,WAAW,EAAE,WAAW,CAAC;IACnC;;;OAGG;IACH,SAAS,CAAC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7C;;;OAGG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;IACzB;;OAEG;IACH,OAAO,CAAC,UAAU,CAAS;IAC3B;;OAEG;IACH,SAAS,CAAC,UAAU,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,uBAAuB,CAAA;KAAE,CAAM;IACtE;;OAEG;IACH,UAAU,EAAE,MAAM,EAAE,CAAM;IAC1B;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAM;IAC/C;;OAEG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,wBAAwB,EAAE,aAAa,CAAC;IAExC;;;OAGG;IACH,YAAY,WAAW,CAAC,EAAE,WAAW,EA6BpC;IAED;;;OAGG;IACH,gBAAgB,wBAEf;IAED;;;;;OAKG;IACH,aAAa,CAAC,CAAC,SAAS,KAAK,EAAE,kBAAkB,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,KAAK,CAa3F;IAED;;;;;;OAMG;IAEH,OAAO,CAAC,mBAAmB;IAqB3B;;;;;OAKG;IACH,cAAc,CAAC,CAAC,SAAS,KAAK,EAAE,kBAAkB,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,eAAe,CAKlH;IAED;;;;;OAKG;IAEH,SAAS,CAAC,oBAAoB,CAAC,CAAC,SAAS,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,aAAa,CAiC/F;IAED;;;;;OAKG;IACH,aAAa,IAAI,MAAM,CAGtB;IAED;;;;OAIG;IACH,SAAS,CAAC,OAAO,GAAE,MAAW,GAAG,MAAM,CAKtC;IAED;;;OAGG;IACH,UAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,iBAe1C;IAED;;;;;;;;;;;;OAYG;IAGG,OAAO,kBAwCZ;IAED;;;;;;;OAOG;IAGG,IAAI,kBAMT;IAED;;;;;OAKG;IACH,UAAU,IAAI,MAAM,CAEnB;IAED;;;;;OAKG;IACH,UAAU,IAAI,MAAM,EAAE,CAKrB;IAED;;;;;OAKG;IACH,UAAU,CAAC,CAAC,GAAG,eAAe,EAAE,IAAI,GAAE,MAAW,GAAG,CAAC,CAWpD;IAED;;;OAGG;IACH,WAAW,IAAI;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CAAA;KAAE,CAEhD;IACD;;;OAGG;IACI,OAAO,IAAI,OAAO,CAExB;IAED;;;;OAIG;IACH,GAAG,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,QAExC;IAED;;;OAGG;IACH,mBAAmB,CAAC,OAAO,EAAE,GAAG,QA+C/B;IAED;;;;OAIG;IACH,SAAS,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,gEAgBtC;IAED;;;OAGG;IACH,aAAa,SAqBZ;IAED;;;OAGG;IACH,QAAQ,QAGP;IAED;;OAEG;IAEG,IAAI,kBAcT;IAED;;;OAGG;IACH,MAAM;QAEF,aAAa;QACb,WAAW;MAEd;IAED;;;;OAIG;IACH,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI,CAMlC;CACF"}
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/core/core.ts"],"names":[],"mappings":"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"}
package/lib/core/core.js CHANGED
@@ -46,6 +46,29 @@ import { useApplication, useModel, useModelId } from "../application/hooks.js";
46
46
  import { InstanceCache } from "../cache/cache.js";
47
47
  import { AsyncLocalStorage } from "node:async_hooks";
48
48
  import * as jsondiffpatch from "jsondiffpatch";
49
+ import { CryptoService, SecretString } from "../services/cryptoservice.service.js";
50
+ import { createHmac, randomBytes } from "node:crypto";
51
+ /**
52
+ * Per-process key to compare secrets in configuration diffs without exposing them
53
+ */
54
+ const SECRET_DIFF_KEY = randomBytes(32);
55
+ /**
56
+ * Replace the SecretString of a configuration by a fingerprint, so a diff detects secret changes
57
+ * @param value - the configuration
58
+ * @returns a copy safe to diff
59
+ */
60
+ function fingerprintSecrets(value) {
61
+ if (value instanceof SecretString) {
62
+ return { $secret: createHmac("sha256", new Uint8Array(SECRET_DIFF_KEY)).update(value.getValue()).digest("base64") };
63
+ }
64
+ if (Array.isArray(value)) {
65
+ return value.map(fingerprintSecrets);
66
+ }
67
+ if (value !== null && typeof value === "object" && Object.getPrototypeOf(value) === Object.prototype) {
68
+ return Object.fromEntries(Object.entries(value).map(([k, v]) => [k, fingerprintSecrets(v)]));
69
+ }
70
+ return value;
71
+ }
49
72
  const CoreState = (options) => State(options);
50
73
  const depsDetector = new AsyncLocalStorage();
51
74
  /**
@@ -121,6 +144,10 @@ let Core = (() => {
121
144
  */
122
145
  configurationService;
123
146
  applicationConfiguration;
147
+ /**
148
+ * Last error of the services that could not be created, by service name
149
+ */
150
+ serviceErrors = {};
124
151
  /**
125
152
  * Create a new Core
126
153
  * @param application - the application instance
@@ -130,7 +157,6 @@ let Core = (() => {
130
157
  this.logger = new Logger(application.getWorkerOutput(), { class: "@webda/core" });
131
158
  this.application = application || new UnpackedApplication(".");
132
159
  // Load the configuration and migrate
133
- this.configuration = {};
134
160
  this.applicationConfiguration = this.application.getConfiguration();
135
161
  for (const [key, value] of Object.entries(this.applicationConfiguration.services)) {
136
162
  try {
@@ -139,11 +165,8 @@ let Core = (() => {
139
165
  catch (err) {
140
166
  this.log("ERROR", `Cannot load modda ${value.type || key} for service ${key}`, err);
141
167
  }
142
- this.configuration[key] = Object.freeze((this.moddas[key]?.filterParameters || (p => p))({
143
- ...this.applicationConfiguration.parameters,
144
- ...value
145
- }));
146
168
  }
169
+ this.computeServicesConfiguration();
147
170
  if (this.applicationConfiguration.application?.configurationService &&
148
171
  this.configuration[this.applicationConfiguration.application.configurationService]) {
149
172
  this.configurationService = this.applicationConfiguration.application.configurationService;
@@ -151,6 +174,41 @@ let Core = (() => {
151
174
  Object.freeze(this.configuration[this.applicationConfiguration.application.configurationService]);
152
175
  }
153
176
  }
177
+ /**
178
+ * Compute each service configuration from the application configuration
179
+ *
180
+ * The service configuration is the global parameters merged with the service own configuration.
181
+ */
182
+ computeServicesConfiguration() {
183
+ this.configuration = {};
184
+ for (const [key, value] of Object.entries(this.applicationConfiguration.services)) {
185
+ this.configuration[key] = Object.freeze((this.moddas[key]?.filterParameters || (p => p))({
186
+ ...this.applicationConfiguration.parameters,
187
+ ...value
188
+ }));
189
+ }
190
+ }
191
+ /**
192
+ * Decrypt the encrypted values of the application configuration
193
+ *
194
+ * `crypt:<encrypter>:<data>` values become {@link SecretString} and `scrypt:<encrypter>:<data>`
195
+ * plain strings. It runs before any service is created: the encrypters must be
196
+ * registered by the loaded modules.
197
+ */
198
+ async decryptConfiguration() {
199
+ // Only the services and parameters can hold secrets, not the cached modules
200
+ const { services, parameters } = this.applicationConfiguration;
201
+ const decrypted = await CryptoService.decryptConfiguration({ services, parameters }, [], {
202
+ settings: parameters?.configurationEncryption,
203
+ appPath: this.application.getPath()
204
+ });
205
+ // Keep the configuration untouched when nothing was encrypted
206
+ if (JSON.stringify(decrypted) === JSON.stringify({ services, parameters })) {
207
+ return;
208
+ }
209
+ this.applicationConfiguration = { ...this.applicationConfiguration, ...decrypted };
210
+ this.computeServicesConfiguration();
211
+ }
154
212
  /**
155
213
  * Get the configuration object
156
214
  * @returns {Configuration} the result
@@ -309,13 +367,19 @@ let Core = (() => {
309
367
  * Build-time hooks (`@BuildCommand`) run after this phase.
310
368
  */
311
369
  async resolve() {
370
+ // Decrypt the configuration secrets before any service reads them
371
+ await this.decryptConfiguration();
372
+ // Declare application beans before the configuration service bootstraps,
373
+ // so dynamic configuration applies to them like any configured service
374
+ this.registerBeans();
312
375
  // Create services
313
376
  // First create the configuration service if defined
314
377
  const initOrders = [];
315
378
  if (this.configurationService) {
316
379
  const service = this.createService(this.configurationService);
317
380
  if (!service) {
318
- throw new Error(`Cannot create configuration service ${this.configurationService}`);
381
+ const cause = this.serviceErrors[this.configurationService];
382
+ throw new Error(`Cannot create configuration service ${this.configurationService}${cause ? `: ${cause.message || cause}` : ""}`, { cause });
319
383
  }
320
384
  // Will update the configuration
321
385
  await service.bootstrap(this);
@@ -331,12 +395,10 @@ let Core = (() => {
331
395
  await this.initService(service);
332
396
  }
333
397
  }
334
- // Create all services defined in configuration
398
+ // Create all services defined in configuration, beans included
335
399
  for (const service in this.configuration) {
336
400
  this.getService(service);
337
401
  }
338
- // Auto-register application beans as services
339
- this.registerBeans();
340
402
  this.initOrders = this.initOrders.filter(s => !initOrders.includes(s) && this.services[s]);
341
403
  // Ensure stores are initialized first
342
404
  this.initOrders.sort((a, b) => {
@@ -453,7 +515,8 @@ let Core = (() => {
453
515
  newConfiguration[key].type = this.configuration[key].type;
454
516
  }
455
517
  Object.freeze(newConfiguration);
456
- const delta = jsondiffpatch.diff(this.configuration, newConfiguration);
518
+ // Secrets are compared through a fingerprint: their value is not enumerable
519
+ const delta = jsondiffpatch.diff(fingerprintSecrets(this.configuration), fingerprintSecrets(newConfiguration));
457
520
  if (!delta) {
458
521
  this.log("DEBUG", "No configuration changes");
459
522
  return;
@@ -475,8 +538,10 @@ let Core = (() => {
475
538
  * @returns the result
476
539
  */
477
540
  createService(service) {
541
+ delete this.serviceErrors[service];
478
542
  const serviceConstructor = this.moddas[service];
479
543
  if (!serviceConstructor) {
544
+ this.serviceErrors[service] = new Error(`unknown type ${this.configuration[service]?.type}`);
480
545
  this.log("ERROR", `Create service ${service}(${this.configuration[service]?.type}) failed: unknown type`);
481
546
  return;
482
547
  }
@@ -488,37 +553,35 @@ let Core = (() => {
488
553
  this.services[service] = new serviceConstructor(service, params);
489
554
  }
490
555
  catch (err) {
556
+ this.serviceErrors[service] = err;
491
557
  this.log("ERROR", "Cannot create service", service, err.message || err);
492
558
  }
493
559
  return this.services[service];
494
560
  }
495
561
  /**
496
- * Auto-register application beans as services if not already configured.
497
- * Tests can disable by overriding getBeans() to return empty/undefined.
562
+ * Declare application beans as services if not already configured.
563
+ * The services themselves are created along with the configured ones.
564
+ * Tests can disable by overriding registerBeans().
498
565
  */
499
566
  registerBeans() {
500
567
  const appBeans = this.application.beans || {};
501
- if (Object.keys(appBeans).length === 0)
502
- return;
503
568
  for (const beanName in appBeans) {
504
- // Skip if a service with this bean type is already configured
505
- if (Object.values(this.applicationConfiguration.services).some((s) => s.type === beanName)) {
506
- continue;
507
- }
508
- const serviceName = beanName.split("/").pop();
509
- if (this.services[serviceName])
510
- continue;
511
569
  const beanClass = appBeans[beanName];
512
570
  if (!beanClass)
513
571
  continue;
572
+ // Skip if a configured service already uses this bean
573
+ if (Object.values(this.moddas).includes(beanClass))
574
+ continue;
575
+ const serviceName = beanName.split("/").pop();
576
+ if (this.configuration[serviceName])
577
+ continue;
514
578
  this.moddas[serviceName] = beanClass;
515
- this.moddas[beanName] = beanClass;
516
579
  const filtered = (beanClass.filterParameters || (p => p))({
517
580
  ...this.applicationConfiguration.parameters
518
581
  });
519
582
  filtered.type = beanName;
520
- this.configuration[serviceName] = Object.freeze(filtered);
521
- this.getService(serviceName);
583
+ // Configuration can be frozen once updated by the configuration service
584
+ this.configuration = { ...this.configuration, [serviceName]: Object.freeze(filtered) };
522
585
  }
523
586
  }
524
587
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"core.js","sourceRoot":"","sources":["../../src/core/core.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"core.js","sourceRoot":"","sources":["../../src/core/core.ts"],"names":[],"mappings":"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"}
@@ -34,12 +34,16 @@ export interface RestParameters {
34
34
  };
35
35
  };
36
36
  }
37
+ /**
38
+ * How an operation streams: `client` takes a stream of messages, `server` produces one, `bidi` both
39
+ */
40
+ export type OperationStreaming = "none" | "client" | "server" | "bidi";
37
41
  /**
38
42
  * gRPC transport parameters for use with `@Operation<GrpcParameters>()`
39
43
  */
40
44
  export interface GrpcParameters {
41
45
  grpc?: false | {
42
- streaming?: "none" | "client" | "server" | "bidi";
46
+ streaming?: OperationStreaming;
43
47
  };
44
48
  }
45
49
  /**
@@ -167,6 +171,15 @@ export interface OperationDefinition {
167
171
  * Provide an object to set the tool title or override the read-only/destructive hints.
168
172
  */
169
173
  mcp?: McpParameters["mcp"];
174
+ /**
175
+ * Streaming mode, set by registerOperation from the schemas (`x-webda-stream`), the `generator` flag or
176
+ * `grpc.streaming`
177
+ */
178
+ streaming?: OperationStreaming;
179
+ /**
180
+ * The method is an async generator (set by the @Operation decorator)
181
+ */
182
+ generator?: boolean;
170
183
  /**
171
184
  * Additional transport hints for future extensibility
172
185
  */
@@ -1 +1 @@
1
- {"version":3,"file":"icore.d.ts","sourceRoot":"","sources":["../../src/core/icore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"icore.d.ts","sourceRoot":"","sources":["../../src/core/icore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,KAAK,aAAa,MAAM,sCAAsC,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,CAAC;AAC3B;;;;;;GAMG;AACH,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EACD,KAAK,GACL;QACE,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,CAAC;QACpD,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,CAAC,EAAE;YACV,CAAC,UAAU,EAAE,MAAM,GAAG;gBACpB,WAAW,CAAC,EAAE,MAAM,CAAC;gBACrB,OAAO,CAAC,EAAE;oBACR,CAAC,SAAS,EAAE,MAAM,GAAG,GAAG,CAAC;iBAC1B,CAAC;aACH,CAAC;SACH,CAAC;KACH,CAAC;CACP;AAED;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC;AAEvE;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EACD,KAAK,GACL;QACE,SAAS,CAAC,EAAE,kBAAkB,CAAC;KAChC,CAAC;CACP;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EACJ,KAAK,GACL;QACE,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;CACP;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,GAAG,CAAC,EACA,KAAK,GACL;QACE;;WAEG;QACH,KAAK,CAAC,EAAE,MAAM,CAAC;QACf;;WAEG;QACH,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB;;WAEG;QACH,WAAW,CAAC,EAAE,OAAO,CAAC;KACvB,CAAC;CACP;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IACX;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,UAAU,CAAC,EAAE,aAAa,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,CAAC;IAC5D;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,OAAO,CAAC,EAAE,GAAG,CAAC;IACd;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IAC9B;;;;;OAKG;IACH,IAAI,CAAC,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IAC9B;;;;;OAKG;IACH,OAAO,CAAC,EAAE,iBAAiB,CAAC,SAAS,CAAC,CAAC;IACvC;;;;;OAKG;IACH,GAAG,CAAC,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;IAC3B;;;OAGG;IACH,SAAS,CAAC,EAAE,kBAAkB,CAAC;IAC/B;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC;AAED;;;GAGG;AAEH,wBAAgB,IAAI,CAAC,WAAW,EAAE,QAAQ,QAMzC;AAED;;GAEG;AACH,MAAM,WAAW,uBAAwB,SAAQ,mBAAmB;IAClE;;OAEG;IACH,eAAe,CAAC,EAAE,cAAc,CAAC;CAClC;AAED;;;GAGG;AACH,MAAM,WAAW,KAAK;IACpB;;OAEG;IACH,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB;;OAEG;IACH,OAAO,IAAI,OAAO,CAAC;IACnB,WAAW,IAAI;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CAAA;KAAE,CAAC;IAClD,cAAc,CAAC,KAAK,EAAE,UAAU,GAAG,KAAK,GAAG,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,eAAe,CAAC;IACvF,UAAU,IAAI,MAAM,EAAE,CAAC;IACvB;;;;OAIG;IACH,aAAa,CAAC,CAAC,SAAS,KAAK,EAAE,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,eAAe,CAAC;IACzF;;;OAGG;IACH,UAAU,CAAC,CAAC,SAAS,OAAO,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,CAAC;IACzD,UAAU,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,EAAE,IAAI,EAAE,UAAU,GAAG,CAAC,CAAC;IACzD,UAAU,CAAC,CAAC,SAAS,aAAa,GAAG,aAAa,EAAE,IAAI,EAAE,eAAe,GAAG,CAAC,CAAC;IAC9E,aAAa,IAAI,MAAM,CAAC;IACxB,mBAAmB,CAAC,SAAS,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,GAAG,IAAI,CAAC;CAC9D;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC;AAClC;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC;AACrC;;GAEG;AACH,MAAM,WAAW,kBAAkB,CAAC,CAAC,SAAS,eAAe;IAC3D,KAAK,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,YAAa,SAAQ,eAAe;CAAG;AACxD;;GAEG;AACH,MAAM,WAAW,MAAO,SAAQ,eAAe;CAAG"}
@@ -1 +1 @@
1
- {"version":3,"file":"icore.js","sourceRoot":"","sources":["../../src/core/icore.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAM1D,OAAO,EAAE,eAAe,EAAE,CAAC;AAoL3B;;;GAGG;AACH,0CAA0C;AAC1C,MAAM,UAAU,IAAI,CAAC,WAAqB;IACxC,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;IAC9B,aAAa;IACb,OAAO,CAAC,UAAU,KAAK,EAAE,CAAC;IAC1B,aAAa;IACb,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC;AACzC,CAAC"}
1
+ {"version":3,"file":"icore.js","sourceRoot":"","sources":["../../src/core/icore.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAM1D,OAAO,EAAE,eAAe,EAAE,CAAC;AAkM3B;;;GAGG;AACH,0CAA0C;AAC1C,MAAM,UAAU,IAAI,CAAC,WAAqB;IACxC,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;IAC9B,aAAa;IACb,OAAO,CAAC,UAAU,KAAK,EAAE,CAAC;IAC1B,aAAa;IACb,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC;AACzC,CAAC"}
@@ -15,6 +15,7 @@ export type InstanceStorage = Partial<{
15
15
  interruptables: Set<{
16
16
  cancel: () => Promise<void>;
17
17
  }>;
18
+ operationAuthorizers: Set<(...args: any[]) => Promise<any>>;
18
19
  }>;
19
20
  /**
20
21
  * Retrieve the current async-local InstanceStorage, throwing if called outside a storage context
@@ -1 +1 @@
1
- {"version":3,"file":"instancestorage.d.ts","sourceRoot":"","sources":["../../src/core/instancestorage.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAS,MAAM,YAAY,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEtC,MAAM,MAAM,eAAe,GAAG,OAAO,CAAC;IAEpC,WAAW,EAAE,WAAW,CAAC;IAEzB,UAAU,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,uBAAuB,CAAA;KAAE,CAAC;IAEvD,IAAI,EAAE,IAAI,CAAC;IAEX,gBAAgB,EAAE,eAAe,EAAE,CAAC;IAEpC,MAAM,CAAC,EAAE,GAAG,CAAC;IAEb,MAAM,EAAE,OAAO,CAAC;IAEhB,cAAc,EAAE,GAAG,CAAC;QAAE,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;KAAE,CAAC,CAAC;CACtD,CAAC,CAAC;AAMH;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,eAAe,CAMpD;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,eAAe,EAAE,eAAoB,EAAE,EAAE,KAAA,OAa/E;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,MAAM,eAAe,EAC5D,QAAQ,EAAE,CAAC,GACV,CAAC,CAAC,CAAC,SAAS,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAO9E;AAED,KAAK,gBAAgB,GAAG,MAAM,eAAe,CAAC;AAE9C;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,MAAM,EACzC,QAAQ,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,gBAAgB,CAAC,GACzC,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC,CAO/B;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE;IAAE,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,QAEnF;AAED;;;;GAIG;AACH,wBAAgB,6BAA6B,CAAC,OAAO,EAAE;IAAE,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,QAErF"}
1
+ {"version":3,"file":"instancestorage.d.ts","sourceRoot":"","sources":["../../src/core/instancestorage.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAS,MAAM,YAAY,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEtC,MAAM,MAAM,eAAe,GAAG,OAAO,CAAC;IAEpC,WAAW,EAAE,WAAW,CAAC;IAEzB,UAAU,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,uBAAuB,CAAA;KAAE,CAAC;IAEvD,IAAI,EAAE,IAAI,CAAC;IAEX,gBAAgB,EAAE,eAAe,EAAE,CAAC;IAEpC,MAAM,CAAC,EAAE,GAAG,CAAC;IAEb,MAAM,EAAE,OAAO,CAAC;IAEhB,cAAc,EAAE,GAAG,CAAC;QAAE,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;KAAE,CAAC,CAAC;IAErD,oBAAoB,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;CAC7D,CAAC,CAAC;AAMH;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,eAAe,CAMpD;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,eAAe,EAAE,eAAoB,EAAE,EAAE,KAAA,OAc/E;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,MAAM,eAAe,EAC5D,QAAQ,EAAE,CAAC,GACV,CAAC,CAAC,CAAC,SAAS,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAO9E;AAED,KAAK,gBAAgB,GAAG,MAAM,eAAe,CAAC;AAE9C;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,MAAM,EACzC,QAAQ,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,gBAAgB,CAAC,GACzC,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC,CAO/B;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE;IAAE,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,QAEnF;AAED;;;;GAIG;AACH,wBAAgB,6BAA6B,CAAC,OAAO,EAAE;IAAE,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,QAErF"}
@@ -27,6 +27,7 @@ export function runWithInstanceStorage(instanceStorage = {}, fn) {
27
27
  contextProviders: [],
28
28
  router: undefined,
29
29
  interruptables: new Set(),
30
+ operationAuthorizers: new Set(),
30
31
  ...instanceStorage
31
32
  }, fn);
32
33
  }
@@ -1 +1 @@
1
- {"version":3,"file":"instancestorage.js","sourceRoot":"","sources":["../../src/core/instancestorage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAyBhD,8EAA8E;AAC9E,OAAO,CAAC,sBAAsB,CAAC,KAAK,IAAI,iBAAiB,EAAmB,CAAC;AAC7E,MAAM,OAAO,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;AAEhD;;;GAGG;AACH,MAAM,UAAU,kBAAkB;IAChC,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IACjC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IACzE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,eAAe,GAAoB,EAAE,EAAE,EAAE;IAC9E,OAAO,OAAO,CAAC,GAAG,CAChB;QACE,WAAW,EAAE,SAAS;QACtB,UAAU,EAAE,EAAE;QACd,IAAI,EAAE,SAAS;QACf,gBAAgB,EAAE,EAAE;QACpB,MAAM,EAAE,SAAS;QACjB,cAAc,EAAE,IAAI,GAAG,EAAE;QACzB,GAAG,eAAe;KACnB,EACD,EAAE,CACH,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAC5B,QAAW;IAEX,OAAO;QACL,GAAG,EAAE,CAAM,kBAAkB,EAAE,CAAC,QAAQ,CAAC;QACzC,CAAC,KAAyB,EAAE,EAAE;YAC5B,kBAAkB,EAAE,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;QACzC,CAAC;KACF,CAAC;AACJ,CAAC;AAID;;;;GAIG;AACH,MAAM,UAAU,UAAU,CACxB,QAA0C;IAE1C,OAAO;QACL,GAAG,EAAE,CAAO,kBAAkB,EAAG,CAAC,QAAQ,CAAC;QAC3C,CAAC,KAAQ,EAAE,EAAE;YACL,kBAAkB,EAAG,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;QAChD,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,2BAA2B,CAAC,OAAwC;IAClF,kBAAkB,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AACnD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,6BAA6B,CAAC,OAAwC;IACpF,kBAAkB,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACtD,CAAC"}
1
+ {"version":3,"file":"instancestorage.js","sourceRoot":"","sources":["../../src/core/instancestorage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AA2BhD,8EAA8E;AAC9E,OAAO,CAAC,sBAAsB,CAAC,KAAK,IAAI,iBAAiB,EAAmB,CAAC;AAC7E,MAAM,OAAO,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;AAEhD;;;GAGG;AACH,MAAM,UAAU,kBAAkB;IAChC,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IACjC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IACzE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,eAAe,GAAoB,EAAE,EAAE,EAAE;IAC9E,OAAO,OAAO,CAAC,GAAG,CAChB;QACE,WAAW,EAAE,SAAS;QACtB,UAAU,EAAE,EAAE;QACd,IAAI,EAAE,SAAS;QACf,gBAAgB,EAAE,EAAE;QACpB,MAAM,EAAE,SAAS;QACjB,cAAc,EAAE,IAAI,GAAG,EAAE;QACzB,oBAAoB,EAAE,IAAI,GAAG,EAAE;QAC/B,GAAG,eAAe;KACnB,EACD,EAAE,CACH,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAC5B,QAAW;IAEX,OAAO;QACL,GAAG,EAAE,CAAM,kBAAkB,EAAE,CAAC,QAAQ,CAAC;QACzC,CAAC,KAAyB,EAAE,EAAE;YAC5B,kBAAkB,EAAE,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;QACzC,CAAC;KACF,CAAC;AACJ,CAAC;AAID;;;;GAIG;AACH,MAAM,UAAU,UAAU,CACxB,QAA0C;IAE1C,OAAO;QACL,GAAG,EAAE,CAAO,kBAAkB,EAAG,CAAC,QAAQ,CAAC;QAC3C,CAAC,KAAQ,EAAE,EAAE;YACL,kBAAkB,EAAG,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;QAChD,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,2BAA2B,CAAC,OAAwC;IAClF,kBAAkB,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AACnD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,6BAA6B,CAAC,OAAwC;IACpF,kBAAkB,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACtD,CAAC"}
@@ -1,19 +1,62 @@
1
- import { OperationDefinition } from "./icore.js";
1
+ import { OperationDefinition, OperationStreaming } from "./icore.js";
2
2
  import { OperationContext } from "../contexts/operationcontext.js";
3
3
  import type { Service } from "../services/service.js";
4
4
  import type { Model } from "@webda/models";
5
5
  type OperationTarget = Service | Model | typeof Service | typeof Model;
6
6
  /**
7
- * Check whether the context's session is allowed to call an operation
7
+ * An awaited check run on every operation call, after input validation and before `Webda.BeforeOperation`
8
8
  *
9
- * Unlike {@link checkOperation}, this never throws: unknown operations and
10
- * permission queries that cannot be evaluated return false.
9
+ * Return `true` to allow; anything else refuses (the reason is logged, never sent to the client). Throwing a
10
+ * `WebdaError.HttpError` propagates it; any other error is a refusal.
11
+ *
12
+ * In probe mode (`probe: true`, `input` undefined) the question is "could the caller call the operation with some
13
+ * input?", used to list operations.
14
+ */
15
+ export type OperationAuthorizer = (context: OperationContext, operationId: string, operation: OperationDefinition, options: {
16
+ input?: any;
17
+ probe: boolean;
18
+ }) => Promise<true | string | false>;
19
+ /**
20
+ * Register an operation authorizer
21
+ * @param fn - the authorizer
22
+ */
23
+ export declare function registerOperationAuthorizer(fn: OperationAuthorizer): void;
24
+ /**
25
+ * Unregister an operation authorizer
26
+ * @param fn - the authorizer
27
+ */
28
+ export declare function unregisterOperationAuthorizer(fn: OperationAuthorizer): void;
29
+ /**
30
+ * @returns the registered operation authorizers
31
+ */
32
+ export declare function listOperationAuthorizers(): OperationAuthorizer[];
33
+ /**
34
+ * Check whether the context is allowed to call an operation: the session `permission` then the authorizers
35
+ *
36
+ * Unlike {@link checkOperation}, this never throws: unknown operations, refusals and errors return false.
37
+ *
38
+ * Without `options` the authorizers are asked in probe mode ("could the caller call it with some input?"), for
39
+ * listings. With `options`, they decide on `options.input` exactly.
11
40
  *
12
41
  * @param context - the execution context holding the session
13
42
  * @param operationId - the operation identifier
14
- * @returns true if the operation exists and its permission (if any) accepts the session
43
+ * @param options - the operation input for an exact check
44
+ * @param options.input - the operation input
45
+ * @returns true if the operation exists and is allowed
46
+ */
47
+ export declare function canCallOperation(context: OperationContext, operationId: string, options?: {
48
+ input?: any;
49
+ }): Promise<boolean>;
50
+ /**
51
+ * JSON Schema keyword the compiler sets on a streamed `.input` or `.output` schema
52
+ */
53
+ export declare const STREAM_SCHEMA_KEYWORD = "x-webda-stream";
54
+ /**
55
+ * Streaming mode of an operation
56
+ * @param operation - the operation definition
57
+ * @returns its mode, `none` when unknown
15
58
  */
16
- export declare function canCallOperation(context: OperationContext, operationId: string): boolean;
59
+ export declare function getOperationStreaming(operation?: Pick<OperationDefinition, "streaming" | "grpc">): OperationStreaming;
17
60
  /**
18
61
  * Target object of an operation, used by listeners such as the audit log
19
62
  */
@@ -1 +1 @@
1
- {"version":3,"file":"operations.d.ts","sourceRoot":"","sources":["../../src/core/operations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"operations.d.ts","sourceRoot":"","sources":["../../src/core/operations.ts"],"names":[],"mappings":"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"}