@budibase/backend-core 2.28.4 → 2.28.6

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.
@@ -31,12 +31,11 @@ declare class InMemoryQueue implements Partial<Queue> {
31
31
  * Same callback API as Bull, each callback passed to this will consume messages as they are
32
32
  * available. Please note this is a queue service, not a notification service, so each
33
33
  * consumer will receive different messages.
34
- * @param func The callback function which will return a "Job", the same
35
34
  * as the Bull API, within this job the property "data" contains the JSON message. Please
36
35
  * note this is incredibly limited compared to Bull as in reality the Job would contain
37
36
  * a lot more information about the queue and current status of Bull cluster.
38
37
  */
39
- process(func: any): Promise<void>;
38
+ process(concurrencyOrFunc: number | any, func?: any): Promise<void>;
40
39
  isReady(): Promise<any>;
41
40
  /**
42
41
  * Simple function to replicate the add message functionality of Bull, putting
@@ -57,13 +57,13 @@ class InMemoryQueue {
57
57
  * Same callback API as Bull, each callback passed to this will consume messages as they are
58
58
  * available. Please note this is a queue service, not a notification service, so each
59
59
  * consumer will receive different messages.
60
- * @param func The callback function which will return a "Job", the same
61
60
  * as the Bull API, within this job the property "data" contains the JSON message. Please
62
61
  * note this is incredibly limited compared to Bull as in reality the Job would contain
63
62
  * a lot more information about the queue and current status of Bull cluster.
64
63
  */
65
- process(func) {
64
+ process(concurrencyOrFunc, func) {
66
65
  return __awaiter(this, void 0, void 0, function* () {
66
+ func = typeof concurrencyOrFunc === "number" ? func : concurrencyOrFunc;
67
67
  this._emitter.on("message", () => __awaiter(this, void 0, void 0, function* () {
68
68
  var _a, _b, _c;
69
69
  if (this._messages.length <= 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"inMemoryQueue.js","sourceRoot":"","sources":["../../../src/queue/inMemoryQueue.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,oDAA2B;AAC3B,oCAAyC;AAWzC;;;;;;;;GAQG;AACH,SAAS,MAAM,CAAC,KAAa,EAAE,OAAY,EAAE,IAAiB;IAC5D,OAAO;QACL,EAAE,EAAE,IAAA,aAAK,GAAE;QACX,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;QACrB,KAAK,EAAE,KAAK;QACZ,IAAI,EAAE,OAAO;QACb,IAAI;KACL,CAAA;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,aAAa;IASjB;;;;;OAKG;IACH,YAAY,IAAY,EAAE,IAAmB;QAC3C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;QACjB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;QACjB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAA;QACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,gBAAM,CAAC,YAAY,EAAE,CAAA;QACzC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAA;QAClB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAA;QAClB,IAAI,CAAC,aAAa,GAAG,IAAI,GAAG,EAAU,CAAA;IACxC,CAAC;IAED;;;;;;;;OAQG;IACG,OAAO,CAAC,IAAS;;YACrB,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,GAAS,EAAE;;gBACrC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE;oBAC9B,OAAM;iBACP;gBACD,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAA;gBAEhC,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAA;gBAEpB,SAAe,SAAS,CAAC,GAAQ;;wBAC/B,IAAI;4BACF,MAAM,GAAG,CAAA;yBACV;wBAAC,OAAO,CAAM,EAAE;4BACf,MAAM,IAAI,OAAO,CAAO,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAA;4BAEvD,MAAM,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;yBAC3B;oBACH,CAAC;iBAAA;gBAED,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE;oBACrB,IAAI;wBACF,MAAM,SAAS,CAAC,IAAI,CAAC,CAAA;qBACtB;oBAAC,OAAO,CAAM,EAAE;wBACf,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;qBACjB;iBACF;gBACD,IAAI,CAAC,SAAS,EAAE,CAAA;gBAChB,MAAM,KAAK,GAAG,MAAA,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,IAAI,0CAAE,KAAK,0CAAE,QAAQ,EAAE,CAAA;gBAC1C,IAAI,KAAK,KAAI,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,IAAI,0CAAE,gBAAgB,CAAA,EAAE;oBACxC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;iBACjC;YACH,CAAC,CAAA,CAAC,CAAA;QACJ,CAAC;KAAA;IAEK,OAAO;;YACX,OAAO,IAAW,CAAA;QACpB,CAAC;KAAA;IAED,2EAA2E;IAC3E;;;;;;;OAOG;IACG,GAAG,CAAC,IAAS,EAAE,IAAiB;;;YACpC,MAAM,KAAK,GAAG,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,0CAAE,QAAQ,EAAE,CAAA;YACrC,IAAI,KAAK,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;gBAC1C,OAAO,CAAC,GAAG,CAAC,+BAA+B,KAAK,EAAE,CAAC,CAAA;gBACnD,OAAM;aACP;YAED,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;gBAC5B,MAAM,oCAAoC,CAAA;aAC3C;YACD,IAAI,KAAK,EAAE;gBACT,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;aAC9B;YAED,MAAM,WAAW,GAAG,GAAG,EAAE;gBACvB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;gBACnD,IAAI,CAAC,SAAS,EAAE,CAAA;gBAChB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;YAC/B,CAAC,CAAA;YAED,MAAM,KAAK,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,CAAA;YACzB,IAAI,KAAK,EAAE;gBACT,UAAU,CAAC,WAAW,EAAE,KAAK,CAAC,CAAA;aAC/B;iBAAM;gBACL,WAAW,EAAE,CAAA;aACd;YACD,OAAO,EAAS,CAAA;;KACjB;IAED;;OAEG;IACG,KAAK;8DAAI,CAAC;KAAA;IAEhB;;;OAGG;IACG,qBAAqB,CAAC,SAAiB;;YAC3C,8BAA8B;YAC9B,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;QACxB,CAAC;KAAA;IAED;;OAEG;IACG,iBAAiB;;YACrB,OAAO,EAAE,CAAA;QACX,CAAC;KAAA;IAEK,UAAU,CAAC,QAAgB;;YAC/B,QAAQ;QACV,CAAC;KAAA;IAED;;OAEG;IACG,KAAK;;YACT,OAAO,EAAE,CAAA;QACX,CAAC;KAAA;IAEK,MAAM;;YACV,OAAO,IAAI,CAAA;QACb,CAAC;KAAA;IAED,EAAE;QACA,aAAa;QACb,OAAO,IAAW,CAAA;IACpB,CAAC;IAEK,iBAAiB;;YACrB,GAAG;gBACD,MAAM,IAAA,eAAO,EAAC,EAAE,CAAC,CAAA;aAClB,QAAQ,IAAI,CAAC,cAAc,EAAE,EAAC;QACjC,CAAC;KAAA;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAA;IACxC,CAAC;CACF;AAED,kBAAe,aAAa,CAAA"}
1
+ {"version":3,"file":"inMemoryQueue.js","sourceRoot":"","sources":["../../../src/queue/inMemoryQueue.ts"],"names":[],"mappings":"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"}
@@ -55,6 +55,7 @@ function cleanup() {
55
55
  return __awaiter(this, void 0, void 0, function* () {
56
56
  for (let queue of QUEUES) {
57
57
  yield queue.clean(CLEANUP_PERIOD_MS, "completed");
58
+ yield queue.clean(CLEANUP_PERIOD_MS, "failed");
58
59
  }
59
60
  });
60
61
  }
@@ -1 +1 @@
1
- {"version":3,"file":"queue.js","sourceRoot":"","sources":["../../../src/queue/queue.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iEAAgC;AAChC,0CAAgD;AAEhD,oEAA2C;AAC3C,gDAA0D;AAC1D,2CAAqD;AACrD,oCAAmC;AACnC,kDAAmC;AAInC,uCAAuC;AACvC,MAAM,aAAa,GAAG,gBAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;AACpD,2CAA2C;AAC3C,MAAM,4BAA4B,GAAG,gBAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;AACpE,qCAAqC;AACrC,MAAM,iBAAiB,GAAG,gBAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;AACzD,IAAI,MAAM,GAAwC,EAAE,CAAA;AACpD,IAAI,eAA+B,CAAA;AAEnC,SAAe,OAAO;;QACpB,KAAK,IAAI,KAAK,IAAI,MAAM,EAAE;YACxB,MAAM,KAAK,CAAC,KAAK,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAA;SAClD;IACH,CAAC;CAAA;AAED,SAAgB,WAAW,CACzB,QAAkB,EAClB,OAII,EAAE;IAEN,MAAM,SAAS,GAAG,IAAA,uBAAe,GAAE,CAAA;IACnC,MAAM,WAAW,GAAiB;QAChC,KAAK,EAAE,SAAS;QAChB,QAAQ,EAAE;YACR,eAAe,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YAChE,YAAY,EAAE,aAAa;YAC3B,aAAa,EAAE,4BAA4B;SAC5C;KACF,CAAA;IACD,IAAI,IAAI,CAAC,UAAU,EAAE;QACnB,WAAW,CAAC,iBAAiB,GAAG,IAAI,CAAC,UAAU,CAAA;KAChD;IACD,IAAI,KAAU,CAAA;IACd,IAAI,CAAC,qBAAG,CAAC,MAAM,EAAE,EAAE;QACjB,KAAK,GAAG,IAAI,cAAS,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAA;KAC7C;SAAM;QACL,KAAK,GAAG,IAAI,uBAAa,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAA;KACjD;IACD,IAAA,wBAAY,EAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,eAAe,CAAC,CAAA;IACpD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAClB,IAAI,CAAC,eAAe,IAAI,CAAC,qBAAG,CAAC,MAAM,EAAE,EAAE;QACrC,eAAe,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAA;QACxD,8BAA8B;QAC9B,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;YACpB,OAAO,CAAC,KAAK,CAAC,qBAAqB,QAAQ,gBAAgB,GAAG,EAAE,CAAC,CAAA;QACnE,CAAC,CAAC,CAAA;KACH;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AApCD,kCAoCC;AAED,SAAsB,QAAQ;;QAC5B,IAAI,eAAe,EAAE;YACnB,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CAAA;SAC9B;QACD,IAAI,MAAM,CAAC,MAAM,EAAE;YACjB,KAAK,IAAI,KAAK,IAAI,MAAM,EAAE;gBACxB,MAAM,KAAK,CAAC,KAAK,EAAE,CAAA;aACpB;YACD,MAAM,GAAG,EAAE,CAAA;SACZ;QACD,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;IAChC,CAAC;CAAA;AAXD,4BAWC"}
1
+ {"version":3,"file":"queue.js","sourceRoot":"","sources":["../../../src/queue/queue.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iEAAgC;AAChC,0CAAgD;AAEhD,oEAA2C;AAC3C,gDAA0D;AAC1D,2CAAqD;AACrD,oCAAmC;AACnC,kDAAmC;AAInC,uCAAuC;AACvC,MAAM,aAAa,GAAG,gBAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;AACpD,2CAA2C;AAC3C,MAAM,4BAA4B,GAAG,gBAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;AACpE,qCAAqC;AACrC,MAAM,iBAAiB,GAAG,gBAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;AACzD,IAAI,MAAM,GAAwC,EAAE,CAAA;AACpD,IAAI,eAA+B,CAAA;AAEnC,SAAe,OAAO;;QACpB,KAAK,IAAI,KAAK,IAAI,MAAM,EAAE;YACxB,MAAM,KAAK,CAAC,KAAK,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAA;YACjD,MAAM,KAAK,CAAC,KAAK,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAA;SAC/C;IACH,CAAC;CAAA;AAED,SAAgB,WAAW,CACzB,QAAkB,EAClB,OAII,EAAE;IAEN,MAAM,SAAS,GAAG,IAAA,uBAAe,GAAE,CAAA;IACnC,MAAM,WAAW,GAAiB;QAChC,KAAK,EAAE,SAAS;QAChB,QAAQ,EAAE;YACR,eAAe,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YAChE,YAAY,EAAE,aAAa;YAC3B,aAAa,EAAE,4BAA4B;SAC5C;KACF,CAAA;IACD,IAAI,IAAI,CAAC,UAAU,EAAE;QACnB,WAAW,CAAC,iBAAiB,GAAG,IAAI,CAAC,UAAU,CAAA;KAChD;IACD,IAAI,KAAU,CAAA;IACd,IAAI,CAAC,qBAAG,CAAC,MAAM,EAAE,EAAE;QACjB,KAAK,GAAG,IAAI,cAAS,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAA;KAC7C;SAAM;QACL,KAAK,GAAG,IAAI,uBAAa,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAA;KACjD;IACD,IAAA,wBAAY,EAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,eAAe,CAAC,CAAA;IACpD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAClB,IAAI,CAAC,eAAe,IAAI,CAAC,qBAAG,CAAC,MAAM,EAAE,EAAE;QACrC,eAAe,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAA;QACxD,8BAA8B;QAC9B,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;YACpB,OAAO,CAAC,KAAK,CAAC,qBAAqB,QAAQ,gBAAgB,GAAG,EAAE,CAAC,CAAA;QACnE,CAAC,CAAC,CAAA;KACH;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AApCD,kCAoCC;AAED,SAAsB,QAAQ;;QAC5B,IAAI,eAAe,EAAE;YACnB,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CAAA;SAC9B;QACD,IAAI,MAAM,CAAC,MAAM,EAAE;YACjB,KAAK,IAAI,KAAK,IAAI,MAAM,EAAE;gBACxB,MAAM,KAAK,CAAC,KAAK,EAAE,CAAA;aACpB;YACD,MAAM,GAAG,EAAE,CAAA;SACZ;QACD,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;IAChC,CAAC;CAAA;AAXD,4BAWC"}
@@ -1 +1,3 @@
1
+ import { TenantInfo } from "@budibase/types";
1
2
  export declare function getTenantDB(tenantId: string): import("@budibase/types").Database;
3
+ export declare function saveTenantInfo(tenantInfo: TenantInfo): Promise<import("@budibase/nano").DocumentInsertResponse>;
@@ -1,10 +1,27 @@
1
1
  "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
2
11
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getTenantDB = void 0;
12
+ exports.saveTenantInfo = exports.getTenantDB = void 0;
4
13
  const db_1 = require("../db/db");
5
14
  const context_1 = require("../context");
6
15
  function getTenantDB(tenantId) {
7
16
  return (0, db_1.getDB)((0, context_1.getGlobalDBName)(tenantId));
8
17
  }
9
18
  exports.getTenantDB = getTenantDB;
19
+ function saveTenantInfo(tenantInfo) {
20
+ return __awaiter(this, void 0, void 0, function* () {
21
+ const db = getTenantDB(tenantInfo.tenantId);
22
+ // save the tenant info to db
23
+ return yield db.put(Object.assign({ _id: "tenant_info" }, tenantInfo));
24
+ });
25
+ }
26
+ exports.saveTenantInfo = saveTenantInfo;
10
27
  //# sourceMappingURL=db.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"db.js","sourceRoot":"","sources":["../../../src/tenancy/db.ts"],"names":[],"mappings":";;;AAAA,iCAAgC;AAChC,wCAA4C;AAE5C,SAAgB,WAAW,CAAC,QAAgB;IAC1C,OAAO,IAAA,UAAK,EAAC,IAAA,yBAAe,EAAC,QAAQ,CAAC,CAAC,CAAA;AACzC,CAAC;AAFD,kCAEC"}
1
+ {"version":3,"file":"db.js","sourceRoot":"","sources":["../../../src/tenancy/db.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,iCAAgC;AAChC,wCAA4C;AAG5C,SAAgB,WAAW,CAAC,QAAgB;IAC1C,OAAO,IAAA,UAAK,EAAC,IAAA,yBAAe,EAAC,QAAQ,CAAC,CAAC,CAAA;AACzC,CAAC;AAFD,kCAEC;AAED,SAAsB,cAAc,CAAC,UAAsB;;QACzD,MAAM,EAAE,GAAG,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;QAC3C,6BAA6B;QAC7B,OAAO,MAAM,EAAE,CAAC,GAAG,iBACjB,GAAG,EAAE,aAAa,IACf,UAAU,EACb,CAAA;IACJ,CAAC;CAAA;AAPD,wCAOC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@budibase/backend-core",
3
- "version": "2.28.4",
3
+ "version": "2.28.6",
4
4
  "description": "Budibase backend core libraries used in server and worker",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/src/index.d.ts",
@@ -23,8 +23,8 @@
23
23
  "dependencies": {
24
24
  "@budibase/nano": "10.1.5",
25
25
  "@budibase/pouchdb-replication-stream": "1.2.10",
26
- "@budibase/shared-core": "2.28.4",
27
- "@budibase/types": "2.28.4",
26
+ "@budibase/shared-core": "2.28.6",
27
+ "@budibase/types": "2.28.6",
28
28
  "@govtechsg/passport-openidconnect": "^1.0.2",
29
29
  "aws-cloudfront-sign": "3.0.2",
30
30
  "aws-sdk": "2.1030.0",
@@ -96,5 +96,5 @@
96
96
  }
97
97
  }
98
98
  },
99
- "gitHead": "9b48f1ed3b00767916303b4885c0805bb751cee5"
99
+ "gitHead": "bc810319e03346048231738ec87f781e438e9554"
100
100
  }
@@ -8,6 +8,7 @@ import {
8
8
  DatabaseOpts,
9
9
  DatabasePutOpts,
10
10
  DatabaseQueryOpts,
11
+ DBError,
11
12
  Document,
12
13
  isDocument,
13
14
  RowResponse,
@@ -41,7 +42,7 @@ function buildNano(couchInfo: { url: string; cookie: string }) {
41
42
 
42
43
  type DBCall<T> = () => Promise<T>
43
44
 
44
- class CouchDBError extends Error {
45
+ class CouchDBError extends Error implements DBError {
45
46
  status: number
46
47
  statusCode: number
47
48
  reason: string
@@ -93,15 +93,21 @@ function isApps() {
93
93
  return environment.SERVICE_TYPE === ServiceType.APPS
94
94
  }
95
95
 
96
+ function isQA() {
97
+ return environment.BUDIBASE_ENVIRONMENT === "QA"
98
+ }
99
+
96
100
  const environment = {
97
101
  isTest,
98
102
  isJest,
99
103
  isDev,
100
104
  isWorker,
101
105
  isApps,
106
+ isQA,
102
107
  isProd: () => {
103
108
  return !isDev()
104
109
  },
110
+ BUDIBASE_ENVIRONMENT: process.env.BUDIBASE_ENVIRONMENT,
105
111
  JS_BCRYPT: process.env.JS_BCRYPT,
106
112
  JWT_SECRET: process.env.JWT_SECRET,
107
113
  JWT_SECRET_FALLBACK: process.env.JWT_SECRET_FALLBACK,
@@ -120,6 +126,7 @@ const environment = {
120
126
  REDIS_CLUSTERED: process.env.REDIS_CLUSTERED,
121
127
  MINIO_ACCESS_KEY: process.env.MINIO_ACCESS_KEY,
122
128
  MINIO_SECRET_KEY: process.env.MINIO_SECRET_KEY,
129
+ AWS_SESSION_TOKEN: process.env.AWS_SESSION_TOKEN,
123
130
  AWS_REGION: process.env.AWS_REGION,
124
131
  MINIO_URL: process.env.MINIO_URL,
125
132
  MINIO_ENABLED: process.env.MINIO_ENABLED || 1,
@@ -101,6 +101,11 @@ export function ObjectStore(
101
101
  }
102
102
  }
103
103
 
104
+ // for AWS Credentials using temporary session token
105
+ if (!env.MINIO_ENABLED && env.AWS_SESSION_TOKEN) {
106
+ config.sessionToken = env.AWS_SESSION_TOKEN
107
+ }
108
+
104
109
  // custom S3 is in use i.e. minio
105
110
  if (env.MINIO_URL) {
106
111
  if (opts.presigning && env.MINIO_ENABLED) {
@@ -63,12 +63,12 @@ class InMemoryQueue implements Partial<Queue> {
63
63
  * Same callback API as Bull, each callback passed to this will consume messages as they are
64
64
  * available. Please note this is a queue service, not a notification service, so each
65
65
  * consumer will receive different messages.
66
- * @param func The callback function which will return a "Job", the same
67
66
  * as the Bull API, within this job the property "data" contains the JSON message. Please
68
67
  * note this is incredibly limited compared to Bull as in reality the Job would contain
69
68
  * a lot more information about the queue and current status of Bull cluster.
70
69
  */
71
- async process(func: any) {
70
+ async process(concurrencyOrFunc: number | any, func?: any) {
71
+ func = typeof concurrencyOrFunc === "number" ? func : concurrencyOrFunc
72
72
  this._emitter.on("message", async () => {
73
73
  if (this._messages.length <= 0) {
74
74
  return
@@ -21,6 +21,7 @@ let cleanupInterval: NodeJS.Timeout
21
21
  async function cleanup() {
22
22
  for (let queue of QUEUES) {
23
23
  await queue.clean(CLEANUP_PERIOD_MS, "completed")
24
+ await queue.clean(CLEANUP_PERIOD_MS, "failed")
24
25
  }
25
26
  }
26
27
 
package/src/tenancy/db.ts CHANGED
@@ -1,6 +1,16 @@
1
1
  import { getDB } from "../db/db"
2
2
  import { getGlobalDBName } from "../context"
3
+ import { TenantInfo } from "@budibase/types"
3
4
 
4
5
  export function getTenantDB(tenantId: string) {
5
6
  return getDB(getGlobalDBName(tenantId))
6
7
  }
8
+
9
+ export async function saveTenantInfo(tenantInfo: TenantInfo) {
10
+ const db = getTenantDB(tenantInfo.tenantId)
11
+ // save the tenant info to db
12
+ return await db.put({
13
+ _id: "tenant_info",
14
+ ...tenantInfo,
15
+ })
16
+ }