@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.
- package/README.md +6 -5
- package/lib/application/application.d.ts.map +1 -1
- package/lib/application/application.js +18 -6
- package/lib/application/application.js.map +1 -1
- package/lib/application/iconfiguration.d.ts +31 -0
- package/lib/application/iconfiguration.d.ts.map +1 -1
- package/lib/application/iconfiguration.js.map +1 -1
- package/lib/application/unpackedapplication.d.ts.map +1 -1
- package/lib/application/unpackedapplication.js +2 -1
- package/lib/application/unpackedapplication.js.map +1 -1
- package/lib/bin/cli-phase.d.ts +18 -2
- package/lib/bin/cli-phase.d.ts.map +1 -1
- package/lib/bin/cli-phase.js +25 -0
- package/lib/bin/cli-phase.js.map +1 -1
- package/lib/bin/cli.d.ts +19 -0
- package/lib/bin/cli.d.ts.map +1 -1
- package/lib/bin/cli.js +120 -41
- package/lib/bin/cli.js.map +1 -1
- package/lib/configurations/configuration.service.d.ts +7 -0
- package/lib/configurations/configuration.service.d.ts.map +1 -1
- package/lib/configurations/configuration.service.js +18 -5
- package/lib/configurations/configuration.service.js.map +1 -1
- package/lib/configurations/kubernetesconfiguration.service.d.ts.map +1 -1
- package/lib/configurations/kubernetesconfiguration.service.js +1 -4
- package/lib/configurations/kubernetesconfiguration.service.js.map +1 -1
- package/lib/contexts/httpcontext.d.ts +15 -1
- package/lib/contexts/httpcontext.d.ts.map +1 -1
- package/lib/contexts/httpcontext.js +61 -19
- package/lib/contexts/httpcontext.js.map +1 -1
- package/lib/contexts/operationcontext.d.ts +6 -0
- package/lib/contexts/operationcontext.d.ts.map +1 -1
- package/lib/contexts/operationcontext.js +16 -2
- package/lib/contexts/operationcontext.js.map +1 -1
- package/lib/contexts/restcontext.d.ts +110 -0
- package/lib/contexts/restcontext.d.ts.map +1 -0
- package/lib/contexts/restcontext.js +247 -0
- package/lib/contexts/restcontext.js.map +1 -0
- package/lib/contexts/streamingcontext.d.ts +71 -0
- package/lib/contexts/streamingcontext.d.ts.map +1 -0
- package/lib/contexts/streamingcontext.js +93 -0
- package/lib/contexts/streamingcontext.js.map +1 -0
- package/lib/contexts/webcontext.d.ts +20 -0
- package/lib/contexts/webcontext.d.ts.map +1 -1
- package/lib/contexts/webcontext.js +43 -10
- package/lib/contexts/webcontext.js.map +1 -1
- package/lib/contexts/websocketcontext.d.ts +39 -0
- package/lib/contexts/websocketcontext.d.ts.map +1 -0
- package/lib/contexts/websocketcontext.js +67 -0
- package/lib/contexts/websocketcontext.js.map +1 -0
- package/lib/core/asyncqueue.d.ts +50 -0
- package/lib/core/asyncqueue.d.ts.map +1 -0
- package/lib/core/asyncqueue.js +96 -0
- package/lib/core/asyncqueue.js.map +1 -0
- package/lib/core/core.d.ts +21 -2
- package/lib/core/core.d.ts.map +1 -1
- package/lib/core/core.js +87 -24
- package/lib/core/core.js.map +1 -1
- package/lib/core/icore.d.ts +14 -1
- package/lib/core/icore.d.ts.map +1 -1
- package/lib/core/icore.js.map +1 -1
- package/lib/core/instancestorage.d.ts +1 -0
- package/lib/core/instancestorage.d.ts.map +1 -1
- package/lib/core/instancestorage.js +1 -0
- package/lib/core/instancestorage.js.map +1 -1
- package/lib/core/operations.d.ts +49 -6
- package/lib/core/operations.d.ts.map +1 -1
- package/lib/core/operations.js +187 -24
- package/lib/core/operations.js.map +1 -1
- package/lib/deployers/git.d.ts +4 -2
- package/lib/deployers/git.d.ts.map +1 -1
- package/lib/deployers/git.js +44 -5
- package/lib/deployers/git.js.map +1 -1
- package/lib/deployers/packager.d.ts +38 -0
- package/lib/deployers/packager.d.ts.map +1 -1
- package/lib/deployers/packager.js +70 -18
- package/lib/deployers/packager.js.map +1 -1
- package/lib/deployers/packager.service.d.ts +33 -0
- package/lib/deployers/packager.service.d.ts.map +1 -0
- package/lib/deployers/packager.service.js +112 -0
- package/lib/deployers/packager.service.js.map +1 -0
- package/lib/errors/errors.d.ts +15 -0
- package/lib/errors/errors.d.ts.map +1 -1
- package/lib/errors/errors.js +20 -0
- package/lib/errors/errors.js.map +1 -1
- package/lib/index.d.ts +7 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +6 -0
- package/lib/index.js.map +1 -1
- package/lib/models/permissions.d.ts +12 -1
- package/lib/models/permissions.d.ts.map +1 -1
- package/lib/models/permissions.js +29 -2
- package/lib/models/permissions.js.map +1 -1
- package/lib/rest/restoperationstransport.service.d.ts +108 -0
- package/lib/rest/restoperationstransport.service.d.ts.map +1 -1
- package/lib/rest/restoperationstransport.service.js +348 -9
- package/lib/rest/restoperationstransport.service.js.map +1 -1
- package/lib/rest/router.service.d.ts +1 -1
- package/lib/rest/router.service.d.ts.map +1 -1
- package/lib/rest/router.service.js.map +1 -1
- package/lib/services/audit.model.d.ts.map +1 -1
- package/lib/services/audit.model.js +7 -3
- package/lib/services/audit.model.js.map +1 -1
- package/lib/services/authenticatedencryption.d.ts +25 -0
- package/lib/services/authenticatedencryption.d.ts.map +1 -0
- package/lib/services/authenticatedencryption.js +56 -0
- package/lib/services/authenticatedencryption.js.map +1 -0
- package/lib/services/cloudbinary.d.ts.map +1 -1
- package/lib/services/cloudbinary.js +3 -2
- package/lib/services/cloudbinary.js.map +1 -1
- package/lib/services/command.d.ts +7 -1
- package/lib/services/command.d.ts.map +1 -1
- package/lib/services/command.js +4 -0
- package/lib/services/command.js.map +1 -1
- package/lib/services/cryptoservice.service.d.ts +405 -25
- package/lib/services/cryptoservice.service.d.ts.map +1 -1
- package/lib/services/cryptoservice.service.js +779 -72
- package/lib/services/cryptoservice.service.js.map +1 -1
- package/lib/services/httpserver.service.d.ts.map +1 -1
- package/lib/services/httpserver.service.js +15 -9
- package/lib/services/httpserver.service.js.map +1 -1
- package/lib/services/icryptoservice.d.ts +11 -0
- package/lib/services/icryptoservice.d.ts.map +1 -1
- package/lib/services/icryptoservice.js +2 -0
- package/lib/services/icryptoservice.js.map +1 -1
- package/lib/services/mailer.service.d.ts +4 -0
- package/lib/services/mailer.service.d.ts.map +1 -1
- package/lib/services/mailer.service.js +8 -1
- package/lib/services/mailer.service.js.map +1 -1
- package/lib/services/operationstransport.d.ts +13 -0
- package/lib/services/operationstransport.d.ts.map +1 -1
- package/lib/services/operationstransport.js +28 -6
- package/lib/services/operationstransport.js.map +1 -1
- package/lib/services/pki.encrypter.d.ts +214 -0
- package/lib/services/pki.encrypter.d.ts.map +1 -0
- package/lib/services/pki.encrypter.js +350 -0
- package/lib/services/pki.encrypter.js.map +1 -0
- package/lib/services/secretscheck.d.ts +120 -0
- package/lib/services/secretscheck.d.ts.map +1 -0
- package/lib/services/secretscheck.js +322 -0
- package/lib/services/secretscheck.js.map +1 -0
- package/lib/services/servicecommands.d.ts +8 -4
- package/lib/services/servicecommands.d.ts.map +1 -1
- package/lib/services/servicecommands.js +14 -5
- package/lib/services/servicecommands.js.map +1 -1
- package/lib/session/manager.model.d.ts +3 -1
- package/lib/session/manager.model.d.ts.map +1 -1
- package/lib/session/manager.model.js +6 -3
- package/lib/session/manager.model.js.map +1 -1
- package/lib/stores/store.d.ts +20 -1
- package/lib/stores/store.d.ts.map +1 -1
- package/lib/stores/store.js +29 -1
- package/lib/stores/store.js.map +1 -1
- package/lib/test/objects.d.ts.map +1 -1
- package/lib/test/objects.js +3 -1
- package/lib/test/objects.js.map +1 -1
- package/package.json +15 -15
- package/webda.module.json +224 -50
|
@@ -3,11 +3,28 @@ import { TransformCase } from "@webda/utils";
|
|
|
3
3
|
import { OperationsTransport, OperationsTransportParameters } from "../services/operationstransport.js";
|
|
4
4
|
import * as WebdaError from "../errors/errors.js";
|
|
5
5
|
import { useRouter } from "./hooks.js";
|
|
6
|
-
import {
|
|
6
|
+
import { useLog } from "@webda/workout";
|
|
7
|
+
import { HttpContext } from "../contexts/httpcontext.js";
|
|
8
|
+
import { runWithContext } from "../contexts/execution.js";
|
|
9
|
+
import { emitCoreEvent, useCoreEvents } from "../events/events.js";
|
|
10
|
+
import { useApplication, useParameters } from "../application/hooks.js";
|
|
7
11
|
import { useCore, useModelMetadata } from "../core/hooks.js";
|
|
8
|
-
import { useInstanceStorage } from "../core/instancestorage.js";
|
|
9
|
-
import { callOperation } from "../core/operations.js";
|
|
12
|
+
import { runWithInstanceStorage, useInstanceStorage } from "../core/instancestorage.js";
|
|
13
|
+
import { callOperation, canCallOperation, getOperationStreaming } from "../core/operations.js";
|
|
14
|
+
import { AsyncQueue } from "../core/asyncqueue.js";
|
|
15
|
+
import { WebSocketOperationContext } from "../contexts/websocketcontext.js";
|
|
16
|
+
import { RestStreamingOperationContext } from "../contexts/restcontext.js";
|
|
17
|
+
import { WebSocketServer } from "ws";
|
|
10
18
|
import { hasSchema } from "../schemas/hooks.js";
|
|
19
|
+
/**
|
|
20
|
+
* @param data - a raw WebSocket message
|
|
21
|
+
* @returns its length in bytes
|
|
22
|
+
*/
|
|
23
|
+
function rawLength(data) {
|
|
24
|
+
if (Array.isArray(data))
|
|
25
|
+
return data.reduce((sum, chunk) => sum + chunk.length, 0);
|
|
26
|
+
return data instanceof ArrayBuffer ? data.byteLength : data.length;
|
|
27
|
+
}
|
|
11
28
|
/**
|
|
12
29
|
* Swagger static html
|
|
13
30
|
*/
|
|
@@ -87,6 +104,31 @@ export class RESTOperationsTransportParameters extends OperationsTransportParame
|
|
|
87
104
|
* @default "PUT"
|
|
88
105
|
*/
|
|
89
106
|
queryMethod;
|
|
107
|
+
/**
|
|
108
|
+
* Largest message (bytes) a client may send on a bidirectional WebSocket operation; a bigger one closes the socket
|
|
109
|
+
*
|
|
110
|
+
* @default 1048576
|
|
111
|
+
*/
|
|
112
|
+
webSocketMaxPayload;
|
|
113
|
+
/**
|
|
114
|
+
* Most unconsumed messages a bidirectional operation may have queued; above it the socket closes with 4413
|
|
115
|
+
*
|
|
116
|
+
* @default 1000
|
|
117
|
+
*/
|
|
118
|
+
webSocketMaxQueuedMessages;
|
|
119
|
+
/**
|
|
120
|
+
* Most bytes of unconsumed messages a bidirectional operation may have queued; above it the socket closes with 4413
|
|
121
|
+
*
|
|
122
|
+
* @default 16777216
|
|
123
|
+
*/
|
|
124
|
+
webSocketMaxQueuedBytes;
|
|
125
|
+
/**
|
|
126
|
+
* Milliseconds between two keep-alive comments on an open `text/event-stream` response of a server-streaming
|
|
127
|
+
* operation (0 disables them)
|
|
128
|
+
*
|
|
129
|
+
* @default 20000
|
|
130
|
+
*/
|
|
131
|
+
streamKeepAliveInterval;
|
|
90
132
|
/**
|
|
91
133
|
* Load parameters with defaults
|
|
92
134
|
* @param params - the service parameters
|
|
@@ -96,6 +138,10 @@ export class RESTOperationsTransportParameters extends OperationsTransportParame
|
|
|
96
138
|
super.load(params);
|
|
97
139
|
this.nameTransformer ??= "camelCase";
|
|
98
140
|
this.queryMethod ??= "PUT";
|
|
141
|
+
this.webSocketMaxPayload ??= 1024 * 1024;
|
|
142
|
+
this.webSocketMaxQueuedMessages ??= 1000;
|
|
143
|
+
this.webSocketMaxQueuedBytes ??= 16 * 1024 * 1024;
|
|
144
|
+
this.streamKeepAliveInterval ??= 20000;
|
|
99
145
|
// Ensure url ends with /
|
|
100
146
|
if (this.url && !this.url.endsWith("/")) {
|
|
101
147
|
this.url += "/";
|
|
@@ -103,6 +149,21 @@ export class RESTOperationsTransportParameters extends OperationsTransportParame
|
|
|
103
149
|
return this;
|
|
104
150
|
}
|
|
105
151
|
}
|
|
152
|
+
/**
|
|
153
|
+
* Truncate a string to a number of UTF-8 bytes without cutting a character (a close reason holds 123 bytes)
|
|
154
|
+
* @param text - the text
|
|
155
|
+
* @param max - the maximum byte length
|
|
156
|
+
* @returns the truncated text
|
|
157
|
+
*/
|
|
158
|
+
export function truncateUtf8(text, max) {
|
|
159
|
+
const buffer = Buffer.from(text, "utf8");
|
|
160
|
+
if (buffer.length <= max)
|
|
161
|
+
return text;
|
|
162
|
+
let end = max;
|
|
163
|
+
while (end > 0 && (buffer[end] & 0xc0) === 0x80)
|
|
164
|
+
end--;
|
|
165
|
+
return buffer.subarray(0, end).toString("utf8");
|
|
166
|
+
}
|
|
106
167
|
/**
|
|
107
168
|
* REST transport that exposes model operations as RESTful HTTP routes.
|
|
108
169
|
*
|
|
@@ -117,6 +178,13 @@ export class RESTOperationsTransport extends OperationsTransport {
|
|
|
117
178
|
* OpenAPI cache
|
|
118
179
|
*/
|
|
119
180
|
openapiContent;
|
|
181
|
+
/** Bidirectional operations served as WebSocket upgrades: path → operation id */
|
|
182
|
+
webSocketRoutes = new Map();
|
|
183
|
+
/** Shared WebSocket server (noServer: upgrades come from the HttpServer) */
|
|
184
|
+
webSocketServer;
|
|
185
|
+
/** HTTP servers the upgrade listener is already attached to */
|
|
186
|
+
webSocketServers = new WeakSet();
|
|
187
|
+
webSocketEvents = false;
|
|
120
188
|
/**
|
|
121
189
|
* Transform name using configured casing
|
|
122
190
|
* @param name - the name to transform
|
|
@@ -135,8 +203,162 @@ export class RESTOperationsTransport extends OperationsTransport {
|
|
|
135
203
|
if (this.parameters.exposeOpenAPI) {
|
|
136
204
|
this.addRoute(".", ["GET"], this.openapi, { hidden: true });
|
|
137
205
|
}
|
|
206
|
+
// Bidirectional operations: accept WebSocket upgrades on every HTTP server once it listens
|
|
207
|
+
if (!this.webSocketEvents) {
|
|
208
|
+
this.webSocketEvents = true;
|
|
209
|
+
const storage = useInstanceStorage();
|
|
210
|
+
useCoreEvents("Webda.Init.Http", (server) => this.attachWebSockets(server, storage));
|
|
211
|
+
}
|
|
138
212
|
return this;
|
|
139
213
|
}
|
|
214
|
+
/**
|
|
215
|
+
* Find the bidirectional operation served on a request URL, the way the router matches HTTP paths: relative to the
|
|
216
|
+
* HttpContext prefix, without the query string, with or without the global route prefix
|
|
217
|
+
* @param uri - the request URL
|
|
218
|
+
* @param prefix - the HttpContext prefix (a gateway stage...)
|
|
219
|
+
* @returns the operation id, if any
|
|
220
|
+
*/
|
|
221
|
+
webSocketOperationOf(uri, prefix = "") {
|
|
222
|
+
const context = new HttpContext("localhost", "GET", uri);
|
|
223
|
+
if (prefix)
|
|
224
|
+
context.setPrefix(prefix);
|
|
225
|
+
let path = context.getRelativeUri().split("?")[0];
|
|
226
|
+
const routePrefix = useParameters().routePrefix || "";
|
|
227
|
+
if (routePrefix && path.startsWith(routePrefix))
|
|
228
|
+
path = path.substring(routePrefix.length) || "/";
|
|
229
|
+
return this.webSocketRoutes.get(path);
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* Serve the bidirectional operations' upgrades on an HTTP server (once per server, only if there are any)
|
|
233
|
+
* @param server - the server emitted by Webda.Init.Http
|
|
234
|
+
* @param storage - the instance storage to run requests in
|
|
235
|
+
*/
|
|
236
|
+
attachWebSockets(server, storage) {
|
|
237
|
+
if (this.webSocketRoutes.size === 0 || this.webSocketServers.has(server))
|
|
238
|
+
return;
|
|
239
|
+
this.webSocketServers.add(server);
|
|
240
|
+
server.on("upgrade", (req, socket, head) => {
|
|
241
|
+
runWithInstanceStorage(storage, () => {
|
|
242
|
+
const opId = this.webSocketOperationOf(req.url ?? "/");
|
|
243
|
+
// Not ours (GraphQL subscriptions...): leave the socket to the other listeners
|
|
244
|
+
if (!opId)
|
|
245
|
+
return;
|
|
246
|
+
this.upgradeOperation(opId, server, req, socket, head).catch(err => {
|
|
247
|
+
useLog("ERROR", "WebSocket upgrade failed", opId, err);
|
|
248
|
+
socket.destroy();
|
|
249
|
+
});
|
|
250
|
+
});
|
|
251
|
+
});
|
|
252
|
+
}
|
|
253
|
+
/**
|
|
254
|
+
* Answer an upgrade with an HTTP error
|
|
255
|
+
* @param socket - the raw socket
|
|
256
|
+
* @param status - HTTP status
|
|
257
|
+
* @param message - reason phrase
|
|
258
|
+
*/
|
|
259
|
+
refuseUpgrade(socket, status, message) {
|
|
260
|
+
socket.end(`HTTP/1.1 ${status} ${message}\r\nConnection: close\r\nContent-Length: 0\r\n\r\n`);
|
|
261
|
+
}
|
|
262
|
+
/**
|
|
263
|
+
* Check the caller like a normal request (Webda.Request, router request filters, permission) and accept the WebSocket
|
|
264
|
+
* @param opId - the bidirectional operation
|
|
265
|
+
* @param server - the HTTP server
|
|
266
|
+
* @param req - the upgrade request
|
|
267
|
+
* @param socket - the raw socket
|
|
268
|
+
* @param head - first packet of the upgraded stream
|
|
269
|
+
* @returns a promise settled once the upgrade is accepted or refused
|
|
270
|
+
*/
|
|
271
|
+
async upgradeOperation(opId, server, req, socket, head) {
|
|
272
|
+
const http = Object.values(useCore().getServices()).find(s => s.server === server && typeof s.getContextFromRequest === "function");
|
|
273
|
+
const base = http && (await http.getContextFromRequest(req));
|
|
274
|
+
if (!base)
|
|
275
|
+
return this.refuseUpgrade(socket, 400, "Bad Request");
|
|
276
|
+
await base.init();
|
|
277
|
+
const allowed = await runWithContext(base, async () => {
|
|
278
|
+
try {
|
|
279
|
+
emitCoreEvent("Webda.Request", { context: base });
|
|
280
|
+
}
|
|
281
|
+
catch {
|
|
282
|
+
// listener error
|
|
283
|
+
}
|
|
284
|
+
return (await useRouter().checkRequest(base)) && canCallOperation(base, opId);
|
|
285
|
+
});
|
|
286
|
+
if (!allowed)
|
|
287
|
+
return this.refuseUpgrade(socket, 403, "Forbidden");
|
|
288
|
+
const storage = useInstanceStorage();
|
|
289
|
+
this.webSocketServer ??= new WebSocketServer({
|
|
290
|
+
noServer: true,
|
|
291
|
+
maxPayload: this.parameters.webSocketMaxPayload
|
|
292
|
+
});
|
|
293
|
+
this.webSocketServer.handleUpgrade(req, socket, head, ws => {
|
|
294
|
+
runWithInstanceStorage(storage, () => {
|
|
295
|
+
this.runWebSocketOperation(opId, base.getHttpContext(), ws, base.getSession()).catch(err => {
|
|
296
|
+
useLog("ERROR", "WebSocket operation failed", opId, err);
|
|
297
|
+
ws.close(1011, "Internal server error");
|
|
298
|
+
});
|
|
299
|
+
});
|
|
300
|
+
});
|
|
301
|
+
}
|
|
302
|
+
/**
|
|
303
|
+
* Run a bidirectional operation over an accepted WebSocket: messages in, chunks out
|
|
304
|
+
* @param opId - the operation
|
|
305
|
+
* @param httpContext - the upgrade request
|
|
306
|
+
* @param ws - the socket
|
|
307
|
+
* @param session - the session loaded when the upgrade was authorized
|
|
308
|
+
*/
|
|
309
|
+
async runWebSocketOperation(opId, httpContext, ws, session) {
|
|
310
|
+
const ctx = new WebSocketOperationContext(httpContext, ws, session);
|
|
311
|
+
await ctx.init();
|
|
312
|
+
const input = new AsyncQueue();
|
|
313
|
+
ctx.setExtension("operationInputStream", input);
|
|
314
|
+
const maxQueued = this.parameters.webSocketMaxQueuedMessages;
|
|
315
|
+
const maxQueuedBytes = this.parameters.webSocketMaxQueuedBytes;
|
|
316
|
+
ws.on("message", data => {
|
|
317
|
+
let message;
|
|
318
|
+
try {
|
|
319
|
+
message = JSON.parse(String(data));
|
|
320
|
+
}
|
|
321
|
+
catch {
|
|
322
|
+
ws.close(4400, "Invalid JSON message");
|
|
323
|
+
return;
|
|
324
|
+
}
|
|
325
|
+
input.push(message, rawLength(data));
|
|
326
|
+
if (input.pending > maxQueued || input.pendingBytes > maxQueuedBytes) {
|
|
327
|
+
// The operation does not keep up: stop it rather than buffering without limit
|
|
328
|
+
const bytes = input.pendingBytes > maxQueuedBytes;
|
|
329
|
+
ctx.cancel();
|
|
330
|
+
input.end(true);
|
|
331
|
+
ws.close(4413, bytes ? "Too many queued bytes" : "Too many queued messages");
|
|
332
|
+
}
|
|
333
|
+
});
|
|
334
|
+
ws.on("error", err => useLog("DEBUG", "WebSocket error", opId, err));
|
|
335
|
+
// The client is gone: the operation's writes throw and its pending read ends so its finally blocks run
|
|
336
|
+
ws.on("close", () => {
|
|
337
|
+
ctx.cancel();
|
|
338
|
+
input.end();
|
|
339
|
+
});
|
|
340
|
+
try {
|
|
341
|
+
await callOperation(ctx, opId);
|
|
342
|
+
if (ctx.isCancelled)
|
|
343
|
+
return;
|
|
344
|
+
const output = ctx.getExtension("operationStreaming") ? undefined : ctx.getOutput();
|
|
345
|
+
if (output)
|
|
346
|
+
ws.send(output);
|
|
347
|
+
ws.close(1000);
|
|
348
|
+
}
|
|
349
|
+
catch (err) {
|
|
350
|
+
// Only a client that went away is a silent cancel: an operation raising it while connected is an error
|
|
351
|
+
if (ctx.isCancelled)
|
|
352
|
+
return;
|
|
353
|
+
const status = typeof err?.getResponseCode === "function" ? err.getResponseCode() : undefined;
|
|
354
|
+
if (status >= 400 && status < 500) {
|
|
355
|
+
ws.close(4000 + status, truncateUtf8(String(err.message ?? "Error"), 123));
|
|
356
|
+
return;
|
|
357
|
+
}
|
|
358
|
+
useLog("ERROR", `[WebSocket ${opId}] operation threw:`, err);
|
|
359
|
+
ws.close(status ? 4000 + status : 1011, "Internal server error");
|
|
360
|
+
}
|
|
361
|
+
}
|
|
140
362
|
/**
|
|
141
363
|
* Override initTransport to walk the model tree instead of flat iteration.
|
|
142
364
|
* For each model, we look up its operations and register REST routes.
|
|
@@ -187,6 +409,9 @@ export class RESTOperationsTransport extends OperationsTransport {
|
|
|
187
409
|
for (const [opId, op] of Object.entries(operations)) {
|
|
188
410
|
if (op.hidden)
|
|
189
411
|
continue;
|
|
412
|
+
// A client stream cannot be carried by a plain HTTP request: reachable over gRPC only
|
|
413
|
+
if (getOperationStreaming(op) === "client")
|
|
414
|
+
continue;
|
|
190
415
|
// Skip if this operation was already handled by model tree walk
|
|
191
416
|
if (op.context?.model)
|
|
192
417
|
continue;
|
|
@@ -202,18 +427,121 @@ export class RESTOperationsTransport extends OperationsTransport {
|
|
|
202
427
|
path = `${this.parameters.url}${opId.toLowerCase().replace(/\./g, "/")}`;
|
|
203
428
|
methods = ["PUT"];
|
|
204
429
|
}
|
|
430
|
+
if (getOperationStreaming(op) === "bidi") {
|
|
431
|
+
// Served as a WebSocket upgrade on this path; a plain request cannot carry a bidirectional stream
|
|
432
|
+
if (path.includes("{")) {
|
|
433
|
+
this.log("WARN", `${opId} is bidirectional but its path ${path} has parameters: not served over WebSocket`);
|
|
434
|
+
}
|
|
435
|
+
else {
|
|
436
|
+
this.webSocketRoutes.set(path, opId);
|
|
437
|
+
}
|
|
438
|
+
this.addRoute(path, [...new Set(["GET", ...methods])], async () => {
|
|
439
|
+
throw new WebdaError.HttpError("Upgrade Required: open a WebSocket on this URL", 426);
|
|
440
|
+
}, { get: { tags: op.tags || [], summary: `${op.summary || opId} (WebSocket)`, operationId: opId } });
|
|
441
|
+
continue;
|
|
442
|
+
}
|
|
205
443
|
const openapi = {
|
|
206
444
|
[methods[0].toLowerCase()]: {
|
|
207
445
|
tags: op.tags || [],
|
|
208
446
|
summary: op.summary || opId,
|
|
209
|
-
operationId: opId
|
|
447
|
+
operationId: opId,
|
|
448
|
+
...(getOperationStreaming(op) === "server" ? { responses: this.streamedResponses() } : {})
|
|
210
449
|
}
|
|
211
450
|
};
|
|
212
451
|
this.addRoute(path, methods, async (context) => {
|
|
213
|
-
await
|
|
452
|
+
await this.runOperation(context, opId);
|
|
214
453
|
}, openapi);
|
|
215
454
|
}
|
|
216
455
|
}
|
|
456
|
+
/**
|
|
457
|
+
* The OpenAPI responses of a server-streaming operation
|
|
458
|
+
* @returns the 200 response with both stream formats
|
|
459
|
+
*/
|
|
460
|
+
streamedResponses() {
|
|
461
|
+
return {
|
|
462
|
+
"200": {
|
|
463
|
+
description: "Stream of chunks: one JSON line each (application/x-ndjson), or one `data:` event each when `Accept` is " +
|
|
464
|
+
"text/event-stream, ended by an `end` event. An error after the first chunk is a last `error` event or " +
|
|
465
|
+
'`{"error": {"message", "code"}}` line.',
|
|
466
|
+
content: {
|
|
467
|
+
"application/x-ndjson": { schema: { type: "string", description: "One JSON value per line" } },
|
|
468
|
+
"text/event-stream": { schema: { type: "string", description: "Server-sent events with a JSON `data`" } }
|
|
469
|
+
}
|
|
470
|
+
}
|
|
471
|
+
};
|
|
472
|
+
}
|
|
473
|
+
/**
|
|
474
|
+
* Run an operation for a route: a server-streaming one is streamed to the client as its generator yields, any other
|
|
475
|
+
* is called and its result flushed with the response
|
|
476
|
+
* @param context - the request context
|
|
477
|
+
* @param operationId - the operation
|
|
478
|
+
* @returns a promise settled once the operation is done (a stream: once the response is over)
|
|
479
|
+
*/
|
|
480
|
+
async runOperation(context, operationId) {
|
|
481
|
+
const response = context._stream;
|
|
482
|
+
if (getOperationStreaming(useInstanceStorage().operations?.[operationId]) !== "server" ||
|
|
483
|
+
typeof response?.writeHead !== "function") {
|
|
484
|
+
return callOperation(context, operationId);
|
|
485
|
+
}
|
|
486
|
+
return this.streamOperation(context, operationId, response);
|
|
487
|
+
}
|
|
488
|
+
/**
|
|
489
|
+
* Stream a server-streaming operation: NDJSON, or server-sent events when the client accepts them
|
|
490
|
+
*
|
|
491
|
+
* The streaming context is built here, from the request's context, rather than by the HttpServer: only these routes
|
|
492
|
+
* need it, and permissions, validation and events still go through `callOperation` on the request's input. Until the
|
|
493
|
+
* first chunk an error is a normal HTTP error (thrown to the HttpServer); after it, the error is the last event or
|
|
494
|
+
* line of the stream.
|
|
495
|
+
* @param context - the request context
|
|
496
|
+
* @param operationId - the operation
|
|
497
|
+
* @param response - the HTTP response
|
|
498
|
+
* @returns a promise settled once the response is over
|
|
499
|
+
*/
|
|
500
|
+
async streamOperation(context, operationId, response) {
|
|
501
|
+
const accept = context.getHttpContext().getUniqueHeader("accept", "") ?? "";
|
|
502
|
+
const format = accept.includes("text/event-stream") ? "sse" : "ndjson";
|
|
503
|
+
const stream = new RestStreamingOperationContext(context.getHttpContext(), response, format, context.getSession(), this.parameters.streamKeepAliveInterval, context.getResponseHeaders(), context.getSetCookieHeaders());
|
|
504
|
+
await stream.init();
|
|
505
|
+
stream.setParameters(context.getParameters());
|
|
506
|
+
stream.startKeepAlive();
|
|
507
|
+
try {
|
|
508
|
+
await callOperation(stream, operationId);
|
|
509
|
+
}
|
|
510
|
+
catch (err) {
|
|
511
|
+
stream.stopKeepAlive();
|
|
512
|
+
// The client went away: nothing to tell
|
|
513
|
+
if (stream.isCancelled || stream.disconnected)
|
|
514
|
+
return stream.finish();
|
|
515
|
+
// Nothing sent yet: a normal HTTP error response
|
|
516
|
+
if (!stream.hasStarted) {
|
|
517
|
+
stream.abortBeforeStart();
|
|
518
|
+
throw err;
|
|
519
|
+
}
|
|
520
|
+
const status = typeof err?.getResponseCode === "function" ? err.getResponseCode() : undefined;
|
|
521
|
+
const clientError = status >= 400 && status < 500;
|
|
522
|
+
if (!clientError)
|
|
523
|
+
useLog("ERROR", `[REST ${operationId}] streamed operation threw:`, err);
|
|
524
|
+
await stream.writeError(clientError ? String(err.message ?? "Error") : "Internal server error", status || 500);
|
|
525
|
+
return stream.finish();
|
|
526
|
+
}
|
|
527
|
+
stream.stopKeepAlive();
|
|
528
|
+
if (stream.isCancelled)
|
|
529
|
+
return stream.finish();
|
|
530
|
+
if (!stream.getExtension("operationStreaming")) {
|
|
531
|
+
// Not a generator after all: a normal response, with the status and headers the operation set
|
|
532
|
+
if (stream.statusCode && stream.statusCode !== 204)
|
|
533
|
+
context.statusCode = stream.statusCode;
|
|
534
|
+
for (const [name, value] of Object.entries(stream.getResponseHeaders()))
|
|
535
|
+
context.setHeader(name, value);
|
|
536
|
+
const output = stream.getOutput();
|
|
537
|
+
if (output !== undefined) {
|
|
538
|
+
context.setHeader("Content-type", "application/json");
|
|
539
|
+
context.write(output);
|
|
540
|
+
}
|
|
541
|
+
return;
|
|
542
|
+
}
|
|
543
|
+
return stream.finish(true);
|
|
544
|
+
}
|
|
217
545
|
/**
|
|
218
546
|
* Recursively walk a model and its children, registering routes at each level
|
|
219
547
|
* @param model - the model class
|
|
@@ -637,6 +965,13 @@ export class RESTOperationsTransport extends OperationsTransport {
|
|
|
637
965
|
...(action.openapi?.[method.toLowerCase()] ?? {})
|
|
638
966
|
};
|
|
639
967
|
});
|
|
968
|
+
if (getOperationStreaming(useInstanceStorage().operations?.[operationId]) === "server") {
|
|
969
|
+
Object.keys(openapi)
|
|
970
|
+
.filter(k => ["get", "post", "put", "patch", "delete"].includes(k))
|
|
971
|
+
.forEach(k => {
|
|
972
|
+
openapi[k].responses = { ...this.streamedResponses(), ...openapi[k].responses };
|
|
973
|
+
});
|
|
974
|
+
}
|
|
640
975
|
if (hasSchema(`${identifier}.${actionName}.input`)) {
|
|
641
976
|
Object.keys(openapi)
|
|
642
977
|
.filter(k => ["get", "post", "put", "patch", "delete"].includes(k))
|
|
@@ -652,7 +987,8 @@ export class RESTOperationsTransport extends OperationsTransport {
|
|
|
652
987
|
};
|
|
653
988
|
});
|
|
654
989
|
}
|
|
655
|
-
if (hasSchema(`${identifier}.${actionName}.output`)
|
|
990
|
+
if (hasSchema(`${identifier}.${actionName}.output`) &&
|
|
991
|
+
getOperationStreaming(useInstanceStorage().operations?.[operationId]) !== "server") {
|
|
656
992
|
Object.keys(openapi)
|
|
657
993
|
.filter(k => ["get", "post", "put", "patch", "delete"].includes(k))
|
|
658
994
|
.forEach(k => {
|
|
@@ -672,7 +1008,7 @@ export class RESTOperationsTransport extends OperationsTransport {
|
|
|
672
1008
|
context.getParameters()[injectAttribute] = context.parameter(`pid.${depth - 1}`);
|
|
673
1009
|
context.getParameters()[`pid.${depth - 1}`] = undefined;
|
|
674
1010
|
}
|
|
675
|
-
await
|
|
1011
|
+
await this.runOperation(context, operationId);
|
|
676
1012
|
}, openapi);
|
|
677
1013
|
}
|
|
678
1014
|
/**
|
|
@@ -745,7 +1081,10 @@ export class RESTOperationsTransport extends OperationsTransport {
|
|
|
745
1081
|
}
|
|
746
1082
|
};
|
|
747
1083
|
}
|
|
748
|
-
if (
|
|
1084
|
+
if (getOperationStreaming(op) === "server") {
|
|
1085
|
+
openapi[methodKey].responses = this.streamedResponses();
|
|
1086
|
+
}
|
|
1087
|
+
else if (hasSchema(outputSchema)) {
|
|
749
1088
|
openapi[methodKey].responses = {
|
|
750
1089
|
"200": {
|
|
751
1090
|
description: "Operation success",
|
|
@@ -759,7 +1098,7 @@ export class RESTOperationsTransport extends OperationsTransport {
|
|
|
759
1098
|
}
|
|
760
1099
|
};
|
|
761
1100
|
}
|
|
762
|
-
this.addRoute(fullPath, [httpMethod], async (context) =>
|
|
1101
|
+
this.addRoute(fullPath, [httpMethod], async (context) => this.runOperation(context, operationId), openapi);
|
|
763
1102
|
});
|
|
764
1103
|
}
|
|
765
1104
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"restoperationstransport.service.js","sourceRoot":"","sources":["../../src/rest/restoperationstransport.service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"restoperationstransport.service.js","sourceRoot":"","sources":["../../src/rest/restoperationstransport.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -168,7 +168,7 @@ export declare class Router<T extends RouterParameters = RouterParameters> exten
|
|
|
168
168
|
* @param ctx - the operation context
|
|
169
169
|
* @returns true if the condition is met
|
|
170
170
|
*/
|
|
171
|
-
|
|
171
|
+
checkRequest(ctx: IWebContext): Promise<boolean>;
|
|
172
172
|
/**
|
|
173
173
|
* Verify if an origin is allowed to do request on the API
|
|
174
174
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.service.d.ts","sourceRoot":"","sources":["../../src/rest/router.service.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"router.service.d.ts","sourceRoot":"","sources":["../../src/rest/router.service.ts"],"names":[],"mappings":"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"}
|