@budibase/backend-core 2.33.13 → 3.0.0

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,5 +1,4 @@
1
- import { PermissionLevel } from "./permissions";
2
- import { Screen, Role as RoleDoc, RoleUIMetadata } from "@budibase/types";
1
+ import { Screen, Role as RoleDoc, RoleUIMetadata, BuiltinPermissionID, PermissionLevel } from "@budibase/types";
3
2
  export declare const BUILTIN_ROLE_IDS: {
4
3
  ADMIN: string;
5
4
  POWER: string;
@@ -14,12 +13,12 @@ export declare class Role implements RoleDoc {
14
13
  _id: string;
15
14
  _rev?: string;
16
15
  name: string;
17
- permissionId: string;
16
+ permissionId: BuiltinPermissionID;
18
17
  inherits?: string | string[];
19
18
  version?: string;
20
19
  permissions: Record<string, PermissionLevel[]>;
21
20
  uiMetadata?: RoleUIMetadata;
22
- constructor(id: string, name: string, permissionId: string, uiMetadata?: RoleUIMetadata);
21
+ constructor(id: string, name: string, permissionId: BuiltinPermissionID, uiMetadata?: RoleUIMetadata);
23
22
  addInheritance(inherits?: string | string[]): this;
24
23
  }
25
24
  export declare class RoleHierarchyTraversal {
@@ -38,6 +37,7 @@ export declare function getBuiltinRoles(): {
38
37
  export declare function isBuiltin(role: string): boolean;
39
38
  export declare function prefixRoleIDNoBuiltin(roleId: string): string;
40
39
  export declare function getBuiltinRole(roleId: string): Role | undefined;
40
+ export declare function validInherits(allRoles: RoleDoc[], inherits?: string | string[]): boolean;
41
41
  /**
42
42
  * Works through the inheritance ranks to see how far up the builtin stack this ID is.
43
43
  */
@@ -50,7 +50,7 @@ export declare function roleToNumber(id: string): Promise<number>;
50
50
  * Returns whichever builtin roleID is lower.
51
51
  */
52
52
  export declare function lowerBuiltinRoleID(roleId1?: string, roleId2?: string): string;
53
- export declare function compareRoleIds(roleId1: string, roleId2: string): boolean;
53
+ export declare function roleIDsAreEqual(roleId1: string, roleId2: string): boolean;
54
54
  export declare function externalRole(role: RoleDoc): RoleDoc;
55
55
  /**
56
56
  * Given a list of roles, this will pick the role out, accounting for built ins.
@@ -17,10 +17,11 @@ exports.getBuiltinRoles = getBuiltinRoles;
17
17
  exports.isBuiltin = isBuiltin;
18
18
  exports.prefixRoleIDNoBuiltin = prefixRoleIDNoBuiltin;
19
19
  exports.getBuiltinRole = getBuiltinRole;
20
+ exports.validInherits = validInherits;
20
21
  exports.builtinRoleToNumber = builtinRoleToNumber;
21
22
  exports.roleToNumber = roleToNumber;
22
23
  exports.lowerBuiltinRoleID = lowerBuiltinRoleID;
23
- exports.compareRoleIds = compareRoleIds;
24
+ exports.roleIDsAreEqual = roleIDsAreEqual;
24
25
  exports.externalRole = externalRole;
25
26
  exports.findRole = findRole;
26
27
  exports.getRole = getRole;
@@ -34,12 +35,13 @@ exports.getDBRoleID = getDBRoleID;
34
35
  exports.getExternalRoleID = getExternalRoleID;
35
36
  exports.getExternalRoleIDs = getExternalRoleIDs;
36
37
  const semver_1 = __importDefault(require("semver"));
37
- const permissions_1 = require("./permissions");
38
38
  const db_1 = require("../db");
39
39
  const context_1 = require("../context");
40
+ const types_1 = require("@budibase/types");
40
41
  const cloneDeep_1 = __importDefault(require("lodash/fp/cloneDeep"));
41
42
  const shared_core_1 = require("@budibase/shared-core");
42
43
  const lodash_1 = require("lodash");
44
+ const environment_1 = __importDefault(require("../environment"));
43
45
  exports.BUILTIN_ROLE_IDS = {
44
46
  ADMIN: "ADMIN",
45
47
  POWER: "POWER",
@@ -132,27 +134,27 @@ class RoleHierarchyTraversal {
132
134
  }
133
135
  exports.RoleHierarchyTraversal = RoleHierarchyTraversal;
134
136
  const BUILTIN_ROLES = {
135
- ADMIN: new Role(BUILTIN_IDS.ADMIN, BUILTIN_IDS.ADMIN, permissions_1.BuiltinPermissionID.ADMIN, {
137
+ ADMIN: new Role(BUILTIN_IDS.ADMIN, BUILTIN_IDS.ADMIN, types_1.BuiltinPermissionID.ADMIN, {
136
138
  displayName: "App admin",
137
139
  description: "Can do everything",
138
140
  color: shared_core_1.RoleColor.ADMIN,
139
141
  }).addInheritance(BUILTIN_IDS.POWER),
140
- POWER: new Role(BUILTIN_IDS.POWER, BUILTIN_IDS.POWER, permissions_1.BuiltinPermissionID.POWER, {
142
+ POWER: new Role(BUILTIN_IDS.POWER, BUILTIN_IDS.POWER, types_1.BuiltinPermissionID.POWER, {
141
143
  displayName: "App power user",
142
144
  description: "An app user with more access",
143
145
  color: shared_core_1.RoleColor.POWER,
144
146
  }).addInheritance(BUILTIN_IDS.BASIC),
145
- BASIC: new Role(BUILTIN_IDS.BASIC, BUILTIN_IDS.BASIC, permissions_1.BuiltinPermissionID.WRITE, {
147
+ BASIC: new Role(BUILTIN_IDS.BASIC, BUILTIN_IDS.BASIC, types_1.BuiltinPermissionID.WRITE, {
146
148
  displayName: "App user",
147
149
  description: "Any logged in user",
148
150
  color: shared_core_1.RoleColor.BASIC,
149
151
  }).addInheritance(BUILTIN_IDS.PUBLIC),
150
- PUBLIC: new Role(BUILTIN_IDS.PUBLIC, BUILTIN_IDS.PUBLIC, permissions_1.BuiltinPermissionID.PUBLIC, {
152
+ PUBLIC: new Role(BUILTIN_IDS.PUBLIC, BUILTIN_IDS.PUBLIC, types_1.BuiltinPermissionID.PUBLIC, {
151
153
  displayName: "Public user",
152
154
  description: "Accessible to anyone",
153
155
  color: shared_core_1.RoleColor.PUBLIC,
154
156
  }),
155
- BUILDER: new Role(BUILTIN_IDS.BUILDER, BUILTIN_IDS.BUILDER, permissions_1.BuiltinPermissionID.ADMIN, {
157
+ BUILDER: new Role(BUILTIN_IDS.BUILDER, BUILTIN_IDS.BUILDER, types_1.BuiltinPermissionID.ADMIN, {
156
158
  displayName: "Builder user",
157
159
  description: "Users that can edit this app",
158
160
  color: shared_core_1.RoleColor.BUILDER,
@@ -179,14 +181,27 @@ function getBuiltinRole(roleId) {
179
181
  }
180
182
  return (0, cloneDeep_1.default)(role);
181
183
  }
184
+ function validInherits(allRoles, inherits) {
185
+ if (!inherits) {
186
+ return false;
187
+ }
188
+ const find = (id) => allRoles.find(r => roleIDsAreEqual(r._id, id));
189
+ if (Array.isArray(inherits)) {
190
+ const filtered = inherits.filter(roleId => find(roleId));
191
+ return inherits.length !== 0 && filtered.length === inherits.length;
192
+ }
193
+ else {
194
+ return !!find(inherits);
195
+ }
196
+ }
182
197
  /**
183
198
  * Works through the inheritance ranks to see how far up the builtin stack this ID is.
184
199
  */
185
200
  function builtinRoleToNumber(id) {
186
201
  const builtins = getBuiltinRoles();
187
202
  const MAX = Object.values(builtins).length + 1;
188
- if (compareRoleIds(id, BUILTIN_IDS.ADMIN) ||
189
- compareRoleIds(id, BUILTIN_IDS.BUILDER)) {
203
+ if (roleIDsAreEqual(id, BUILTIN_IDS.ADMIN) ||
204
+ roleIDsAreEqual(id, BUILTIN_IDS.BUILDER)) {
190
205
  return MAX;
191
206
  }
192
207
  let role = builtins[id], count = 0;
@@ -223,7 +238,7 @@ function roleToNumber(id) {
223
238
  // find the built-in roles, get their number, sort it, then get the last one
224
239
  const highestBuiltin = role.inherits
225
240
  .map(roleId => {
226
- const foundRole = hierarchy.find(role => compareRoleIds(role._id, roleId));
241
+ const foundRole = hierarchy.find(role => roleIDsAreEqual(role._id, roleId));
227
242
  if (foundRole) {
228
243
  return findNumber(foundRole) + 1;
229
244
  }
@@ -257,7 +272,7 @@ function lowerBuiltinRoleID(roleId1, roleId2) {
257
272
  ? roleId2
258
273
  : roleId1;
259
274
  }
260
- function compareRoleIds(roleId1, roleId2) {
275
+ function roleIDsAreEqual(roleId1, roleId2) {
261
276
  // make sure both role IDs are prefixed correctly
262
277
  return (0, db_1.prefixRoleID)(roleId1) === (0, db_1.prefixRoleID)(roleId2);
263
278
  }
@@ -279,7 +294,7 @@ function findRole(roleId, roles, opts) {
279
294
  // make sure has the prefix (if it has it then it won't be added)
280
295
  roleId = (0, db_1.prefixRoleID)(roleId);
281
296
  }
282
- const dbRole = roles.find(role => role._id && compareRoleIds(role._id, roleId));
297
+ const dbRole = roles.find(role => role._id && roleIDsAreEqual(role._id, roleId));
283
298
  if (!dbRole && !isBuiltin(roleId) && (opts === null || opts === void 0 ? void 0 : opts.defaultPublic)) {
284
299
  return (0, cloneDeep_1.default)(BUILTIN_ROLES.PUBLIC);
285
300
  }
@@ -326,7 +341,7 @@ function getAllUserRoles(userRoleId, opts) {
326
341
  return __awaiter(this, void 0, void 0, function* () {
327
342
  const allRoles = yield getAllRoles();
328
343
  // admins have access to all roles
329
- if (compareRoleIds(userRoleId, BUILTIN_IDS.ADMIN)) {
344
+ if (roleIDsAreEqual(userRoleId, BUILTIN_IDS.ADMIN)) {
330
345
  return allRoles;
331
346
  }
332
347
  // get all the inherited roles
@@ -366,8 +381,8 @@ function checkForRoleResourceArray(rolePerms, resourceId) {
366
381
  if (rolePerms && !Array.isArray(rolePerms[resourceId])) {
367
382
  const permLevel = rolePerms[resourceId];
368
383
  rolePerms[resourceId] = [permLevel];
369
- if (permLevel === permissions_1.PermissionLevel.WRITE) {
370
- rolePerms[resourceId].push(permissions_1.PermissionLevel.READ);
384
+ if (permLevel === types_1.PermissionLevel.WRITE) {
385
+ rolePerms[resourceId].push(types_1.PermissionLevel.READ);
371
386
  }
372
387
  }
373
388
  return rolePerms;
@@ -428,7 +443,7 @@ function getAllRoles(appId) {
428
443
  // need to combine builtin with any DB record of them (for sake of permissions)
429
444
  for (let builtinRoleId of externalBuiltinRoles) {
430
445
  const builtinRole = builtinRoles[builtinRoleId];
431
- const dbBuiltin = roles.filter(dbRole => compareRoleIds(dbRole._id, builtinRoleId))[0];
446
+ const dbBuiltin = roles.filter(dbRole => roleIDsAreEqual(dbRole._id, builtinRoleId))[0];
432
447
  if (dbBuiltin == null) {
433
448
  roles.push(builtinRole || builtinRoles.BASIC);
434
449
  }
@@ -461,7 +476,7 @@ function shouldIncludePowerRole(db) {
461
476
  // Old apps don't have creationVersion, so we should include it for backward compatibility
462
477
  return true;
463
478
  }
464
- const isGreaterThan3x = semver_1.default.gte(creationVersion, "3.0.0");
479
+ const isGreaterThan3x = semver_1.default.gte(creationVersion, environment_1.default.MIN_VERSION_WITHOUT_POWER_ROLE);
465
480
  return !isGreaterThan3x;
466
481
  });
467
482
  }
@@ -475,9 +490,9 @@ class AccessController {
475
490
  // is currently in the builder
476
491
  if (tryingRoleId == null ||
477
492
  tryingRoleId === "" ||
478
- compareRoleIds(tryingRoleId, BUILTIN_IDS.BUILDER) ||
479
- compareRoleIds(userRoleId, tryingRoleId) ||
480
- compareRoleIds(userRoleId, BUILTIN_IDS.BUILDER)) {
493
+ roleIDsAreEqual(tryingRoleId, BUILTIN_IDS.BUILDER) ||
494
+ roleIDsAreEqual(userRoleId, tryingRoleId) ||
495
+ roleIDsAreEqual(userRoleId, BUILTIN_IDS.BUILDER)) {
481
496
  return true;
482
497
  }
483
498
  let roleIds = userRoleId ? this.userHierarchies[userRoleId] : null;
@@ -485,7 +500,7 @@ class AccessController {
485
500
  roleIds = yield getUserRoleIdHierarchy(userRoleId);
486
501
  this.userHierarchies[userRoleId] = roleIds;
487
502
  }
488
- return ((roleIds === null || roleIds === void 0 ? void 0 : roleIds.find(roleId => compareRoleIds(roleId, tryingRoleId))) !==
503
+ return ((roleIds === null || roleIds === void 0 ? void 0 : roleIds.find(roleId => roleIDsAreEqual(roleId, tryingRoleId))) !==
489
504
  undefined);
490
505
  });
491
506
  }
@@ -1 +1 @@
1
- {"version":3,"file":"roles.js","sourceRoot":"","sources":["../../../src/security/roles.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"roles.js","sourceRoot":"","sources":["../../../src/security/roles.ts"],"names":[],"mappings":"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"}
@@ -152,9 +152,6 @@ class InternalBuilder {
152
152
  const { column } = this.splitter.run(key);
153
153
  return this.table.schema[column];
154
154
  }
155
- supportsILike() {
156
- return !(this.client === types_1.SqlClient.ORACLE || this.client === types_1.SqlClient.SQL_LITE);
157
- }
158
155
  quoteChars() {
159
156
  const wrapped = this.knexClient.wrapIdentifier("foo", {});
160
157
  return [wrapped[0], wrapped[wrapped.length - 1]];
@@ -181,8 +178,30 @@ class InternalBuilder {
181
178
  const formatter = this.knexClient.formatter(this.knexClient.queryBuilder());
182
179
  return formatter.wrap(value, false);
183
180
  }
184
- rawQuotedValue(value) {
185
- return this.knex.raw(this.quotedValue(value));
181
+ castIntToString(identifier) {
182
+ switch (this.client) {
183
+ case types_1.SqlClient.ORACLE: {
184
+ return this.knex.raw("to_char(??)", [identifier]);
185
+ }
186
+ case types_1.SqlClient.POSTGRES: {
187
+ return this.knex.raw("??::TEXT", [identifier]);
188
+ }
189
+ case types_1.SqlClient.MY_SQL:
190
+ case types_1.SqlClient.MARIADB: {
191
+ return this.knex.raw("CAST(?? AS CHAR)", [identifier]);
192
+ }
193
+ case types_1.SqlClient.SQL_LITE: {
194
+ // Technically sqlite can actually represent numbers larger than a 64bit
195
+ // int as a string, but it does it using scientific notation (e.g.
196
+ // "1e+20") which is not what we want. Given that the external SQL
197
+ // databases are limited to supporting only 64bit ints, we settle for
198
+ // that here.
199
+ return this.knex.raw("printf('%d', ??)", [identifier]);
200
+ }
201
+ case types_1.SqlClient.MS_SQL: {
202
+ return this.knex.raw("CONVERT(NVARCHAR, ??)", [identifier]);
203
+ }
204
+ }
186
205
  }
187
206
  // Unfortuantely we cannot rely on knex's identifier escaping because it trims
188
207
  // the identifier string before escaping it, which breaks cases for us where
@@ -256,11 +275,9 @@ class InternalBuilder {
256
275
  .map(({ table, column, field }) => {
257
276
  const columnSchema = schema[column];
258
277
  if (this.SPECIAL_SELECT_CASES.POSTGRES_MONEY(columnSchema)) {
259
- // TODO: figure out how to express this safely without string
260
- // interpolation.
261
- return this.knex.raw(`??::money::numeric as "${field}"`, [
278
+ return this.knex.raw(`??::money::numeric as ??`, [
262
279
  this.rawQuotedIdentifier([table, column].join(".")),
263
- field,
280
+ this.knex.raw(this.quote(field)),
264
281
  ]);
265
282
  }
266
283
  if (this.SPECIAL_SELECT_CASES.MSSQL_DATES(columnSchema)) {
@@ -268,8 +285,9 @@ class InternalBuilder {
268
285
  // HH:mm format
269
286
  // TODO: figure out how to express this safely without string
270
287
  // interpolation.
271
- return this.knex.raw(`CONVERT(varchar, ??, 108) as "${field}"`, [
288
+ return this.knex.raw(`CONVERT(varchar, ??, 108) as ??`, [
272
289
  this.rawQuotedIdentifier(field),
290
+ this.knex.raw(this.quote(field)),
273
291
  ]);
274
292
  }
275
293
  if (table) {
@@ -435,7 +453,7 @@ class InternalBuilder {
435
453
  const manyToMany = (0, utils_1.validateManyToMany)(relationship);
436
454
  let updatedKey;
437
455
  if (!matchesTableName) {
438
- updatedKey = filterKey.replace(new RegExp(`^${relationship.column}.`), `${aliases[relationship.tableName]}.`);
456
+ updatedKey = filterKey.replace(new RegExp(`^${relationship.column}.`), `${(aliases === null || aliases === void 0 ? void 0 : aliases[relationship.tableName]) || relationship.tableName}.`);
439
457
  }
440
458
  else {
441
459
  updatedKey = filterKey;
@@ -886,25 +904,29 @@ class InternalBuilder {
886
904
  }
887
905
  }
888
906
  else {
889
- query = query.count(`* as ${aggregation.name}`);
907
+ if (this.client === types_1.SqlClient.ORACLE) {
908
+ const field = this.convertClobs(`${tableName}.${aggregation.field}`);
909
+ query = query.select(this.knex.raw(`COUNT(??) as ??`, [field, aggregation.name]));
910
+ }
911
+ else {
912
+ query = query.count(`${aggregation.field} as ${aggregation.name}`);
913
+ }
890
914
  }
891
915
  }
892
916
  else {
893
- const field = `${tableName}.${aggregation.field} as ${aggregation.name}`;
894
- switch (op) {
895
- case types_1.CalculationType.SUM:
896
- query = query.sum(field);
897
- break;
898
- case types_1.CalculationType.AVG:
899
- query = query.avg(field);
900
- break;
901
- case types_1.CalculationType.MIN:
902
- query = query.min(field);
903
- break;
904
- case types_1.CalculationType.MAX:
905
- query = query.max(field);
906
- break;
917
+ const fieldSchema = this.getFieldSchema(aggregation.field);
918
+ if (!fieldSchema) {
919
+ // This should not happen in practice.
920
+ throw new Error(`field schema missing for aggregation target: ${aggregation.field}`);
921
+ }
922
+ let aggregate = this.knex.raw("??(??)", [
923
+ this.knex.raw(op),
924
+ this.rawQuotedIdentifier(`${tableName}.${aggregation.field}`),
925
+ ]);
926
+ if (fieldSchema.type === types_1.FieldType.BIGINT) {
927
+ aggregate = this.castIntToString(aggregate);
907
928
  }
929
+ query = query.select(this.knex.raw("?? as ??", [aggregate, aggregation.name]));
908
930
  }
909
931
  }
910
932
  return query;
@@ -1167,7 +1189,8 @@ class InternalBuilder {
1167
1189
  if (((_a = schema.constraints) === null || _a === void 0 ? void 0 : _a.presence) === true ||
1168
1190
  schema.type === types_1.FieldType.FORMULA ||
1169
1191
  schema.type === types_1.FieldType.AUTO ||
1170
- schema.type === types_1.FieldType.LINK) {
1192
+ schema.type === types_1.FieldType.LINK ||
1193
+ schema.type === types_1.FieldType.AI) {
1171
1194
  continue;
1172
1195
  }
1173
1196
  const value = parsedBody[column];
@@ -1278,7 +1301,7 @@ class InternalBuilder {
1278
1301
  }
1279
1302
  query = this.addFilters(query, filters, { relationship: true });
1280
1303
  // handle relationships with a CTE for all others
1281
- if (relationships === null || relationships === void 0 ? void 0 : relationships.length) {
1304
+ if ((relationships === null || relationships === void 0 ? void 0 : relationships.length) && aggregations.length === 0) {
1282
1305
  const mainTable = ((_b = this.query.tableAliases) === null || _b === void 0 ? void 0 : _b[this.query.endpoint.entityId]) ||
1283
1306
  this.query.endpoint.entityId;
1284
1307
  const cte = this.addSorting(this.knex
@@ -1290,10 +1313,7 @@ class InternalBuilder {
1290
1313
  // add JSON aggregations attached to the CTE
1291
1314
  return this.addJsonRelationships(cte, tableName, relationships);
1292
1315
  }
1293
- // no relationships found - return query
1294
- else {
1295
- return query;
1296
- }
1316
+ return query;
1297
1317
  }
1298
1318
  update(opts) {
1299
1319
  const { body, filters } = this.query;