@balena/pinejs 20.0.3 → 20.0.4-build-avoids-string-multipart-webresources-fields-53ecc5f527efbe6db49581773540a1f0c4dc3cda-1
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/.pinejs-cache.json +1 -1
- package/.versionbot/CHANGELOG.yml +57 -22
- package/CHANGELOG.md +6 -0
- package/VERSION +1 -1
- package/out/webresource-handler/index.d.ts +2 -0
- package/out/webresource-handler/index.js +29 -17
- package/out/webresource-handler/index.js.map +1 -1
- package/package.json +2 -2
- package/src/webresource-handler/index.ts +50 -24
@@ -1,3 +1,24 @@
|
|
1
|
+
- commits:
|
2
|
+
- subject: Optimise webresource upload permissions check for multiple uploads in
|
3
|
+
single request
|
4
|
+
hash: 53ecc5f527efbe6db49581773540a1f0c4dc3cda
|
5
|
+
body: ""
|
6
|
+
footer:
|
7
|
+
Change-type: patch
|
8
|
+
change-type: patch
|
9
|
+
author: Otavio Jacobi
|
10
|
+
nested: []
|
11
|
+
- subject: Avoid non-blob webresources fields on multipart requests
|
12
|
+
hash: 451caccf7d2e40d33e630121f2250332b8e0d232
|
13
|
+
body: ""
|
14
|
+
footer:
|
15
|
+
Change-type: patch
|
16
|
+
change-type: patch
|
17
|
+
author: Otavio Jacobi
|
18
|
+
nested: []
|
19
|
+
version: 20.0.4
|
20
|
+
title: ""
|
21
|
+
date: 2025-02-13T15:35:44.323Z
|
1
22
|
- commits:
|
2
23
|
- subject: Compile in as (= ANY($singleListBinding))
|
3
24
|
hash: bdb34d9df39e0d9d00db492cbb1ef6dfc61e8450
|
@@ -1599,6 +1620,7 @@
|
|
1599
1620
|
hash: be8fc31c3754186dd4c43ca8d4c056b0def7ffbd
|
1600
1621
|
body: >
|
1601
1622
|
|
1623
|
+
|
1602
1624
|
As balena-lint
|
1603
1625
|
rejects `new
|
1604
1626
|
Boolean()`, `new
|
@@ -1620,11 +1642,12 @@
|
|
1620
1642
|
hash: 46a369117c9d1222089498a8794c32d14edef85b
|
1621
1643
|
body: >
|
1622
1644
|
|
1623
|
-
|
1624
|
-
npm is
|
1625
|
-
as part
|
1626
|
-
package.json we
|
1627
|
-
drop this
|
1645
|
+
|
1646
|
+
As engine and npm is
|
1647
|
+
now required as part
|
1648
|
+
of package.json we
|
1649
|
+
can drop this
|
1650
|
+
dependency
|
1628
1651
|
footer:
|
1629
1652
|
Change-type: patch
|
1630
1653
|
change-type: patch
|
@@ -1656,6 +1679,7 @@
|
|
1656
1679
|
hash: 1819ee97811e20da93c6e0f227db6a62ada8c00e
|
1657
1680
|
body: >
|
1658
1681
|
|
1682
|
+
|
1659
1683
|
Ensure that the
|
1660
1684
|
input passed in for
|
1661
1685
|
JSON types is either
|
@@ -1755,9 +1779,9 @@
|
|
1755
1779
|
hash: 19c2760ecf76b4097d7d3045c2eefbf74fd7c2da
|
1756
1780
|
body: >
|
1757
1781
|
|
1758
|
-
|
1759
|
-
deprecates
|
1760
|
-
legacy version
|
1782
|
+
|
1783
|
+
This also deprecates
|
1784
|
+
the legacy version
|
1761
1785
|
footer:
|
1762
1786
|
Change-type: minor
|
1763
1787
|
change-type: minor
|
@@ -1783,10 +1807,11 @@
|
|
1783
1807
|
hash: 1c25d9b8d011791a9e98a5929ad48cdd9f3bab6b
|
1784
1808
|
body: >
|
1785
1809
|
|
1786
|
-
|
1787
|
-
be a
|
1788
|
-
|
1789
|
-
that is
|
1810
|
+
|
1811
|
+
It can in fact be a
|
1812
|
+
lot of different
|
1813
|
+
things and that is
|
1814
|
+
now also
|
1790
1815
|
|
1791
1816
|
reflected in the
|
1792
1817
|
typing
|
@@ -1811,11 +1836,11 @@
|
|
1811
1836
|
hash: 6fcb2c4257f9fc50f6b4b1070dec86ace9f71237
|
1812
1837
|
body: >
|
1813
1838
|
|
1814
|
-
|
1815
|
-
|
1816
|
-
they
|
1817
|
-
explicitly
|
1818
|
-
as
|
1839
|
+
|
1840
|
+
We know what type
|
1841
|
+
they return and they
|
1842
|
+
should be explicitly
|
1843
|
+
accepted as
|
1819
1844
|
|
1820
1845
|
those types instead
|
1821
1846
|
where it is valid to
|
@@ -1845,6 +1870,7 @@
|
|
1845
1870
|
hash: 39058b2dacac51da96158d594b2d72e3238d0cbc
|
1846
1871
|
body: >
|
1847
1872
|
|
1873
|
+
|
1848
1874
|
Update
|
1849
1875
|
@balena/sbvr-types
|
1850
1876
|
from 3.4.18 to 3.5.0
|
@@ -1989,10 +2015,11 @@
|
|
1989
2015
|
hash: d589fb6cd92a3a7570e3b2ebea14acbb84807d8a
|
1990
2016
|
body: >
|
1991
2017
|
|
1992
|
-
|
1993
|
-
deprecates
|
1994
|
-
legacy use of
|
1995
|
-
true/false
|
2018
|
+
|
2019
|
+
This also deprecates
|
2020
|
+
the legacy use of
|
2021
|
+
direct true/false
|
2022
|
+
entries
|
1996
2023
|
footer:
|
1997
2024
|
Change-type: minor
|
1998
2025
|
change-type: minor
|
@@ -2898,7 +2925,7 @@
|
|
2898
2925
|
date: 2025-01-29T15:24:40.161Z
|
2899
2926
|
version: 20.0.3
|
2900
2927
|
title: ""
|
2901
|
-
date: 2025-02-11T16:
|
2928
|
+
date: 2025-02-11T16:46:22.425Z
|
2902
2929
|
- commits:
|
2903
2930
|
- subject: "Migrations.md: Update the rollbackable migrations guide"
|
2904
2931
|
hash: 192216f3f07fa8637bc024bb634227d1b09b26d8
|
@@ -5104,6 +5131,7 @@
|
|
5104
5131
|
|
5105
5132
|
|
5106
5133
|
|
5134
|
+
|
5107
5135
|
|
5108
5136
|
|
5109
5137
|
As balena-lint
|
@@ -5153,6 +5181,7 @@
|
|
5153
5181
|
|
5154
5182
|
|
5155
5183
|
|
5184
|
+
|
5156
5185
|
|
5157
5186
|
|
5158
5187
|
As engine and npm is
|
@@ -5217,6 +5246,7 @@
|
|
5217
5246
|
|
5218
5247
|
|
5219
5248
|
|
5249
|
+
|
5220
5250
|
|
5221
5251
|
|
5222
5252
|
Ensure that the
|
@@ -5344,6 +5374,7 @@
|
|
5344
5374
|
|
5345
5375
|
|
5346
5376
|
|
5377
|
+
|
5347
5378
|
|
5348
5379
|
|
5349
5380
|
This also deprecates
|
@@ -5399,6 +5430,7 @@
|
|
5399
5430
|
|
5400
5431
|
|
5401
5432
|
|
5433
|
+
|
5402
5434
|
|
5403
5435
|
|
5404
5436
|
It can in fact be a
|
@@ -5455,6 +5487,7 @@
|
|
5455
5487
|
|
5456
5488
|
|
5457
5489
|
|
5490
|
+
|
5458
5491
|
|
5459
5492
|
|
5460
5493
|
We know what type
|
@@ -5516,6 +5549,7 @@
|
|
5516
5549
|
|
5517
5550
|
|
5518
5551
|
|
5552
|
+
|
5519
5553
|
|
5520
5554
|
|
5521
5555
|
Update
|
@@ -5688,6 +5722,7 @@
|
|
5688
5722
|
|
5689
5723
|
|
5690
5724
|
|
5725
|
+
|
5691
5726
|
|
5692
5727
|
|
5693
5728
|
This also deprecates
|
package/CHANGELOG.md
CHANGED
@@ -4,6 +4,12 @@ All notable changes to this project will be documented in this file
|
|
4
4
|
automatically by Versionist. DO NOT EDIT THIS FILE MANUALLY!
|
5
5
|
This project adheres to [Semantic Versioning](http://semver.org/).
|
6
6
|
|
7
|
+
# v20.0.4
|
8
|
+
## (2025-02-13)
|
9
|
+
|
10
|
+
* Optimise webresource upload permissions check for multiple uploads in single request [Otavio Jacobi]
|
11
|
+
* Avoid non-blob webresources fields on multipart requests [Otavio Jacobi]
|
12
|
+
|
7
13
|
# v20.0.3
|
8
14
|
## (2025-02-11)
|
9
15
|
|
package/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
20.0.
|
1
|
+
20.0.4
|
@@ -1,5 +1,6 @@
|
|
1
1
|
import type Express from 'express';
|
2
2
|
import type stream from 'node:stream';
|
3
|
+
import * as uriParser from '../sbvr-api/uri-parser.js';
|
3
4
|
import type { WebResourceType as WebResource } from '@balena/sbvr-types';
|
4
5
|
import { TypedError } from 'typed-error';
|
5
6
|
export * from './handlers/index.js';
|
@@ -28,6 +29,7 @@ export declare class FileSizeExceededError extends WebResourceError {
|
|
28
29
|
export declare const setupWebresourceHandler: (handler: WebResourceHandler) => void;
|
29
30
|
export declare const getWebresourceHandler: () => WebResourceHandler | undefined;
|
30
31
|
export declare const getUploaderMiddlware: (handler: WebResourceHandler) => Express.RequestHandler;
|
32
|
+
export declare const getWebResourceFields: (request: uriParser.ParsedODataRequest, useTranslations?: boolean) => string[];
|
31
33
|
export declare const normalizeHref: (href: string) => string;
|
32
34
|
export declare const getDefaultHandler: () => WebResourceHandler;
|
33
35
|
export declare const setupUploadHooks: (handler: WebResourceHandler, apiRoot: string, resourceName: string) => void;
|
@@ -29,35 +29,34 @@ export const setupWebresourceHandler = (handler) => {
|
|
29
29
|
export const getWebresourceHandler = () => {
|
30
30
|
return configuredWebResourceHandler;
|
31
31
|
};
|
32
|
-
const
|
32
|
+
const notValidUpload = () => Promise.resolve(false);
|
33
|
+
const getRequestUploadValidator = async (req, odataRequest) => {
|
33
34
|
if (req.method !== 'POST' && req.method !== 'PATCH') {
|
34
|
-
return
|
35
|
+
return notValidUpload;
|
35
36
|
}
|
36
37
|
const apiRoot = getApiRoot(req);
|
37
38
|
if (apiRoot == null) {
|
38
|
-
return
|
39
|
+
return notValidUpload;
|
39
40
|
}
|
40
41
|
const model = getModel(apiRoot);
|
41
|
-
const odataRequest = uriParser.parseOData({
|
42
|
-
url: req.url,
|
43
|
-
method: req.method,
|
44
|
-
});
|
45
42
|
const sqlResourceName = sbvrUtils.resolveSynonym(odataRequest);
|
46
43
|
const table = model.abstractSql.tables[sqlResourceName];
|
47
44
|
if (table == null) {
|
48
|
-
return
|
45
|
+
return notValidUpload;
|
49
46
|
}
|
50
47
|
const permission = req.method === 'POST' ? 'create' : 'update';
|
51
48
|
const vocab = model.versions[model.versions.length - 1];
|
52
49
|
const hasPermissions = await checkPermissions(req, permission, odataRequest.resourceName, vocab);
|
53
50
|
if (!hasPermissions) {
|
54
|
-
return
|
51
|
+
return notValidUpload;
|
55
52
|
}
|
56
|
-
|
57
|
-
|
53
|
+
return async (fieldname) => {
|
54
|
+
const dbFieldName = odataNameToSqlName(fieldname);
|
55
|
+
return table.fields.some((field) => field.fieldName === dbFieldName && field.dataType === 'WebResource');
|
56
|
+
};
|
58
57
|
};
|
59
58
|
export const getUploaderMiddlware = (handler) => {
|
60
|
-
return (req, res, next) => {
|
59
|
+
return async (req, res, next) => {
|
61
60
|
if (!req.is('multipart')) {
|
62
61
|
next();
|
63
62
|
return;
|
@@ -66,6 +65,12 @@ export const getUploaderMiddlware = (handler) => {
|
|
66
65
|
const completeUploads = [];
|
67
66
|
const bb = busboy({ headers: req.headers });
|
68
67
|
let isAborting = false;
|
68
|
+
const parsedOdataRequest = uriParser.parseOData({
|
69
|
+
url: req.url,
|
70
|
+
method: req.method,
|
71
|
+
});
|
72
|
+
const webResourcesFieldNames = getWebResourceFields(parsedOdataRequest, false);
|
73
|
+
const isValidUpload = await getRequestUploadValidator(req, parsedOdataRequest);
|
69
74
|
const finishFileUpload = () => {
|
70
75
|
req.unpipe(bb);
|
71
76
|
req.on('readable', req.read.bind(req));
|
@@ -88,7 +93,7 @@ export const getUploaderMiddlware = (handler) => {
|
|
88
93
|
}
|
89
94
|
completeUploads.push((async () => {
|
90
95
|
try {
|
91
|
-
if (!(await
|
96
|
+
if (!(await isValidUpload(fieldname))) {
|
92
97
|
filestream.resume();
|
93
98
|
return;
|
94
99
|
}
|
@@ -111,11 +116,16 @@ export const getUploaderMiddlware = (handler) => {
|
|
111
116
|
}
|
112
117
|
catch (err) {
|
113
118
|
filestream.resume();
|
114
|
-
|
119
|
+
bb.emit('error', new errors.BadRequestError(err.message ?? 'Error uploading file'));
|
115
120
|
}
|
116
121
|
})());
|
117
122
|
});
|
118
123
|
bb.on('field', (name, val) => {
|
124
|
+
if (webResourcesFieldNames.includes(name)) {
|
125
|
+
isAborting = true;
|
126
|
+
bb.emit('error', new errors.BadRequestError('WebResource field must be a blob.'));
|
127
|
+
return;
|
128
|
+
}
|
119
129
|
req.body[name] = val;
|
120
130
|
});
|
121
131
|
bb.on('finish', async () => {
|
@@ -140,13 +150,15 @@ export const getUploaderMiddlware = (handler) => {
|
|
140
150
|
if (err instanceof FileSizeExceededError) {
|
141
151
|
return sbvrUtils.handleHttpErrors(req, res, new errors.BadRequestError(err.message));
|
142
152
|
}
|
143
|
-
|
144
|
-
|
153
|
+
if (!sbvrUtils.handleHttpErrors(req, res, err)) {
|
154
|
+
getLogger(getApiRoot(req)).error('Error uploading file', err);
|
155
|
+
next(err);
|
156
|
+
}
|
145
157
|
});
|
146
158
|
req.pipe(bb);
|
147
159
|
};
|
148
160
|
};
|
149
|
-
const getWebResourceFields = (request, useTranslations = true) => {
|
161
|
+
export const getWebResourceFields = (request, useTranslations = true) => {
|
150
162
|
const resourceName = sbvrUtils.resolveSynonym(request);
|
151
163
|
const sqlResourceName = odataNameToSqlName(resourceName);
|
152
164
|
const model = sbvrUtils.getAbstractSqlModel(request).tables[sqlResourceName];
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/webresource-handler/index.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/webresource-handler/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@balena/pinejs",
|
3
|
-
"version": "20.0.
|
3
|
+
"version": "20.0.4-build-avoids-string-multipart-webresources-fields-53ecc5f527efbe6db49581773540a1f0c4dc3cda-1",
|
4
4
|
"main": "out/server-glue/module.js",
|
5
5
|
"type": "module",
|
6
6
|
"repository": "git@github.com:balena-io/pinejs.git",
|
@@ -148,6 +148,6 @@
|
|
148
148
|
"recursive": true
|
149
149
|
},
|
150
150
|
"versionist": {
|
151
|
-
"publishedAt": "2025-02-
|
151
|
+
"publishedAt": "2025-02-13T15:35:45.363Z"
|
152
152
|
}
|
153
153
|
}
|
@@ -63,30 +63,27 @@ export const setupWebresourceHandler = (handler: WebResourceHandler): void => {
|
|
63
63
|
export const getWebresourceHandler = (): WebResourceHandler | undefined => {
|
64
64
|
return configuredWebResourceHandler;
|
65
65
|
};
|
66
|
+
const notValidUpload = () => Promise.resolve(false);
|
66
67
|
|
67
|
-
const
|
68
|
-
fieldname: string,
|
68
|
+
const getRequestUploadValidator = async (
|
69
69
|
req: Express.Request,
|
70
|
-
|
70
|
+
odataRequest: uriParser.ParsedODataRequest,
|
71
|
+
): Promise<(fieldName: string) => Promise<boolean>> => {
|
71
72
|
if (req.method !== 'POST' && req.method !== 'PATCH') {
|
72
|
-
return
|
73
|
+
return notValidUpload;
|
73
74
|
}
|
74
75
|
|
75
76
|
const apiRoot = getApiRoot(req);
|
76
77
|
if (apiRoot == null) {
|
77
|
-
return
|
78
|
+
return notValidUpload;
|
78
79
|
}
|
79
80
|
const model = getModel(apiRoot);
|
80
|
-
const odataRequest = uriParser.parseOData({
|
81
|
-
url: req.url,
|
82
|
-
method: req.method,
|
83
|
-
});
|
84
81
|
const sqlResourceName = sbvrUtils.resolveSynonym(odataRequest);
|
85
82
|
|
86
83
|
const table = model.abstractSql.tables[sqlResourceName];
|
87
84
|
|
88
85
|
if (table == null) {
|
89
|
-
return
|
86
|
+
return notValidUpload;
|
90
87
|
}
|
91
88
|
|
92
89
|
const permission = req.method === 'POST' ? 'create' : 'update';
|
@@ -101,20 +98,22 @@ const isFileInValidPath = async (
|
|
101
98
|
);
|
102
99
|
|
103
100
|
if (!hasPermissions) {
|
104
|
-
return
|
101
|
+
return notValidUpload;
|
105
102
|
}
|
106
103
|
|
107
|
-
|
108
|
-
|
109
|
-
(
|
110
|
-
field
|
111
|
-
|
104
|
+
return async (fieldname: string) => {
|
105
|
+
const dbFieldName = odataNameToSqlName(fieldname);
|
106
|
+
return table.fields.some(
|
107
|
+
(field) =>
|
108
|
+
field.fieldName === dbFieldName && field.dataType === 'WebResource',
|
109
|
+
);
|
110
|
+
};
|
112
111
|
};
|
113
112
|
|
114
113
|
export const getUploaderMiddlware = (
|
115
114
|
handler: WebResourceHandler,
|
116
115
|
): Express.RequestHandler => {
|
117
|
-
return (req, res, next) => {
|
116
|
+
return async (req, res, next) => {
|
118
117
|
if (!req.is('multipart')) {
|
119
118
|
next();
|
120
119
|
return;
|
@@ -125,6 +124,20 @@ export const getUploaderMiddlware = (
|
|
125
124
|
const bb = busboy({ headers: req.headers });
|
126
125
|
let isAborting = false;
|
127
126
|
|
127
|
+
const parsedOdataRequest = uriParser.parseOData({
|
128
|
+
url: req.url,
|
129
|
+
method: req.method,
|
130
|
+
});
|
131
|
+
const webResourcesFieldNames = getWebResourceFields(
|
132
|
+
parsedOdataRequest,
|
133
|
+
false,
|
134
|
+
);
|
135
|
+
|
136
|
+
const isValidUpload = await getRequestUploadValidator(
|
137
|
+
req,
|
138
|
+
parsedOdataRequest,
|
139
|
+
);
|
140
|
+
|
128
141
|
const finishFileUpload = () => {
|
129
142
|
req.unpipe(bb);
|
130
143
|
req.on('readable', req.read.bind(req));
|
@@ -152,7 +165,7 @@ export const getUploaderMiddlware = (
|
|
152
165
|
completeUploads.push(
|
153
166
|
(async () => {
|
154
167
|
try {
|
155
|
-
if (!(await
|
168
|
+
if (!(await isValidUpload(fieldname))) {
|
156
169
|
filestream.resume();
|
157
170
|
return;
|
158
171
|
}
|
@@ -174,7 +187,10 @@ export const getUploaderMiddlware = (
|
|
174
187
|
uploadedFilePaths.push(result.filename);
|
175
188
|
} catch (err: any) {
|
176
189
|
filestream.resume();
|
177
|
-
|
190
|
+
bb.emit(
|
191
|
+
'error',
|
192
|
+
new errors.BadRequestError(err.message ?? 'Error uploading file'),
|
193
|
+
);
|
178
194
|
}
|
179
195
|
})(),
|
180
196
|
);
|
@@ -184,6 +200,14 @@ export const getUploaderMiddlware = (
|
|
184
200
|
// This receives the form fields and transforms them into a standard JSON body
|
185
201
|
// This is a similar behavior as previous multer library did
|
186
202
|
bb.on('field', (name, val) => {
|
203
|
+
if (webResourcesFieldNames.includes(name)) {
|
204
|
+
isAborting = true;
|
205
|
+
bb.emit(
|
206
|
+
'error',
|
207
|
+
new errors.BadRequestError('WebResource field must be a blob.'),
|
208
|
+
);
|
209
|
+
return;
|
210
|
+
}
|
187
211
|
req.body[name] = val;
|
188
212
|
});
|
189
213
|
|
@@ -209,7 +233,7 @@ export const getUploaderMiddlware = (
|
|
209
233
|
}
|
210
234
|
});
|
211
235
|
|
212
|
-
bb.on('error', async (err) => {
|
236
|
+
bb.on('error', async (err: Error) => {
|
213
237
|
finishFileUpload();
|
214
238
|
await clearFiles();
|
215
239
|
|
@@ -221,15 +245,17 @@ export const getUploaderMiddlware = (
|
|
221
245
|
);
|
222
246
|
}
|
223
247
|
|
224
|
-
|
225
|
-
|
248
|
+
if (!sbvrUtils.handleHttpErrors(req, res, err)) {
|
249
|
+
getLogger(getApiRoot(req)).error('Error uploading file', err);
|
250
|
+
next(err);
|
251
|
+
}
|
226
252
|
});
|
227
253
|
req.pipe(bb);
|
228
254
|
};
|
229
255
|
};
|
230
256
|
|
231
|
-
const getWebResourceFields = (
|
232
|
-
request: uriParser.
|
257
|
+
export const getWebResourceFields = (
|
258
|
+
request: uriParser.ParsedODataRequest,
|
233
259
|
useTranslations = true,
|
234
260
|
): string[] => {
|
235
261
|
// Translations will use modifyFields(translated) rather than fields(original) so we need to
|