@balena/pinejs 20.0.4-build-avoids-string-multipart-webresources-fields-53ecc5f527efbe6db49581773540a1f0c4dc3cda-1 → 20.0.4

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.
@@ -1,16 +1,14 @@
1
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: ""
2
+ - subject: Fix missing required validation on bindings
3
+ hash: 5eac96faefde83ce9d1964b407cf6a490df83920
4
+ body: |
5
+ In previous commit `bdb34d` the code path for `getAndCheckBindValues` was simplified
6
+ considering the declared type of `{dataType: string}`. That typing is not complete and thus the simplification was wrong.
7
+
8
+ The field property may also contain a `required` property which is used for doing oData validation (from sbvr-types)
9
+ In that simplification we excluded the required information for bound variables: https://github.com/balena-io/pinejs/commit/bdb34d9df39e0d9d00db492cbb1ef6dfc61e8450#diff-abade937407ef92d95cd36b5719e481229475da7d3f8bdc613bebef8971c35d2R107
10
+
11
+ This reverts back the code simplification but keeping the necessary changes for List binding type.
14
12
  footer:
15
13
  Change-type: patch
16
14
  change-type: patch
@@ -18,7 +16,7 @@
18
16
  nested: []
19
17
  version: 20.0.4
20
18
  title: ""
21
- date: 2025-02-13T15:35:44.323Z
19
+ date: 2025-02-14T00:29:34.580Z
22
20
  - commits:
23
21
  - subject: Compile in as (= ANY($singleListBinding))
24
22
  hash: bdb34d9df39e0d9d00db492cbb1ef6dfc61e8450
package/CHANGELOG.md CHANGED
@@ -5,10 +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
  # v20.0.4
8
- ## (2025-02-13)
8
+ ## (2025-02-14)
9
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]
10
+ * Fix missing required validation on bindings [Otavio Jacobi]
12
11
 
13
12
  # v20.0.3
14
13
  ## (2025-02-11)
@@ -46,7 +46,7 @@ export const getAndCheckBindValues = async (request, bindings) => {
46
46
  const sqlModelTables = sbvrUtils.getAbstractSqlModel(request).tables;
47
47
  return await Promise.all(bindings.map(async (binding) => {
48
48
  let fieldName = '';
49
- let dataType;
49
+ let field;
50
50
  let value;
51
51
  if (binding[0] === 'Bind') {
52
52
  const bindValue = binding[1];
@@ -66,42 +66,48 @@ export const getAndCheckBindValues = async (request, bindings) => {
66
66
  if (maybeField == null) {
67
67
  throw new Error(`Could not find field '${fieldName}'`);
68
68
  }
69
- dataType = maybeField.dataType;
69
+ field = maybeField;
70
70
  }
71
71
  else if (Number.isInteger(bindValue)) {
72
72
  if (bindValue >= odataBinds.length) {
73
73
  console.error(`Invalid binding number '${bindValue}' for binds: `, odataBinds);
74
74
  throw new Error('Invalid binding');
75
75
  }
76
+ let dataType;
76
77
  [dataType, value] = odataBinds[bindValue];
78
+ field = { dataType };
77
79
  }
78
80
  else if (typeof bindValue === 'string') {
79
81
  if (!Object.hasOwn(odataBinds, bindValue)) {
80
82
  console.error(`Invalid binding '${bindValue}' for binds: `, odataBinds);
81
83
  throw new Error('Invalid binding');
82
84
  }
85
+ let dataType;
83
86
  [dataType, value] = odataBinds[bindValue];
87
+ field = { dataType };
84
88
  }
85
89
  else {
86
90
  throw new Error(`Unknown binding: ${binding}`);
87
91
  }
88
92
  }
89
93
  else {
94
+ let dataType;
90
95
  [dataType, value] = binding;
96
+ field = { dataType };
91
97
  }
92
98
  if (value === undefined) {
93
99
  throw new Error(`Bind value cannot be undefined: ${binding}`);
94
100
  }
95
101
  try {
96
- return await validateBindingType(engine, value, dataType);
102
+ return await validateBindingType(engine, value, field);
97
103
  }
98
104
  catch (err) {
99
105
  throw new BadRequestError(`"${fieldName}" ${err.message}`);
100
106
  }
101
107
  }));
102
108
  };
103
- const validateBindingType = async (engine, $value, $dataType) => {
104
- if ($dataType === 'List') {
109
+ const validateBindingType = async (engine, $value, field) => {
110
+ if (field.dataType === 'List') {
105
111
  if (!Array.isArray($value)) {
106
112
  throw new Error('List value binding must be an array');
107
113
  }
@@ -109,12 +115,10 @@ const validateBindingType = async (engine, $value, $dataType) => {
109
115
  if (dataType === 'Null') {
110
116
  return null;
111
117
  }
112
- return await validateBindingType(engine, value, dataType);
118
+ return await validateBindingType(engine, value, { dataType });
113
119
  }));
114
120
  }
115
- return await AbstractSQLCompiler[engine].dataTypeValidate($value, {
116
- dataType: $dataType,
117
- });
121
+ return await AbstractSQLCompiler[engine].dataTypeValidate($value, field);
118
122
  };
119
123
  const checkModifiedFields = (ruleReferencedFields, modifiedFields) => {
120
124
  const refs = ruleReferencedFields[modifiedFields.table];
@@ -1 +1 @@
1
- {"version":3,"file":"abstract-sql.js","sourceRoot":"","sources":["../../src/sbvr-api/abstract-sql.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"abstract-sql.js","sourceRoot":"","sources":["../../src/sbvr-api/abstract-sql.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,5 @@
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';
4
3
  import type { WebResourceType as WebResource } from '@balena/sbvr-types';
5
4
  import { TypedError } from 'typed-error';
6
5
  export * from './handlers/index.js';
@@ -29,7 +28,6 @@ export declare class FileSizeExceededError extends WebResourceError {
29
28
  export declare const setupWebresourceHandler: (handler: WebResourceHandler) => void;
30
29
  export declare const getWebresourceHandler: () => WebResourceHandler | undefined;
31
30
  export declare const getUploaderMiddlware: (handler: WebResourceHandler) => Express.RequestHandler;
32
- export declare const getWebResourceFields: (request: uriParser.ParsedODataRequest, useTranslations?: boolean) => string[];
33
31
  export declare const normalizeHref: (href: string) => string;
34
32
  export declare const getDefaultHandler: () => WebResourceHandler;
35
33
  export declare const setupUploadHooks: (handler: WebResourceHandler, apiRoot: string, resourceName: string) => void;
@@ -29,34 +29,35 @@ export const setupWebresourceHandler = (handler) => {
29
29
  export const getWebresourceHandler = () => {
30
30
  return configuredWebResourceHandler;
31
31
  };
32
- const notValidUpload = () => Promise.resolve(false);
33
- const getRequestUploadValidator = async (req, odataRequest) => {
32
+ const isFileInValidPath = async (fieldname, req) => {
34
33
  if (req.method !== 'POST' && req.method !== 'PATCH') {
35
- return notValidUpload;
34
+ return false;
36
35
  }
37
36
  const apiRoot = getApiRoot(req);
38
37
  if (apiRoot == null) {
39
- return notValidUpload;
38
+ return false;
40
39
  }
41
40
  const model = getModel(apiRoot);
41
+ const odataRequest = uriParser.parseOData({
42
+ url: req.url,
43
+ method: req.method,
44
+ });
42
45
  const sqlResourceName = sbvrUtils.resolveSynonym(odataRequest);
43
46
  const table = model.abstractSql.tables[sqlResourceName];
44
47
  if (table == null) {
45
- return notValidUpload;
48
+ return false;
46
49
  }
47
50
  const permission = req.method === 'POST' ? 'create' : 'update';
48
51
  const vocab = model.versions[model.versions.length - 1];
49
52
  const hasPermissions = await checkPermissions(req, permission, odataRequest.resourceName, vocab);
50
53
  if (!hasPermissions) {
51
- return notValidUpload;
54
+ return false;
52
55
  }
53
- return async (fieldname) => {
54
- const dbFieldName = odataNameToSqlName(fieldname);
55
- return table.fields.some((field) => field.fieldName === dbFieldName && field.dataType === 'WebResource');
56
- };
56
+ const dbFieldName = odataNameToSqlName(fieldname);
57
+ return table.fields.some((field) => field.fieldName === dbFieldName && field.dataType === 'WebResource');
57
58
  };
58
59
  export const getUploaderMiddlware = (handler) => {
59
- return async (req, res, next) => {
60
+ return (req, res, next) => {
60
61
  if (!req.is('multipart')) {
61
62
  next();
62
63
  return;
@@ -65,12 +66,6 @@ export const getUploaderMiddlware = (handler) => {
65
66
  const completeUploads = [];
66
67
  const bb = busboy({ headers: req.headers });
67
68
  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);
74
69
  const finishFileUpload = () => {
75
70
  req.unpipe(bb);
76
71
  req.on('readable', req.read.bind(req));
@@ -93,7 +88,7 @@ export const getUploaderMiddlware = (handler) => {
93
88
  }
94
89
  completeUploads.push((async () => {
95
90
  try {
96
- if (!(await isValidUpload(fieldname))) {
91
+ if (!(await isFileInValidPath(fieldname, req))) {
97
92
  filestream.resume();
98
93
  return;
99
94
  }
@@ -116,16 +111,11 @@ export const getUploaderMiddlware = (handler) => {
116
111
  }
117
112
  catch (err) {
118
113
  filestream.resume();
119
- bb.emit('error', new errors.BadRequestError(err.message ?? 'Error uploading file'));
114
+ throw err;
120
115
  }
121
116
  })());
122
117
  });
123
118
  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
- }
129
119
  req.body[name] = val;
130
120
  });
131
121
  bb.on('finish', async () => {
@@ -150,15 +140,13 @@ export const getUploaderMiddlware = (handler) => {
150
140
  if (err instanceof FileSizeExceededError) {
151
141
  return sbvrUtils.handleHttpErrors(req, res, new errors.BadRequestError(err.message));
152
142
  }
153
- if (!sbvrUtils.handleHttpErrors(req, res, err)) {
154
- getLogger(getApiRoot(req)).error('Error uploading file', err);
155
- next(err);
156
- }
143
+ getLogger(getApiRoot(req)).error('Error uploading file', err);
144
+ next(err);
157
145
  });
158
146
  req.pipe(bb);
159
147
  };
160
148
  };
161
- export const getWebResourceFields = (request, useTranslations = true) => {
149
+ const getWebResourceFields = (request, useTranslations = true) => {
162
150
  const resourceName = sbvrUtils.resolveSynonym(request);
163
151
  const sqlResourceName = odataNameToSqlName(resourceName);
164
152
  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.4-build-avoids-string-multipart-webresources-fields-53ecc5f527efbe6db49581773540a1f0c4dc3cda-1",
3
+ "version": "20.0.4",
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-13T15:35:45.363Z"
151
+ "publishedAt": "2025-02-14T00:29:35.598Z"
152
152
  }
153
153
  }
@@ -79,7 +79,7 @@ export const getAndCheckBindValues = async (
79
79
  return await Promise.all(
80
80
  bindings.map(async (binding) => {
81
81
  let fieldName = '';
82
- let dataType: string;
82
+ let field: { dataType: string; required?: boolean };
83
83
  let value: any;
84
84
  if (binding[0] === 'Bind') {
85
85
  const bindValue = binding[1];
@@ -104,7 +104,7 @@ export const getAndCheckBindValues = async (
104
104
  if (maybeField == null) {
105
105
  throw new Error(`Could not find field '${fieldName}'`);
106
106
  }
107
- dataType = maybeField.dataType;
107
+ field = maybeField;
108
108
  } else if (Number.isInteger(bindValue)) {
109
109
  if (bindValue >= odataBinds.length) {
110
110
  console.error(
@@ -113,7 +113,9 @@ export const getAndCheckBindValues = async (
113
113
  );
114
114
  throw new Error('Invalid binding');
115
115
  }
116
+ let dataType;
116
117
  [dataType, value] = odataBinds[bindValue];
118
+ field = { dataType };
117
119
  } else if (typeof bindValue === 'string') {
118
120
  if (!Object.hasOwn(odataBinds, bindValue)) {
119
121
  console.error(
@@ -122,12 +124,16 @@ export const getAndCheckBindValues = async (
122
124
  );
123
125
  throw new Error('Invalid binding');
124
126
  }
127
+ let dataType;
125
128
  [dataType, value] = odataBinds[bindValue as BindKey];
129
+ field = { dataType };
126
130
  } else {
127
131
  throw new Error(`Unknown binding: ${binding}`);
128
132
  }
129
133
  } else {
134
+ let dataType;
130
135
  [dataType, value] = binding;
136
+ field = { dataType };
131
137
  }
132
138
 
133
139
  if (value === undefined) {
@@ -135,7 +141,7 @@ export const getAndCheckBindValues = async (
135
141
  }
136
142
 
137
143
  try {
138
- return await validateBindingType(engine, value, dataType);
144
+ return await validateBindingType(engine, value, field);
139
145
  } catch (err: any) {
140
146
  throw new BadRequestError(`"${fieldName}" ${err.message}`);
141
147
  }
@@ -146,9 +152,9 @@ export const getAndCheckBindValues = async (
146
152
  const validateBindingType = async (
147
153
  engine: Engines,
148
154
  $value: any,
149
- $dataType: string,
155
+ field: { dataType: string; required?: boolean },
150
156
  ): Promise<any> => {
151
- if ($dataType === 'List') {
157
+ if (field.dataType === 'List') {
152
158
  if (!Array.isArray($value)) {
153
159
  throw new Error('List value binding must be an array');
154
160
  }
@@ -158,13 +164,11 @@ const validateBindingType = async (
158
164
  if (dataType === 'Null') {
159
165
  return null;
160
166
  }
161
- return await validateBindingType(engine, value, dataType);
167
+ return await validateBindingType(engine, value, { dataType });
162
168
  }),
163
169
  );
164
170
  }
165
- return await AbstractSQLCompiler[engine].dataTypeValidate($value, {
166
- dataType: $dataType,
167
- });
171
+ return await AbstractSQLCompiler[engine].dataTypeValidate($value, field);
168
172
  };
169
173
 
170
174
  const checkModifiedFields = (
@@ -63,27 +63,30 @@ 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);
67
66
 
68
- const getRequestUploadValidator = async (
67
+ const isFileInValidPath = async (
68
+ fieldname: string,
69
69
  req: Express.Request,
70
- odataRequest: uriParser.ParsedODataRequest,
71
- ): Promise<(fieldName: string) => Promise<boolean>> => {
70
+ ): Promise<boolean> => {
72
71
  if (req.method !== 'POST' && req.method !== 'PATCH') {
73
- return notValidUpload;
72
+ return false;
74
73
  }
75
74
 
76
75
  const apiRoot = getApiRoot(req);
77
76
  if (apiRoot == null) {
78
- return notValidUpload;
77
+ return false;
79
78
  }
80
79
  const model = getModel(apiRoot);
80
+ const odataRequest = uriParser.parseOData({
81
+ url: req.url,
82
+ method: req.method,
83
+ });
81
84
  const sqlResourceName = sbvrUtils.resolveSynonym(odataRequest);
82
85
 
83
86
  const table = model.abstractSql.tables[sqlResourceName];
84
87
 
85
88
  if (table == null) {
86
- return notValidUpload;
89
+ return false;
87
90
  }
88
91
 
89
92
  const permission = req.method === 'POST' ? 'create' : 'update';
@@ -98,22 +101,20 @@ const getRequestUploadValidator = async (
98
101
  );
99
102
 
100
103
  if (!hasPermissions) {
101
- return notValidUpload;
104
+ return false;
102
105
  }
103
106
 
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
- };
107
+ const dbFieldName = odataNameToSqlName(fieldname);
108
+ return table.fields.some(
109
+ (field) =>
110
+ field.fieldName === dbFieldName && field.dataType === 'WebResource',
111
+ );
111
112
  };
112
113
 
113
114
  export const getUploaderMiddlware = (
114
115
  handler: WebResourceHandler,
115
116
  ): Express.RequestHandler => {
116
- return async (req, res, next) => {
117
+ return (req, res, next) => {
117
118
  if (!req.is('multipart')) {
118
119
  next();
119
120
  return;
@@ -124,20 +125,6 @@ export const getUploaderMiddlware = (
124
125
  const bb = busboy({ headers: req.headers });
125
126
  let isAborting = false;
126
127
 
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
-
141
128
  const finishFileUpload = () => {
142
129
  req.unpipe(bb);
143
130
  req.on('readable', req.read.bind(req));
@@ -165,7 +152,7 @@ export const getUploaderMiddlware = (
165
152
  completeUploads.push(
166
153
  (async () => {
167
154
  try {
168
- if (!(await isValidUpload(fieldname))) {
155
+ if (!(await isFileInValidPath(fieldname, req))) {
169
156
  filestream.resume();
170
157
  return;
171
158
  }
@@ -187,10 +174,7 @@ export const getUploaderMiddlware = (
187
174
  uploadedFilePaths.push(result.filename);
188
175
  } catch (err: any) {
189
176
  filestream.resume();
190
- bb.emit(
191
- 'error',
192
- new errors.BadRequestError(err.message ?? 'Error uploading file'),
193
- );
177
+ throw err;
194
178
  }
195
179
  })(),
196
180
  );
@@ -200,14 +184,6 @@ export const getUploaderMiddlware = (
200
184
  // This receives the form fields and transforms them into a standard JSON body
201
185
  // This is a similar behavior as previous multer library did
202
186
  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
- }
211
187
  req.body[name] = val;
212
188
  });
213
189
 
@@ -233,7 +209,7 @@ export const getUploaderMiddlware = (
233
209
  }
234
210
  });
235
211
 
236
- bb.on('error', async (err: Error) => {
212
+ bb.on('error', async (err) => {
237
213
  finishFileUpload();
238
214
  await clearFiles();
239
215
 
@@ -245,17 +221,15 @@ export const getUploaderMiddlware = (
245
221
  );
246
222
  }
247
223
 
248
- if (!sbvrUtils.handleHttpErrors(req, res, err)) {
249
- getLogger(getApiRoot(req)).error('Error uploading file', err);
250
- next(err);
251
- }
224
+ getLogger(getApiRoot(req)).error('Error uploading file', err);
225
+ next(err);
252
226
  });
253
227
  req.pipe(bb);
254
228
  };
255
229
  };
256
230
 
257
- export const getWebResourceFields = (
258
- request: uriParser.ParsedODataRequest,
231
+ const getWebResourceFields = (
232
+ request: uriParser.ODataRequest,
259
233
  useTranslations = true,
260
234
  ): string[] => {
261
235
  // Translations will use modifyFields(translated) rather than fields(original) so we need to