@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
 
@@ -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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"}
@@ -1,11 +1,20 @@
1
+ import { SqlInterfaceInstance } from '@cubejs-backend/native';
1
2
  import type { ApiGateway } from './gateway';
2
- export interface SQLServerOptions {
3
- sqlPort: number;
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":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE5C,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,SAAS;IAElB,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU;gBAAtB,UAAU,EAAE,UAAU;IAO9B,IAAI,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAuD9C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAGpC"}
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"}
@@ -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
- return native_1.registerInterface({
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
- checkAuth: async (payload) => {
15
- try {
16
- await this.apiGateway.checkAuthFn({}, payload.authorization);
17
- return true;
18
- }
19
- catch (e) {
20
- return false;
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 (payload) => {
24
- const authContext = await this.apiGateway.checkAuthFn({}, payload.authorization);
25
- const requestId = `${uuid_1.v4()}-span-1`;
26
- const context = await this.apiGateway.contextByReq({}, authContext, requestId);
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 (payload) => {
43
- const authContext = await this.apiGateway.checkAuthFn({}, payload.authorization);
44
- const requestId = payload.request_id || `${uuid_1.v4()}-span-1`;
45
- const context = await this.apiGateway.contextByReq({}, authContext, requestId);
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: payload.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":";;;AAAA,+BAAoC;AAEpC,mDAAwE;AAOxE,MAAa,SAAS;IACpB,YACqB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;QAEzC,oBAAW,CACT,OAAO,CAAC,GAAG,CAAC,gBAAgB,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAC5D,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,OAAyB;QACzC,OAAO,0BAAiB,CAAC;YACvB,IAAI,EAAE,OAAO,CAAC,OAAO;YACrB,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;gBAC3B,IAAI;oBACF,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;oBAE7D,OAAO,IAAI,CAAC;iBACb;gBAAC,OAAO,CAAC,EAAE;oBACV,OAAO,KAAK,CAAC;iBACd;YACH,CAAC;YACD,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;gBACtB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;gBACjF,MAAM,SAAS,GAAG,GAAG,SAAM,EAAE,SAAS,CAAC;gBACvC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,YAAY,CAAO,EAAE,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;gBAErF,qDAAqD;gBACrD,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;oBAC3C,IAAI;wBACF,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;4BACzB,OAAO;4BACP,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE;gCACf,OAAO,CAAC,OAAO,CAAC,CAAC;4BACnB,CAAC;yBACF,CAAC,CAAC;qBACJ;oBAAC,OAAO,CAAC,EAAE;wBACV,MAAM,CAAC,CAAC,CAAC,CAAC;qBACX;gBACH,CAAC,CAAC,CAAC;YACL,CAAC;YACD,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;gBACtB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;gBACjF,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,IAAI,GAAG,SAAM,EAAE,SAAS,CAAC;gBAC7D,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,YAAY,CAAO,EAAE,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;gBAErF,qDAAqD;gBACrD,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;oBAC3C,IAAI;wBACF,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;4BACzB,KAAK,EAAE,OAAO,CAAC,KAAK;4BACpB,SAAS,EAAE,OAAO;4BAClB,OAAO;4BACP,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE;gCACf,OAAO,CAAC,OAAO,CAAC,CAAC;4BACnB,CAAC;yBACF,CAAC,CAAC;qBACJ;oBAAC,OAAO,CAAC,EAAE;wBACV,MAAM,CAAC,CAAC,CAAC,CAAC;qBACX;gBACH,CAAC,CAAC,CAAC;YACL,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,KAAK;QAChB,kBAAkB;IACpB,CAAC;CACF;AAnED,8BAmEC"}
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.53",
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.53",
31
- "@cubejs-backend/shared": "^0.28.52",
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": "6ac6b5b1b8dfaa9b15888cb0dd2183cdd2bc3123"
78
+ "gitHead": "c410184e1046a2eec828b7498f95cb2122d8a3da"
77
79
  }