@meru2802/aux-server 1.0.25 → 1.0.27
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/config/index.d.ts +1 -0
- package/dist/config/index.d.ts.map +1 -1
- package/dist/controllers/BaseController.d.ts +9 -0
- package/dist/controllers/BaseController.d.ts.map +1 -1
- package/dist/controllers/BaseController.js +39 -0
- package/dist/controllers/apiController.d.ts.map +1 -1
- package/dist/controllers/apiController.js +4 -3
- package/dist/controllers/coreController.d.ts +2 -0
- package/dist/controllers/coreController.d.ts.map +1 -1
- package/dist/controllers/coreController.js +354 -95
- package/dist/controllers/healthController.js +1 -1
- package/dist/routes/coreRoutes.d.ts.map +1 -1
- package/dist/routes/coreRoutes.js +1 -0
- package/dist/types/index.d.ts +28 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +12 -1
- package/dist/types/schemas/index.d.ts +9 -1
- package/dist/types/schemas/index.d.ts.map +1 -1
- package/dist/types/schemas/index.js +16 -1
- package/package.json +3 -3
package/dist/config/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAgB;IACvC,OAAO,CAAC,MAAM,CAAS;IAEvB,OAAO;WAIO,WAAW,IAAI,aAAa;IAO1C,OAAO,CAAC,UAAU;IAwDX,SAAS,IAAI,MAAM;IAInB,aAAa
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAgB;IACvC,OAAO,CAAC,MAAM,CAAS;IAEvB,OAAO;WAIO,WAAW,IAAI,aAAa;IAO1C,OAAO,CAAC,UAAU;IAwDX,SAAS,IAAI,MAAM;IAInB,aAAa;;;;;;;;;IAIb,WAAW;;;;;;;IAIX,gBAAgB;;;;;;;;;IAIhB,gBAAgB;;;;;;;;CAGxB"}
|
|
@@ -22,6 +22,15 @@ export declare abstract class BaseController {
|
|
|
22
22
|
existingUsers: MeshUser[];
|
|
23
23
|
failedToCreate: string[];
|
|
24
24
|
}>;
|
|
25
|
+
protected getEndpointIds(agentId: string | undefined, meshNodeId: string | undefined): Promise<{
|
|
26
|
+
meshNodeId: string;
|
|
27
|
+
meshNodeIdB64: string;
|
|
28
|
+
} | {
|
|
29
|
+
agentId: string;
|
|
30
|
+
meshNodeIdB64: string;
|
|
31
|
+
} | {
|
|
32
|
+
error: string;
|
|
33
|
+
}>;
|
|
25
34
|
private createSingleMeshUser;
|
|
26
35
|
private makeMeshPassword;
|
|
27
36
|
private getSecureRandomInt;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseController.d.ts","sourceRoot":"","sources":["../../src/controllers/BaseController.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,
|
|
1
|
+
{"version":3,"file":"BaseController.d.ts","sourceRoot":"","sources":["../../src/controllers/BaseController.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAe,MAAM,IAAI,CAAC;AACvC,OAAO,SAAmB,MAAM,IAAI,CAAC;AACrC,OAAO,EAEL,iBAAiB,EAClB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,MAAM,EAAsC,QAAQ,EAAE,MAAM,UAAU,CAAC;AAChF,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAI9B,8BAAsB,cAAc;IAClC,SAAS,CAAC,gBAAgB,EAAE,iBAAiB,CAAC;gBAElC,gBAAgB,CAAC,EAAE,iBAAiB;IAIhD,SAAS,KAAK,MAAM,IAAI,IAAI,CAE3B;IAED,SAAS,KAAK,SAAS,IAAI,SAAS,GAAG,IAAI,CAE1C;IAED,SAAS,KAAK,gBAAgB,IAAI,iBAAiB,CAElD;IAED,SAAS,KAAK,MAAM,IAAI,MAAM,CAE7B;IAED,SAAS,KAAK,oBAAoB,IAAI,OAAO,CAE5C;IAED,SAAS,KAAK,UAAU,IAAI,MAAM,CAEjC;IAED,SAAS,KAAK,gBAAgB,IAAI,OAAO,CAExC;IAED,SAAS,KAAK,UAAU,IAAI,eAAe,CAAC,MAAM,CAAC,GAAG,KAAK,CAM1D;IAED,SAAS,KAAK,aAAa,IAAI,MAAM,CAmBpC;cAEe,eAAe,CAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;QAC9D,YAAY,EAAE,QAAQ,EAAE,CAAC;QACzB,aAAa,EAAE,QAAQ,EAAE,CAAC;QAC1B,cAAc,EAAE,MAAM,EAAE,CAAC;KAC1B,CAAC;cA6Cc,cAAc,CAC5B,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,UAAU,EAAE,MAAM,GAAG,SAAS,GAC7B,OAAO,CACN;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,GAC7C;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,GAC1C;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CACpB;IAmDD,OAAO,CAAC,oBAAoB;IAwE5B,OAAO,CAAC,gBAAgB;IA2BxB,OAAO,CAAC,kBAAkB;CAS3B"}
|
|
@@ -8,6 +8,7 @@ const crypto_1 = __importDefault(require("crypto"));
|
|
|
8
8
|
const ServiceContainer_1 = require("../services/ServiceContainer");
|
|
9
9
|
const types_1 = require("../types");
|
|
10
10
|
const utils_1 = require("../lib/utils");
|
|
11
|
+
const utils_2 = require("@meru2802/rmm-lib/utils");
|
|
11
12
|
class BaseController {
|
|
12
13
|
constructor(serviceContainer) {
|
|
13
14
|
this.serviceContainer = serviceContainer || ServiceContainer_1.ServiceContainer.getInstance();
|
|
@@ -86,6 +87,44 @@ class BaseController {
|
|
|
86
87
|
});
|
|
87
88
|
return { createdUsers, existingUsers, failedToCreate };
|
|
88
89
|
}
|
|
90
|
+
async getEndpointIds(agentId, meshNodeId) {
|
|
91
|
+
var _a, _b;
|
|
92
|
+
if (!agentId && !meshNodeId) {
|
|
93
|
+
return { error: "Either agentId or meshNodeId must be provided" };
|
|
94
|
+
}
|
|
95
|
+
if (agentId) {
|
|
96
|
+
const query = "SELECT mesh_node_id FROM agents_agent WHERE agent_id = $1";
|
|
97
|
+
const result = await this.dbPool.query(query, [agentId]);
|
|
98
|
+
if (!result || result.rows.length === 0) {
|
|
99
|
+
return {
|
|
100
|
+
error: `Mesh Node Id corresponding to Agent ID: '${agentId}' Not Found`,
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
const resolvedMeshNodeId = (_a = result.rows[0]) === null || _a === void 0 ? void 0 : _a.mesh_node_id;
|
|
104
|
+
if (!resolvedMeshNodeId) {
|
|
105
|
+
return {
|
|
106
|
+
error: `Mesh Node Id corresponding to Agent ID: '${agentId}' Not Found`,
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
const meshNodeIdB64 = (0, utils_2.hexToBase64)(resolvedMeshNodeId);
|
|
110
|
+
return { meshNodeId: resolvedMeshNodeId, meshNodeIdB64 };
|
|
111
|
+
}
|
|
112
|
+
const nexus_epm_agent_id_query = "SELECT agent_id FROM agents_agent where mesh_node_id= $1";
|
|
113
|
+
const nexus_epm_agent_id = await this.dbPool.query(nexus_epm_agent_id_query, [meshNodeId]);
|
|
114
|
+
if (nexus_epm_agent_id.rows.length === 0) {
|
|
115
|
+
return {
|
|
116
|
+
error: `Agent Id corresponding to mesh node id ${meshNodeId}' Not Found`,
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
const resolvedAgentId = (_b = nexus_epm_agent_id.rows[0]) === null || _b === void 0 ? void 0 : _b.agent_id;
|
|
120
|
+
if (!resolvedAgentId) {
|
|
121
|
+
return {
|
|
122
|
+
error: `Agent Id corresponding to mesh node id ${meshNodeId}' Not Found`,
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
const meshNodeIdB64 = (0, utils_2.hexToBase64)(meshNodeId);
|
|
126
|
+
return { meshNodeId: meshNodeId, meshNodeIdB64 };
|
|
127
|
+
}
|
|
89
128
|
createSingleMeshUser(user) {
|
|
90
129
|
return new Promise((resolve) => {
|
|
91
130
|
const responseId = this.genResponseId;
|
|
@@ -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;AAOjE,qBAAa,aAAc,SAAQ,cAAc;gBACnC,gBAAgB,CAAC,EAAE,iBAAiB;IAIzC,YAAY,GAAU,KAAK,OAAO,EAAE,KAAK,QAAQ,KAAG,OAAO,CAAC,IAAI,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;AAOjE,qBAAa,aAAc,SAAQ,cAAc;gBACnC,gBAAgB,CAAC,EAAE,iBAAiB;IAIzC,YAAY,GAAU,KAAK,OAAO,EAAE,KAAK,QAAQ,KAAG,OAAO,CAAC,IAAI,CAAC,CA2GtE;IAEK,cAAc,GACnB,KAAK,OAAO,EACZ,KAAK,QAAQ,KACZ,OAAO,CAAC,IAAI,CAAC,CAkUd;CACH"}
|
|
@@ -56,6 +56,7 @@ class ApiController extends BaseController_1.BaseController {
|
|
|
56
56
|
"X-API-KEY": this.config.epmConfig.masterApiKey,
|
|
57
57
|
},
|
|
58
58
|
httpsAgent: agent,
|
|
59
|
+
proxy: false,
|
|
59
60
|
validateStatus: () => true,
|
|
60
61
|
});
|
|
61
62
|
console.log("EPM API Response:", {
|
|
@@ -328,9 +329,9 @@ class ApiController extends BaseController_1.BaseController {
|
|
|
328
329
|
const loginEncryptionKey = (0, utils_1.getBinaryKey)(this.config.meshcentralConfig.loginEncryptionKey);
|
|
329
330
|
const authRelayCookie = (0, utils_1.encodeCookie)({ a: 3, u: meshUser }, loginEncryptionKey);
|
|
330
331
|
const token_param = `login=${authRelayCookie}`;
|
|
331
|
-
const control = `https://${this.config.meshcentralConfig.
|
|
332
|
-
const terminal = `https://${this.config.meshcentralConfig.
|
|
333
|
-
const fileSystem = `https://${this.config.meshcentralConfig.
|
|
332
|
+
const control = `https://${this.config.meshcentralConfig.externalHost}/?${token_param}&gotonode=${meshNodeId}&viewmode=11&hide=31`;
|
|
333
|
+
const terminal = `https://${this.config.meshcentralConfig.externalHost}/?${token_param}&gotonode=${meshNodeId}&viewmode=12&hide=31`;
|
|
334
|
+
const fileSystem = `https://${this.config.meshcentralConfig.externalHost}/?${token_param}&gotonode=${meshNodeId}&viewmode=13&hide=31`;
|
|
334
335
|
const response = {
|
|
335
336
|
control,
|
|
336
337
|
terminal,
|
|
@@ -9,6 +9,8 @@ export declare class CoreController extends BaseController {
|
|
|
9
9
|
createDeviceGroup: (req: Request, res: Response) => Promise<void>;
|
|
10
10
|
addUserToGroup: (req: Request, res: Response) => Promise<void>;
|
|
11
11
|
getEndpointInstallScript: (req: Request, res: Response) => Promise<void>;
|
|
12
|
+
sendEndpointNotification: (req: Request, res: Response) => Promise<void>;
|
|
13
|
+
private waitForNotifyResponse;
|
|
12
14
|
private sendErrorResponse;
|
|
13
15
|
private ensureWebSocket;
|
|
14
16
|
private ensureMessageSent;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coreController.d.ts","sourceRoot":"","sources":["../../src/controllers/coreController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAE5C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"coreController.d.ts","sourceRoot":"","sources":["../../src/controllers/coreController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAE5C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AA2BlD,qBAAa,cAAe,SAAQ,cAAc;IAChD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAyC;IAChE,OAAO;WAIO,WAAW;IAQlB,wBAAwB,GAC7B,YAAY,MAAM,KACjB,OAAO,CAAC,OAAO,CAAC,CA4HjB;IAEK,eAAe,GACpB,KAAK,OAAO,EACZ,KAAK,QAAQ,KACZ,OAAO,CAAC,IAAI,CAAC,CA0Ed;IAEK,iBAAiB,GACtB,KAAK,OAAO,EACZ,KAAK,QAAQ,KACZ,OAAO,CAAC,IAAI,CAAC,CAkEd;IAEK,cAAc,GACnB,KAAK,OAAO,EACZ,KAAK,QAAQ,KACZ,OAAO,CAAC,IAAI,CAAC,CAyFd;IAEK,wBAAwB,GAC7B,KAAK,OAAO,EACZ,KAAK,QAAQ,KACZ,OAAO,CAAC,IAAI,CAAC,CAiHd;IAEK,wBAAwB,GAC7B,KAAK,OAAO,EACZ,KAAK,QAAQ,KACZ,OAAO,CAAC,IAAI,CAAC,CAoJd;IAEF,OAAO,CAAC,qBAAqB;IAsC7B,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,UAAU;IAUlB,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,yBAAyB;IASjC,OAAO,CAAC,wBAAwB;IAqDhC,OAAO,CAAC,6BAA6B;YAuEvB,cAAc;YAwDd,mBAAmB;IAyDjC,OAAO,CAAC,qBAAqB;IA4F7B,OAAO,CAAC,mBAAmB;IAuW3B,OAAO,CAAC,aAAa,CAKnB;IAEF,OAAO,CAAC,cAAc,CAMpB;CACH"}
|
|
@@ -30,6 +30,7 @@ class CoreController extends BaseController_1.BaseController {
|
|
|
30
30
|
"X-API-KEY": this.config.epmConfig.masterApiKey,
|
|
31
31
|
},
|
|
32
32
|
httpsAgent: (0, utils_1.getNoProxyHttpAgent)(),
|
|
33
|
+
proxy: false,
|
|
33
34
|
validateStatus: () => true,
|
|
34
35
|
});
|
|
35
36
|
const [clientResult, installedSoftwaresResponse] = await Promise.all([
|
|
@@ -326,6 +327,141 @@ class CoreController extends BaseController_1.BaseController {
|
|
|
326
327
|
this.sendErrorResponse(res, 500, "Internal server error");
|
|
327
328
|
}
|
|
328
329
|
};
|
|
330
|
+
this.sendEndpointNotification = async (req, res) => {
|
|
331
|
+
try {
|
|
332
|
+
const { agent_ids, title, message, type, timeout } = req.body;
|
|
333
|
+
if (!this.ensureWebSocket(res))
|
|
334
|
+
return;
|
|
335
|
+
const requestId = this.genResponseId;
|
|
336
|
+
const results = [];
|
|
337
|
+
const resolvedAgents = [];
|
|
338
|
+
for (const agentId of agent_ids) {
|
|
339
|
+
const endpointResult = await this.getEndpointIds(agentId, undefined);
|
|
340
|
+
if ("error" in endpointResult) {
|
|
341
|
+
results.push({
|
|
342
|
+
agent_id: agentId,
|
|
343
|
+
mesh_node_id: "",
|
|
344
|
+
status: types_1.NotifyResultStatus.FAILED,
|
|
345
|
+
error: endpointResult.error,
|
|
346
|
+
});
|
|
347
|
+
continue;
|
|
348
|
+
}
|
|
349
|
+
const meshNodeId = "meshNodeId" in endpointResult ? endpointResult.meshNodeId : "";
|
|
350
|
+
resolvedAgents.push({
|
|
351
|
+
agentId,
|
|
352
|
+
meshNodeIdB64: endpointResult.meshNodeIdB64,
|
|
353
|
+
});
|
|
354
|
+
results.push({
|
|
355
|
+
agent_id: agentId,
|
|
356
|
+
mesh_node_id: meshNodeId,
|
|
357
|
+
status: types_1.NotifyResultStatus.FAILED,
|
|
358
|
+
});
|
|
359
|
+
}
|
|
360
|
+
if (resolvedAgents.length === 0) {
|
|
361
|
+
const response = {
|
|
362
|
+
success: false,
|
|
363
|
+
request_id: requestId,
|
|
364
|
+
results,
|
|
365
|
+
summary: {
|
|
366
|
+
total: agent_ids.length,
|
|
367
|
+
sent: 0,
|
|
368
|
+
failed: agent_ids.length,
|
|
369
|
+
},
|
|
370
|
+
};
|
|
371
|
+
res.status(200).json(response);
|
|
372
|
+
return;
|
|
373
|
+
}
|
|
374
|
+
if (type === types_1.NotifyDeliveryType.TOAST) {
|
|
375
|
+
const nodeIds = resolvedAgents.map((a) => `${a.meshNodeIdB64}`);
|
|
376
|
+
const responseId = this.genResponseId;
|
|
377
|
+
const toastMessage = {
|
|
378
|
+
action: "toast",
|
|
379
|
+
responseid: responseId,
|
|
380
|
+
msg: message,
|
|
381
|
+
nodeids: nodeIds,
|
|
382
|
+
title,
|
|
383
|
+
};
|
|
384
|
+
const sent = this.WebSocketService.sendMessage(toastMessage);
|
|
385
|
+
if (!sent) {
|
|
386
|
+
for (const agent of resolvedAgents) {
|
|
387
|
+
const entry = results.find((r) => r.agent_id === agent.agentId);
|
|
388
|
+
if (entry)
|
|
389
|
+
entry.error = "Could not send message over socket";
|
|
390
|
+
}
|
|
391
|
+
}
|
|
392
|
+
else {
|
|
393
|
+
try {
|
|
394
|
+
await this.waitForNotifyResponse(responseId);
|
|
395
|
+
for (const agent of resolvedAgents) {
|
|
396
|
+
const entry = results.find((r) => r.agent_id === agent.agentId);
|
|
397
|
+
if (entry)
|
|
398
|
+
entry.status = types_1.NotifyResultStatus.SENT;
|
|
399
|
+
}
|
|
400
|
+
}
|
|
401
|
+
catch (error) {
|
|
402
|
+
for (const agent of resolvedAgents) {
|
|
403
|
+
const entry = results.find((r) => r.agent_id === agent.agentId);
|
|
404
|
+
if (entry)
|
|
405
|
+
entry.error =
|
|
406
|
+
error instanceof Error
|
|
407
|
+
? error.message
|
|
408
|
+
: "Failed to get response";
|
|
409
|
+
}
|
|
410
|
+
}
|
|
411
|
+
}
|
|
412
|
+
}
|
|
413
|
+
else {
|
|
414
|
+
const sendPromises = resolvedAgents.map(async (agent) => {
|
|
415
|
+
const responseId = this.genResponseId;
|
|
416
|
+
const nodeId = agent.meshNodeIdB64;
|
|
417
|
+
const msgPayload = {
|
|
418
|
+
action: "msg",
|
|
419
|
+
responseid: responseId,
|
|
420
|
+
msg: message,
|
|
421
|
+
nodeid: nodeId,
|
|
422
|
+
title,
|
|
423
|
+
type,
|
|
424
|
+
};
|
|
425
|
+
if (type === types_1.NotifyDeliveryType.MESSAGEBOX && timeout !== undefined) {
|
|
426
|
+
msgPayload.timeout = timeout * 1000;
|
|
427
|
+
}
|
|
428
|
+
const sent = this.WebSocketService.sendMessage(msgPayload);
|
|
429
|
+
const entry = results.find((r) => r.agent_id === agent.agentId);
|
|
430
|
+
if (!sent) {
|
|
431
|
+
if (entry)
|
|
432
|
+
entry.error = "Could not send message over socket";
|
|
433
|
+
return;
|
|
434
|
+
}
|
|
435
|
+
try {
|
|
436
|
+
await this.waitForNotifyResponse(responseId);
|
|
437
|
+
if (entry)
|
|
438
|
+
entry.status = types_1.NotifyResultStatus.SENT;
|
|
439
|
+
}
|
|
440
|
+
catch (error) {
|
|
441
|
+
if (entry)
|
|
442
|
+
entry.error =
|
|
443
|
+
error instanceof Error
|
|
444
|
+
? error.message
|
|
445
|
+
: "Failed to get response";
|
|
446
|
+
}
|
|
447
|
+
});
|
|
448
|
+
await Promise.allSettled(sendPromises);
|
|
449
|
+
}
|
|
450
|
+
const sent = results.filter((r) => r.status === types_1.NotifyResultStatus.SENT).length;
|
|
451
|
+
const failed = results.length - sent;
|
|
452
|
+
const response = {
|
|
453
|
+
success: failed === 0,
|
|
454
|
+
request_id: requestId,
|
|
455
|
+
results,
|
|
456
|
+
summary: { total: results.length, sent, failed },
|
|
457
|
+
};
|
|
458
|
+
res.status(200).json(response);
|
|
459
|
+
}
|
|
460
|
+
catch (error) {
|
|
461
|
+
console.error("Error sending notification to endpoint:", error);
|
|
462
|
+
this.sendErrorResponse(res, 500, "Internal server error");
|
|
463
|
+
}
|
|
464
|
+
};
|
|
329
465
|
this.parseBootTime = (bootTime) => {
|
|
330
466
|
if (bootTime === null || bootTime === undefined) {
|
|
331
467
|
return null;
|
|
@@ -346,6 +482,42 @@ class CoreController extends BaseController_1.BaseController {
|
|
|
346
482
|
}
|
|
347
483
|
return this.instance;
|
|
348
484
|
}
|
|
485
|
+
waitForNotifyResponse(responseId) {
|
|
486
|
+
return new Promise((resolve, reject) => {
|
|
487
|
+
let responseReceived = false;
|
|
488
|
+
const timeout = setTimeout(() => {
|
|
489
|
+
var _a;
|
|
490
|
+
if (!responseReceived) {
|
|
491
|
+
responseReceived = true;
|
|
492
|
+
(_a = this.webSocket) === null || _a === void 0 ? void 0 : _a.removeListener("message", messageHandler);
|
|
493
|
+
reject(new Error("Timeout waiting for notification response"));
|
|
494
|
+
}
|
|
495
|
+
}, 30000);
|
|
496
|
+
const messageHandler = (data) => {
|
|
497
|
+
var _a;
|
|
498
|
+
if (responseReceived)
|
|
499
|
+
return;
|
|
500
|
+
try {
|
|
501
|
+
const message = JSON.parse(data.toString());
|
|
502
|
+
if (message.responseid !== responseId)
|
|
503
|
+
return;
|
|
504
|
+
responseReceived = true;
|
|
505
|
+
clearTimeout(timeout);
|
|
506
|
+
(_a = this.webSocket) === null || _a === void 0 ? void 0 : _a.removeListener("message", messageHandler);
|
|
507
|
+
if (message.result === "OK" || message.result === "ok") {
|
|
508
|
+
resolve();
|
|
509
|
+
}
|
|
510
|
+
else {
|
|
511
|
+
reject(new Error(message.result || "Notification delivery failed"));
|
|
512
|
+
}
|
|
513
|
+
}
|
|
514
|
+
catch (_b) {
|
|
515
|
+
// Ignore parse errors for messages that aren't relevant
|
|
516
|
+
}
|
|
517
|
+
};
|
|
518
|
+
this.webSocket.on("message", messageHandler);
|
|
519
|
+
});
|
|
520
|
+
}
|
|
349
521
|
sendErrorResponse(res, status, error) {
|
|
350
522
|
const errorResponse = {
|
|
351
523
|
error,
|
|
@@ -559,9 +731,9 @@ $api = '"${params.baseUrl}"'
|
|
|
559
731
|
$clientid = '${params.clientId}'
|
|
560
732
|
$siteid = '${params.siteId}'
|
|
561
733
|
$agenttype = '"${params.agentType}"'
|
|
562
|
-
$power =
|
|
563
|
-
$rdp =
|
|
564
|
-
$ping =
|
|
734
|
+
$power = 1
|
|
735
|
+
$rdp = 0
|
|
736
|
+
$ping = 1
|
|
565
737
|
$auth = '"${params.installerToken}"'
|
|
566
738
|
$endpointdownloadlink = '${params.endpointUrl}'
|
|
567
739
|
$apilink = $endpointdownloadlink.split('/')
|
|
@@ -610,7 +782,7 @@ If (Get-Service $serviceName -ErrorAction SilentlyContinue) {
|
|
|
610
782
|
if ($connectresult.TcpTestSucceeded -eq $true){
|
|
611
783
|
Try{
|
|
612
784
|
Invoke-WebRequest -Uri $endpointdownloadlink -OutFile $OutPath\\$endpointsetup
|
|
613
|
-
Start-Process -FilePath $OutPath\\$endpointsetup -ArgumentList ('/S') -Wait
|
|
785
|
+
Start-Process -FilePath $OutPath\\$endpointsetup -ArgumentList ('/S /SKIPINSTALL') -Wait
|
|
614
786
|
write-host ('Extracting Nexus Endpoint...')
|
|
615
787
|
Start-Sleep -s 5
|
|
616
788
|
Start-Process -FilePath "C:\\Program Files\\Nexus Endpoint\\rmmagent.exe" -ArgumentList ('/VERYSILENT /SUPPRESSMSGBOXES') -Wait
|
|
@@ -633,8 +805,9 @@ If (Get-Service $serviceName -ErrorAction SilentlyContinue) {
|
|
|
633
805
|
`;
|
|
634
806
|
}
|
|
635
807
|
generateLinuxScript(params) {
|
|
636
|
-
return
|
|
637
|
-
|
|
808
|
+
return `#!/usr/bin/env bash
|
|
809
|
+
|
|
810
|
+
set -uo pipefail
|
|
638
811
|
|
|
639
812
|
if [ $EUID -ne 0 ]; then
|
|
640
813
|
echo "ERROR: Must be run as root"
|
|
@@ -644,51 +817,76 @@ fi
|
|
|
644
817
|
HAS_SYSTEMD=$(ps --no-headers -o comm 1)
|
|
645
818
|
if [ "\${HAS_SYSTEMD}" != 'systemd' ]; then
|
|
646
819
|
echo "This install script only supports systemd"
|
|
647
|
-
echo "Please install systemd or manually create the service using your
|
|
820
|
+
echo "Please install systemd or manually create the service using your system's service manager"
|
|
648
821
|
exit 1
|
|
649
822
|
fi
|
|
650
823
|
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
824
|
+
IS_HEADLESS=1
|
|
825
|
+
if [[ -n "\${DISPLAY:-}" ]]; then
|
|
826
|
+
# Check if this is just X forwarding or an actual desktop session
|
|
827
|
+
if systemctl is-active --quiet gdm3 || systemctl is-active --quiet lightdm || systemctl is-active --quiet sddm; then
|
|
828
|
+
echo "ERROR: Display detected with an active display manager."
|
|
829
|
+
echo "Installer only supports running headless, i.e from ssh."
|
|
830
|
+
echo "Run 'sudo systemctl isolate multi-user.target' to switch to a non-graphical session."
|
|
831
|
+
exit 1
|
|
832
|
+
else
|
|
833
|
+
echo "WARNING: \\$DISPLAY is set (likely SSH X forwarding) but no display manager is active."
|
|
834
|
+
echo "Unsetting DISPLAY and continuing in headless mode..."
|
|
835
|
+
unset DISPLAY
|
|
836
|
+
fi
|
|
837
|
+
fi
|
|
655
838
|
|
|
656
|
-
|
|
839
|
+
ARCH=$(uname -m)
|
|
840
|
+
case "$ARCH" in
|
|
841
|
+
x86_64)
|
|
842
|
+
ARCH_SUFFIX="amd64"
|
|
843
|
+
ARCH_DIR="x64"
|
|
844
|
+
;;
|
|
845
|
+
aarch64)
|
|
846
|
+
ARCH_SUFFIX="arm64"
|
|
847
|
+
ARCH_DIR="arm64"
|
|
848
|
+
;;
|
|
849
|
+
*)
|
|
850
|
+
echo "ERROR: Unsupported architecture: $ARCH"
|
|
851
|
+
echo "This installer supports x86_64 (amd64) and aarch64 (arm64) only."
|
|
852
|
+
exit 1
|
|
853
|
+
;;
|
|
854
|
+
esac
|
|
855
|
+
echo "Detected architecture: \${ARCH} (\${ARCH_SUFFIX})"
|
|
657
856
|
|
|
658
|
-
|
|
659
|
-
if
|
|
660
|
-
echo "
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
echo "No previous Nexus Endpoint installation found. Continuing..."
|
|
857
|
+
CONFIG_FILE="/etc/nexus-installer.conf"
|
|
858
|
+
if [ -f "$CONFIG_FILE" ]; then
|
|
859
|
+
echo "Loading configuration from \${CONFIG_FILE}..."
|
|
860
|
+
# shellcheck source=/dev/null
|
|
861
|
+
source "$CONFIG_FILE"
|
|
664
862
|
fi
|
|
665
863
|
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
864
|
+
apiURL="\${NEXUS_API_URL:-${params.baseUrl}}"
|
|
865
|
+
token="\${NEXUS_TOKEN:-${params.installerToken}}"
|
|
866
|
+
clientID="\${NEXUS_CLIENT_ID:-${params.clientId}}"
|
|
867
|
+
siteID="\${NEXUS_SITE_ID:-${params.siteId}}"
|
|
868
|
+
agentType="\${NEXUS_AGENT_TYPE:-${params.agentType}}"
|
|
869
|
+
assetTypeId="\${NEXUS_ASSET_TYPE_ID:-${params.assetTypeId}}"
|
|
870
|
+
icebergSiteId="\${NEXUS_ICEBERG_SITE_ID:-${params.icebergSiteId}}"
|
|
871
|
+
icebergOrgId="\${NEXUS_ICEBERG_ORG_ID:-${params.icebergOrgId}}"
|
|
872
|
+
icebergOrgToken="\${NEXUS_ICEBERG_ORG_TOKEN:-${params.icebergOrgToken}}"
|
|
873
|
+
assetEndpoint="\${NEXUS_ASSET_ENDPOINT:-${this.config.icebergConfig.assetEndpoint}}"
|
|
874
|
+
proxy="\${NEXUS_PROXY:-}"
|
|
673
875
|
|
|
674
|
-
|
|
675
|
-
INSECURE=0
|
|
676
|
-
NOMESH=0
|
|
876
|
+
SCOGO_PASSWORD="\${SCOGO_USER_PASSWORD:-Sc090@1947}"
|
|
677
877
|
|
|
678
|
-
agentDL=
|
|
878
|
+
agentDL="https://nexus-endpoint-desktop-app.s3.ap-south-1.amazonaws.com/rmmagent/linux/\${ARCH_DIR}/nexusrmm-\${ARCH_SUFFIX}"
|
|
679
879
|
meshDL='https://${this.config.meshcentralConfig.host}/meshagents?id=${params.deviceGroupId}&installflags=2&meshinstall=6'
|
|
680
880
|
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
assetEndpoint='${this.config.icebergConfig.assetEndpoint}'
|
|
691
|
-
proxy=''
|
|
881
|
+
# If headless mode detected and agentType is 'workstation', override to 'server'
|
|
882
|
+
if [ $IS_HEADLESS -eq 1 ] && [ "\${agentType}" = "workstation" ]; then
|
|
883
|
+
echo "Headless mode detected. Overriding agent type from 'workstation' to 'server'."
|
|
884
|
+
agentType="server"
|
|
885
|
+
fi
|
|
886
|
+
|
|
887
|
+
DEBUG=0
|
|
888
|
+
INSECURE=0
|
|
889
|
+
NOMESH=0
|
|
692
890
|
|
|
693
891
|
agentBinPath='/usr/local/bin'
|
|
694
892
|
binName='nexusagent'
|
|
@@ -719,35 +917,21 @@ set_locale_rhel() {
|
|
|
719
917
|
|
|
720
918
|
RemoveOldAgent() {
|
|
721
919
|
if [ -f "\${agentSysD}" ]; then
|
|
722
|
-
systemctl disable \${agentSvcName}
|
|
723
|
-
systemctl stop \${agentSvcName}
|
|
920
|
+
systemctl disable "\${agentSvcName}" 2>/dev/null || true
|
|
921
|
+
systemctl stop "\${agentSvcName}" 2>/dev/null || true
|
|
724
922
|
rm -f "\${agentSysD}"
|
|
725
923
|
systemctl daemon-reload
|
|
726
924
|
fi
|
|
727
925
|
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
if [ -f "\${agentBin}" ]; then
|
|
733
|
-
rm -f "\${agentBin}"
|
|
734
|
-
fi
|
|
735
|
-
|
|
736
|
-
if [ -d "\${agentDir}" ]; then
|
|
737
|
-
rm -rf "\${agentDir}"
|
|
738
|
-
fi
|
|
926
|
+
[ -f "\${agentConf}" ] && rm -f "\${agentConf}" || true
|
|
927
|
+
[ -f "\${agentBin}" ] && rm -f "\${agentBin}" || true
|
|
928
|
+
[ -d "\${agentDir}" ] && rm -rf "\${agentDir}" || true
|
|
739
929
|
}
|
|
740
930
|
|
|
741
931
|
InstallMesh() {
|
|
742
932
|
if [ -f /etc/os-release ]; then
|
|
743
|
-
distroID=$(
|
|
744
|
-
|
|
745
|
-
echo $ID
|
|
746
|
-
)
|
|
747
|
-
distroIDLIKE=$(
|
|
748
|
-
. /etc/os-release
|
|
749
|
-
echo $ID_LIKE
|
|
750
|
-
)
|
|
933
|
+
distroID=$(. /etc/os-release; echo "$ID")
|
|
934
|
+
distroIDLIKE=$(. /etc/os-release; echo "\${ID_LIKE:-}")
|
|
751
935
|
if [[ " \${deb[*]} " =~ " \${distroID} " ]]; then
|
|
752
936
|
set_locale_deb
|
|
753
937
|
elif [[ " \${deb[*]} " =~ " \${distroIDLIKE} " ]]; then
|
|
@@ -760,30 +944,30 @@ InstallMesh() {
|
|
|
760
944
|
fi
|
|
761
945
|
|
|
762
946
|
meshTmpDir='/root/meshtemp'
|
|
763
|
-
mkdir -p $meshTmpDir
|
|
947
|
+
mkdir -p "$meshTmpDir"
|
|
764
948
|
|
|
765
949
|
meshTmpBin="\${meshTmpDir}/NexusMeshBackend"
|
|
766
|
-
wget --no-check-certificate -q -O \${meshTmpBin} \${meshDL}
|
|
767
|
-
chmod +x \${meshTmpBin}
|
|
768
|
-
mkdir -p \${meshDir}
|
|
769
|
-
env LC_ALL=en_US.UTF-8 LANGUAGE=en_US XAUTHORITY=foo DISPLAY=bar \${meshTmpBin} -install --installPath
|
|
950
|
+
wget --no-check-certificate -q -O "\${meshTmpBin}" "\${meshDL}"
|
|
951
|
+
chmod +x "\${meshTmpBin}"
|
|
952
|
+
mkdir -p "\${meshDir}"
|
|
953
|
+
env LC_ALL=en_US.UTF-8 LANGUAGE=en_US XAUTHORITY=foo DISPLAY=bar "\${meshTmpBin}" -install --installPath="\${meshDir}"
|
|
770
954
|
sleep 1
|
|
771
|
-
rm -rf \${meshTmpDir}
|
|
955
|
+
rm -rf "\${meshTmpDir}"
|
|
772
956
|
}
|
|
773
957
|
|
|
774
958
|
RemoveMesh() {
|
|
775
959
|
if [ -f "\${meshSystemBin}" ]; then
|
|
776
|
-
env XAUTHORITY=foo DISPLAY=bar \${meshSystemBin} -uninstall
|
|
960
|
+
env XAUTHORITY=foo DISPLAY=bar "\${meshSystemBin}" -uninstall
|
|
777
961
|
sleep 1
|
|
778
962
|
fi
|
|
779
963
|
|
|
780
964
|
if [ -f "\${meshSysD}" ]; then
|
|
781
|
-
systemctl stop \${meshSvcName} >/dev/null 2>&1
|
|
782
|
-
systemctl disable \${meshSvcName} >/dev/null 2>&1
|
|
783
|
-
rm -f \${meshSysD}
|
|
965
|
+
systemctl stop "\${meshSvcName}" >/dev/null 2>&1 || true
|
|
966
|
+
systemctl disable "\${meshSvcName}" >/dev/null 2>&1 || true
|
|
967
|
+
rm -f "\${meshSysD}"
|
|
784
968
|
fi
|
|
785
969
|
|
|
786
|
-
rm -rf \${meshDir}
|
|
970
|
+
rm -rf "\${meshDir}"
|
|
787
971
|
systemctl daemon-reload
|
|
788
972
|
}
|
|
789
973
|
|
|
@@ -794,7 +978,6 @@ Uninstall() {
|
|
|
794
978
|
|
|
795
979
|
if [ $# -ne 0 ] && [[ $1 =~ ^(uninstall|-uninstall|--uninstall)$ ]]; then
|
|
796
980
|
Uninstall
|
|
797
|
-
# Remove the current script
|
|
798
981
|
rm "$0"
|
|
799
982
|
exit 0
|
|
800
983
|
fi
|
|
@@ -812,15 +995,63 @@ while [[ "$#" -gt 0 ]]; do
|
|
|
812
995
|
shift
|
|
813
996
|
done
|
|
814
997
|
|
|
998
|
+
if id "scogo" &>/dev/null; then
|
|
999
|
+
echo "User 'scogo' already exists. Skipping user creation."
|
|
1000
|
+
else
|
|
1001
|
+
useradd -c "Scogo IT Support" -m -s /bin/bash scogo
|
|
1002
|
+
echo "scogo:\${SCOGO_PASSWORD}" | chpasswd
|
|
1003
|
+
fi
|
|
1004
|
+
|
|
1005
|
+
for grp in sudo adm cdrom dip plugdev video; do
|
|
1006
|
+
if getent group "$grp" >/dev/null 2>&1; then
|
|
1007
|
+
usermod -aG "$grp" scogo
|
|
1008
|
+
fi
|
|
1009
|
+
done
|
|
1010
|
+
echo 'scogo ALL=(ALL) ALL' | tee /etc/sudoers.d/scogo >/dev/null
|
|
1011
|
+
chmod 0440 /etc/sudoers.d/scogo
|
|
1012
|
+
|
|
1013
|
+
if [ -f /etc/gdm3/custom.conf ]; then
|
|
1014
|
+
echo "GDM3 detected. Disabling Wayland..."
|
|
1015
|
+
sed -i 's/^#\\?WaylandEnable=.*/WaylandEnable=false/' /etc/gdm3/custom.conf
|
|
1016
|
+
else
|
|
1017
|
+
echo "GDM3 not found (headless server). Skipping Wayland configuration."
|
|
1018
|
+
fi
|
|
1019
|
+
|
|
1020
|
+
if [ $IS_HEADLESS -eq 1 ]; then
|
|
1021
|
+
echo "Headless server detected. Skipping Nexus Endpoint desktop app installation."
|
|
1022
|
+
echo "(Desktop app requires a GUI environment to function.)"
|
|
1023
|
+
else
|
|
1024
|
+
echo "Checking for previous installations of Nexus Endpoint..."
|
|
1025
|
+
if dpkg-query -W -f='\${Status}' nexus-endpoint 2>/dev/null | grep -q "install ok installed"; then
|
|
1026
|
+
echo "Found existing Nexus Endpoint installation. Removing..."
|
|
1027
|
+
apt-get remove -y nexus-endpoint
|
|
1028
|
+
else
|
|
1029
|
+
echo "No previous Nexus Endpoint installation found. Continuing..."
|
|
1030
|
+
fi
|
|
1031
|
+
|
|
1032
|
+
echo "Downloading and installing Nexus Endpoint..."
|
|
1033
|
+
apt-get update
|
|
1034
|
+
apt-get install -y libwebkit2gtk-4.1-0 libgtk-3-0 libappindicator3-1 libayatana-appindicator3-1 libxdo-dev
|
|
1035
|
+
INSTALLER="nexus-endpoint-installer.deb"
|
|
1036
|
+
wget "${params.endpointUrl}" -O "$INSTALLER"
|
|
1037
|
+
dpkg -i "$INSTALLER"
|
|
1038
|
+
rm -f "$INSTALLER"
|
|
1039
|
+
fi
|
|
1040
|
+
|
|
1041
|
+
if ! command -v dmidecode &>/dev/null; then
|
|
1042
|
+
echo "Installing dmidecode..."
|
|
1043
|
+
apt-get update -qq || true
|
|
1044
|
+
apt-get install -y -qq dmidecode || echo "WARNING: Could not install dmidecode. Continuing anyway."
|
|
1045
|
+
fi
|
|
1046
|
+
|
|
815
1047
|
RemoveOldAgent
|
|
816
1048
|
|
|
817
1049
|
echo "Downloading Nexus agent..."
|
|
818
|
-
wget -q -O \${agentBin} "\${agentDL}"
|
|
819
|
-
if [ $? -ne 0 ]; then
|
|
1050
|
+
if ! wget -q -O "\${agentBin}" "\${agentDL}"; then
|
|
820
1051
|
echo "ERROR: Unable to download nexus agent"
|
|
821
1052
|
exit 1
|
|
822
1053
|
fi
|
|
823
|
-
chmod +x \${agentBin}
|
|
1054
|
+
chmod +x "\${agentBin}"
|
|
824
1055
|
|
|
825
1056
|
MESH_NODE_ID=""
|
|
826
1057
|
|
|
@@ -834,36 +1065,47 @@ else
|
|
|
834
1065
|
InstallMesh
|
|
835
1066
|
sleep 2
|
|
836
1067
|
echo "Getting mesh node id..."
|
|
837
|
-
MESH_NODE_ID=$(env XAUTHORITY=foo DISPLAY=bar \${agentBin} -m nixmeshnodeid)
|
|
1068
|
+
MESH_NODE_ID=$(env XAUTHORITY=foo DISPLAY=bar "\${agentBin}" -m nixmeshnodeid)
|
|
838
1069
|
fi
|
|
839
1070
|
|
|
840
1071
|
if [ ! -d "\${agentBinPath}" ]; then
|
|
841
1072
|
echo "Creating \${agentBinPath}"
|
|
842
|
-
mkdir -p \${agentBinPath}
|
|
1073
|
+
mkdir -p "\${agentBinPath}"
|
|
843
1074
|
fi
|
|
844
1075
|
|
|
845
|
-
|
|
1076
|
+
INSTALL_ARGS=(
|
|
1077
|
+
"\${agentBin}" -m install
|
|
1078
|
+
-api "\${apiURL}"
|
|
1079
|
+
-client-id "\${clientID}"
|
|
1080
|
+
-site-id "\${siteID}"
|
|
1081
|
+
-agent-type "\${agentType}"
|
|
1082
|
+
-auth "\${token}"
|
|
1083
|
+
-asset-type-id "\${assetTypeId}"
|
|
1084
|
+
-iceberg-site-id "\${icebergSiteId}"
|
|
1085
|
+
-iceberg-org-id "\${icebergOrgId}"
|
|
1086
|
+
-iceberg-org-token "\${icebergOrgToken}"
|
|
1087
|
+
-asset-api "\${assetEndpoint}"
|
|
1088
|
+
)
|
|
846
1089
|
|
|
847
|
-
if [ "\${MESH_NODE_ID}"
|
|
848
|
-
|
|
1090
|
+
if [ -n "\${MESH_NODE_ID}" ]; then
|
|
1091
|
+
INSTALL_ARGS+=(--meshnodeid "\${MESH_NODE_ID}")
|
|
849
1092
|
fi
|
|
850
1093
|
|
|
851
1094
|
if [[ $DEBUG -eq 1 ]]; then
|
|
852
|
-
|
|
1095
|
+
INSTALL_ARGS+=(--log debug)
|
|
853
1096
|
fi
|
|
854
1097
|
|
|
855
1098
|
if [[ $INSECURE -eq 1 ]]; then
|
|
856
|
-
|
|
1099
|
+
INSTALL_ARGS+=(--insecure)
|
|
857
1100
|
fi
|
|
858
1101
|
|
|
859
|
-
if [ "\${proxy}"
|
|
860
|
-
|
|
1102
|
+
if [ -n "\${proxy}" ]; then
|
|
1103
|
+
INSTALL_ARGS+=(--proxy "\${proxy}")
|
|
861
1104
|
fi
|
|
862
1105
|
|
|
863
|
-
|
|
1106
|
+
"\${INSTALL_ARGS[@]}"
|
|
864
1107
|
|
|
865
|
-
|
|
866
|
-
cat <<EOF
|
|
1108
|
+
cat > "\${agentSysD}" <<EOF
|
|
867
1109
|
[Unit]
|
|
868
1110
|
Description=Nexus RMM Linux Agent
|
|
869
1111
|
|
|
@@ -880,16 +1122,33 @@ KillMode=process
|
|
|
880
1122
|
[Install]
|
|
881
1123
|
WantedBy=multi-user.target
|
|
882
1124
|
EOF
|
|
883
|
-
)"
|
|
884
|
-
echo "\${tacticalsvc}" | tee \${agentSysD} >/dev/null
|
|
885
1125
|
|
|
886
1126
|
systemctl daemon-reload
|
|
887
|
-
systemctl enable \${agentSvcName}
|
|
888
|
-
systemctl start \${agentSvcName}
|
|
1127
|
+
systemctl enable "\${agentSvcName}"
|
|
1128
|
+
systemctl start "\${agentSvcName}"
|
|
1129
|
+
|
|
1130
|
+
if systemctl is-active --quiet gdm3; then
|
|
1131
|
+
echo "Restarting GDM3..."
|
|
1132
|
+
systemctl restart gdm3
|
|
1133
|
+
else
|
|
1134
|
+
echo "GDM3 not active. Skipping restart."
|
|
1135
|
+
fi
|
|
1136
|
+
|
|
1137
|
+
if systemctl is-active --quiet systemd-logind; then
|
|
1138
|
+
echo "Restarting systemd-logind..."
|
|
1139
|
+
systemctl restart systemd-logind
|
|
1140
|
+
fi
|
|
1141
|
+
|
|
1142
|
+
echo "System serial number:"
|
|
1143
|
+
dmidecode --string system-serial-number 2>/dev/null || echo "(dmidecode failed — possibly running in a VM without SMBIOS data)"
|
|
889
1144
|
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
|
|
1145
|
+
echo ""
|
|
1146
|
+
echo "============================================="
|
|
1147
|
+
echo " Nexus RMM Agent installation complete!"
|
|
1148
|
+
echo "============================================="
|
|
1149
|
+
echo " Agent service: \${agentSvcName}"
|
|
1150
|
+
echo " Status: $(systemctl is-active \${agentSvcName})"
|
|
1151
|
+
echo "============================================="`;
|
|
893
1152
|
}
|
|
894
1153
|
}
|
|
895
1154
|
exports.CoreController = CoreController;
|
|
@@ -18,7 +18,7 @@ class HealthController extends BaseController_1.BaseController {
|
|
|
18
18
|
this.status = (req, res) => {
|
|
19
19
|
const response = {
|
|
20
20
|
service: "aux-server",
|
|
21
|
-
version: "1.0.
|
|
21
|
+
version: "1.0.27",
|
|
22
22
|
meshCentral: {
|
|
23
23
|
connected: this.isWebSocketConnected,
|
|
24
24
|
server: this.meshServer,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coreRoutes.d.ts","sourceRoot":"","sources":["../../src/routes/coreRoutes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEjC,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"coreRoutes.d.ts","sourceRoot":"","sources":["../../src/routes/coreRoutes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEjC,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAW9D,eAAO,MAAM,gBAAgB,GAC3B,gBAAgB,cAAc,EAC9B,gBAAgB,cAAc,KAC7B,MAsLF,CAAC"}
|
|
@@ -153,6 +153,7 @@ const createCoreRoutes = (coreController, authMiddleware) => {
|
|
|
153
153
|
*/
|
|
154
154
|
router.post("/add-user-to-group", authMiddleware.hmacAuth, (0, middleware_1.validateData)(schemas_1.addUserToGroupSchema), (0, middleware_1.asyncHandler)(coreController.addUserToGroup));
|
|
155
155
|
router.post("/endpoint/get-install-script", authMiddleware.hmacAuth, (0, middleware_1.validateData)(schemas_1.getEndpointInstallScriptSchema), (0, middleware_1.asyncHandler)(coreController.getEndpointInstallScript));
|
|
156
|
+
router.post("/endpoint/notify", authMiddleware.hmacAuth, (0, middleware_1.validateData)(schemas_1.endpointNotifyRequestSchema), (0, middleware_1.asyncHandler)(coreController.sendEndpointNotification));
|
|
156
157
|
return router;
|
|
157
158
|
};
|
|
158
159
|
exports.createCoreRoutes = createCoreRoutes;
|
package/dist/types/index.d.ts
CHANGED
|
@@ -37,6 +37,15 @@ export declare enum MeshNodePowerState {
|
|
|
37
37
|
Present = 7,
|
|
38
38
|
Off = 8
|
|
39
39
|
}
|
|
40
|
+
export declare enum NotifyDeliveryType {
|
|
41
|
+
TOAST = "toast",
|
|
42
|
+
MESSAGEBOX = "messagebox",
|
|
43
|
+
ALERTBOX = "alertbox"
|
|
44
|
+
}
|
|
45
|
+
export declare enum NotifyResultStatus {
|
|
46
|
+
SENT = "sent",
|
|
47
|
+
FAILED = "failed"
|
|
48
|
+
}
|
|
40
49
|
export declare const LIMITS: {
|
|
41
50
|
readonly MAX_ID: number;
|
|
42
51
|
readonly MAX_URL_LENGTH: 4096;
|
|
@@ -131,12 +140,14 @@ export interface Config {
|
|
|
131
140
|
password: string;
|
|
132
141
|
server: string;
|
|
133
142
|
host: string;
|
|
143
|
+
externalHost: string;
|
|
134
144
|
loginEncryptionKey: string;
|
|
135
145
|
inviteEncryptionKey: string;
|
|
136
146
|
};
|
|
137
147
|
epmConfig: {
|
|
138
148
|
server: string;
|
|
139
149
|
host: string;
|
|
150
|
+
externalHost: string;
|
|
140
151
|
masterApiKey: string;
|
|
141
152
|
tokenFieldId: number;
|
|
142
153
|
assetTypeFieldId: number;
|
|
@@ -325,5 +336,22 @@ export interface EPMInstalledSoftwaresResponse {
|
|
|
325
336
|
software?: EPMSoftwareItem[];
|
|
326
337
|
agent?: number;
|
|
327
338
|
}
|
|
339
|
+
interface DeviceNotifyResult {
|
|
340
|
+
agent_id: string;
|
|
341
|
+
mesh_node_id: string;
|
|
342
|
+
status: NotifyResultStatus;
|
|
343
|
+
error?: string;
|
|
344
|
+
}
|
|
345
|
+
interface DeviceNotifySummary {
|
|
346
|
+
total: number;
|
|
347
|
+
sent: number;
|
|
348
|
+
failed: number;
|
|
349
|
+
}
|
|
350
|
+
export interface DeviceNotifyResponse {
|
|
351
|
+
success: boolean;
|
|
352
|
+
request_id: string;
|
|
353
|
+
results: DeviceNotifyResult[];
|
|
354
|
+
summary: DeviceNotifySummary;
|
|
355
|
+
}
|
|
328
356
|
export {};
|
|
329
357
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
|
package/dist/types/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.OS_EXECUTABLE_EXTENSIONS = exports.LIMITS = exports.MeshNodePowerState = exports.MeshNodeConnectivityType = exports.OperatingSystems = exports.AgentTypes = exports.IcebergConnectEvents = exports.MeshActions = void 0;
|
|
3
|
+
exports.OS_EXECUTABLE_EXTENSIONS = exports.LIMITS = exports.NotifyResultStatus = exports.NotifyDeliveryType = exports.MeshNodePowerState = exports.MeshNodeConnectivityType = exports.OperatingSystems = exports.AgentTypes = exports.IcebergConnectEvents = exports.MeshActions = void 0;
|
|
4
4
|
var MeshActions;
|
|
5
5
|
(function (MeshActions) {
|
|
6
6
|
MeshActions["MESH_ES"] = "meshes";
|
|
@@ -45,6 +45,17 @@ var MeshNodePowerState;
|
|
|
45
45
|
MeshNodePowerState[MeshNodePowerState["Present"] = 7] = "Present";
|
|
46
46
|
MeshNodePowerState[MeshNodePowerState["Off"] = 8] = "Off";
|
|
47
47
|
})(MeshNodePowerState || (exports.MeshNodePowerState = MeshNodePowerState = {}));
|
|
48
|
+
var NotifyDeliveryType;
|
|
49
|
+
(function (NotifyDeliveryType) {
|
|
50
|
+
NotifyDeliveryType["TOAST"] = "toast";
|
|
51
|
+
NotifyDeliveryType["MESSAGEBOX"] = "messagebox";
|
|
52
|
+
NotifyDeliveryType["ALERTBOX"] = "alertbox";
|
|
53
|
+
})(NotifyDeliveryType || (exports.NotifyDeliveryType = NotifyDeliveryType = {}));
|
|
54
|
+
var NotifyResultStatus;
|
|
55
|
+
(function (NotifyResultStatus) {
|
|
56
|
+
NotifyResultStatus["SENT"] = "sent";
|
|
57
|
+
NotifyResultStatus["FAILED"] = "failed";
|
|
58
|
+
})(NotifyResultStatus || (exports.NotifyResultStatus = NotifyResultStatus = {}));
|
|
48
59
|
exports.LIMITS = {
|
|
49
60
|
MAX_ID: Number.MAX_SAFE_INTEGER,
|
|
50
61
|
MAX_URL_LENGTH: 4096,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import z from "zod";
|
|
2
|
-
import { AgentTypes, OperatingSystems } from "..";
|
|
2
|
+
import { AgentTypes, OperatingSystems, NotifyDeliveryType } from "..";
|
|
3
3
|
export declare const generateDownloadLinkSchema: z.ZodObject<{
|
|
4
4
|
deviceGroupId: z.ZodOptional<z.ZodString>;
|
|
5
5
|
deviceGroupName: z.ZodOptional<z.ZodString>;
|
|
@@ -27,9 +27,17 @@ export declare const getEndpointInstallScriptSchema: z.ZodObject<{
|
|
|
27
27
|
installerToken: z.ZodString;
|
|
28
28
|
os: z.ZodEnum<typeof OperatingSystems>;
|
|
29
29
|
}, z.core.$strict>;
|
|
30
|
+
export declare const endpointNotifyRequestSchema: z.ZodObject<{
|
|
31
|
+
agent_ids: z.ZodArray<z.ZodString>;
|
|
32
|
+
title: z.ZodString;
|
|
33
|
+
message: z.ZodString;
|
|
34
|
+
type: z.ZodEnum<typeof NotifyDeliveryType>;
|
|
35
|
+
timeout: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
36
|
+
}, z.core.$strip>;
|
|
30
37
|
export type GenerateDownloadLinkRequest = z.infer<typeof generateDownloadLinkSchema>;
|
|
31
38
|
export type CreateDeviceGroupRequest = z.infer<typeof createDeviceGroupSchema>;
|
|
32
39
|
export type AddUserToGroupRequest = z.infer<typeof addUserToGroupSchema>;
|
|
33
40
|
export type GenerateConnectUrlsRequest = z.infer<typeof generateConnectUrlsSchema>;
|
|
34
41
|
export type GetEndpointInstallScriptRequest = z.infer<typeof getEndpointInstallScriptSchema>;
|
|
42
|
+
export type EndpointNotifyRequestSchema = z.infer<typeof endpointNotifyRequestSchema>;
|
|
35
43
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/schemas/index.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AACpB,OAAO,EACL,UAAU,EACV,gBAAgB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/schemas/index.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AACpB,OAAO,EACL,UAAU,EACV,gBAAgB,EAGhB,kBAAkB,EACnB,MAAM,IAAI,CAAC;AAEZ,eAAO,MAAM,0BAA0B;;;iBAkEpC,CAAC;AAEJ,eAAO,MAAM,uBAAuB;;;iBA+BlC,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;iBAkH9B,CAAC;AAEJ,eAAO,MAAM,yBAAyB;;;;;iBAgFnC,CAAC;AAEJ,eAAO,MAAM,8BAA8B;;;;;;;kBA8BvC,CAAC;AAEL,eAAO,MAAM,2BAA2B;;;;;;iBActC,CAAC;AAEH,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAC/C,OAAO,0BAA0B,CAClC,CAAC;AACF,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAC/E,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AACzE,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAC9C,OAAO,yBAAyB,CACjC,CAAC;AACF,MAAM,MAAM,+BAA+B,GAAG,CAAC,CAAC,KAAK,CACnD,OAAO,8BAA8B,CACtC,CAAC;AACF,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAC/C,OAAO,2BAA2B,CACnC,CAAC"}
|
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.getEndpointInstallScriptSchema = exports.generateConnectUrlsSchema = exports.addUserToGroupSchema = exports.createDeviceGroupSchema = exports.generateDownloadLinkSchema = void 0;
|
|
6
|
+
exports.endpointNotifyRequestSchema = exports.getEndpointInstallScriptSchema = exports.generateConnectUrlsSchema = exports.addUserToGroupSchema = exports.createDeviceGroupSchema = exports.generateDownloadLinkSchema = void 0;
|
|
7
7
|
const zod_1 = __importDefault(require("zod"));
|
|
8
8
|
const __1 = require("..");
|
|
9
9
|
exports.generateDownloadLinkSchema = zod_1.default
|
|
@@ -245,3 +245,18 @@ exports.getEndpointInstallScriptSchema = zod_1.default
|
|
|
245
245
|
const url = data.endpointUrl.toLowerCase();
|
|
246
246
|
return validExtensions.some((ext) => url.endsWith(ext.toLowerCase()));
|
|
247
247
|
});
|
|
248
|
+
exports.endpointNotifyRequestSchema = zod_1.default.object({
|
|
249
|
+
agent_ids: zod_1.default
|
|
250
|
+
.array(zod_1.default.string().min(1))
|
|
251
|
+
.min(1, "At least one agent_id is required"),
|
|
252
|
+
title: zod_1.default.string().min(1).max(256),
|
|
253
|
+
message: zod_1.default.string().min(1).max(2048),
|
|
254
|
+
type: zod_1.default.nativeEnum(__1.NotifyDeliveryType),
|
|
255
|
+
timeout: zod_1.default
|
|
256
|
+
.number()
|
|
257
|
+
.int()
|
|
258
|
+
.min(0)
|
|
259
|
+
.optional()
|
|
260
|
+
.default(0)
|
|
261
|
+
.describe("Seconds. Only applicable for messagebox. 0 = no timeout."),
|
|
262
|
+
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@meru2802/aux-server",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.27",
|
|
4
4
|
"description": "Nexus EPM auxillary server to facilitate additional functionality required by Scogo Iceberg",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"files": [
|
|
@@ -23,8 +23,8 @@
|
|
|
23
23
|
"@types/ws": "^8.5.12",
|
|
24
24
|
"eslint": "^9.26.0",
|
|
25
25
|
"typescript": "5.8.2",
|
|
26
|
-
"@repo/
|
|
27
|
-
"@repo/
|
|
26
|
+
"@repo/typescript-config": "0.0.0",
|
|
27
|
+
"@repo/eslint-config": "0.0.0"
|
|
28
28
|
},
|
|
29
29
|
"keywords": [],
|
|
30
30
|
"author": "meru2802",
|