@edgible-team/cli 1.2.4 → 1.2.8
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/commands/agent/agent-handlers.d.ts +45 -0
- package/dist/commands/agent/agent-handlers.d.ts.map +1 -0
- package/dist/commands/agent/agent-handlers.js +1159 -0
- package/dist/commands/agent/install.d.ts +11 -0
- package/dist/commands/agent/install.d.ts.map +1 -0
- package/dist/commands/agent/install.js +399 -0
- package/dist/commands/agent/logs.d.ts +12 -0
- package/dist/commands/agent/logs.d.ts.map +1 -0
- package/dist/commands/agent/logs.js +77 -0
- package/dist/commands/agent/restart.d.ts +4 -0
- package/dist/commands/agent/restart.d.ts.map +1 -0
- package/dist/commands/agent/restart.js +33 -0
- package/dist/commands/agent/set-log-level.d.ts +8 -0
- package/dist/commands/agent/set-log-level.d.ts.map +1 -0
- package/dist/commands/agent/set-log-level.js +133 -0
- package/dist/commands/agent/setup.d.ts +9 -0
- package/dist/commands/agent/setup.d.ts.map +1 -0
- package/dist/commands/agent/setup.js +149 -0
- package/dist/commands/agent/start.d.ts +12 -0
- package/dist/commands/agent/start.d.ts.map +1 -0
- package/dist/commands/agent/start.js +308 -0
- package/dist/commands/agent/status.d.ts +7 -0
- package/dist/commands/agent/status.d.ts.map +1 -0
- package/dist/commands/agent/status.js +68 -0
- package/dist/commands/agent/stop.d.ts +4 -0
- package/dist/commands/agent/stop.d.ts.map +1 -0
- package/dist/commands/agent/stop.js +33 -0
- package/dist/commands/agent/uninstall.d.ts +7 -0
- package/dist/commands/agent/uninstall.d.ts.map +1 -0
- package/dist/commands/agent/uninstall.js +168 -0
- package/dist/commands/agent.d.ts.map +1 -1
- package/dist/commands/agent.js +24 -1190
- package/dist/commands/ai/helpers.d.ts +139 -0
- package/dist/commands/ai/helpers.d.ts.map +1 -0
- package/dist/commands/ai/helpers.js +1470 -0
- package/dist/commands/ai/serve.d.ts +6 -0
- package/dist/commands/ai/serve.d.ts.map +1 -0
- package/dist/commands/ai/serve.js +124 -0
- package/dist/commands/ai/setup.d.ts +14 -0
- package/dist/commands/ai/setup.d.ts.map +1 -0
- package/dist/commands/ai/setup.js +86 -0
- package/dist/commands/ai/status.d.ts +2 -0
- package/dist/commands/ai/status.d.ts.map +1 -0
- package/dist/commands/ai/status.js +160 -0
- package/dist/commands/ai/stop.d.ts +2 -0
- package/dist/commands/ai/stop.d.ts.map +1 -0
- package/dist/commands/ai/stop.js +21 -0
- package/dist/commands/ai/teardown.d.ts +5 -0
- package/dist/commands/ai/teardown.d.ts.map +1 -0
- package/dist/commands/ai/teardown.js +78 -0
- package/dist/commands/ai/test.d.ts +4 -0
- package/dist/commands/ai/test.d.ts.map +1 -0
- package/dist/commands/ai/test.js +65 -0
- package/dist/commands/ai.d.ts.map +1 -1
- package/dist/commands/ai.js +16 -1938
- package/dist/commands/application/api-keys/create.d.ts +6 -0
- package/dist/commands/application/api-keys/create.d.ts.map +1 -0
- package/dist/commands/application/api-keys/create.js +68 -0
- package/dist/commands/application/api-keys/delete.d.ts +6 -0
- package/dist/commands/application/api-keys/delete.d.ts.map +1 -0
- package/dist/commands/application/api-keys/delete.js +79 -0
- package/dist/commands/application/api-keys/list.d.ts +5 -0
- package/dist/commands/application/api-keys/list.d.ts.map +1 -0
- package/dist/commands/application/api-keys/list.js +65 -0
- package/dist/commands/application/api-keys.d.ts +3 -0
- package/dist/commands/application/api-keys.d.ts.map +1 -0
- package/dist/commands/application/api-keys.js +227 -0
- package/dist/commands/application/create-compose.d.ts +3 -0
- package/dist/commands/application/create-compose.d.ts.map +1 -0
- package/dist/commands/application/create-compose.js +381 -0
- package/dist/commands/application/create-docker-compose.d.ts +10 -0
- package/dist/commands/application/create-docker-compose.d.ts.map +1 -0
- package/dist/commands/application/create-docker-compose.js +334 -0
- package/dist/commands/application/create-existing.d.ts +14 -0
- package/dist/commands/application/create-existing.d.ts.map +1 -0
- package/dist/commands/application/create-existing.js +359 -0
- package/dist/commands/application/create-interactive.d.ts +3 -0
- package/dist/commands/application/create-interactive.d.ts.map +1 -0
- package/dist/commands/application/create-interactive.js +326 -0
- package/dist/commands/application/create-managed-process.d.ts +15 -0
- package/dist/commands/application/create-managed-process.d.ts.map +1 -0
- package/dist/commands/application/create-managed-process.js +371 -0
- package/dist/commands/application/create-stubs.d.ts +4 -0
- package/dist/commands/application/create-stubs.d.ts.map +1 -0
- package/dist/commands/application/create-stubs.js +19 -0
- package/dist/commands/application/create-workload.d.ts +5 -0
- package/dist/commands/application/create-workload.d.ts.map +1 -0
- package/dist/commands/application/create-workload.js +48 -0
- package/dist/commands/application/delete.d.ts +6 -0
- package/dist/commands/application/delete.d.ts.map +1 -0
- package/dist/commands/application/delete.js +76 -0
- package/dist/commands/application/get.d.ts +5 -0
- package/dist/commands/application/get.d.ts.map +1 -0
- package/dist/commands/application/get.js +35 -0
- package/dist/commands/application/list.d.ts +4 -0
- package/dist/commands/application/list.d.ts.map +1 -0
- package/dist/commands/application/list.js +41 -0
- package/dist/commands/application/short-codes/create.d.ts +7 -0
- package/dist/commands/application/short-codes/create.d.ts.map +1 -0
- package/dist/commands/application/short-codes/create.js +69 -0
- package/dist/commands/application/short-codes/delete.d.ts +6 -0
- package/dist/commands/application/short-codes/delete.d.ts.map +1 -0
- package/dist/commands/application/short-codes/delete.js +79 -0
- package/dist/commands/application/short-codes/list.d.ts +5 -0
- package/dist/commands/application/short-codes/list.d.ts.map +1 -0
- package/dist/commands/application/short-codes/list.js +63 -0
- package/dist/commands/application/short-codes/toggle.d.ts +5 -0
- package/dist/commands/application/short-codes/toggle.d.ts.map +1 -0
- package/dist/commands/application/short-codes/toggle.js +71 -0
- package/dist/commands/application/short-codes.d.ts +3 -0
- package/dist/commands/application/short-codes.d.ts.map +1 -0
- package/dist/commands/application/short-codes.js +226 -0
- package/dist/commands/application/toggle.d.ts +2 -0
- package/dist/commands/application/toggle.d.ts.map +1 -0
- package/dist/commands/application/toggle.js +78 -0
- package/dist/commands/application/update.d.ts +4 -0
- package/dist/commands/application/update.d.ts.map +1 -0
- package/dist/commands/application/update.js +11 -0
- package/dist/commands/application.d.ts.map +1 -1
- package/dist/commands/application.js +32 -1630
- package/dist/commands/auth.d.ts.map +1 -1
- package/dist/commands/auth.js +31 -49
- package/dist/commands/base/BaseCommand.d.ts +3 -3
- package/dist/commands/base/BaseCommand.d.ts.map +1 -1
- package/dist/commands/base/BaseCommand.js +3 -3
- package/dist/commands/base/command-wrapper.d.ts +0 -4
- package/dist/commands/base/command-wrapper.d.ts.map +1 -1
- package/dist/commands/base/command-wrapper.js +13 -14
- package/dist/commands/base/middleware.d.ts +3 -3
- package/dist/commands/base/middleware.d.ts.map +1 -1
- package/dist/commands/base/middleware.js +4 -4
- package/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/config.js +15 -32
- package/dist/commands/connectivity.d.ts.map +1 -1
- package/dist/commands/connectivity.js +6 -11
- package/dist/commands/debug.d.ts.map +1 -1
- package/dist/commands/debug.js +187 -46
- package/dist/commands/discover.d.ts.map +1 -1
- package/dist/commands/discover.js +4 -17
- package/dist/commands/gateway.d.ts.map +1 -1
- package/dist/commands/gateway.js +37 -77
- package/dist/commands/managedGateway/create.d.ts +6 -0
- package/dist/commands/managedGateway/create.d.ts.map +1 -0
- package/dist/commands/managedGateway/create.js +50 -0
- package/dist/commands/managedGateway/delete.d.ts +5 -0
- package/dist/commands/managedGateway/delete.d.ts.map +1 -0
- package/dist/commands/managedGateway/delete.js +57 -0
- package/dist/commands/managedGateway/get.d.ts +4 -0
- package/dist/commands/managedGateway/get.d.ts.map +1 -0
- package/dist/commands/managedGateway/get.js +71 -0
- package/dist/commands/managedGateway/haproxy-stats.d.ts +6 -0
- package/dist/commands/managedGateway/haproxy-stats.d.ts.map +1 -0
- package/dist/commands/managedGateway/haproxy-stats.js +131 -0
- package/dist/commands/managedGateway/list.d.ts +4 -0
- package/dist/commands/managedGateway/list.d.ts.map +1 -0
- package/dist/commands/managedGateway/list.js +50 -0
- package/dist/commands/managedGateway/logs.d.ts +10 -0
- package/dist/commands/managedGateway/logs.d.ts.map +1 -0
- package/dist/commands/managedGateway/logs.js +100 -0
- package/dist/commands/managedGateway/reboot.d.ts +5 -0
- package/dist/commands/managedGateway/reboot.d.ts.map +1 -0
- package/dist/commands/managedGateway/reboot.js +95 -0
- package/dist/commands/managedGateway/resync.d.ts +10 -0
- package/dist/commands/managedGateway/resync.d.ts.map +1 -0
- package/dist/commands/managedGateway/resync.js +69 -0
- package/dist/commands/managedGateway/ssh.d.ts +4 -0
- package/dist/commands/managedGateway/ssh.d.ts.map +1 -0
- package/dist/commands/managedGateway/ssh.js +130 -0
- package/dist/commands/managedGateway/wipe-logs.d.ts +4 -0
- package/dist/commands/managedGateway/wipe-logs.d.ts.map +1 -0
- package/dist/commands/managedGateway/wipe-logs.js +67 -0
- package/dist/commands/managedGateway/wireguard.d.ts +4 -0
- package/dist/commands/managedGateway/wireguard.d.ts.map +1 -0
- package/dist/commands/managedGateway/wireguard.js +68 -0
- package/dist/commands/managedGateway.d.ts.map +1 -1
- package/dist/commands/managedGateway.js +61 -117
- package/dist/commands/utils/config-validator.d.ts +5 -5
- package/dist/commands/utils/config-validator.d.ts.map +1 -1
- package/dist/commands/utils/config-validator.js +8 -8
- package/dist/commands/utils/output-formatter.js +1 -1
- package/dist/config/app-config.d.ts +1 -1
- package/dist/config/app-config.js +2 -2
- package/dist/index.js +0 -3
- package/dist/services/LocalAgentManager.d.ts.map +1 -1
- package/dist/services/LocalAgentManager.js +4 -2
- package/dist/services/agentDeployment/AgentDeploymentService.d.ts +35 -0
- package/dist/services/agentDeployment/AgentDeploymentService.d.ts.map +1 -0
- package/dist/services/agentDeployment/AgentDeploymentService.js +35 -0
- package/dist/services/application/ApplicationService.d.ts +5 -4
- package/dist/services/application/ApplicationService.d.ts.map +1 -1
- package/dist/services/application/ApplicationService.js +22 -35
- package/dist/services/auth/AuthService.d.ts +5 -5
- package/dist/services/auth/AuthService.d.ts.map +1 -1
- package/dist/services/auth/AuthService.js +11 -58
- package/dist/services/daemon/DaemonManagerFactory.d.ts +2 -0
- package/dist/services/daemon/DaemonManagerFactory.d.ts.map +1 -1
- package/dist/services/daemon/DaemonManagerFactory.js +14 -6
- package/dist/services/diagnostics/DiagnosticsService.d.ts +89 -0
- package/dist/services/diagnostics/DiagnosticsService.d.ts.map +1 -0
- package/dist/services/diagnostics/DiagnosticsService.js +37 -0
- package/dist/services/edgible.d.ts +6 -4
- package/dist/services/edgible.d.ts.map +1 -1
- package/dist/services/edgible.js +36 -86
- package/dist/services/gateway/GatewayService.d.ts +5 -6
- package/dist/services/gateway/GatewayService.d.ts.map +1 -1
- package/dist/services/gateway/GatewayService.js +22 -36
- package/dist/services/instances.d.ts +34 -0
- package/dist/services/instances.d.ts.map +1 -0
- package/dist/services/instances.js +64 -0
- package/dist/services/managedGateway/ManagedGatewayService.d.ts +75 -0
- package/dist/services/managedGateway/ManagedGatewayService.d.ts.map +1 -0
- package/dist/services/managedGateway/ManagedGatewayService.js +44 -0
- package/dist/services/token/TokenManager.d.ts +56 -0
- package/dist/services/token/TokenManager.d.ts.map +1 -0
- package/dist/services/token/TokenManager.js +85 -0
- package/dist/types/validation/schemas.d.ts +22 -22
- package/dist/utils/PlatformDetector.d.ts +2 -0
- package/dist/utils/PlatformDetector.d.ts.map +1 -1
- package/dist/utils/PlatformDetector.js +5 -34
- package/dist/validation/schemas.d.ts +6 -6
- package/package.json +1 -1
|
@@ -35,7 +35,7 @@ function formatApplication(app) {
|
|
|
35
35
|
if (app.description) {
|
|
36
36
|
output += chalk_1.default.gray(` Description: ${app.description}\n`);
|
|
37
37
|
}
|
|
38
|
-
output += chalk_1.default.cyan(` URL: ${app.protocol}://${app.servingIp}
|
|
38
|
+
output += chalk_1.default.cyan(` URL: ${app.protocol}://${app.servingIp}\n`);
|
|
39
39
|
return output;
|
|
40
40
|
}
|
|
41
41
|
/**
|
|
@@ -21,7 +21,7 @@ export interface AppConfig {
|
|
|
21
21
|
* Users can set these via shell/system environment variables.
|
|
22
22
|
*
|
|
23
23
|
* Available environment variables:
|
|
24
|
-
* - LOG_LEVEL: Set log level (default: '
|
|
24
|
+
* - LOG_LEVEL: Set log level (default: 'WARN')
|
|
25
25
|
* Note: API_BASE_URL is now hardcoded based on stage (STAGE or SST_STAGE env var)
|
|
26
26
|
* - NO_COLOR: Disable colored output (set to '1' or 'true')
|
|
27
27
|
* - PLAIN_OUTPUT: Enable plain text output (set to '1' or 'true')
|
|
@@ -23,7 +23,7 @@ const DEFAULT_INSTANCE_TYPE = 't3.micro';
|
|
|
23
23
|
* Users can set these via shell/system environment variables.
|
|
24
24
|
*
|
|
25
25
|
* Available environment variables:
|
|
26
|
-
* - LOG_LEVEL: Set log level (default: '
|
|
26
|
+
* - LOG_LEVEL: Set log level (default: 'WARN')
|
|
27
27
|
* Note: API_BASE_URL is now hardcoded based on stage (STAGE or SST_STAGE env var)
|
|
28
28
|
* - NO_COLOR: Disable colored output (set to '1' or 'true')
|
|
29
29
|
* - PLAIN_OUTPUT: Enable plain text output (set to '1' or 'true')
|
|
@@ -32,7 +32,7 @@ const DEFAULT_INSTANCE_TYPE = 't3.micro';
|
|
|
32
32
|
*/
|
|
33
33
|
function loadConfig() {
|
|
34
34
|
const apiBaseUrl = (0, urls_1.getApiBaseUrl)();
|
|
35
|
-
const logLevel = process.env.LOG_LEVEL || '
|
|
35
|
+
const logLevel = process.env.LOG_LEVEL || 'WARN';
|
|
36
36
|
const colorEnabled = process.env.NO_COLOR !== '1' && process.env.NO_COLOR !== 'true';
|
|
37
37
|
const plain = process.env.PLAIN_OUTPUT === '1' || process.env.PLAIN_OUTPUT === 'true';
|
|
38
38
|
const defaultRegion = process.env.DEFAULT_REGION || DEFAULT_REGION;
|
package/dist/index.js
CHANGED
|
@@ -4,7 +4,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
4
4
|
const commander_1 = require("commander");
|
|
5
5
|
const errors_1 = require("./utils/errors");
|
|
6
6
|
const output_1 = require("./utils/output");
|
|
7
|
-
const bindings_1 = require("./di/bindings");
|
|
8
7
|
const application_1 = require("./commands/application");
|
|
9
8
|
const gateway_1 = require("./commands/gateway");
|
|
10
9
|
const auth_1 = require("./commands/auth");
|
|
@@ -15,8 +14,6 @@ const ai_1 = require("./commands/ai");
|
|
|
15
14
|
const agent_1 = require("./commands/agent");
|
|
16
15
|
const debug_1 = require("./commands/debug");
|
|
17
16
|
const managedGateway_1 = require("./commands/managedGateway");
|
|
18
|
-
// Initialize dependency injection container
|
|
19
|
-
(0, bindings_1.initializeContainer)();
|
|
20
17
|
const program = new commander_1.Command();
|
|
21
18
|
// Set up the CLI
|
|
22
19
|
program
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LocalAgentManager.d.ts","sourceRoot":"","sources":["../../src/services/LocalAgentManager.ts"],"names":[],"mappings":"AAWA,OAAO,EACL,kBAAkB,EAGnB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,mBAAmB,EACnB,sBAAsB,EAEtB,wBAAwB,EACxB,kBAAkB,EAGnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AASlD,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,YAAY,CAAa;IACjC,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,aAAa,CAAqB;;IAwB1C;;;OAGG;IACG,iBAAiB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA6C3D;;OAEG;YACW,oBAAoB;IASlC;;OAEG;IACG,qBAAqB,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAsG1D;;;OAGG;YACW,gBAAgB;IA6B9B;;OAEG;YACW,YAAY;IAS1B;;OAEG;YACW,mBAAmB;IA6BjC;;OAEG;IACG,iBAAiB,CAAC,OAAO,GAAE,wBAA6B,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAqE5F;;OAEG;IACG,eAAe,CAAC,OAAO,GAAE;QAAE,WAAW,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IA6HnI;;OAEG;YACW,iBAAiB;IAiR/B;;OAEG;YACW,iBAAiB;IAQ/B;;OAEG;IACH,OAAO,CAAC,2BAA2B;IAenC;;OAEG;YACW,YAAY;IAwB1B;;OAEG;YACW,iBAAiB;IAgC/B;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IA4ExC;;OAEG;YACW,oBAAoB;IA2BlC;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC;IAY3C;;OAEG;IACG,gBAAgB,CAAC,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,YAAY,CAAC;IA+D/E;;OAEG;IACG,4BAA4B,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,mBAAmB,CAAC;IA2D1F;;OAEG;IACG,kBAAkB,IAAI,OAAO,CAAC,sBAAsB,CAAC;YA0D7C,cAAc;YAUd,cAAc;IAqB5B,OAAO,CAAC,cAAc;YAQR,cAAc;YAoBd,eAAe;YASf,WAAW;YAkBX,cAAc;YAqBd,kBAAkB;YAelB,aAAa;YAYb,mBAAmB;YAgCnB,uBAAuB;YAiBvB,aAAa;
|
|
1
|
+
{"version":3,"file":"LocalAgentManager.d.ts","sourceRoot":"","sources":["../../src/services/LocalAgentManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1207,7 +1207,7 @@ class LocalAgentManager {
|
|
|
1207
1207
|
const { execSync } = require('child_process');
|
|
1208
1208
|
// Use rsync for efficient directory copying (cross-platform)
|
|
1209
1209
|
try {
|
|
1210
|
-
execSync(`rsync -
|
|
1210
|
+
execSync(`rsync -a --exclude=node_modules/.cache --exclude=.git "${src}/" "${dest}/"`, { stdio: 'ignore' });
|
|
1211
1211
|
}
|
|
1212
1212
|
catch (error) {
|
|
1213
1213
|
// Fallback to manual copying if rsync is not available
|
|
@@ -1309,7 +1309,9 @@ class LocalAgentManager {
|
|
|
1309
1309
|
const extractPath = path.join(tempDir, 'extracted');
|
|
1310
1310
|
await mkdir(extractPath, { recursive: true });
|
|
1311
1311
|
// Use unzip command (available on most systems)
|
|
1312
|
-
(0, child_process_1.execSync)(`unzip -q "${zipPath}" -d "${extractPath}"`, {
|
|
1312
|
+
(0, child_process_1.execSync)(`unzip -q "${zipPath}" -d "${extractPath}"`, {
|
|
1313
|
+
stdio: 'ignore',
|
|
1314
|
+
});
|
|
1313
1315
|
// Copy extracted files to agent directory
|
|
1314
1316
|
await this.copyDirectory(extractPath, targetConfigPath);
|
|
1315
1317
|
// Make the agent binary executable
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent Deployment Service
|
|
3
|
+
*
|
|
4
|
+
* Handles agent configuration generation and deployment logic.
|
|
5
|
+
* This is a focused service extracted from the EdgibleService god object.
|
|
6
|
+
*/
|
|
7
|
+
import { EdgibleService } from '../edgible';
|
|
8
|
+
export interface AgentDeploymentService {
|
|
9
|
+
/**
|
|
10
|
+
* Generate agent user data for cloud-init
|
|
11
|
+
*/
|
|
12
|
+
generateAgentUserData(deviceId: string): string;
|
|
13
|
+
/**
|
|
14
|
+
* Generate agent configuration code
|
|
15
|
+
*/
|
|
16
|
+
generateAgentCode(deviceId: string): string;
|
|
17
|
+
/**
|
|
18
|
+
* Resync agent on a gateway
|
|
19
|
+
*/
|
|
20
|
+
resyncGatewayAgent(gatewayId: string, agentVersion?: string, installFromLocal?: boolean): Promise<any>;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Implementation of AgentDeploymentService
|
|
24
|
+
*
|
|
25
|
+
* Currently delegates to EdgibleService for backward compatibility.
|
|
26
|
+
* In Phase 3, we'll extract the actual implementation.
|
|
27
|
+
*/
|
|
28
|
+
export declare class AgentDeploymentServiceImpl implements AgentDeploymentService {
|
|
29
|
+
private edgibleService;
|
|
30
|
+
constructor(edgibleService: EdgibleService);
|
|
31
|
+
generateAgentUserData(deviceId: string): string;
|
|
32
|
+
generateAgentCode(deviceId: string): string;
|
|
33
|
+
resyncGatewayAgent(gatewayId: string, agentVersion?: string, installFromLocal?: boolean): Promise<any>;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=AgentDeploymentService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AgentDeploymentService.d.ts","sourceRoot":"","sources":["../../../src/services/agentDeployment/AgentDeploymentService.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,MAAM,WAAW,sBAAsB;IACrC;;OAEG;IACH,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;IAEhD;;OAEG;IACH,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;IAE5C;;OAEG;IACH,kBAAkB,CAChB,SAAS,EAAE,MAAM,EACjB,YAAY,CAAC,EAAE,MAAM,EACrB,gBAAgB,CAAC,EAAE,OAAO,GACzB,OAAO,CAAC,GAAG,CAAC,CAAC;CACjB;AAED;;;;;GAKG;AACH,qBAAa,0BAA2B,YAAW,sBAAsB;IAC3D,OAAO,CAAC,cAAc;gBAAd,cAAc,EAAE,cAAc;IAElD,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAM/C,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAMrC,kBAAkB,CACtB,SAAS,EAAE,MAAM,EACjB,YAAY,CAAC,EAAE,MAAM,EACrB,gBAAgB,CAAC,EAAE,OAAO,GACzB,OAAO,CAAC,GAAG,CAAC;CAGhB"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Agent Deployment Service
|
|
4
|
+
*
|
|
5
|
+
* Handles agent configuration generation and deployment logic.
|
|
6
|
+
* This is a focused service extracted from the EdgibleService god object.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.AgentDeploymentServiceImpl = void 0;
|
|
10
|
+
/**
|
|
11
|
+
* Implementation of AgentDeploymentService
|
|
12
|
+
*
|
|
13
|
+
* Currently delegates to EdgibleService for backward compatibility.
|
|
14
|
+
* In Phase 3, we'll extract the actual implementation.
|
|
15
|
+
*/
|
|
16
|
+
class AgentDeploymentServiceImpl {
|
|
17
|
+
constructor(edgibleService) {
|
|
18
|
+
this.edgibleService = edgibleService;
|
|
19
|
+
}
|
|
20
|
+
generateAgentUserData(deviceId) {
|
|
21
|
+
// Access the private method via type assertion (temporary hack)
|
|
22
|
+
// In Phase 3, we'll properly extract this
|
|
23
|
+
return this.edgibleService.generateAgentUserData(deviceId);
|
|
24
|
+
}
|
|
25
|
+
generateAgentCode(deviceId) {
|
|
26
|
+
// Access the private method via type assertion (temporary hack)
|
|
27
|
+
// In Phase 3, we'll properly extract this
|
|
28
|
+
return this.edgibleService.generateAgentCode(deviceId);
|
|
29
|
+
}
|
|
30
|
+
async resyncGatewayAgent(gatewayId, agentVersion, installFromLocal) {
|
|
31
|
+
return this.edgibleService.resyncGatewayAgent(gatewayId, agentVersion, installFromLocal);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
exports.AgentDeploymentServiceImpl = AgentDeploymentServiceImpl;
|
|
35
|
+
//# sourceMappingURL=AgentDeploymentService.js.map
|
|
@@ -3,8 +3,9 @@
|
|
|
3
3
|
* Handles application management operations
|
|
4
4
|
*/
|
|
5
5
|
import { Application, Workload } from '../../detection/WorkloadDetector';
|
|
6
|
-
import {
|
|
6
|
+
import { ConfigManager } from '../../state/config';
|
|
7
7
|
import { AuthService } from '../auth/AuthService';
|
|
8
|
+
import { TokenManager } from '../token/TokenManager';
|
|
8
9
|
import { Logger } from '../../utils/logger';
|
|
9
10
|
export interface ApplicationService {
|
|
10
11
|
setupApplication(workload: Workload, port: number, protocol: 'http' | 'https' | 'tcp' | 'udp', description?: string, gatewayId?: string): Promise<Application>;
|
|
@@ -36,13 +37,13 @@ export interface ApplicationService {
|
|
|
36
37
|
}
|
|
37
38
|
export declare class ApplicationServiceImpl implements ApplicationService {
|
|
38
39
|
private apiClient;
|
|
39
|
-
private
|
|
40
|
+
private configManager;
|
|
40
41
|
private authService;
|
|
42
|
+
private tokenManager;
|
|
41
43
|
private logger;
|
|
42
44
|
private baseUrl;
|
|
43
45
|
private applications;
|
|
44
|
-
constructor(baseUrl: string,
|
|
45
|
-
private restoreTokensFromApiClient;
|
|
46
|
+
constructor(baseUrl: string, configManager: ConfigManager, authService: AuthService, tokenManager: TokenManager, logger: Logger);
|
|
46
47
|
private generateServingIp;
|
|
47
48
|
setupApplication(workload: Workload, port: number, protocol?: 'http' | 'https' | 'tcp' | 'udp', description?: string, gatewayId?: string): Promise<Application>;
|
|
48
49
|
getApplications(): Promise<Application[]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApplicationService.d.ts","sourceRoot":"","sources":["../../../src/services/application/ApplicationService.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAEzE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"ApplicationService.d.ts","sourceRoot":"","sources":["../../../src/services/application/ApplicationService.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAEzE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,MAAM,WAAW,kBAAkB;IACjC,gBAAgB,CACd,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,KAAK,EAC1C,WAAW,CAAC,EAAE,MAAM,EACpB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,WAAW,CAAC,CAAC;IACxB,eAAe,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAC1C,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACjD,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAChD,iCAAiC,CAAC,MAAM,EAAE;QACxC,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,KAAK,CAAC;QAC3C,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;QACrB,SAAS,EAAE,MAAM,EAAE,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;QACtB,iBAAiB,CAAC,EAAE,OAAO,CAAC;QAC5B,OAAO,EAAE,mBAAmB,GAAG,gBAAgB,GAAG,SAAS,GAAG,gBAAgB,GAAG,iBAAiB,CAAC;QACnG,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACxC,SAAS,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,KAAK,GAAG,SAAS,CAAC,CAAC;QAC9C,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;KACjC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACrB,WAAW,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACnD,YAAY,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACpF,YAAY,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClE,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACtD,eAAe,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACzG,eAAe,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACnF,eAAe,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACvE;AAED,qBAAa,sBAAuB,YAAW,kBAAkB;IAC/D,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,YAAY,CAAqB;gBAGvC,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,aAAa,EAC5B,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,MAAM;IAWhB,OAAO,CAAC,iBAAiB;IAUnB,gBAAgB,CACpB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,MAAM,EACZ,QAAQ,GAAE,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,KAAc,EACnD,WAAW,CAAC,EAAE,MAAM,EACpB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,WAAW,CAAC;IAmEjB,eAAe,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IA8HzC,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAsChD,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAkB/C,iCAAiC,CAAC,MAAM,EAAE;QAC9C,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,KAAK,CAAC;QAC3C,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;QACrB,SAAS,EAAE,MAAM,EAAE,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;QACtB,iBAAiB,CAAC,EAAE,OAAO,CAAC;QAC5B,OAAO,EAAE,mBAAmB,GAAG,gBAAgB,GAAG,SAAS,GAAG,gBAAgB,GAAG,iBAAiB,CAAC;QACnG,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACxC,SAAS,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,KAAK,GAAG,SAAS,CAAC,CAAC;QAC9C,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;KACjC,GAAG,OAAO,CAAC,OAAO,CAAC;IAuDpB;;OAEG;IACG,WAAW,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAYxD;;OAEG;IACG,YAAY,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAYzF;;OAEG;IACG,YAAY,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAWvE;;OAEG;IACG,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAY3D;;OAEG;IACG,eAAe,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAY9G;;OAEG;IACG,eAAe,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAYxF;;OAEG;IACG,eAAe,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAU5E"}
|
|
@@ -7,28 +7,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
7
7
|
exports.ApplicationServiceImpl = void 0;
|
|
8
8
|
const client_1 = require("../../client");
|
|
9
9
|
class ApplicationServiceImpl {
|
|
10
|
-
constructor(baseUrl,
|
|
10
|
+
constructor(baseUrl, configManager, authService, tokenManager, logger) {
|
|
11
11
|
this.applications = [];
|
|
12
12
|
this.baseUrl = baseUrl;
|
|
13
|
-
this.
|
|
13
|
+
this.configManager = configManager;
|
|
14
14
|
this.authService = authService;
|
|
15
|
+
this.tokenManager = tokenManager;
|
|
15
16
|
this.logger = logger;
|
|
16
17
|
this.apiClient = (0, client_1.createApiClient)(baseUrl);
|
|
17
|
-
this.
|
|
18
|
-
}
|
|
19
|
-
restoreTokensFromApiClient() {
|
|
20
|
-
const accessToken = this.authService.getAccessToken();
|
|
21
|
-
const idToken = this.authService.getIdToken();
|
|
22
|
-
const refreshToken = this.authService.getRefreshToken();
|
|
23
|
-
if (accessToken) {
|
|
24
|
-
this.apiClient.setAccessToken(accessToken);
|
|
25
|
-
}
|
|
26
|
-
if (idToken) {
|
|
27
|
-
this.apiClient.setIdToken(idToken);
|
|
28
|
-
}
|
|
29
|
-
if (refreshToken) {
|
|
30
|
-
this.apiClient.setRefreshToken(refreshToken);
|
|
31
|
-
}
|
|
18
|
+
this.tokenManager.restoreTokensFromConfig(this.apiClient);
|
|
32
19
|
}
|
|
33
20
|
generateServingIp() {
|
|
34
21
|
// Generate a mock IP in the 10.x.x.x range
|
|
@@ -41,11 +28,11 @@ class ApplicationServiceImpl {
|
|
|
41
28
|
async setupApplication(workload, port, protocol = 'http', description, gatewayId) {
|
|
42
29
|
try {
|
|
43
30
|
// Attempt auto re-login if tokens are missing but credentials are available
|
|
44
|
-
await this.authService.
|
|
45
|
-
this.
|
|
31
|
+
await this.tokenManager.ensureValidToken(this.apiClient, this.authService.loginDevice.bind(this.authService));
|
|
32
|
+
this.tokenManager.restoreTokensFromConfig(this.apiClient);
|
|
46
33
|
this.logger.info(`Setting up application for workload: ${workload.name}`);
|
|
47
34
|
// Get organization ID from config
|
|
48
|
-
const config = this.
|
|
35
|
+
const config = this.configManager.getConfig();
|
|
49
36
|
if (!config.organizationId) {
|
|
50
37
|
throw new Error('No organization ID found. Please login first.');
|
|
51
38
|
}
|
|
@@ -97,10 +84,10 @@ class ApplicationServiceImpl {
|
|
|
97
84
|
async getApplications() {
|
|
98
85
|
try {
|
|
99
86
|
// Attempt auto re-login if tokens are missing but credentials are available
|
|
100
|
-
await this.authService.
|
|
101
|
-
this.
|
|
87
|
+
await this.tokenManager.ensureValidToken(this.apiClient, this.authService.loginDevice.bind(this.authService));
|
|
88
|
+
this.tokenManager.restoreTokensFromConfig(this.apiClient);
|
|
102
89
|
this.logger.debug('Getting applications');
|
|
103
|
-
const config = this.
|
|
90
|
+
const config = this.configManager.getConfig();
|
|
104
91
|
let organizationId;
|
|
105
92
|
// Check if we have an organization ID in the config (device login)
|
|
106
93
|
if (config.organizationId) {
|
|
@@ -251,8 +238,8 @@ class ApplicationServiceImpl {
|
|
|
251
238
|
async deleteApplication(id) {
|
|
252
239
|
try {
|
|
253
240
|
// Attempt auto re-login if tokens are missing but credentials are available
|
|
254
|
-
await this.authService.
|
|
255
|
-
this.
|
|
241
|
+
await this.tokenManager.ensureValidToken(this.apiClient, this.authService.loginDevice.bind(this.authService));
|
|
242
|
+
this.tokenManager.restoreTokensFromConfig(this.apiClient);
|
|
256
243
|
this.logger.info(`Deleting application: ${id}`);
|
|
257
244
|
await this.apiClient.deleteApplication(id);
|
|
258
245
|
this.logger.info('Application deleted successfully', { applicationId: id });
|
|
@@ -266,9 +253,9 @@ class ApplicationServiceImpl {
|
|
|
266
253
|
async createApplicationProgrammatically(params) {
|
|
267
254
|
try {
|
|
268
255
|
// Attempt auto re-login if tokens are missing but credentials are available
|
|
269
|
-
await this.authService.
|
|
270
|
-
this.
|
|
271
|
-
const config = this.
|
|
256
|
+
await this.tokenManager.ensureValidToken(this.apiClient, this.authService.loginDevice.bind(this.authService));
|
|
257
|
+
this.tokenManager.restoreTokensFromConfig(this.apiClient);
|
|
258
|
+
const config = this.configManager.getConfig();
|
|
272
259
|
if (!config.organizationId) {
|
|
273
260
|
throw new Error('Not logged in. Please run "edgible login" first.');
|
|
274
261
|
}
|
|
@@ -317,7 +304,7 @@ class ApplicationServiceImpl {
|
|
|
317
304
|
*/
|
|
318
305
|
async listApiKeys(applicationId) {
|
|
319
306
|
try {
|
|
320
|
-
await this.authService.
|
|
307
|
+
await this.tokenManager.ensureValidToken(this.apiClient, this.authService.loginDevice.bind(this.authService));
|
|
321
308
|
const response = await this.apiClient.listApplicationApiKeys(applicationId);
|
|
322
309
|
return response.keys || [];
|
|
323
310
|
}
|
|
@@ -331,7 +318,7 @@ class ApplicationServiceImpl {
|
|
|
331
318
|
*/
|
|
332
319
|
async createApiKey(applicationId, name, expiresAt) {
|
|
333
320
|
try {
|
|
334
|
-
await this.authService.
|
|
321
|
+
await this.tokenManager.ensureValidToken(this.apiClient, this.authService.loginDevice.bind(this.authService));
|
|
335
322
|
const response = await this.apiClient.createApplicationApiKey(applicationId, name, expiresAt);
|
|
336
323
|
return response;
|
|
337
324
|
}
|
|
@@ -345,7 +332,7 @@ class ApplicationServiceImpl {
|
|
|
345
332
|
*/
|
|
346
333
|
async deleteApiKey(applicationId, keyId) {
|
|
347
334
|
try {
|
|
348
|
-
await this.authService.
|
|
335
|
+
await this.tokenManager.ensureValidToken(this.apiClient, this.authService.loginDevice.bind(this.authService));
|
|
349
336
|
await this.apiClient.deleteApplicationApiKey(applicationId, keyId);
|
|
350
337
|
}
|
|
351
338
|
catch (error) {
|
|
@@ -358,7 +345,7 @@ class ApplicationServiceImpl {
|
|
|
358
345
|
*/
|
|
359
346
|
async listShortCodes(applicationId) {
|
|
360
347
|
try {
|
|
361
|
-
await this.authService.
|
|
348
|
+
await this.tokenManager.ensureValidToken(this.apiClient, this.authService.loginDevice.bind(this.authService));
|
|
362
349
|
const response = await this.apiClient.listApplicationShortCodes(applicationId);
|
|
363
350
|
return response.codes || [];
|
|
364
351
|
}
|
|
@@ -372,7 +359,7 @@ class ApplicationServiceImpl {
|
|
|
372
359
|
*/
|
|
373
360
|
async createShortCode(applicationId, name, expiresAt, maxUses) {
|
|
374
361
|
try {
|
|
375
|
-
await this.authService.
|
|
362
|
+
await this.tokenManager.ensureValidToken(this.apiClient, this.authService.loginDevice.bind(this.authService));
|
|
376
363
|
const response = await this.apiClient.createApplicationShortCode(applicationId, name, expiresAt, maxUses);
|
|
377
364
|
return response;
|
|
378
365
|
}
|
|
@@ -386,7 +373,7 @@ class ApplicationServiceImpl {
|
|
|
386
373
|
*/
|
|
387
374
|
async updateShortCode(applicationId, codeId, updates) {
|
|
388
375
|
try {
|
|
389
|
-
await this.authService.
|
|
376
|
+
await this.tokenManager.ensureValidToken(this.apiClient, this.authService.loginDevice.bind(this.authService));
|
|
390
377
|
const response = await this.apiClient.updateApplicationShortCode(applicationId, codeId, updates);
|
|
391
378
|
return response;
|
|
392
379
|
}
|
|
@@ -400,7 +387,7 @@ class ApplicationServiceImpl {
|
|
|
400
387
|
*/
|
|
401
388
|
async deleteShortCode(applicationId, codeId) {
|
|
402
389
|
try {
|
|
403
|
-
await this.authService.
|
|
390
|
+
await this.tokenManager.ensureValidToken(this.apiClient, this.authService.loginDevice.bind(this.authService));
|
|
404
391
|
await this.apiClient.deleteApplicationShortCode(applicationId, codeId);
|
|
405
392
|
}
|
|
406
393
|
catch (error) {
|
|
@@ -4,7 +4,8 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { LoginResponse } from '../../client';
|
|
6
6
|
import { CreateDeviceWithOrphanedOrganizationResponse, GetUserOrganizationsResponse } from '../../types/ApiResponses';
|
|
7
|
-
import {
|
|
7
|
+
import { ConfigManager } from '../../state/config';
|
|
8
|
+
import { TokenManager } from '../token/TokenManager';
|
|
8
9
|
import { Logger } from '../../utils/logger';
|
|
9
10
|
export interface AuthService {
|
|
10
11
|
loginUser(email: string, password: string): Promise<LoginResponse>;
|
|
@@ -21,13 +22,12 @@ export interface AuthService {
|
|
|
21
22
|
}
|
|
22
23
|
export declare class AuthServiceImpl implements AuthService {
|
|
23
24
|
private apiClient;
|
|
24
|
-
private
|
|
25
|
+
private configManager;
|
|
26
|
+
private tokenManager;
|
|
25
27
|
private logger;
|
|
26
28
|
private baseUrl;
|
|
27
|
-
constructor(baseUrl: string,
|
|
28
|
-
private restoreTokensFromConfig;
|
|
29
|
+
constructor(baseUrl: string, configManager: ConfigManager, tokenManager: TokenManager, logger: Logger);
|
|
29
30
|
attemptAutoRelogin(): Promise<boolean>;
|
|
30
|
-
private saveTokensToConfig;
|
|
31
31
|
loginUser(email: string, password: string): Promise<LoginResponse>;
|
|
32
32
|
createDeviceWithOrganization(deviceName: string, password: string, userEmail?: string): Promise<CreateDeviceWithOrphanedOrganizationResponse>;
|
|
33
33
|
checkAccount(email: string): Promise<boolean>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AuthService.d.ts","sourceRoot":"","sources":["../../../src/services/auth/AuthService.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAA4C,aAAa,EAAE,MAAM,cAAc,CAAC;AAEvF,OAAO,EAAE,4CAA4C,EAAE,4BAA4B,EAAE,MAAM,0BAA0B,CAAC;AAEtH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"AuthService.d.ts","sourceRoot":"","sources":["../../../src/services/auth/AuthService.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAA4C,aAAa,EAAE,MAAM,cAAc,CAAC;AAEvF,OAAO,EAAE,4CAA4C,EAAE,4BAA4B,EAAE,MAAM,0BAA0B,CAAC;AAEtH,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,MAAM,WAAW,WAAW;IAC1B,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IACnE,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IACxE,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9E,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9C,4BAA4B,CAC1B,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,4CAA4C,CAAC,CAAC;IACzD,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACrD,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAAC;IAC3E,cAAc,IAAI,MAAM,GAAG,SAAS,CAAC;IACrC,UAAU,IAAI,MAAM,GAAG,SAAS,CAAC;IACjC,eAAe,IAAI,MAAM,GAAG,SAAS,CAAC;IACtC,kBAAkB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;CACxC;AAED,qBAAa,eAAgB,YAAW,WAAW;IACjD,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAS;gBAGtB,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,MAAM;IAUV,kBAAkB,IAAI,OAAO,CAAC,OAAO,CAAC;IAOtC,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAYlE,4BAA4B,CAChC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,4CAA4C,CAAC;IA0BlD,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAyB7C,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAYvE,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA8C7E,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAW1D,cAAc,IAAI,MAAM,GAAG,SAAS;IAIpC,UAAU,IAAI,MAAM,GAAG,SAAS;IAIhC,eAAe,IAAI,MAAM,GAAG,SAAS;IAI/B,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,4BAA4B,CAAC;CAQjF"}
|
|
@@ -8,69 +8,22 @@ exports.AuthServiceImpl = void 0;
|
|
|
8
8
|
const client_1 = require("../../client");
|
|
9
9
|
const passwordValidation_1 = require("../../utils/passwordValidation");
|
|
10
10
|
class AuthServiceImpl {
|
|
11
|
-
constructor(baseUrl,
|
|
11
|
+
constructor(baseUrl, configManager, tokenManager, logger) {
|
|
12
12
|
this.baseUrl = baseUrl;
|
|
13
|
-
this.
|
|
13
|
+
this.configManager = configManager;
|
|
14
|
+
this.tokenManager = tokenManager;
|
|
14
15
|
this.logger = logger;
|
|
15
16
|
this.apiClient = (0, client_1.createApiClient)(baseUrl);
|
|
16
|
-
this.restoreTokensFromConfig();
|
|
17
|
-
}
|
|
18
|
-
restoreTokensFromConfig() {
|
|
19
|
-
const config = this.configRepository.getConfig();
|
|
20
|
-
if (config.accessToken) {
|
|
21
|
-
this.apiClient.setAccessToken(config.accessToken);
|
|
22
|
-
}
|
|
23
|
-
if (config.idToken) {
|
|
24
|
-
this.apiClient.setIdToken(config.idToken);
|
|
25
|
-
}
|
|
26
|
-
if (config.refreshToken) {
|
|
27
|
-
this.apiClient.setRefreshToken(config.refreshToken);
|
|
28
|
-
}
|
|
29
|
-
this.logger.debug('Token restoration', {
|
|
30
|
-
hasAccessToken: !!config.accessToken,
|
|
31
|
-
hasIdToken: !!config.idToken,
|
|
32
|
-
hasRefreshToken: !!config.refreshToken,
|
|
33
|
-
organizationId: config.organizationId,
|
|
34
|
-
deviceId: config.deviceId,
|
|
35
|
-
});
|
|
17
|
+
this.tokenManager.restoreTokensFromConfig(this.apiClient);
|
|
36
18
|
}
|
|
37
19
|
async attemptAutoRelogin() {
|
|
38
|
-
|
|
39
|
-
// If no tokens but we have device credentials, attempt automatic re-login
|
|
40
|
-
if (!config.idToken && !config.accessToken && config.deviceId && config.devicePassword) {
|
|
41
|
-
this.logger.debug('No tokens available, attempting automatic device re-login');
|
|
42
|
-
try {
|
|
43
|
-
await this.loginDevice(config.deviceId, config.devicePassword);
|
|
44
|
-
this.logger.debug('Automatic re-login successful');
|
|
45
|
-
return true;
|
|
46
|
-
}
|
|
47
|
-
catch (error) {
|
|
48
|
-
this.logger.warn('Automatic re-login failed', error instanceof Error ? error.message : String(error));
|
|
49
|
-
return false;
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
return false;
|
|
53
|
-
}
|
|
54
|
-
saveTokensToConfig() {
|
|
55
|
-
const accessToken = this.apiClient.getAccessToken();
|
|
56
|
-
const idToken = this.apiClient.getIdToken();
|
|
57
|
-
const refreshToken = this.apiClient.getRefreshToken();
|
|
58
|
-
this.logger.debug('Saving tokens', {
|
|
59
|
-
hasAccessToken: !!accessToken,
|
|
60
|
-
hasIdToken: !!idToken,
|
|
61
|
-
hasRefreshToken: !!refreshToken,
|
|
62
|
-
});
|
|
63
|
-
this.configRepository.updateConfig({
|
|
64
|
-
accessToken,
|
|
65
|
-
idToken,
|
|
66
|
-
refreshToken,
|
|
67
|
-
});
|
|
20
|
+
return this.tokenManager.ensureValidToken(this.apiClient, this.loginDevice.bind(this));
|
|
68
21
|
}
|
|
69
22
|
async loginUser(email, password) {
|
|
70
23
|
try {
|
|
71
24
|
const loginRequest = { email, password };
|
|
72
25
|
const response = await this.apiClient.login(loginRequest);
|
|
73
|
-
this.saveTokensToConfig();
|
|
26
|
+
this.tokenManager.saveTokensToConfig(this.apiClient);
|
|
74
27
|
return response;
|
|
75
28
|
}
|
|
76
29
|
catch (error) {
|
|
@@ -130,7 +83,7 @@ class AuthServiceImpl {
|
|
|
130
83
|
try {
|
|
131
84
|
const loginRequest = { email: deviceId, password };
|
|
132
85
|
const response = await this.apiClient.login(loginRequest);
|
|
133
|
-
this.saveTokensToConfig();
|
|
86
|
+
this.tokenManager.saveTokensToConfig(this.apiClient);
|
|
134
87
|
return response;
|
|
135
88
|
}
|
|
136
89
|
catch (error) {
|
|
@@ -183,7 +136,7 @@ class AuthServiceImpl {
|
|
|
183
136
|
async refreshToken(refreshToken) {
|
|
184
137
|
try {
|
|
185
138
|
const response = await this.apiClient.refreshToken({ refreshToken });
|
|
186
|
-
this.saveTokensToConfig();
|
|
139
|
+
this.tokenManager.saveTokensToConfig(this.apiClient);
|
|
187
140
|
return response;
|
|
188
141
|
}
|
|
189
142
|
catch (error) {
|
|
@@ -192,13 +145,13 @@ class AuthServiceImpl {
|
|
|
192
145
|
}
|
|
193
146
|
}
|
|
194
147
|
getAccessToken() {
|
|
195
|
-
return this.
|
|
148
|
+
return this.tokenManager.getAccessToken();
|
|
196
149
|
}
|
|
197
150
|
getIdToken() {
|
|
198
|
-
return this.
|
|
151
|
+
return this.tokenManager.getIdToken();
|
|
199
152
|
}
|
|
200
153
|
getRefreshToken() {
|
|
201
|
-
return this.
|
|
154
|
+
return this.tokenManager.getRefreshToken();
|
|
202
155
|
}
|
|
203
156
|
async getUserOrganizations(email) {
|
|
204
157
|
try {
|
|
@@ -3,10 +3,12 @@ export type DaemonType = 'systemd' | 'launchd' | 'windows-service' | 'docker' |
|
|
|
3
3
|
export declare class DaemonManagerFactory {
|
|
4
4
|
/**
|
|
5
5
|
* Create a daemon manager instance based on the type
|
|
6
|
+
* Only native daemon installations are supported (systemd, launchd, windows-service)
|
|
6
7
|
*/
|
|
7
8
|
static create(type: DaemonType): IDaemonManager;
|
|
8
9
|
/**
|
|
9
10
|
* Get daemon manager from stored config type
|
|
11
|
+
* Only native daemon types are supported
|
|
10
12
|
*/
|
|
11
13
|
static fromConfig(installationType?: string): IDaemonManager | null;
|
|
12
14
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DaemonManagerFactory.d.ts","sourceRoot":"","sources":["../../../src/services/daemon/DaemonManagerFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAQjE,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,iBAAiB,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEzF,qBAAa,oBAAoB;IAC/B
|
|
1
|
+
{"version":3,"file":"DaemonManagerFactory.d.ts","sourceRoot":"","sources":["../../../src/services/daemon/DaemonManagerFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAQjE,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,iBAAiB,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEzF,qBAAa,oBAAoB;IAC/B;;;OAGG;IACH,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,GAAG,cAAc;IAiC/C;;;OAGG;IACH,MAAM,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI;IAwBnE;;OAEG;WACU,cAAc,IAAI,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;CAS9D"}
|
|
@@ -4,15 +4,18 @@ exports.DaemonManagerFactory = void 0;
|
|
|
4
4
|
const SystemdDaemonManager_1 = require("./SystemdDaemonManager");
|
|
5
5
|
const LaunchdDaemonManager_1 = require("./LaunchdDaemonManager");
|
|
6
6
|
const WindowsServiceDaemonManager_1 = require("./WindowsServiceDaemonManager");
|
|
7
|
-
const DockerDaemonManager_1 = require("./DockerDaemonManager");
|
|
8
|
-
const PodmanDaemonManager_1 = require("./PodmanDaemonManager");
|
|
9
7
|
const PlatformDetector_1 = require("../../utils/PlatformDetector");
|
|
10
8
|
class DaemonManagerFactory {
|
|
11
9
|
/**
|
|
12
10
|
* Create a daemon manager instance based on the type
|
|
11
|
+
* Only native daemon installations are supported (systemd, launchd, windows-service)
|
|
13
12
|
*/
|
|
14
13
|
static create(type) {
|
|
15
14
|
const platform = PlatformDetector_1.PlatformDetector.getPlatform();
|
|
15
|
+
// Block Docker and Podman installations
|
|
16
|
+
if (type === 'docker' || type === 'podman') {
|
|
17
|
+
throw new Error(`${type} installations are no longer supported. Please use native daemon installations (systemd, launchd, or windows-service).`);
|
|
18
|
+
}
|
|
16
19
|
switch (type) {
|
|
17
20
|
case 'systemd':
|
|
18
21
|
if (platform !== 'linux') {
|
|
@@ -29,16 +32,13 @@ class DaemonManagerFactory {
|
|
|
29
32
|
throw new Error('Windows Service is only available on Windows');
|
|
30
33
|
}
|
|
31
34
|
return new WindowsServiceDaemonManager_1.WindowsServiceDaemonManager();
|
|
32
|
-
case 'docker':
|
|
33
|
-
return new DockerDaemonManager_1.DockerDaemonManager();
|
|
34
|
-
case 'podman':
|
|
35
|
-
return new PodmanDaemonManager_1.PodmanDaemonManager();
|
|
36
35
|
default:
|
|
37
36
|
throw new Error(`Unknown daemon type: ${type}`);
|
|
38
37
|
}
|
|
39
38
|
}
|
|
40
39
|
/**
|
|
41
40
|
* Get daemon manager from stored config type
|
|
41
|
+
* Only native daemon types are supported
|
|
42
42
|
*/
|
|
43
43
|
static fromConfig(installationType) {
|
|
44
44
|
if (!installationType) {
|
|
@@ -48,6 +48,14 @@ class DaemonManagerFactory {
|
|
|
48
48
|
if (!validTypes.includes(installationType)) {
|
|
49
49
|
throw new Error(`Invalid installation type in config: ${installationType}`);
|
|
50
50
|
}
|
|
51
|
+
// Provide helpful error for legacy Docker/Podman installations
|
|
52
|
+
if (installationType === 'docker' || installationType === 'podman') {
|
|
53
|
+
throw new Error(`${installationType} installations are no longer supported.\n` +
|
|
54
|
+
`Please uninstall the current agent and reinstall using a native daemon:\n` +
|
|
55
|
+
` - Linux: systemd\n` +
|
|
56
|
+
` - macOS: launchd\n` +
|
|
57
|
+
` - Windows: windows-service`);
|
|
58
|
+
}
|
|
51
59
|
return this.create(installationType);
|
|
52
60
|
}
|
|
53
61
|
/**
|