@meru2802/aux-server 1.0.5 → 1.0.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.
- package/dist/controllers/apiController.d.ts +1 -0
- package/dist/controllers/apiController.d.ts.map +1 -1
- package/dist/controllers/apiController.js +61 -0
- package/dist/controllers/healthController.js +1 -1
- package/dist/middleware/authMiddleware.d.ts.map +1 -1
- package/dist/middleware/authMiddleware.js +0 -1
- package/dist/routes/apiRoutes.d.ts.map +1 -1
- package/dist/routes/apiRoutes.js +1 -0
- package/dist/types/index.d.ts +13 -0
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -3,6 +3,7 @@ import { BaseController } from "./BaseController";
|
|
|
3
3
|
import { IServiceContainer } from "../services/ServiceContainer";
|
|
4
4
|
export declare class ApiController extends BaseController {
|
|
5
5
|
constructor(serviceContainer?: IServiceContainer);
|
|
6
|
+
getEPMApiKey: (req: Request, res: Response) => Promise<void>;
|
|
6
7
|
getConnectUrls: (req: Request, res: Response) => Promise<void>;
|
|
7
8
|
}
|
|
8
9
|
//# sourceMappingURL=apiController.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apiController.d.ts","sourceRoot":"","sources":["../../src/controllers/apiController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAE5C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"apiController.d.ts","sourceRoot":"","sources":["../../src/controllers/apiController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAE5C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAKjE,qBAAa,aAAc,SAAQ,cAAc;gBACnC,gBAAgB,CAAC,EAAE,iBAAiB;IAIzC,YAAY,GAAU,KAAK,OAAO,EAAE,KAAK,QAAQ,KAAG,OAAO,CAAC,IAAI,CAAC,CAyEtE;IAEK,cAAc,GACnB,KAAK,OAAO,EACZ,KAAK,QAAQ,KACZ,OAAO,CAAC,IAAI,CAAC,CAiEd;CACH"}
|
|
@@ -1,11 +1,72 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.ApiController = void 0;
|
|
4
7
|
const BaseController_1 = require("./BaseController");
|
|
5
8
|
const utils_1 = require("../lib/utils");
|
|
9
|
+
const axios_1 = __importDefault(require("axios"));
|
|
6
10
|
class ApiController extends BaseController_1.BaseController {
|
|
7
11
|
constructor(serviceContainer) {
|
|
8
12
|
super(serviceContainer);
|
|
13
|
+
this.getEPMApiKey = async (req, res) => {
|
|
14
|
+
var _a, _b;
|
|
15
|
+
try {
|
|
16
|
+
const userId = req.body.userId;
|
|
17
|
+
if (!userId) {
|
|
18
|
+
const errorResponse = {
|
|
19
|
+
error: "'userId' are missing in body params",
|
|
20
|
+
timestamp: new Date().toISOString(),
|
|
21
|
+
};
|
|
22
|
+
res.status(400).json(errorResponse);
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
const nexus_epm_user_id_query = "SELECT id FROM accounts_user WHERE username= $1";
|
|
26
|
+
const nexus_epm_user_id = await this.dbPool.query(nexus_epm_user_id_query, [userId]);
|
|
27
|
+
if (nexus_epm_user_id.rows.length === 0) {
|
|
28
|
+
const errorResponse = {
|
|
29
|
+
error: `'${userId}' Not Found`,
|
|
30
|
+
timestamp: new Date().toISOString(),
|
|
31
|
+
};
|
|
32
|
+
res.status(400).json(errorResponse);
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
const userEpmId = (_a = nexus_epm_user_id.rows[0]) === null || _a === void 0 ? void 0 : _a.id;
|
|
36
|
+
const expiration = new Date(new Date().getTime() + 24 * 60 * 60 * 1000);
|
|
37
|
+
const keyName = `${userEpmId}_${expiration.getTime()}`;
|
|
38
|
+
await axios_1.default.post(`https://${this.config.epmConfig.server}/accounts/apikeys/`, {
|
|
39
|
+
name: keyName,
|
|
40
|
+
expiration: expiration.toISOString(),
|
|
41
|
+
user: userEpmId,
|
|
42
|
+
}, {
|
|
43
|
+
headers: {
|
|
44
|
+
"X-API-KEY": this.config.epmConfig.masterApiKey,
|
|
45
|
+
},
|
|
46
|
+
validateStatus: () => true,
|
|
47
|
+
});
|
|
48
|
+
const getKeyResult = await axios_1.default.get(`https://${this.config.epmConfig.server}/accounts/apikeys/`, {
|
|
49
|
+
headers: {
|
|
50
|
+
"X-API-KEY": this.config.epmConfig.masterApiKey,
|
|
51
|
+
},
|
|
52
|
+
});
|
|
53
|
+
const apiKeyData = getKeyResult.data;
|
|
54
|
+
const key = (_b = apiKeyData.find((key) => key.user == userEpmId)) === null || _b === void 0 ? void 0 : _b.key;
|
|
55
|
+
res.status(200).json({
|
|
56
|
+
epmKey: key,
|
|
57
|
+
expiration: expiration.toUTCString(),
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
catch (error) {
|
|
61
|
+
console.error("Error getting EPM Keys:", error);
|
|
62
|
+
const errorResponse = {
|
|
63
|
+
error: "Internal server error",
|
|
64
|
+
timestamp: new Date().toISOString(),
|
|
65
|
+
};
|
|
66
|
+
res.status(500).json(errorResponse);
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
};
|
|
9
70
|
this.getConnectUrls = async (req, res) => {
|
|
10
71
|
var _a;
|
|
11
72
|
try {
|
|
@@ -17,7 +17,7 @@ class HealthController extends BaseController_1.BaseController {
|
|
|
17
17
|
this.status = (req, res) => {
|
|
18
18
|
const response = {
|
|
19
19
|
service: "aux-server",
|
|
20
|
-
version: "1.0.
|
|
20
|
+
version: "1.0.6",
|
|
21
21
|
meshCentral: {
|
|
22
22
|
connected: this.isWebSocketConnected,
|
|
23
23
|
server: this.meshServer,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authMiddleware.d.ts","sourceRoot":"","sources":["../../src/middleware/authMiddleware.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAKlD,qBAAa,cAAe,SAAQ,cAAc;gBACpC,gBAAgB,CAAC,EAAE,iBAAiB;IAIzC,QAAQ,GAAI,KAAK,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,UA2KhE;IAEK,WAAW,GAChB,KAAK,OAAO,EACZ,KAAK,QAAQ,EACb,MAAM,YAAY,KACjB,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"authMiddleware.d.ts","sourceRoot":"","sources":["../../src/middleware/authMiddleware.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAKlD,qBAAa,cAAe,SAAQ,cAAc;gBACpC,gBAAgB,CAAC,EAAE,iBAAiB;IAIzC,QAAQ,GAAI,KAAK,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,UA2KhE;IAEK,WAAW,GAChB,KAAK,OAAO,EACZ,KAAK,QAAQ,EACb,MAAM,YAAY,KACjB,OAAO,CAAC,IAAI,CAAC,CAiFd;CACH"}
|
|
@@ -237,7 +237,6 @@ class AuthMiddleware extends BaseMiddleware_1.BaseMiddleware {
|
|
|
237
237
|
},
|
|
238
238
|
validateStatus: () => true,
|
|
239
239
|
});
|
|
240
|
-
console.log(`Introspect result: ${JSON.stringify(introspect_result.data)}, ${JSON.stringify(introspect_result.status)}`);
|
|
241
240
|
if (introspect_result.status != 200) {
|
|
242
241
|
const unauthorizedResponse = {
|
|
243
242
|
error: introspect_result.statusText,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apiRoutes.d.ts","sourceRoot":"","sources":["../../src/routes/apiRoutes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAE7D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAG9D,eAAO,MAAM,eAAe,GAC1B,eAAe,aAAa,EAC5B,gBAAgB,cAAc,KAC7B,
|
|
1
|
+
{"version":3,"file":"apiRoutes.d.ts","sourceRoot":"","sources":["../../src/routes/apiRoutes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAE7D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAG9D,eAAO,MAAM,eAAe,GAC1B,eAAe,aAAa,EAC5B,gBAAgB,cAAc,KAC7B,MAmDF,CAAC"}
|
package/dist/routes/apiRoutes.js
CHANGED
|
@@ -41,6 +41,7 @@ const createApiRoutes = (apiController, authMiddleware) => {
|
|
|
41
41
|
* $ref: '#/components/responses/InternalServerError'
|
|
42
42
|
*/
|
|
43
43
|
router.post("/generate-connect-urls", (0, middleware_1.asyncHandler)(authMiddleware.icebergAuth), (0, middleware_1.validateData)(schemas_1.generateConnectUrlsSchema), (0, middleware_1.asyncHandler)(apiController.getConnectUrls));
|
|
44
|
+
router.get("/get-epm-key", (0, middleware_1.asyncHandler)(authMiddleware.icebergAuth), (0, middleware_1.asyncHandler)(apiController.getEPMApiKey));
|
|
44
45
|
return router;
|
|
45
46
|
};
|
|
46
47
|
exports.createApiRoutes = createApiRoutes;
|
package/dist/types/index.d.ts
CHANGED
|
@@ -12,6 +12,18 @@ export declare enum AgentType {
|
|
|
12
12
|
WORKSTATION = "workstation",
|
|
13
13
|
SERVER = "server"
|
|
14
14
|
}
|
|
15
|
+
export interface ApiKeyData {
|
|
16
|
+
id: number;
|
|
17
|
+
username: string;
|
|
18
|
+
created_by: string;
|
|
19
|
+
created_time: string;
|
|
20
|
+
modified_by: string;
|
|
21
|
+
modified_time: string;
|
|
22
|
+
name: string;
|
|
23
|
+
key: string;
|
|
24
|
+
expiration: string;
|
|
25
|
+
user: number;
|
|
26
|
+
}
|
|
15
27
|
export interface MeshCentralMessage {
|
|
16
28
|
action: string;
|
|
17
29
|
[key: string]: any;
|
|
@@ -76,6 +88,7 @@ export interface Config {
|
|
|
76
88
|
epmConfig: {
|
|
77
89
|
server: string;
|
|
78
90
|
installerToken: string;
|
|
91
|
+
masterApiKey: "K4YQDV1RJ3SLJBQDGCE5WNNQT3HNUOTH";
|
|
79
92
|
};
|
|
80
93
|
icebergConfig: {
|
|
81
94
|
eventsEndpoint: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AAEnC,oBAAY,WAAW;IACrB,OAAO,WAAW;IAClB,KAAK,UAAU;IACf,WAAW,eAAe;IAC1B,aAAa,gBAAgB;CAC9B;AAED,oBAAY,oBAAoB;IAC9B,YAAY,iBAAiB;CAC9B;AAED,oBAAY,SAAS;IACnB,WAAW,gBAAgB;IAC3B,MAAM,WAAW;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,UAAU,QAAQ;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,SAAS;IACjB,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAC;CAC5B;AAED,UAAU,IAAI;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,SAAS,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,IAAI,EAAE,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,WAAW,CAAC,WAAW,CAAC;IAChC,MAAM,EAAE,IAAI,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE;QACL,CAAC,OAAO,EAAE,MAAM,GAAG;YACjB,IAAI,EAAE,MAAM,CAAC;YACb,MAAM,EAAE,MAAM,CAAC;SAChB,CAAC;KACH,CAAC;CACH;AAED,MAAM,WAAW,iBAAkB,SAAQ,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC;IACpE,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,MAAM;IACrB,YAAY,EAAE;QACZ,WAAW,EAAE,iBAAiB,CAAC;KAChC,CAAC;IAEF,iBAAiB,EAAE;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,kBAAkB,EAAE,MAAM,CAAC;QAC3B,mBAAmB,EAAE,MAAM,CAAC;KAC7B,CAAC;IAEF,SAAS,EAAE;QACT,MAAM,EAAE,MAAM,CAAC;QACf,cAAc,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
|