@budibase/backend-core 2.7.20-alpha.0 → 2.7.20
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/dist/package.json +3 -3
- package/dist/src/middleware/passport/datasource/google.d.ts +3 -3
- package/dist/src/middleware/passport/datasource/google.js +25 -12
- package/dist/src/middleware/passport/datasource/google.js.map +1 -1
- package/dist/src/security/encryption.d.ts +0 -8
- package/dist/src/security/encryption.js +5 -107
- package/dist/src/security/encryption.js.map +1 -1
- package/dist/src/security/roles.d.ts +1 -4
- package/dist/src/security/roles.js +1 -5
- package/dist/src/security/roles.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +3 -3
- package/src/middleware/passport/datasource/google.ts +26 -20
- package/src/security/encryption.ts +4 -121
- package/src/security/roles.ts +1 -8
package/dist/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@budibase/backend-core",
|
|
3
|
-
"version": "2.7.20
|
|
3
|
+
"version": "2.7.20",
|
|
4
4
|
"description": "Budibase backend core libraries used in server and worker",
|
|
5
5
|
"main": "dist/src/index.js",
|
|
6
6
|
"types": "dist/src/index.d.ts",
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"dependencies": {
|
|
23
23
|
"@budibase/nano": "10.1.2",
|
|
24
24
|
"@budibase/pouchdb-replication-stream": "1.2.10",
|
|
25
|
-
"@budibase/types": "2.7.20
|
|
25
|
+
"@budibase/types": "2.7.20",
|
|
26
26
|
"@shopify/jest-koa-mocks": "5.0.1",
|
|
27
27
|
"@techpass/passport-openidconnect": "0.3.2",
|
|
28
28
|
"aws-cloudfront-sign": "2.2.0",
|
|
@@ -101,5 +101,5 @@
|
|
|
101
101
|
}
|
|
102
102
|
}
|
|
103
103
|
},
|
|
104
|
-
"gitHead": "
|
|
104
|
+
"gitHead": "d8b642d24f562d384c2fc760afda97d20b3478ff"
|
|
105
105
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { BBContext } from "@budibase/types";
|
|
2
2
|
declare type Passport = {
|
|
3
3
|
authenticate: any;
|
|
4
4
|
};
|
|
5
|
-
export declare function preAuth(passport: Passport, ctx:
|
|
6
|
-
export declare function postAuth(passport: Passport, ctx:
|
|
5
|
+
export declare function preAuth(passport: Passport, ctx: BBContext, next: Function): Promise<any>;
|
|
6
|
+
export declare function postAuth(passport: Passport, ctx: BBContext, next: Function): Promise<any>;
|
|
7
7
|
export {};
|
|
@@ -35,9 +35,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
35
35
|
exports.postAuth = exports.preAuth = void 0;
|
|
36
36
|
const google = __importStar(require("../sso/google"));
|
|
37
37
|
const constants_1 = require("../../../constants");
|
|
38
|
+
const utils_1 = require("../../../utils");
|
|
39
|
+
const db_1 = require("../../../db");
|
|
38
40
|
const configs = __importStar(require("../../../configs"));
|
|
39
|
-
const cache = __importStar(require("../../../cache"));
|
|
40
|
-
const utils = __importStar(require("../../../utils"));
|
|
41
41
|
const sso_1 = require("../sso/sso");
|
|
42
42
|
const GoogleStrategy = require("passport-google-oauth").OAuth2Strategy;
|
|
43
43
|
function fetchGoogleCreds() {
|
|
@@ -56,8 +56,8 @@ function preAuth(passport, ctx, next) {
|
|
|
56
56
|
const platformUrl = yield configs.getPlatformUrl({ tenantAware: false });
|
|
57
57
|
let callbackUrl = `${platformUrl}/api/global/auth/datasource/google/callback`;
|
|
58
58
|
const strategy = yield google.strategyFactory(googleConfig, callbackUrl, sso_1.ssoSaveUserNoOp);
|
|
59
|
-
if (!ctx.query.appId) {
|
|
60
|
-
ctx.throw(400, "appId query
|
|
59
|
+
if (!ctx.query.appId || !ctx.query.datasourceId) {
|
|
60
|
+
ctx.throw(400, "appId and datasourceId query params not present.");
|
|
61
61
|
}
|
|
62
62
|
return passport.authenticate(strategy, {
|
|
63
63
|
scope: ["profile", "email", "https://www.googleapis.com/auth/spreadsheets"],
|
|
@@ -73,21 +73,34 @@ function postAuth(passport, ctx, next) {
|
|
|
73
73
|
const config = yield fetchGoogleCreds();
|
|
74
74
|
const platformUrl = yield configs.getPlatformUrl({ tenantAware: false });
|
|
75
75
|
let callbackUrl = `${platformUrl}/api/global/auth/datasource/google/callback`;
|
|
76
|
-
const authStateCookie =
|
|
76
|
+
const authStateCookie = (0, utils_1.getCookie)(ctx, constants_1.Cookie.DatasourceAuth);
|
|
77
77
|
return passport.authenticate(new GoogleStrategy({
|
|
78
78
|
clientID: config.clientID,
|
|
79
79
|
clientSecret: config.clientSecret,
|
|
80
80
|
callbackURL: callbackUrl,
|
|
81
|
-
}, (accessToken, refreshToken,
|
|
82
|
-
|
|
81
|
+
}, (accessToken, refreshToken, profile, done) => {
|
|
82
|
+
(0, utils_1.clearCookie)(ctx, constants_1.Cookie.DatasourceAuth);
|
|
83
83
|
done(null, { accessToken, refreshToken });
|
|
84
84
|
}), { successRedirect: "/", failureRedirect: "/error" }, (err, tokens) => __awaiter(this, void 0, void 0, function* () {
|
|
85
85
|
const baseUrl = `/builder/app/${authStateCookie.appId}/data`;
|
|
86
|
-
|
|
87
|
-
yield
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
86
|
+
// update the DB for the datasource with all the user info
|
|
87
|
+
yield (0, db_1.doWithDB)(authStateCookie.appId, (db) => __awaiter(this, void 0, void 0, function* () {
|
|
88
|
+
let datasource;
|
|
89
|
+
try {
|
|
90
|
+
datasource = yield db.get(authStateCookie.datasourceId);
|
|
91
|
+
}
|
|
92
|
+
catch (err) {
|
|
93
|
+
if (err.status === 404) {
|
|
94
|
+
ctx.redirect(baseUrl);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
if (!datasource.config) {
|
|
98
|
+
datasource.config = {};
|
|
99
|
+
}
|
|
100
|
+
datasource.config.auth = Object.assign({ type: "google" }, tokens);
|
|
101
|
+
yield db.put(datasource);
|
|
102
|
+
ctx.redirect(`${baseUrl}/datasource/${authStateCookie.datasourceId}`);
|
|
103
|
+
}));
|
|
91
104
|
}))(ctx, next);
|
|
92
105
|
});
|
|
93
106
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"google.js","sourceRoot":"","sources":["../../../../../src/middleware/passport/datasource/google.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sDAAuC;AACvC,kDAA2C;AAC3C,
|
|
1
|
+
{"version":3,"file":"google.js","sourceRoot":"","sources":["../../../../../src/middleware/passport/datasource/google.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,11 +5,3 @@ export declare enum SecretOption {
|
|
|
5
5
|
export declare function getSecret(secretOption: SecretOption): string;
|
|
6
6
|
export declare function encrypt(input: string, secretOption?: SecretOption): string;
|
|
7
7
|
export declare function decrypt(input: string, secretOption?: SecretOption): string;
|
|
8
|
-
export declare function encryptFile({ dir, filename }: {
|
|
9
|
-
dir: string;
|
|
10
|
-
filename: string;
|
|
11
|
-
}, secret: string): Promise<{
|
|
12
|
-
filename: string;
|
|
13
|
-
dir: string;
|
|
14
|
-
}>;
|
|
15
|
-
export declare function decryptFile(inputPath: string, outputPath: string, secret: string): Promise<void>;
|
|
@@ -1,29 +1,16 @@
|
|
|
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
|
-
};
|
|
11
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
4
|
};
|
|
14
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.
|
|
6
|
+
exports.decrypt = exports.encrypt = exports.getSecret = exports.SecretOption = void 0;
|
|
16
7
|
const crypto_1 = __importDefault(require("crypto"));
|
|
17
|
-
const fs_1 = __importDefault(require("fs"));
|
|
18
|
-
const zlib_1 = __importDefault(require("zlib"));
|
|
19
8
|
const environment_1 = __importDefault(require("../environment"));
|
|
20
|
-
const path_1 = require("path");
|
|
21
9
|
const ALGO = "aes-256-ctr";
|
|
22
10
|
const SEPARATOR = "-";
|
|
23
11
|
const ITERATIONS = 10000;
|
|
12
|
+
const RANDOM_BYTES = 16;
|
|
24
13
|
const STRETCH_LENGTH = 32;
|
|
25
|
-
const SALT_LENGTH = 16;
|
|
26
|
-
const IV_LENGTH = 16;
|
|
27
14
|
var SecretOption;
|
|
28
15
|
(function (SecretOption) {
|
|
29
16
|
SecretOption["API"] = "api";
|
|
@@ -48,11 +35,11 @@ function getSecret(secretOption) {
|
|
|
48
35
|
return secret;
|
|
49
36
|
}
|
|
50
37
|
exports.getSecret = getSecret;
|
|
51
|
-
function stretchString(
|
|
52
|
-
return crypto_1.default.pbkdf2Sync(
|
|
38
|
+
function stretchString(string, salt) {
|
|
39
|
+
return crypto_1.default.pbkdf2Sync(string, salt, ITERATIONS, STRETCH_LENGTH, "sha512");
|
|
53
40
|
}
|
|
54
41
|
function encrypt(input, secretOption = SecretOption.API) {
|
|
55
|
-
const salt = crypto_1.default.randomBytes(
|
|
42
|
+
const salt = crypto_1.default.randomBytes(RANDOM_BYTES);
|
|
56
43
|
const stretched = stretchString(getSecret(secretOption), salt);
|
|
57
44
|
const cipher = crypto_1.default.createCipheriv(ALGO, stretched, salt);
|
|
58
45
|
const base = cipher.update(input);
|
|
@@ -71,93 +58,4 @@ function decrypt(input, secretOption = SecretOption.API) {
|
|
|
71
58
|
return Buffer.concat([base, final]).toString();
|
|
72
59
|
}
|
|
73
60
|
exports.decrypt = decrypt;
|
|
74
|
-
function encryptFile({ dir, filename }, secret) {
|
|
75
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
76
|
-
const outputFileName = `${filename}.enc`;
|
|
77
|
-
const filePath = (0, path_1.join)(dir, filename);
|
|
78
|
-
const inputFile = fs_1.default.createReadStream(filePath);
|
|
79
|
-
const outputFile = fs_1.default.createWriteStream((0, path_1.join)(dir, outputFileName));
|
|
80
|
-
const salt = crypto_1.default.randomBytes(SALT_LENGTH);
|
|
81
|
-
const iv = crypto_1.default.randomBytes(IV_LENGTH);
|
|
82
|
-
const stretched = stretchString(secret, salt);
|
|
83
|
-
const cipher = crypto_1.default.createCipheriv(ALGO, stretched, iv);
|
|
84
|
-
outputFile.write(salt);
|
|
85
|
-
outputFile.write(iv);
|
|
86
|
-
inputFile.pipe(zlib_1.default.createGzip()).pipe(cipher).pipe(outputFile);
|
|
87
|
-
return new Promise(r => {
|
|
88
|
-
outputFile.on("finish", () => {
|
|
89
|
-
r({
|
|
90
|
-
filename: outputFileName,
|
|
91
|
-
dir,
|
|
92
|
-
});
|
|
93
|
-
});
|
|
94
|
-
});
|
|
95
|
-
});
|
|
96
|
-
}
|
|
97
|
-
exports.encryptFile = encryptFile;
|
|
98
|
-
function getSaltAndIV(path) {
|
|
99
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
100
|
-
const fileStream = fs_1.default.createReadStream(path);
|
|
101
|
-
const salt = yield readBytes(fileStream, SALT_LENGTH);
|
|
102
|
-
const iv = yield readBytes(fileStream, IV_LENGTH);
|
|
103
|
-
fileStream.close();
|
|
104
|
-
return { salt, iv };
|
|
105
|
-
});
|
|
106
|
-
}
|
|
107
|
-
function decryptFile(inputPath, outputPath, secret) {
|
|
108
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
109
|
-
const { salt, iv } = yield getSaltAndIV(inputPath);
|
|
110
|
-
const inputFile = fs_1.default.createReadStream(inputPath, {
|
|
111
|
-
start: SALT_LENGTH + IV_LENGTH,
|
|
112
|
-
});
|
|
113
|
-
const outputFile = fs_1.default.createWriteStream(outputPath);
|
|
114
|
-
const stretched = stretchString(secret, salt);
|
|
115
|
-
const decipher = crypto_1.default.createDecipheriv(ALGO, stretched, iv);
|
|
116
|
-
const unzip = zlib_1.default.createGunzip();
|
|
117
|
-
inputFile.pipe(decipher).pipe(unzip).pipe(outputFile);
|
|
118
|
-
return new Promise((res, rej) => {
|
|
119
|
-
outputFile.on("finish", () => {
|
|
120
|
-
outputFile.close();
|
|
121
|
-
res();
|
|
122
|
-
});
|
|
123
|
-
inputFile.on("error", e => {
|
|
124
|
-
outputFile.close();
|
|
125
|
-
rej(e);
|
|
126
|
-
});
|
|
127
|
-
decipher.on("error", e => {
|
|
128
|
-
outputFile.close();
|
|
129
|
-
rej(e);
|
|
130
|
-
});
|
|
131
|
-
unzip.on("error", e => {
|
|
132
|
-
outputFile.close();
|
|
133
|
-
rej(e);
|
|
134
|
-
});
|
|
135
|
-
outputFile.on("error", e => {
|
|
136
|
-
outputFile.close();
|
|
137
|
-
rej(e);
|
|
138
|
-
});
|
|
139
|
-
});
|
|
140
|
-
});
|
|
141
|
-
}
|
|
142
|
-
exports.decryptFile = decryptFile;
|
|
143
|
-
function readBytes(stream, length) {
|
|
144
|
-
return new Promise((resolve, reject) => {
|
|
145
|
-
let bytesRead = 0;
|
|
146
|
-
const data = [];
|
|
147
|
-
stream.on("readable", () => {
|
|
148
|
-
let chunk;
|
|
149
|
-
while ((chunk = stream.read(length - bytesRead)) !== null) {
|
|
150
|
-
data.push(chunk);
|
|
151
|
-
bytesRead += chunk.length;
|
|
152
|
-
}
|
|
153
|
-
resolve(Buffer.concat(data));
|
|
154
|
-
});
|
|
155
|
-
stream.on("end", () => {
|
|
156
|
-
reject(new Error("Insufficient data in the stream."));
|
|
157
|
-
});
|
|
158
|
-
stream.on("error", error => {
|
|
159
|
-
reject(error);
|
|
160
|
-
});
|
|
161
|
-
});
|
|
162
|
-
}
|
|
163
61
|
//# sourceMappingURL=encryption.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"encryption.js","sourceRoot":"","sources":["../../../src/security/encryption.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"encryption.js","sourceRoot":"","sources":["../../../src/security/encryption.ts"],"names":[],"mappings":"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"}
|
|
@@ -37,12 +37,9 @@ export declare function lowerBuiltinRoleID(roleId1?: string, roleId2?: string):
|
|
|
37
37
|
* Gets the role object, this is mainly useful for two purposes, to check if the level exists and
|
|
38
38
|
* to check if the role inherits any others.
|
|
39
39
|
* @param {string|null} roleId The level ID to lookup.
|
|
40
|
-
* @param {object|null} opts options for the function, like whether to halt errors, instead return public.
|
|
41
40
|
* @returns {Promise<Role|object|null>} The role object, which may contain an "inherits" property.
|
|
42
41
|
*/
|
|
43
|
-
export declare function getRole(roleId?: string
|
|
44
|
-
defaultPublic?: boolean;
|
|
45
|
-
}): Promise<RoleDoc | undefined>;
|
|
42
|
+
export declare function getRole(roleId?: string): Promise<RoleDoc | undefined>;
|
|
46
43
|
/**
|
|
47
44
|
* Returns an ordered array of the user's inherited role IDs, this can be used
|
|
48
45
|
* to determine if a user can access something that requires a specific role.
|
|
@@ -119,10 +119,9 @@ exports.lowerBuiltinRoleID = lowerBuiltinRoleID;
|
|
|
119
119
|
* Gets the role object, this is mainly useful for two purposes, to check if the level exists and
|
|
120
120
|
* to check if the role inherits any others.
|
|
121
121
|
* @param {string|null} roleId The level ID to lookup.
|
|
122
|
-
* @param {object|null} opts options for the function, like whether to halt errors, instead return public.
|
|
123
122
|
* @returns {Promise<Role|object|null>} The role object, which may contain an "inherits" property.
|
|
124
123
|
*/
|
|
125
|
-
function getRole(roleId
|
|
124
|
+
function getRole(roleId) {
|
|
126
125
|
return __awaiter(this, void 0, void 0, function* () {
|
|
127
126
|
if (!roleId) {
|
|
128
127
|
return undefined;
|
|
@@ -141,9 +140,6 @@ function getRole(roleId, opts) {
|
|
|
141
140
|
role._id = getExternalRoleID(role._id);
|
|
142
141
|
}
|
|
143
142
|
catch (err) {
|
|
144
|
-
if (!isBuiltin(roleId) && (opts === null || opts === void 0 ? void 0 : opts.defaultPublic)) {
|
|
145
|
-
return cloneDeep(BUILTIN_ROLES.PUBLIC);
|
|
146
|
-
}
|
|
147
143
|
// only throw an error if there is no role at all
|
|
148
144
|
if (Object.keys(role).length === 0) {
|
|
149
145
|
throw err;
|
|
@@ -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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"}
|