@docker-digital/dockernet-agent 0.1.5 → 0.1.7
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/apps/agent/src/agent/agent.module.js +21 -4
- package/dist/apps/agent/src/agent/agent.module.js.map +1 -1
- package/dist/apps/agent/src/agent/commands/agent.command.d.ts +3 -3
- package/dist/apps/agent/src/agent/commands/agent.command.js +2 -3
- package/dist/apps/agent/src/agent/commands/agent.command.js.map +1 -1
- package/dist/apps/agent/src/agent/commands/apikey.command.d.ts +3 -3
- package/dist/apps/agent/src/agent/commands/apikey.command.js +2 -3
- package/dist/apps/agent/src/agent/commands/apikey.command.js.map +1 -1
- package/dist/apps/agent/src/agent/commands/config.command.d.ts +3 -3
- package/dist/apps/agent/src/agent/commands/config.command.js +2 -3
- package/dist/apps/agent/src/agent/commands/config.command.js.map +1 -1
- package/dist/apps/agent/src/agent/commands/log.command.d.ts +3 -3
- package/dist/apps/agent/src/agent/commands/log.command.js +2 -3
- package/dist/apps/agent/src/agent/commands/log.command.js.map +1 -1
- package/dist/apps/agent/src/agent/commands/profiles.command.d.ts +3 -3
- package/dist/apps/agent/src/agent/commands/profiles.command.js +2 -3
- package/dist/apps/agent/src/agent/commands/profiles.command.js.map +1 -1
- package/dist/apps/agent/src/agent/commands/restart.command.d.ts +1 -1
- package/dist/apps/agent/src/agent/commands/restart.command.js +1 -2
- package/dist/apps/agent/src/agent/commands/restart.command.js.map +1 -1
- package/dist/apps/agent/src/agent/commands/run.command.d.ts +14 -7
- package/dist/apps/agent/src/agent/commands/run.command.js +332 -50
- package/dist/apps/agent/src/agent/commands/run.command.js.map +1 -1
- package/dist/apps/agent/src/agent/commands/service.command.d.ts +14 -0
- package/dist/apps/agent/src/agent/commands/service.command.js +132 -0
- package/dist/apps/agent/src/agent/commands/service.command.js.map +1 -0
- package/dist/apps/agent/src/agent/commands/stop.command.d.ts +3 -3
- package/dist/apps/agent/src/agent/commands/stop.command.js +2 -3
- package/dist/apps/agent/src/agent/commands/stop.command.js.map +1 -1
- package/dist/apps/agent/src/agent/commands/upgrade.command.d.ts +3 -3
- package/dist/apps/agent/src/agent/commands/upgrade.command.js +2 -3
- package/dist/apps/agent/src/agent/commands/upgrade.command.js.map +1 -1
- package/dist/apps/agent/src/agent/commands/version.command.d.ts +1 -1
- package/dist/apps/agent/src/agent/commands/version.command.js +1 -1
- package/dist/apps/agent/src/agent/commands/version.command.js.map +1 -1
- package/dist/apps/agent/src/agent/services/api.service.d.ts +2 -2
- package/dist/apps/agent/src/agent/services/api.service.js +87 -27
- package/dist/apps/agent/src/agent/services/api.service.js.map +1 -1
- package/dist/apps/agent/src/agent/services/config.service.d.ts +3 -3
- package/dist/apps/agent/src/agent/services/config.service.js +6 -7
- package/dist/apps/agent/src/agent/services/config.service.js.map +1 -1
- package/dist/apps/agent/src/agent/services/docker-event.service.js +17 -2
- package/dist/apps/agent/src/agent/services/docker-event.service.js.map +1 -1
- package/dist/apps/agent/src/agent/services/docker.service.d.ts +6 -2
- package/dist/apps/agent/src/agent/services/docker.service.js +120 -10
- package/dist/apps/agent/src/agent/services/docker.service.js.map +1 -1
- package/dist/apps/agent/src/agent/services/event-websocket-client.service.d.ts +14 -2
- package/dist/apps/agent/src/agent/services/event-websocket-client.service.js +438 -37
- package/dist/apps/agent/src/agent/services/event-websocket-client.service.js.map +1 -1
- package/dist/apps/agent/src/agent/services/event.service.d.ts +2 -2
- package/dist/apps/agent/src/agent/services/event.service.js +271 -39
- package/dist/apps/agent/src/agent/services/event.service.js.map +1 -1
- package/dist/apps/agent/src/agent/services/index.d.ts +14 -0
- package/dist/apps/agent/src/agent/services/index.js +31 -0
- package/dist/apps/agent/src/agent/services/index.js.map +1 -0
- package/dist/apps/agent/src/agent/services/log.service.d.ts +11 -4
- package/dist/apps/agent/src/agent/services/log.service.js +41 -11
- package/dist/apps/agent/src/agent/services/log.service.js.map +1 -1
- package/dist/apps/agent/src/agent/services/machine.service.d.ts +2 -2
- package/dist/apps/agent/src/agent/services/machine.service.js +174 -40
- package/dist/apps/agent/src/agent/services/machine.service.js.map +1 -1
- package/dist/apps/agent/src/agent/services/nebula.service.d.ts +2 -2
- package/dist/apps/agent/src/agent/services/nebula.service.js +124 -25
- package/dist/apps/agent/src/agent/services/nebula.service.js.map +1 -1
- package/dist/apps/agent/src/agent/services/profile.service.d.ts +11 -2
- package/dist/apps/agent/src/agent/services/profile.service.js +829 -117
- package/dist/apps/agent/src/agent/services/profile.service.js.map +1 -1
- package/dist/apps/agent/src/agent/services/terminal.service.d.ts +2 -2
- package/dist/apps/agent/src/agent/services/terminal.service.js +107 -12
- package/dist/apps/agent/src/agent/services/terminal.service.js.map +1 -1
- package/dist/apps/agent/src/agent/services/volume-backup.service.d.ts +2 -2
- package/dist/apps/agent/src/agent/services/volume-backup.service.js +1 -1
- package/dist/apps/agent/src/agent/services/volume-backup.service.js.map +1 -1
- package/dist/apps/agent/src/agent/services/volume-sync.service.d.ts +2 -2
- package/dist/apps/agent/src/agent/services/volume-sync.service.js +1 -1
- package/dist/apps/agent/src/agent/services/volume-sync.service.js.map +1 -1
- package/dist/apps/agent/src/agent/services/websocket-client.service.d.ts +11 -3
- package/dist/apps/agent/src/agent/services/websocket-client.service.js +2 -2
- package/dist/apps/agent/src/agent/services/websocket-client.service.js.map +1 -1
- package/dist/apps/agent/src/api/agent-control.controller.d.ts +43 -0
- package/dist/apps/agent/src/api/agent-control.controller.js +123 -0
- package/dist/apps/agent/src/api/agent-control.controller.js.map +1 -0
- package/dist/apps/agent/src/api/api.module.d.ts +2 -0
- package/dist/apps/agent/src/api/api.module.js +62 -0
- package/dist/apps/agent/src/api/api.module.js.map +1 -0
- package/dist/apps/agent/src/api/health.controller.d.ts +9 -0
- package/dist/apps/agent/src/api/health.controller.js +36 -0
- package/dist/apps/agent/src/api/health.controller.js.map +1 -0
- package/dist/apps/agent/src/api/logs.controller.d.ts +11 -0
- package/dist/apps/agent/src/api/logs.controller.js +50 -0
- package/dist/apps/agent/src/api/logs.controller.js.map +1 -0
- package/dist/apps/agent/src/api/machine.controller.d.ts +21 -0
- package/dist/apps/agent/src/api/machine.controller.js +48 -0
- package/dist/apps/agent/src/api/machine.controller.js.map +1 -0
- package/dist/apps/agent/src/api/metrics.controller.d.ts +17 -0
- package/dist/apps/agent/src/api/metrics.controller.js +48 -0
- package/dist/apps/agent/src/api/metrics.controller.js.map +1 -0
- package/dist/apps/agent/src/api/network.controller.d.ts +15 -0
- package/dist/apps/agent/src/api/network.controller.js +50 -0
- package/dist/apps/agent/src/api/network.controller.js.map +1 -0
- package/dist/apps/agent/src/api/profiles.controller.d.ts +16 -0
- package/dist/apps/agent/src/api/profiles.controller.js +71 -0
- package/dist/apps/agent/src/api/profiles.controller.js.map +1 -0
- package/dist/apps/agent/src/api/services.controller.d.ts +10 -0
- package/dist/apps/agent/src/api/services.controller.js +77 -0
- package/dist/apps/agent/src/api/services.controller.js.map +1 -0
- package/dist/apps/agent/src/api/status.controller.d.ts +53 -0
- package/dist/apps/agent/src/api/status.controller.js +157 -0
- package/dist/apps/agent/src/api/status.controller.js.map +1 -0
- package/dist/apps/agent/src/app.module.js +2 -0
- package/dist/apps/agent/src/app.module.js.map +1 -1
- package/dist/shared/common/utils/cli-logger.util.d.ts +10 -1
- package/dist/shared/common/utils/cli-logger.util.js +48 -5
- package/dist/shared/common/utils/cli-logger.util.js.map +1 -1
- package/dist/shared/common/utils/constant.d.ts +22 -0
- package/dist/shared/common/utils/constant.js +26 -0
- package/dist/shared/common/utils/constant.js.map +1 -0
- package/dist/shared/common/utils/index.d.ts +2 -1
- package/dist/shared/common/utils/index.js +2 -1
- package/dist/shared/common/utils/index.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +27 -7
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { ConfigAgentService } from '../agent/services/config.service';
|
|
2
|
+
export declare class AgentControlController {
|
|
3
|
+
private readonly configService;
|
|
4
|
+
constructor(configService: ConfigAgentService);
|
|
5
|
+
getAgentRuntimeStatus(): Promise<{
|
|
6
|
+
daemon: {
|
|
7
|
+
pid: number;
|
|
8
|
+
state: string;
|
|
9
|
+
};
|
|
10
|
+
api: {
|
|
11
|
+
pid: number;
|
|
12
|
+
uptime_seconds: number;
|
|
13
|
+
};
|
|
14
|
+
version: string;
|
|
15
|
+
}>;
|
|
16
|
+
startAgent(): Promise<{
|
|
17
|
+
ok: boolean;
|
|
18
|
+
}>;
|
|
19
|
+
stopAgent(): Promise<{
|
|
20
|
+
ok: boolean;
|
|
21
|
+
stopped: boolean;
|
|
22
|
+
reason: string;
|
|
23
|
+
pid?: undefined;
|
|
24
|
+
error?: undefined;
|
|
25
|
+
} | {
|
|
26
|
+
ok: boolean;
|
|
27
|
+
stopped: boolean;
|
|
28
|
+
pid: number;
|
|
29
|
+
reason?: undefined;
|
|
30
|
+
error?: undefined;
|
|
31
|
+
} | {
|
|
32
|
+
ok: boolean;
|
|
33
|
+
stopped: boolean;
|
|
34
|
+
pid: number;
|
|
35
|
+
error: any;
|
|
36
|
+
reason?: undefined;
|
|
37
|
+
}>;
|
|
38
|
+
restartAgent(body?: {
|
|
39
|
+
delay_ms?: number;
|
|
40
|
+
}): Promise<{
|
|
41
|
+
ok: boolean;
|
|
42
|
+
}>;
|
|
43
|
+
}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.AgentControlController = void 0;
|
|
16
|
+
const common_1 = require("@nestjs/common");
|
|
17
|
+
const fs = require("fs-extra");
|
|
18
|
+
const child_process_1 = require("child_process");
|
|
19
|
+
const config_service_1 = require("../agent/services/config.service");
|
|
20
|
+
let AgentControlController = class AgentControlController {
|
|
21
|
+
constructor(configService) {
|
|
22
|
+
this.configService = configService;
|
|
23
|
+
}
|
|
24
|
+
async getAgentRuntimeStatus() {
|
|
25
|
+
const pidFile = this.configService.pidFilePath;
|
|
26
|
+
let daemonPid = null;
|
|
27
|
+
if (await fs.pathExists(pidFile)) {
|
|
28
|
+
const content = await fs.readFile(pidFile, 'utf-8').catch(() => '');
|
|
29
|
+
const pid = parseInt(content.trim(), 10);
|
|
30
|
+
if (pid && !Number.isNaN(pid))
|
|
31
|
+
daemonPid = pid;
|
|
32
|
+
}
|
|
33
|
+
let daemonRunning = false;
|
|
34
|
+
if (daemonPid) {
|
|
35
|
+
try {
|
|
36
|
+
process.kill(daemonPid, 0);
|
|
37
|
+
daemonRunning = true;
|
|
38
|
+
}
|
|
39
|
+
catch {
|
|
40
|
+
daemonRunning = false;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return {
|
|
44
|
+
daemon: {
|
|
45
|
+
pid: daemonPid,
|
|
46
|
+
state: daemonRunning ? 'RUNNING' : 'STOPPED',
|
|
47
|
+
},
|
|
48
|
+
api: {
|
|
49
|
+
pid: process.pid,
|
|
50
|
+
uptime_seconds: Math.floor(process.uptime()),
|
|
51
|
+
},
|
|
52
|
+
version: process.env.npm_package_version || 'unknown',
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
async startAgent() {
|
|
56
|
+
const execPath = process.execPath;
|
|
57
|
+
const entry = process.argv[1];
|
|
58
|
+
const child = (0, child_process_1.spawn)(execPath, [entry, 'run'], {
|
|
59
|
+
detached: true,
|
|
60
|
+
stdio: 'ignore',
|
|
61
|
+
env: process.env,
|
|
62
|
+
});
|
|
63
|
+
child.unref();
|
|
64
|
+
return { ok: true };
|
|
65
|
+
}
|
|
66
|
+
async stopAgent() {
|
|
67
|
+
const pidFile = this.configService.pidFilePath;
|
|
68
|
+
if (!(await fs.pathExists(pidFile))) {
|
|
69
|
+
return { ok: true, stopped: false, reason: 'pid_file_not_found' };
|
|
70
|
+
}
|
|
71
|
+
const content = await fs.readFile(pidFile, 'utf-8').catch(() => '');
|
|
72
|
+
const pid = parseInt(content.trim(), 10);
|
|
73
|
+
if (!pid || Number.isNaN(pid)) {
|
|
74
|
+
await fs.remove(pidFile);
|
|
75
|
+
return { ok: true, stopped: false, reason: 'invalid_pid_file' };
|
|
76
|
+
}
|
|
77
|
+
try {
|
|
78
|
+
process.kill(pid, 'SIGTERM');
|
|
79
|
+
await fs.remove(pidFile);
|
|
80
|
+
return { ok: true, stopped: true, pid };
|
|
81
|
+
}
|
|
82
|
+
catch (e) {
|
|
83
|
+
return { ok: false, stopped: false, pid, error: e?.message || 'kill_failed' };
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
async restartAgent(body) {
|
|
87
|
+
await this.stopAgent();
|
|
88
|
+
const delay = Math.min(Math.max(body?.delay_ms || 1500, 0), 5000);
|
|
89
|
+
await new Promise((r) => setTimeout(r, delay));
|
|
90
|
+
return this.startAgent();
|
|
91
|
+
}
|
|
92
|
+
};
|
|
93
|
+
exports.AgentControlController = AgentControlController;
|
|
94
|
+
__decorate([
|
|
95
|
+
(0, common_1.Get)('status'),
|
|
96
|
+
__metadata("design:type", Function),
|
|
97
|
+
__metadata("design:paramtypes", []),
|
|
98
|
+
__metadata("design:returntype", Promise)
|
|
99
|
+
], AgentControlController.prototype, "getAgentRuntimeStatus", null);
|
|
100
|
+
__decorate([
|
|
101
|
+
(0, common_1.Post)('start'),
|
|
102
|
+
__metadata("design:type", Function),
|
|
103
|
+
__metadata("design:paramtypes", []),
|
|
104
|
+
__metadata("design:returntype", Promise)
|
|
105
|
+
], AgentControlController.prototype, "startAgent", null);
|
|
106
|
+
__decorate([
|
|
107
|
+
(0, common_1.Post)('stop'),
|
|
108
|
+
__metadata("design:type", Function),
|
|
109
|
+
__metadata("design:paramtypes", []),
|
|
110
|
+
__metadata("design:returntype", Promise)
|
|
111
|
+
], AgentControlController.prototype, "stopAgent", null);
|
|
112
|
+
__decorate([
|
|
113
|
+
(0, common_1.Post)('restart'),
|
|
114
|
+
__param(0, (0, common_1.Body)()),
|
|
115
|
+
__metadata("design:type", Function),
|
|
116
|
+
__metadata("design:paramtypes", [Object]),
|
|
117
|
+
__metadata("design:returntype", Promise)
|
|
118
|
+
], AgentControlController.prototype, "restartAgent", null);
|
|
119
|
+
exports.AgentControlController = AgentControlController = __decorate([
|
|
120
|
+
(0, common_1.Controller)(),
|
|
121
|
+
__metadata("design:paramtypes", [config_service_1.ConfigAgentService])
|
|
122
|
+
], AgentControlController);
|
|
123
|
+
//# sourceMappingURL=agent-control.controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-control.controller.js","sourceRoot":"","sources":["../../../../../src/api/agent-control.controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.ApiModule = void 0;
|
|
10
|
+
const common_1 = require("@nestjs/common");
|
|
11
|
+
const config_1 = require("@nestjs/config");
|
|
12
|
+
const profiles_controller_1 = require("./profiles.controller");
|
|
13
|
+
const services_controller_1 = require("./services.controller");
|
|
14
|
+
const status_controller_1 = require("./status.controller");
|
|
15
|
+
const health_controller_1 = require("./health.controller");
|
|
16
|
+
const machine_controller_1 = require("./machine.controller");
|
|
17
|
+
const metrics_controller_1 = require("./metrics.controller");
|
|
18
|
+
const network_controller_1 = require("./network.controller");
|
|
19
|
+
const logs_controller_1 = require("./logs.controller");
|
|
20
|
+
const agent_control_controller_1 = require("./agent-control.controller");
|
|
21
|
+
const api_service_1 = require("../agent/services/api.service");
|
|
22
|
+
const services_1 = require("../agent/services");
|
|
23
|
+
let ApiModule = class ApiModule {
|
|
24
|
+
};
|
|
25
|
+
exports.ApiModule = ApiModule;
|
|
26
|
+
exports.ApiModule = ApiModule = __decorate([
|
|
27
|
+
(0, common_1.Module)({
|
|
28
|
+
imports: [
|
|
29
|
+
config_1.ConfigModule.forRoot({
|
|
30
|
+
isGlobal: true,
|
|
31
|
+
envFilePath: ['.env.local', '.env'],
|
|
32
|
+
}),
|
|
33
|
+
],
|
|
34
|
+
providers: [
|
|
35
|
+
api_service_1.ApiService,
|
|
36
|
+
services_1.ConfigAgentService,
|
|
37
|
+
services_1.DockerService,
|
|
38
|
+
services_1.DockerEventService,
|
|
39
|
+
services_1.EventService,
|
|
40
|
+
services_1.LogService,
|
|
41
|
+
services_1.MachineService,
|
|
42
|
+
services_1.ProfileService,
|
|
43
|
+
services_1.VolumeSyncService,
|
|
44
|
+
services_1.VolumeBackupService,
|
|
45
|
+
services_1.WebSocketClientService,
|
|
46
|
+
services_1.EventWebSocketClientService,
|
|
47
|
+
services_1.NebulaService,
|
|
48
|
+
],
|
|
49
|
+
controllers: [
|
|
50
|
+
profiles_controller_1.ProfilesController,
|
|
51
|
+
services_controller_1.ServicesController,
|
|
52
|
+
status_controller_1.StatusController,
|
|
53
|
+
health_controller_1.HealthController,
|
|
54
|
+
machine_controller_1.MachineController,
|
|
55
|
+
metrics_controller_1.MetricsController,
|
|
56
|
+
network_controller_1.NetworkController,
|
|
57
|
+
logs_controller_1.LogsController,
|
|
58
|
+
agent_control_controller_1.AgentControlController,
|
|
59
|
+
],
|
|
60
|
+
})
|
|
61
|
+
], ApiModule);
|
|
62
|
+
//# sourceMappingURL=api.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.module.js","sourceRoot":"","sources":["../../../../../src/api/api.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAoD;AACpD,2CAA8C;AAE9C,+DAA2D;AAC3D,+DAA2D;AAC3D,2DAAuD;AACvD,2DAAuD;AACvD,6DAAyD;AACzD,6DAAyD;AACzD,6DAAyD;AACzD,uDAAmD;AACnD,yEAAoE;AACpE,+DAA2D;AAC3D,gDAAiQ;AAsC1P,IAAM,SAAS,GAAf,MAAM,SAAS;CAAG,CAAA;AAAZ,8BAAS;oBAAT,SAAS;IApCrB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YAEP,qBAAY,CAAC,OAAO,CAAC;gBACnB,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,CAAC,YAAY,EAAE,MAAM,CAAC;aACpC,CAAC;SAEH;QACD,SAAS,EAAC;YACR,wBAAU;YACV,6BAAkB;YAClB,wBAAa;YACb,6BAAkB;YAClB,uBAAY;YACZ,qBAAU;YACV,yBAAc;YACd,yBAAc;YACd,4BAAiB;YACjB,8BAAmB;YACnB,iCAAsB;YACtB,sCAA2B;YAC3B,wBAAa;SACd;QACD,WAAW,EAAE;YACX,wCAAkB;YAClB,wCAAkB;YAClB,oCAAgB;YAChB,oCAAgB;YAChB,sCAAiB;YACjB,sCAAiB;YACjB,sCAAiB;YACjB,gCAAc;YACd,iDAAsB;SACvB;KACF,CAAC;GACW,SAAS,CAAG"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.HealthController = void 0;
|
|
13
|
+
const common_1 = require("@nestjs/common");
|
|
14
|
+
const os = require("os");
|
|
15
|
+
let HealthController = class HealthController {
|
|
16
|
+
async health() {
|
|
17
|
+
return {
|
|
18
|
+
status: 'ok',
|
|
19
|
+
pid: process.pid,
|
|
20
|
+
uptime_seconds: Math.floor(process.uptime()),
|
|
21
|
+
hostname: os.hostname(),
|
|
22
|
+
timestamp: new Date().toISOString(),
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
exports.HealthController = HealthController;
|
|
27
|
+
__decorate([
|
|
28
|
+
(0, common_1.Get)('health'),
|
|
29
|
+
__metadata("design:type", Function),
|
|
30
|
+
__metadata("design:paramtypes", []),
|
|
31
|
+
__metadata("design:returntype", Promise)
|
|
32
|
+
], HealthController.prototype, "health", null);
|
|
33
|
+
exports.HealthController = HealthController = __decorate([
|
|
34
|
+
(0, common_1.Controller)()
|
|
35
|
+
], HealthController);
|
|
36
|
+
//# sourceMappingURL=health.controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"health.controller.js","sourceRoot":"","sources":["../../../../../src/api/health.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAiD;AACjD,yBAAyB;AAGlB,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IAErB,AAAN,KAAK,CAAC,MAAM;QACV,OAAO;YACL,MAAM,EAAE,IAAI;YACZ,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YAC5C,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE;YACvB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC;IACJ,CAAC;CACF,CAAA;AAXY,4CAAgB;AAErB;IADL,IAAA,YAAG,EAAC,QAAQ,CAAC;;;;8CASb;2BAVU,gBAAgB;IAD5B,IAAA,mBAAU,GAAE;GACA,gBAAgB,CAW5B"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ConfigAgentService } from '../agent/services/config.service';
|
|
2
|
+
export declare class LogsController {
|
|
3
|
+
private readonly configService;
|
|
4
|
+
constructor(configService: ConfigAgentService);
|
|
5
|
+
getLogs(limit?: string): Promise<{
|
|
6
|
+
file: string;
|
|
7
|
+
entries: {
|
|
8
|
+
line: string;
|
|
9
|
+
}[];
|
|
10
|
+
}>;
|
|
11
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.LogsController = void 0;
|
|
16
|
+
const common_1 = require("@nestjs/common");
|
|
17
|
+
const fs = require("fs-extra");
|
|
18
|
+
const config_service_1 = require("../agent/services/config.service");
|
|
19
|
+
let LogsController = class LogsController {
|
|
20
|
+
constructor(configService) {
|
|
21
|
+
this.configService = configService;
|
|
22
|
+
}
|
|
23
|
+
async getLogs(limit) {
|
|
24
|
+
const filePath = this.configService.logFilePath;
|
|
25
|
+
const maxLines = Math.min(parseInt(limit || '200', 10) || 200, 2000);
|
|
26
|
+
if (!(await fs.pathExists(filePath))) {
|
|
27
|
+
return { entries: [], file: filePath };
|
|
28
|
+
}
|
|
29
|
+
const content = await fs.readFile(filePath, 'utf-8');
|
|
30
|
+
const lines = content.split('\n').filter(Boolean);
|
|
31
|
+
const tail = lines.slice(-maxLines);
|
|
32
|
+
return {
|
|
33
|
+
file: filePath,
|
|
34
|
+
entries: tail.map((line) => ({ line })),
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
exports.LogsController = LogsController;
|
|
39
|
+
__decorate([
|
|
40
|
+
(0, common_1.Get)('logs'),
|
|
41
|
+
__param(0, (0, common_1.Query)('limit')),
|
|
42
|
+
__metadata("design:type", Function),
|
|
43
|
+
__metadata("design:paramtypes", [String]),
|
|
44
|
+
__metadata("design:returntype", Promise)
|
|
45
|
+
], LogsController.prototype, "getLogs", null);
|
|
46
|
+
exports.LogsController = LogsController = __decorate([
|
|
47
|
+
(0, common_1.Controller)(),
|
|
48
|
+
__metadata("design:paramtypes", [config_service_1.ConfigAgentService])
|
|
49
|
+
], LogsController);
|
|
50
|
+
//# sourceMappingURL=logs.controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logs.controller.js","sourceRoot":"","sources":["../../../../../src/api/logs.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAwD;AACxD,+BAA+B;AAC/B,qEAAsE;AAG/D,IAAM,cAAc,GAApB,MAAM,cAAc;IACzB,YAA6B,aAAiC;QAAjC,kBAAa,GAAb,aAAa,CAAoB;IAAG,CAAC;IAG5D,AAAN,KAAK,CAAC,OAAO,CAAiB,KAAc;QAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC;QAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,IAAI,KAAK,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,IAAI,CAAC,CAAC;QAErE,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;YACrC,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QACzC,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACrD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAClD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC;QAEpC,OAAO;YACL,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;SACxC,CAAC;IACJ,CAAC;CACF,CAAA;AArBY,wCAAc;AAInB;IADL,IAAA,YAAG,EAAC,MAAM,CAAC;IACG,WAAA,IAAA,cAAK,EAAC,OAAO,CAAC,CAAA;;;;6CAgB5B;yBApBU,cAAc;IAD1B,IAAA,mBAAU,GAAE;qCAEiC,mCAAkB;GADnD,cAAc,CAqB1B"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export declare class MachineController {
|
|
2
|
+
getMachine(): Promise<{
|
|
3
|
+
os: string;
|
|
4
|
+
hostname: string;
|
|
5
|
+
arch: string;
|
|
6
|
+
platform: NodeJS.Platform;
|
|
7
|
+
release: string;
|
|
8
|
+
cpu: {
|
|
9
|
+
model: string;
|
|
10
|
+
cores: number;
|
|
11
|
+
};
|
|
12
|
+
memory: {
|
|
13
|
+
total_bytes: number;
|
|
14
|
+
};
|
|
15
|
+
agent: {
|
|
16
|
+
version: string;
|
|
17
|
+
pid: number;
|
|
18
|
+
uptime_seconds: number;
|
|
19
|
+
};
|
|
20
|
+
}>;
|
|
21
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.MachineController = void 0;
|
|
13
|
+
const common_1 = require("@nestjs/common");
|
|
14
|
+
const os = require("os");
|
|
15
|
+
let MachineController = class MachineController {
|
|
16
|
+
async getMachine() {
|
|
17
|
+
return {
|
|
18
|
+
os: `${os.platform()} ${os.release()}`,
|
|
19
|
+
hostname: os.hostname(),
|
|
20
|
+
arch: os.arch(),
|
|
21
|
+
platform: os.platform(),
|
|
22
|
+
release: os.release(),
|
|
23
|
+
cpu: {
|
|
24
|
+
model: os.cpus()?.[0]?.model || 'Unknown',
|
|
25
|
+
cores: os.cpus()?.length || 0,
|
|
26
|
+
},
|
|
27
|
+
memory: {
|
|
28
|
+
total_bytes: os.totalmem(),
|
|
29
|
+
},
|
|
30
|
+
agent: {
|
|
31
|
+
version: process.env.npm_package_version || 'unknown',
|
|
32
|
+
pid: process.pid,
|
|
33
|
+
uptime_seconds: Math.floor(process.uptime()),
|
|
34
|
+
},
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
exports.MachineController = MachineController;
|
|
39
|
+
__decorate([
|
|
40
|
+
(0, common_1.Get)('machine'),
|
|
41
|
+
__metadata("design:type", Function),
|
|
42
|
+
__metadata("design:paramtypes", []),
|
|
43
|
+
__metadata("design:returntype", Promise)
|
|
44
|
+
], MachineController.prototype, "getMachine", null);
|
|
45
|
+
exports.MachineController = MachineController = __decorate([
|
|
46
|
+
(0, common_1.Controller)()
|
|
47
|
+
], MachineController);
|
|
48
|
+
//# sourceMappingURL=machine.controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"machine.controller.js","sourceRoot":"","sources":["../../../../../src/api/machine.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAiD;AACjD,yBAAyB;AAGlB,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAEtB,AAAN,KAAK,CAAC,UAAU;QACd,OAAO;YACL,EAAE,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE;YACtC,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE;YACvB,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE;YACf,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE;YACvB,OAAO,EAAE,EAAE,CAAC,OAAO,EAAE;YACrB,GAAG,EAAE;gBACH,KAAK,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,SAAS;gBACzC,KAAK,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,MAAM,IAAI,CAAC;aAC9B;YACD,MAAM,EAAE;gBACN,WAAW,EAAE,EAAE,CAAC,QAAQ,EAAE;aAC3B;YACD,KAAK,EAAE;gBACL,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,SAAS;gBACrD,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;aAC7C;SACF,CAAC;IACJ,CAAC;CACF,CAAA;AAvBY,8CAAiB;AAEtB;IADL,IAAA,YAAG,EAAC,SAAS,CAAC;;;;mDAqBd;4BAtBU,iBAAiB;IAD7B,IAAA,mBAAU,GAAE;GACA,iBAAiB,CAuB7B"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export declare class MetricsController {
|
|
2
|
+
getMetrics(): Promise<{
|
|
3
|
+
cpu: {
|
|
4
|
+
usage_percent: number;
|
|
5
|
+
};
|
|
6
|
+
memory: {
|
|
7
|
+
usage_percent: number;
|
|
8
|
+
used_bytes: number;
|
|
9
|
+
total_bytes: number;
|
|
10
|
+
};
|
|
11
|
+
network: {
|
|
12
|
+
rx_bytes: any;
|
|
13
|
+
tx_bytes: any;
|
|
14
|
+
};
|
|
15
|
+
timestamp: string;
|
|
16
|
+
}>;
|
|
17
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.MetricsController = void 0;
|
|
13
|
+
const common_1 = require("@nestjs/common");
|
|
14
|
+
const os = require("os");
|
|
15
|
+
let MetricsController = class MetricsController {
|
|
16
|
+
async getMetrics() {
|
|
17
|
+
const cpus = os.cpus();
|
|
18
|
+
const loadAvg = os.loadavg();
|
|
19
|
+
const cpuUsage = Math.min(100, (loadAvg[0] / Math.max(cpus.length, 1)) * 100);
|
|
20
|
+
const totalMem = os.totalmem();
|
|
21
|
+
const freeMem = os.freemem();
|
|
22
|
+
const usedMem = totalMem - freeMem;
|
|
23
|
+
return {
|
|
24
|
+
cpu: { usage_percent: Math.round(cpuUsage) },
|
|
25
|
+
memory: {
|
|
26
|
+
usage_percent: Math.round((usedMem / totalMem) * 100),
|
|
27
|
+
used_bytes: usedMem,
|
|
28
|
+
total_bytes: totalMem,
|
|
29
|
+
},
|
|
30
|
+
network: {
|
|
31
|
+
rx_bytes: null,
|
|
32
|
+
tx_bytes: null,
|
|
33
|
+
},
|
|
34
|
+
timestamp: new Date().toISOString(),
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
exports.MetricsController = MetricsController;
|
|
39
|
+
__decorate([
|
|
40
|
+
(0, common_1.Get)('metrics'),
|
|
41
|
+
__metadata("design:type", Function),
|
|
42
|
+
__metadata("design:paramtypes", []),
|
|
43
|
+
__metadata("design:returntype", Promise)
|
|
44
|
+
], MetricsController.prototype, "getMetrics", null);
|
|
45
|
+
exports.MetricsController = MetricsController = __decorate([
|
|
46
|
+
(0, common_1.Controller)()
|
|
47
|
+
], MetricsController);
|
|
48
|
+
//# sourceMappingURL=metrics.controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metrics.controller.js","sourceRoot":"","sources":["../../../../../src/api/metrics.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAiD;AACjD,yBAAyB;AAGlB,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAEtB,AAAN,KAAK,CAAC,UAAU;QACd,MAAM,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;QACvB,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;QAE9E,MAAM,QAAQ,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;QAGnC,OAAO;YACL,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE;YAC5C,MAAM,EAAE;gBACN,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,QAAQ,CAAC,GAAG,GAAG,CAAC;gBACrD,UAAU,EAAE,OAAO;gBACnB,WAAW,EAAE,QAAQ;aACtB;YACD,OAAO,EAAE;gBACP,QAAQ,EAAE,IAAI;gBACd,QAAQ,EAAE,IAAI;aACf;YACD,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC;IACJ,CAAC;CACF,CAAA;AA1BY,8CAAiB;AAEtB;IADL,IAAA,YAAG,EAAC,SAAS,CAAC;;;;mDAwBd;4BAzBU,iBAAiB;IAD7B,IAAA,mBAAU,GAAE;GACA,iBAAiB,CA0B7B"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { NebulaService } from '../agent/services/nebula.service';
|
|
2
|
+
export declare class NetworkController {
|
|
3
|
+
private readonly nebulaService;
|
|
4
|
+
constructor(nebulaService: NebulaService);
|
|
5
|
+
getNetwork(): Promise<{
|
|
6
|
+
nebula_ip: string;
|
|
7
|
+
tailscale_ip: any;
|
|
8
|
+
public_ip: any;
|
|
9
|
+
local_ips: {
|
|
10
|
+
name: string;
|
|
11
|
+
address: string;
|
|
12
|
+
family: string;
|
|
13
|
+
}[];
|
|
14
|
+
}>;
|
|
15
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.NetworkController = void 0;
|
|
13
|
+
const common_1 = require("@nestjs/common");
|
|
14
|
+
const os = require("os");
|
|
15
|
+
const nebula_service_1 = require("../agent/services/nebula.service");
|
|
16
|
+
let NetworkController = class NetworkController {
|
|
17
|
+
constructor(nebulaService) {
|
|
18
|
+
this.nebulaService = nebulaService;
|
|
19
|
+
}
|
|
20
|
+
async getNetwork() {
|
|
21
|
+
const interfaces = os.networkInterfaces();
|
|
22
|
+
const localIps = [];
|
|
23
|
+
for (const [name, addrs] of Object.entries(interfaces)) {
|
|
24
|
+
for (const addr of addrs || []) {
|
|
25
|
+
if (addr.internal)
|
|
26
|
+
continue;
|
|
27
|
+
localIps.push({ name, address: addr.address, family: addr.family });
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
const nebulaIp = await this.nebulaService.getNebulaIP();
|
|
31
|
+
return {
|
|
32
|
+
nebula_ip: nebulaIp,
|
|
33
|
+
tailscale_ip: null,
|
|
34
|
+
public_ip: null,
|
|
35
|
+
local_ips: localIps,
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
exports.NetworkController = NetworkController;
|
|
40
|
+
__decorate([
|
|
41
|
+
(0, common_1.Get)('network'),
|
|
42
|
+
__metadata("design:type", Function),
|
|
43
|
+
__metadata("design:paramtypes", []),
|
|
44
|
+
__metadata("design:returntype", Promise)
|
|
45
|
+
], NetworkController.prototype, "getNetwork", null);
|
|
46
|
+
exports.NetworkController = NetworkController = __decorate([
|
|
47
|
+
(0, common_1.Controller)(),
|
|
48
|
+
__metadata("design:paramtypes", [nebula_service_1.NebulaService])
|
|
49
|
+
], NetworkController);
|
|
50
|
+
//# sourceMappingURL=network.controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"network.controller.js","sourceRoot":"","sources":["../../../../../src/api/network.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAiD;AACjD,yBAAyB;AACzB,qEAAiE;AAG1D,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAC5B,YAA6B,aAA4B;QAA5B,kBAAa,GAAb,aAAa,CAAe;IAAG,CAAC;IAGvD,AAAN,KAAK,CAAC,UAAU;QACd,MAAM,UAAU,GAAG,EAAE,CAAC,iBAAiB,EAAE,CAAC;QAC1C,MAAM,QAAQ,GAA6D,EAAE,CAAC;QAE9E,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;YACvD,KAAK,MAAM,IAAI,IAAI,KAAK,IAAI,EAAE,EAAE,CAAC;gBAC/B,IAAI,IAAI,CAAC,QAAQ;oBAAE,SAAS;gBAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;YACtE,CAAC;QACH,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;QAGxD,OAAO;YACL,SAAS,EAAE,QAAQ;YACnB,YAAY,EAAE,IAAI;YAClB,SAAS,EAAE,IAAI;YACf,SAAS,EAAE,QAAQ;SACpB,CAAC;IACJ,CAAC;CACF,CAAA;AAzBY,8CAAiB;AAItB;IADL,IAAA,YAAG,EAAC,SAAS,CAAC;;;;mDAqBd;4BAxBU,iBAAiB;IAD7B,IAAA,mBAAU,GAAE;qCAEiC,8BAAa;GAD9C,iBAAiB,CAyB7B"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ProfileService } from '../agent/services/profile.service';
|
|
2
|
+
export declare class ProfilesController {
|
|
3
|
+
private readonly profileService;
|
|
4
|
+
constructor(profileService: ProfileService);
|
|
5
|
+
getProfiles(): Promise<{
|
|
6
|
+
key: string;
|
|
7
|
+
workspace_id: string;
|
|
8
|
+
services?: Array<{
|
|
9
|
+
name: string;
|
|
10
|
+
key: string;
|
|
11
|
+
}>;
|
|
12
|
+
}[]>;
|
|
13
|
+
getProfile(key: string): Promise<any>;
|
|
14
|
+
startProfile(key: string, body: any): Promise<void>;
|
|
15
|
+
stopProfile(key: string, body: any): Promise<void>;
|
|
16
|
+
}
|