@balena/pinejs 15.3.0-build-web-resource-4-5e7c73362ec7eb074a460c81e6ed423ba9e616c3-2 → 15.3.0-build-web-resource-4-1a4e9cdc7b71eb12d3229b6cdc9f17d0bdb6faba-1
Sign up to get free protection for your applications and to get access to all the features.
- package/.pinejs-cache.json +1 -1
- package/.versionbot/CHANGELOG.yml +9 -1
- package/CHANGELOG.md +2 -1
- package/out/server-glue/webresource-handler.js +43 -21
- package/out/server-glue/webresource-handler.js.map +1 -1
- package/out/server-glue/webresource-handlers/S3Handler.d.ts +1 -0
- package/out/server-glue/webresource-handlers/S3Handler.js +4 -1
- package/out/server-glue/webresource-handlers/S3Handler.js.map +1 -1
- package/package.json +2 -2
- package/src/server-glue/webresource-handler.ts +74 -35
- package/src/server-glue/webresource-handlers/S3Handler.ts +5 -1
@@ -1,4 +1,12 @@
|
|
1
1
|
- commits:
|
2
|
+
- subject: Add delete multiple for resources with WebResources
|
3
|
+
hash: 1a4e9cdc7b71eb12d3229b6cdc9f17d0bdb6faba
|
4
|
+
body: ""
|
5
|
+
footer:
|
6
|
+
Change-type: minor
|
7
|
+
change-type: minor
|
8
|
+
author: Otávio Jacobi
|
9
|
+
nested: []
|
2
10
|
- subject: Removes ACL based webresource permissions
|
3
11
|
hash: 5e7c73362ec7eb074a460c81e6ed423ba9e616c3
|
4
12
|
body: ""
|
@@ -28,7 +36,7 @@
|
|
28
36
|
nested: []
|
29
37
|
version: 15.3.0
|
30
38
|
title: ""
|
31
|
-
date: 2023-08-
|
39
|
+
date: 2023-08-06T19:57:22.104Z
|
32
40
|
- commits:
|
33
41
|
- subject: Return a response even when the request resolves to an HTTP error
|
34
42
|
hash: d1d68a068778a617d7b14b12a2657fb44511ee52
|
package/CHANGELOG.md
CHANGED
@@ -5,8 +5,9 @@ automatically by Versionist. DO NOT EDIT THIS FILE MANUALLY!
|
|
5
5
|
This project adheres to [Semantic Versioning](http://semver.org/).
|
6
6
|
|
7
7
|
# v15.3.0
|
8
|
-
## (2023-08-
|
8
|
+
## (2023-08-06)
|
9
9
|
|
10
|
+
* Add delete multiple for resources with WebResources [Otávio Jacobi]
|
10
11
|
* Removes ACL based webresource permissions [Otávio Jacobi]
|
11
12
|
* Adds WebResource type [Otávio Jacobi]
|
12
13
|
* Integrate beta version of sbvr-types supporting WebResource Update to @balena/open-multer-s3, better large files test [Ramiro González Maciel]
|
@@ -159,15 +159,8 @@ const deleteFiles = async (keysToDelete, webResourceHandler) => {
|
|
159
159
|
const getCreateWebResourceHook = (webResourceHandler) => {
|
160
160
|
return {
|
161
161
|
'POSTRUN-ERROR': async ({ tx, request }) => {
|
162
|
-
tx?.on('rollback',
|
163
|
-
|
164
|
-
if (fields.length === 0) {
|
165
|
-
return;
|
166
|
-
}
|
167
|
-
const keysToDelete = fields
|
168
|
-
.map((f) => request.values[f]?.href)
|
169
|
-
.filter(isDefined);
|
170
|
-
await deleteFiles(keysToDelete, webResourceHandler);
|
162
|
+
tx?.on('rollback', () => {
|
163
|
+
deleteRollbackPendingFields(request, webResourceHandler);
|
171
164
|
});
|
172
165
|
},
|
173
166
|
};
|
@@ -176,6 +169,9 @@ const getReadWebResourceHook = (webResourceHandler) => {
|
|
176
169
|
return {
|
177
170
|
PRERESPOND: async ({ request, response }) => {
|
178
171
|
const fields = getWebResourceFields(request, false);
|
172
|
+
if (fields.length === 0) {
|
173
|
+
return;
|
174
|
+
}
|
179
175
|
if (typeof response.body === 'object' && response.body.d != null) {
|
180
176
|
const transformedItems = await Promise.all(response.body.d.map(async (responseItem) => {
|
181
177
|
for (const field of fields) {
|
@@ -192,11 +188,14 @@ const getReadWebResourceHook = (webResourceHandler) => {
|
|
192
188
|
};
|
193
189
|
const isDefined = (x) => x != null;
|
194
190
|
const getWebResourcesHrefs = (webResources) => {
|
195
|
-
const hrefs = Object.values(
|
191
|
+
const hrefs = (webResources ?? []).flatMap((resource) => Object.values(resource ?? {})
|
196
192
|
.filter(isDefined)
|
197
|
-
.map((resourceKey) => resourceKey.href);
|
193
|
+
.map((resourceKey) => normalizeHref(resourceKey.href)));
|
198
194
|
return hrefs;
|
199
195
|
};
|
196
|
+
const normalizeHref = (href) => {
|
197
|
+
return href.split('?')[0];
|
198
|
+
};
|
200
199
|
const getRemoveWebResourceHook = (webResourceHandler) => {
|
201
200
|
return {
|
202
201
|
PRERUN: async (args) => {
|
@@ -210,24 +209,26 @@ const getRemoveWebResourceHook = (webResourceHandler) => {
|
|
210
209
|
return;
|
211
210
|
}
|
212
211
|
if (request.method === 'PATCH' && request.odataQuery?.key == null) {
|
212
|
+
request.custom.$pineWebResourcesToDelete = fields.map((field) => request.values[field].href);
|
213
213
|
throw new module_1.errors.BadRequestError('WebResources can only be updated when providing a resource key.');
|
214
214
|
}
|
215
|
-
const
|
216
|
-
if (
|
215
|
+
const ids = await sbvrUtils.getAffectedIds(args);
|
216
|
+
if (ids.length === 0) {
|
217
217
|
return;
|
218
218
|
}
|
219
|
-
if (rest != null) {
|
220
|
-
throw new module_1.errors.BadRequestError('Resources containing webresources can only be updated/deleted one at a time.');
|
221
|
-
}
|
222
219
|
const webResources = (await api.get({
|
223
220
|
resource: request.resourceName,
|
224
221
|
passthrough: {
|
225
222
|
tx: args.tx,
|
226
223
|
req: module_1.permissions.root,
|
227
224
|
},
|
228
|
-
id,
|
229
225
|
options: {
|
230
226
|
$select: fields,
|
227
|
+
$filter: {
|
228
|
+
id: {
|
229
|
+
$in: ids,
|
230
|
+
},
|
231
|
+
},
|
231
232
|
},
|
232
233
|
}));
|
233
234
|
request.custom.$pineWebResourcesToDelete =
|
@@ -235,14 +236,35 @@ const getRemoveWebResourceHook = (webResourceHandler) => {
|
|
235
236
|
},
|
236
237
|
POSTRUN: ({ tx, request }) => {
|
237
238
|
tx.on('end', () => {
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
239
|
+
deleteRequestPendingFiles(request, webResourceHandler);
|
240
|
+
});
|
241
|
+
},
|
242
|
+
'POSTRUN-ERROR': ({ request, tx }) => {
|
243
|
+
tx?.on('end', () => {
|
244
|
+
deleteRequestPendingFiles(request, webResourceHandler);
|
245
|
+
});
|
246
|
+
tx?.on('rollback', () => {
|
247
|
+
deleteRollbackPendingFields(request, webResourceHandler);
|
242
248
|
});
|
243
249
|
},
|
244
250
|
};
|
245
251
|
};
|
252
|
+
const deleteRollbackPendingFields = async (request, webResourceHandler) => {
|
253
|
+
const fields = getWebResourceFields(request);
|
254
|
+
if (fields.length === 0) {
|
255
|
+
return;
|
256
|
+
}
|
257
|
+
const keysToDelete = fields
|
258
|
+
.map((f) => request.values[f]?.href)
|
259
|
+
.filter(isDefined);
|
260
|
+
await deleteFiles(keysToDelete, webResourceHandler);
|
261
|
+
};
|
262
|
+
const deleteRequestPendingFiles = (request, webResourceHandler) => {
|
263
|
+
const keysToDelete = request.custom.$pineWebResourcesToDelete || [];
|
264
|
+
deleteFiles(keysToDelete, webResourceHandler).catch((err) => {
|
265
|
+
getLogger(request.vocabulary).error(`Failed to delete pending files`, err);
|
266
|
+
});
|
267
|
+
};
|
246
268
|
const getDefaultHandler = (vocab) => {
|
247
269
|
let handler;
|
248
270
|
try {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"webresource-handler.js","sourceRoot":"","sources":["../../src/server-glue/webresource-handler.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"webresource-handler.js","sourceRoot":"","sources":["../../src/server-glue/webresource-handler.ts"],"names":[],"mappings":"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"}
|
@@ -16,6 +16,9 @@ class S3Handler {
|
|
16
16
|
this.cachedGetSignedUrl = memoize(this.s3SignUrl, {
|
17
17
|
maxAge: this.signedUrlCacheExpireTimeSeconds * 1000,
|
18
18
|
});
|
19
|
+
this.normalizeHref = (href) => {
|
20
|
+
return href.split('?')[0];
|
21
|
+
};
|
19
22
|
this.config = {
|
20
23
|
region: (0, env_parsing_1.requiredVar)('S3_REGION'),
|
21
24
|
credentials: {
|
@@ -84,7 +87,7 @@ class S3Handler {
|
|
84
87
|
return `${this.config.endpoint}/${this.bucket}/${key}`;
|
85
88
|
}
|
86
89
|
getKeyFromHref(href) {
|
87
|
-
const hrefWithoutParams =
|
90
|
+
const hrefWithoutParams = this.normalizeHref(href);
|
88
91
|
return hrefWithoutParams.substring(hrefWithoutParams.lastIndexOf('/') + 1);
|
89
92
|
}
|
90
93
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"S3Handler.js","sourceRoot":"","sources":["../../../src/server-glue/webresource-handlers/S3Handler.ts"],"names":[],"mappings":";;;AAAA,qDAAuE;AACvE,gEAMgC;AAChC,kDAM4B;AAC5B,sDAA8C;AAC9C,wEAA6D;AAE7D,mCAAoC;AAEpC,oCAAoC;AAEpC,MAAa,SAAS;IAarB;QAViB,gBAAW,GAAG,IAAA,oBAAM,EACpC,gCAAgC,EAChC,QAAQ,CACR,CAAC;QAEe,+BAA0B,GAAG,GAAG,CAAC;QACjC,oCAA+B,GAAG,GAAG,CAAC;QA4E/C,uBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE;YACpD,MAAM,EAAE,IAAI,CAAC,+BAA+B,GAAG,IAAI;SACnD,CAAC,CAAC;
|
1
|
+
{"version":3,"file":"S3Handler.js","sourceRoot":"","sources":["../../../src/server-glue/webresource-handlers/S3Handler.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@balena/pinejs",
|
3
|
-
"version": "15.3.0-build-web-resource-4-
|
3
|
+
"version": "15.3.0-build-web-resource-4-1a4e9cdc7b71eb12d3229b6cdc9f17d0bdb6faba-1",
|
4
4
|
"main": "out/server-glue/module",
|
5
5
|
"repository": "git@github.com:balena-io/pinejs.git",
|
6
6
|
"license": "Apache-2.0",
|
@@ -144,6 +144,6 @@
|
|
144
144
|
"recursive": true
|
145
145
|
},
|
146
146
|
"versionist": {
|
147
|
-
"publishedAt": "2023-08-
|
147
|
+
"publishedAt": "2023-08-06T19:57:22.990Z"
|
148
148
|
}
|
149
149
|
}
|
@@ -240,18 +240,8 @@ const deleteFiles = async (
|
|
240
240
|
const getCreateWebResourceHook = (webResourceHandler: WebResourceHandler) => {
|
241
241
|
return {
|
242
242
|
'POSTRUN-ERROR': async ({ tx, request }) => {
|
243
|
-
tx?.on('rollback',
|
244
|
-
|
245
|
-
|
246
|
-
if (fields.length === 0) {
|
247
|
-
return;
|
248
|
-
}
|
249
|
-
|
250
|
-
const keysToDelete: string[] = fields
|
251
|
-
.map((f) => request.values[f]?.href)
|
252
|
-
.filter(isDefined);
|
253
|
-
|
254
|
-
await deleteFiles(keysToDelete, webResourceHandler);
|
243
|
+
tx?.on('rollback', () => {
|
244
|
+
deleteRollbackPendingFields(request, webResourceHandler);
|
255
245
|
});
|
256
246
|
},
|
257
247
|
} as sbvrUtils.Hooks;
|
@@ -259,8 +249,14 @@ const getCreateWebResourceHook = (webResourceHandler: WebResourceHandler) => {
|
|
259
249
|
|
260
250
|
const getReadWebResourceHook = (webResourceHandler: WebResourceHandler) => {
|
261
251
|
return {
|
252
|
+
// Before returning a web resource we might need to do some modifications on the payload (e.g. presigning)
|
262
253
|
PRERESPOND: async ({ request, response }) => {
|
263
254
|
const fields = getWebResourceFields(request, false);
|
255
|
+
|
256
|
+
if (fields.length === 0) {
|
257
|
+
return;
|
258
|
+
}
|
259
|
+
|
264
260
|
if (typeof response.body === 'object' && response.body.d != null) {
|
265
261
|
const transformedItems = await Promise.all(
|
266
262
|
response.body.d.map(async (responseItem: any) => {
|
@@ -283,14 +279,20 @@ const getReadWebResourceHook = (webResourceHandler: WebResourceHandler) => {
|
|
283
279
|
const isDefined = <T>(x: T | undefined | null): x is T => x != null;
|
284
280
|
|
285
281
|
const getWebResourcesHrefs = (
|
286
|
-
webResources?: WebResourcesDbResponse | null,
|
282
|
+
webResources?: WebResourcesDbResponse[] | null,
|
287
283
|
): string[] => {
|
288
|
-
const hrefs =
|
289
|
-
.
|
290
|
-
|
284
|
+
const hrefs = (webResources ?? []).flatMap((resource) =>
|
285
|
+
Object.values(resource ?? {})
|
286
|
+
.filter(isDefined)
|
287
|
+
.map((resourceKey) => normalizeHref(resourceKey.href)),
|
288
|
+
);
|
291
289
|
return hrefs;
|
292
290
|
};
|
293
291
|
|
292
|
+
const normalizeHref = (href: string) => {
|
293
|
+
return href.split('?')[0];
|
294
|
+
};
|
295
|
+
|
294
296
|
const getRemoveWebResourceHook = (
|
295
297
|
webResourceHandler: WebResourceHandler,
|
296
298
|
): sbvrUtils.Hooks => {
|
@@ -311,53 +313,90 @@ const getRemoveWebResourceHook = (
|
|
311
313
|
// This can only be validated here because we need to first ensure the
|
312
314
|
// request is actually modifying a webresource before erroring out
|
313
315
|
if (request.method === 'PATCH' && request.odataQuery?.key == null) {
|
316
|
+
// When we get here, files have already been uploaded. We need to mark them for deletion.
|
317
|
+
request.custom.$pineWebResourcesToDelete = fields.map(
|
318
|
+
(field) => request.values[field].href,
|
319
|
+
);
|
314
320
|
throw new errors.BadRequestError(
|
315
321
|
'WebResources can only be updated when providing a resource key.',
|
316
322
|
);
|
317
323
|
}
|
318
324
|
|
319
|
-
|
320
|
-
|
325
|
+
// This will only be > 1 in a DELETE. In PATCH requests, the request should have exited before
|
326
|
+
const ids = await sbvrUtils.getAffectedIds(args);
|
327
|
+
if (ids.length === 0) {
|
321
328
|
return;
|
322
329
|
}
|
323
330
|
|
324
|
-
if (rest != null) {
|
325
|
-
throw new errors.BadRequestError(
|
326
|
-
'Resources containing webresources can only be updated/deleted one at a time.',
|
327
|
-
);
|
328
|
-
}
|
329
|
-
|
330
331
|
const webResources = (await api.get({
|
331
332
|
resource: request.resourceName,
|
332
333
|
passthrough: {
|
333
334
|
tx: args.tx,
|
334
335
|
req: permissions.root,
|
335
336
|
},
|
336
|
-
id,
|
337
337
|
options: {
|
338
338
|
$select: fields,
|
339
|
+
$filter: {
|
340
|
+
id: {
|
341
|
+
$in: ids,
|
342
|
+
},
|
343
|
+
},
|
339
344
|
},
|
340
|
-
})) as WebResourcesDbResponse | undefined | null;
|
345
|
+
})) as WebResourcesDbResponse[] | undefined | null;
|
341
346
|
|
347
|
+
// The modified webresources need to have its previous webresources deleted in case they were affected
|
342
348
|
request.custom.$pineWebResourcesToDelete =
|
343
349
|
getWebResourcesHrefs(webResources);
|
344
350
|
},
|
345
351
|
POSTRUN: ({ tx, request }) => {
|
352
|
+
// Successfully patched or deleted resources
|
346
353
|
tx.on('end', () => {
|
347
|
-
|
348
|
-
|
349
|
-
|
350
|
-
|
351
|
-
|
352
|
-
|
353
|
-
|
354
|
-
|
355
|
-
|
354
|
+
deleteRequestPendingFiles(request, webResourceHandler);
|
355
|
+
});
|
356
|
+
},
|
357
|
+
'POSTRUN-ERROR': ({ request, tx }) => {
|
358
|
+
// Request failed before DB roundtrip (e.g. Trying to PATCH multiple with single webresource)
|
359
|
+
// Or by any API rule (e.g. allowlist)
|
360
|
+
tx?.on('end', () => {
|
361
|
+
deleteRequestPendingFiles(request, webResourceHandler);
|
362
|
+
});
|
363
|
+
|
364
|
+
// Request failed on DB roundtrip (e.g. DB constraint)
|
365
|
+
tx?.on('rollback', () => {
|
366
|
+
deleteRollbackPendingFields(request, webResourceHandler);
|
356
367
|
});
|
357
368
|
},
|
358
369
|
};
|
359
370
|
};
|
360
371
|
|
372
|
+
const deleteRollbackPendingFields = async (
|
373
|
+
request: uriParser.ODataRequest,
|
374
|
+
webResourceHandler: WebResourceHandler,
|
375
|
+
) => {
|
376
|
+
const fields = getWebResourceFields(request);
|
377
|
+
|
378
|
+
if (fields.length === 0) {
|
379
|
+
return;
|
380
|
+
}
|
381
|
+
|
382
|
+
const keysToDelete: string[] = fields
|
383
|
+
.map((f) => request.values[f]?.href)
|
384
|
+
.filter(isDefined);
|
385
|
+
|
386
|
+
await deleteFiles(keysToDelete, webResourceHandler);
|
387
|
+
};
|
388
|
+
|
389
|
+
const deleteRequestPendingFiles = (
|
390
|
+
request: uriParser.ODataRequest,
|
391
|
+
webResourceHandler: WebResourceHandler,
|
392
|
+
): void => {
|
393
|
+
const keysToDelete: string[] = request.custom.$pineWebResourcesToDelete || [];
|
394
|
+
// on purpose does not await for this promise to resolve
|
395
|
+
deleteFiles(keysToDelete, webResourceHandler).catch((err) => {
|
396
|
+
getLogger(request.vocabulary).error(`Failed to delete pending files`, err);
|
397
|
+
});
|
398
|
+
};
|
399
|
+
|
361
400
|
export const getDefaultHandler = (vocab?: string): WebResourceHandler => {
|
362
401
|
let handler: WebResourceHandler;
|
363
402
|
try {
|
@@ -123,8 +123,12 @@ export class S3Handler implements WebResourceHandler {
|
|
123
123
|
return `${this.config.endpoint}/${this.bucket}/${key}`;
|
124
124
|
}
|
125
125
|
|
126
|
+
private normalizeHref = (href: string) => {
|
127
|
+
return href.split('?')[0];
|
128
|
+
};
|
129
|
+
|
126
130
|
private getKeyFromHref(href: string): string {
|
127
|
-
const hrefWithoutParams =
|
131
|
+
const hrefWithoutParams = this.normalizeHref(href);
|
128
132
|
return hrefWithoutParams.substring(hrefWithoutParams.lastIndexOf('/') + 1);
|
129
133
|
}
|
130
134
|
}
|