@cubejs-backend/api-gateway 0.28.53 → 0.28.55
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/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,17 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [0.28.55](https://github.com/cube-js/cube.js/compare/v0.28.54...v0.28.55) (2021-11-12)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* Introduce checkSqlAuth (auth hook for SQL API) ([3191b73](https://github.com/cube-js/cube.js/commit/3191b73816cd63d242349041c54a7037e9027c1a))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
6
17
|
## [0.28.53](https://github.com/cube-js/cube.js/compare/v0.28.52...v0.28.53) (2021-11-04)
|
|
7
18
|
|
|
8
19
|
|
package/dist/src/interfaces.d.ts
CHANGED
|
@@ -60,5 +60,10 @@ export declare type CheckAuthMiddlewareFn = (req: Request, res: ExpressResponse,
|
|
|
60
60
|
export declare type SecurityContextExtractorFn = (ctx: Readonly<RequestContext>) => any;
|
|
61
61
|
export declare type RequestLoggerMiddlewareFn = (req: ExpressRequest, res: ExpressResponse, next: ExpressNextFunction) => void;
|
|
62
62
|
export declare type CheckAuthFn = (ctx: any, authorization?: string) => Promise<void> | void;
|
|
63
|
+
export declare type CheckSQLAuthSuccessResponse = {
|
|
64
|
+
password: string | null;
|
|
65
|
+
securityContext?: any;
|
|
66
|
+
};
|
|
67
|
+
export declare type CheckSQLAuthFn = (ctx: any, user: string | null) => Promise<CheckSQLAuthSuccessResponse> | CheckSQLAuthSuccessResponse;
|
|
63
68
|
export declare type ExtendContextFn = (req: ExpressRequest) => Promise<RequestExtension> | RequestExtension;
|
|
64
69
|
//# sourceMappingURL=interfaces.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":"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"}
|
package/dist/src/sql-server.d.ts
CHANGED
|
@@ -1,11 +1,20 @@
|
|
|
1
|
+
import { SqlInterfaceInstance } from '@cubejs-backend/native';
|
|
1
2
|
import type { ApiGateway } from './gateway';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
import type { CheckSQLAuthFn } from './interfaces';
|
|
4
|
+
export declare type SQLServerOptions = {
|
|
5
|
+
checkSqlAuth?: CheckSQLAuthFn;
|
|
6
|
+
sqlPort?: number;
|
|
7
|
+
sqlNonce?: string;
|
|
8
|
+
sqlUser?: string;
|
|
9
|
+
sqlPassword?: string;
|
|
10
|
+
};
|
|
5
11
|
export declare class SQLServer {
|
|
6
12
|
protected readonly apiGateway: ApiGateway;
|
|
13
|
+
protected sqlInterfaceInstance: SqlInterfaceInstance | null;
|
|
7
14
|
constructor(apiGateway: ApiGateway);
|
|
8
15
|
init(options: SQLServerOptions): Promise<void>;
|
|
16
|
+
protected wrapCheckSqlAuthFn(checkSqlAuth: CheckSQLAuthFn): CheckSQLAuthFn;
|
|
17
|
+
protected createDefaultCheckSqlAuthFn(options: SQLServerOptions): CheckSQLAuthFn;
|
|
9
18
|
close(): Promise<void>;
|
|
10
19
|
}
|
|
11
20
|
//# sourceMappingURL=sql-server.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sql-server.d.ts","sourceRoot":"","sources":["../../src/sql-server.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sql-server.d.ts","sourceRoot":"","sources":["../../src/sql-server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkC,oBAAoB,EAAuB,MAAM,wBAAwB,CAAC;AAInH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnD,oBAAY,gBAAgB,GAAG;IAC7B,YAAY,CAAC,EAAE,cAAc,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,qBAAa,SAAS;IAIlB,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU;IAH3C,SAAS,CAAC,oBAAoB,EAAE,oBAAoB,GAAG,IAAI,CAAQ;gBAG9C,UAAU,EAAE,UAAU;IAO9B,IAAI,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IA8D3D,SAAS,CAAC,kBAAkB,CAAC,YAAY,EAAE,cAAc,GAAG,cAAc;IAe1E,SAAS,CAAC,2BAA2B,CAAC,OAAO,EAAE,gBAAgB,GAAG,cAAc;IAkCnE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAGpC"}
|
package/dist/src/sql-server.js
CHANGED
|
@@ -1,29 +1,54 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
+
}) : function(o, v) {
|
|
12
|
+
o["default"] = v;
|
|
13
|
+
});
|
|
14
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
+
if (mod && mod.__esModule) return mod;
|
|
16
|
+
var result = {};
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
+
__setModuleDefault(result, mod);
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
2
21
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
22
|
exports.SQLServer = void 0;
|
|
4
|
-
const uuid_1 = require("uuid");
|
|
5
23
|
const native_1 = require("@cubejs-backend/native");
|
|
24
|
+
const shared_1 = require("@cubejs-backend/shared");
|
|
25
|
+
const crypto = __importStar(require("crypto"));
|
|
6
26
|
class SQLServer {
|
|
7
27
|
constructor(apiGateway) {
|
|
8
28
|
this.apiGateway = apiGateway;
|
|
29
|
+
this.sqlInterfaceInstance = null;
|
|
9
30
|
native_1.setLogLevel(process.env.CUBEJS_LOG_LEVEL === 'trace' ? 'trace' : 'warn');
|
|
10
31
|
}
|
|
11
32
|
async init(options) {
|
|
12
|
-
|
|
33
|
+
if (this.sqlInterfaceInstance) {
|
|
34
|
+
throw new Error('Unable to start SQL interface two times');
|
|
35
|
+
}
|
|
36
|
+
const checkSqlAuth = (options.checkSqlAuth && this.wrapCheckSqlAuthFn(options.checkSqlAuth))
|
|
37
|
+
|| this.createDefaultCheckSqlAuthFn(options);
|
|
38
|
+
this.sqlInterfaceInstance = await native_1.registerInterface({
|
|
13
39
|
port: options.sqlPort,
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
}
|
|
40
|
+
nonce: options.sqlNonce,
|
|
41
|
+
checkAuth: async ({ request, user }) => {
|
|
42
|
+
const { password } = await checkSqlAuth(request, user);
|
|
43
|
+
// Strip securityContext to improve speed deserialization
|
|
44
|
+
return {
|
|
45
|
+
password
|
|
46
|
+
};
|
|
22
47
|
},
|
|
23
|
-
meta: async (
|
|
24
|
-
|
|
25
|
-
const
|
|
26
|
-
const context = await this.apiGateway.contextByReq(
|
|
48
|
+
meta: async ({ request, user }) => {
|
|
49
|
+
// @todo Store security context in native
|
|
50
|
+
const { securityContext } = await checkSqlAuth(request, user);
|
|
51
|
+
const context = await this.apiGateway.contextByReq(request, securityContext, request.id);
|
|
27
52
|
// eslint-disable-next-line no-async-promise-executor
|
|
28
53
|
return new Promise(async (resolve, reject) => {
|
|
29
54
|
try {
|
|
@@ -39,15 +64,15 @@ class SQLServer {
|
|
|
39
64
|
}
|
|
40
65
|
});
|
|
41
66
|
},
|
|
42
|
-
load: async (
|
|
43
|
-
|
|
44
|
-
const
|
|
45
|
-
const context = await this.apiGateway.contextByReq(
|
|
67
|
+
load: async ({ request, user, query }) => {
|
|
68
|
+
// @todo Store security context in native
|
|
69
|
+
const { securityContext } = await checkSqlAuth(request, user);
|
|
70
|
+
const context = await this.apiGateway.contextByReq(request, securityContext, request.id);
|
|
46
71
|
// eslint-disable-next-line no-async-promise-executor
|
|
47
72
|
return new Promise(async (resolve, reject) => {
|
|
48
73
|
try {
|
|
49
74
|
await this.apiGateway.load({
|
|
50
|
-
query
|
|
75
|
+
query,
|
|
51
76
|
queryType: 'multi',
|
|
52
77
|
context,
|
|
53
78
|
res: (message) => {
|
|
@@ -62,6 +87,41 @@ class SQLServer {
|
|
|
62
87
|
},
|
|
63
88
|
});
|
|
64
89
|
}
|
|
90
|
+
wrapCheckSqlAuthFn(checkSqlAuth) {
|
|
91
|
+
return async (req, user) => {
|
|
92
|
+
const response = await checkSqlAuth(req, user);
|
|
93
|
+
if (typeof response !== 'object' || response.password === null) {
|
|
94
|
+
throw new Error('checkSqlAuth must return an object');
|
|
95
|
+
}
|
|
96
|
+
if (!response.password) {
|
|
97
|
+
throw new Error('checkSqlAuth must return an object with password field');
|
|
98
|
+
}
|
|
99
|
+
return response;
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
createDefaultCheckSqlAuthFn(options) {
|
|
103
|
+
let allowedUser = options.sqlUser || shared_1.getEnv('sqlUser');
|
|
104
|
+
let allowedPassword = options.sqlPassword || shared_1.getEnv('sqlPassword');
|
|
105
|
+
if (!shared_1.getEnv('devMode')) {
|
|
106
|
+
if (!allowedUser) {
|
|
107
|
+
allowedUser = 'cube';
|
|
108
|
+
shared_1.displayCLIWarning('Option sqlUser is required in production mode. Cube.js will use \'cube\' as a default username.');
|
|
109
|
+
}
|
|
110
|
+
if (!allowedPassword) {
|
|
111
|
+
allowedPassword = crypto.randomBytes(16).toString('hex');
|
|
112
|
+
shared_1.displayCLIWarning(`Option sqlPassword is required in production mode. Cube.js has generated it as '${allowedPassword}'`);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
return async (req, user) => {
|
|
116
|
+
if (allowedUser && user !== allowedUser) {
|
|
117
|
+
throw new Error('Incorrect user name or password');
|
|
118
|
+
}
|
|
119
|
+
return {
|
|
120
|
+
password: allowedPassword,
|
|
121
|
+
securityContext: {}
|
|
122
|
+
};
|
|
123
|
+
};
|
|
124
|
+
}
|
|
65
125
|
async close() {
|
|
66
126
|
// @todo Implement
|
|
67
127
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sql-server.js","sourceRoot":"","sources":["../../src/sql-server.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sql-server.js","sourceRoot":"","sources":["../../src/sql-server.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@cubejs-backend/api-gateway",
|
|
3
3
|
"description": "Cube.js API Gateway",
|
|
4
4
|
"author": "Cube Dev, Inc.",
|
|
5
|
-
"version": "0.28.
|
|
5
|
+
"version": "0.28.55",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
8
8
|
"url": "https://github.com/cube-js/cube.js.git",
|
|
@@ -27,8 +27,8 @@
|
|
|
27
27
|
"dist/src/*"
|
|
28
28
|
],
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@cubejs-backend/native": "^0.28.
|
|
31
|
-
"@cubejs-backend/shared": "^0.28.
|
|
30
|
+
"@cubejs-backend/native": "^0.28.55",
|
|
31
|
+
"@cubejs-backend/shared": "^0.28.55",
|
|
32
32
|
"@hapi/joi": "^15.1.1",
|
|
33
33
|
"body-parser": "^1.19.0",
|
|
34
34
|
"chrono-node": "^2.2.6",
|
|
@@ -47,12 +47,14 @@
|
|
|
47
47
|
"@types/jest": "^26.0.20",
|
|
48
48
|
"@types/jsonwebtoken": "^8.5.0",
|
|
49
49
|
"@types/jwk-to-pem": "^2.0.0",
|
|
50
|
+
"@types/mysql": "^2.15.19",
|
|
50
51
|
"@types/node-fetch": "^2.5.8",
|
|
51
52
|
"@types/ramda": "^0.27.32",
|
|
52
53
|
"@types/supertest": "^2.0.10",
|
|
53
54
|
"@types/uuid": "^8.3.1",
|
|
54
55
|
"express": "^4.17.1",
|
|
55
56
|
"jest": "^26.6.3",
|
|
57
|
+
"mysql": "^2.18.1",
|
|
56
58
|
"should": "^13.2.3",
|
|
57
59
|
"supertest": "^4.0.2",
|
|
58
60
|
"typescript": "~4.1.5"
|
|
@@ -73,5 +75,5 @@
|
|
|
73
75
|
".*\\.d\\.ts"
|
|
74
76
|
]
|
|
75
77
|
},
|
|
76
|
-
"gitHead": "
|
|
78
|
+
"gitHead": "c410184e1046a2eec828b7498f95cb2122d8a3da"
|
|
77
79
|
}
|