@edgible-team/cli 1.2.15 → 1.2.19
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/README.md +5 -3
- package/dist/client/api-client.d.ts +26 -1
- package/dist/client/api-client.d.ts.map +1 -1
- package/dist/client/api-client.js +31 -0
- package/dist/commands/agent/install.d.ts +2 -1
- package/dist/commands/agent/install.d.ts.map +1 -1
- package/dist/commands/agent/install.js +24 -7
- package/dist/commands/agent/start.d.ts +5 -1
- package/dist/commands/agent/start.d.ts.map +1 -1
- package/dist/commands/agent/start.js +19 -280
- package/dist/commands/agent/uninstall.d.ts.map +1 -1
- package/dist/commands/agent/uninstall.js +14 -7
- package/dist/commands/agent.d.ts.map +1 -1
- package/dist/commands/agent.js +3 -2
- package/dist/commands/ai/setup.d.ts +1 -1
- package/dist/commands/ai/setup.d.ts.map +1 -1
- package/dist/commands/ai.js +1 -1
- package/dist/commands/application/create-docker-compose.d.ts +3 -1
- package/dist/commands/application/create-docker-compose.d.ts.map +1 -1
- package/dist/commands/application/create-docker-compose.js +25 -69
- package/dist/commands/application/create-existing.d.ts +2 -2
- package/dist/commands/application/create-existing.d.ts.map +1 -1
- package/dist/commands/application/create-existing.js +27 -132
- package/dist/commands/application/create-managed-process.d.ts +3 -1
- package/dist/commands/application/create-managed-process.d.ts.map +1 -1
- package/dist/commands/application/create-managed-process.js +31 -75
- package/dist/commands/application/create-stubs.d.ts +0 -1
- package/dist/commands/application/create-stubs.d.ts.map +1 -1
- package/dist/commands/application/create-stubs.js +0 -4
- package/dist/commands/application/create-vm.d.ts +19 -0
- package/dist/commands/application/create-vm.d.ts.map +1 -0
- package/dist/commands/application/create-vm.js +390 -0
- package/dist/commands/application/delete.d.ts +2 -1
- package/dist/commands/application/delete.d.ts.map +1 -1
- package/dist/commands/application/delete.js +19 -5
- package/dist/commands/application/get.d.ts.map +1 -1
- package/dist/commands/application/get.js +29 -1
- package/dist/commands/application/ssh.d.ts +7 -0
- package/dist/commands/application/ssh.d.ts.map +1 -0
- package/dist/commands/application/ssh.js +146 -0
- package/dist/commands/application/update.d.ts +3 -0
- package/dist/commands/application/update.d.ts.map +1 -1
- package/dist/commands/application/update.js +45 -1
- package/dist/commands/application.d.ts.map +1 -1
- package/dist/commands/application.js +81 -26
- package/dist/commands/auth.d.ts.map +1 -1
- package/dist/commands/auth.js +44 -0
- package/dist/commands/debug.js +1 -1
- package/dist/commands/device/application-health.d.ts +7 -0
- package/dist/commands/device/application-health.d.ts.map +1 -0
- package/dist/commands/device/application-health.js +103 -0
- package/dist/commands/device/delete.d.ts +7 -0
- package/dist/commands/device/delete.d.ts.map +1 -0
- package/dist/commands/device/delete.js +69 -0
- package/dist/commands/device/health.d.ts +7 -0
- package/dist/commands/device/health.d.ts.map +1 -0
- package/dist/commands/device/health.js +78 -0
- package/dist/commands/device/list.d.ts +5 -0
- package/dist/commands/device/list.d.ts.map +1 -0
- package/dist/commands/device/list.js +46 -0
- package/dist/commands/device/telemetry.d.ts +8 -0
- package/dist/commands/device/telemetry.d.ts.map +1 -0
- package/dist/commands/device/telemetry.js +59 -0
- package/dist/commands/device.d.ts +6 -0
- package/dist/commands/device.d.ts.map +1 -0
- package/dist/commands/device.js +86 -0
- package/dist/commands/stack/deploy.d.ts +3 -1
- package/dist/commands/stack/deploy.d.ts.map +1 -1
- package/dist/commands/stack/deploy.js +5 -2
- package/dist/commands/stack/diff.d.ts +1 -1
- package/dist/commands/stack/diff.d.ts.map +1 -1
- package/dist/commands/stack/diff.js +4 -2
- package/dist/commands/stack/status.d.ts +1 -1
- package/dist/commands/stack/status.d.ts.map +1 -1
- package/dist/commands/stack/status.js +4 -2
- package/dist/commands/stack/teardown.d.ts +3 -1
- package/dist/commands/stack/teardown.d.ts.map +1 -1
- package/dist/commands/stack/teardown.js +5 -2
- package/dist/commands/stack/validate.d.ts +1 -1
- package/dist/commands/stack/validate.d.ts.map +1 -1
- package/dist/commands/stack/validate.js +4 -2
- package/dist/commands/stack.d.ts.map +1 -1
- package/dist/commands/stack.js +10 -5
- package/dist/commands/utils/auth-prompt.d.ts +25 -0
- package/dist/commands/utils/auth-prompt.d.ts.map +1 -0
- package/dist/commands/utils/auth-prompt.js +115 -0
- package/dist/commands/utils/device-prompt.d.ts +18 -0
- package/dist/commands/utils/device-prompt.d.ts.map +1 -0
- package/dist/commands/utils/device-prompt.js +58 -0
- package/dist/commands/utils/output-formatter.d.ts +13 -0
- package/dist/commands/utils/output-formatter.d.ts.map +1 -1
- package/dist/commands/utils/output-formatter.js +21 -0
- package/dist/index.js +2 -0
- package/dist/services/LocalAgentManager.d.ts +2 -1
- package/dist/services/LocalAgentManager.d.ts.map +1 -1
- package/dist/services/LocalAgentManager.js +6 -4
- package/dist/services/application/ApplicationService.d.ts +41 -2
- package/dist/services/application/ApplicationService.d.ts.map +1 -1
- package/dist/services/application/ApplicationService.js +49 -1
- package/dist/services/device/DeviceService.d.ts +62 -0
- package/dist/services/device/DeviceService.d.ts.map +1 -0
- package/dist/services/device/DeviceService.js +235 -0
- package/dist/services/edgible.d.ts +3 -1
- package/dist/services/edgible.d.ts.map +1 -1
- package/dist/services/edgible.js +5 -4
- package/dist/services/instances.d.ts +4 -1
- package/dist/services/instances.d.ts.map +1 -1
- package/dist/services/instances.js +8 -4
- package/dist/types/AgentConfig.d.ts +26 -0
- package/dist/types/AgentConfig.d.ts.map +1 -1
- package/dist/types/ApiRequests.d.ts +5 -1
- package/dist/types/ApiRequests.d.ts.map +1 -1
- package/dist/types/ApiResponses.d.ts +9 -0
- package/dist/types/ApiResponses.d.ts.map +1 -1
- package/dist/types/JobTypes.d.ts +103 -0
- package/dist/types/JobTypes.d.ts.map +1 -0
- package/dist/types/JobTypes.js +80 -0
- package/dist/types/WebSocketMessages.d.ts +89 -0
- package/dist/types/WebSocketMessages.d.ts.map +1 -0
- package/dist/types/WebSocketMessages.js +5 -0
- package/dist/types/Workload.d.ts +1 -1
- package/dist/types/Workload.d.ts.map +1 -1
- package/dist/types/backendJobs.d.ts +102 -0
- package/dist/types/backendJobs.d.ts.map +1 -0
- package/dist/types/backendJobs.js +5 -0
- package/dist/types/models/ApplicationData.d.ts +1 -1
- package/dist/types/models/ApplicationData.d.ts.map +1 -1
- package/dist/types/models/DeviceData.d.ts +4 -0
- package/dist/types/models/DeviceData.d.ts.map +1 -1
- package/dist/types/stack.d.ts +9 -1
- package/dist/types/stack.d.ts.map +1 -1
- package/dist/types/validation/schemas.d.ts +5 -5
- package/dist/types/validation/schemas.js +1 -1
- package/dist/utils/stack-file.d.ts +11 -0
- package/dist/utils/stack-file.d.ts.map +1 -0
- package/dist/utils/stack-file.js +66 -0
- package/dist/validation/stack-schemas.d.ts +319 -27
- package/dist/validation/stack-schemas.d.ts.map +1 -1
- package/dist/validation/stack-schemas.js +20 -5
- package/package.json +1 -1
- package/dist/commands/agent/agent-handlers.d.ts +0 -45
- package/dist/commands/agent/agent-handlers.d.ts.map +0 -1
- package/dist/commands/agent/agent-handlers.js +0 -1159
- package/dist/commands/application/api-keys.d.ts +0 -3
- package/dist/commands/application/api-keys.d.ts.map +0 -1
- package/dist/commands/application/api-keys.js +0 -227
- package/dist/commands/application/create-compose.d.ts +0 -3
- package/dist/commands/application/create-compose.d.ts.map +0 -1
- package/dist/commands/application/create-compose.js +0 -381
- package/dist/commands/application/create-interactive.d.ts +0 -3
- package/dist/commands/application/create-interactive.d.ts.map +0 -1
- package/dist/commands/application/create-interactive.js +0 -326
- package/dist/commands/application/create-workload.d.ts +0 -5
- package/dist/commands/application/create-workload.d.ts.map +0 -1
- package/dist/commands/application/create-workload.js +0 -48
- package/dist/commands/application/short-codes.d.ts +0 -3
- package/dist/commands/application/short-codes.d.ts.map +0 -1
- package/dist/commands/application/short-codes.js +0 -226
- package/dist/commands/application/toggle.d.ts +0 -2
- package/dist/commands/application/toggle.d.ts.map +0 -1
- package/dist/commands/application/toggle.js +0 -78
- package/dist/commands/examples/migrated-command-example.d.ts +0 -31
- package/dist/commands/examples/migrated-command-example.d.ts.map +0 -1
- package/dist/commands/examples/migrated-command-example.js +0 -180
- package/dist/commands/managedGateway/create.d.ts +0 -6
- package/dist/commands/managedGateway/create.d.ts.map +0 -1
- package/dist/commands/managedGateway/create.js +0 -50
- package/dist/commands/managedGateway/delete.d.ts +0 -5
- package/dist/commands/managedGateway/delete.d.ts.map +0 -1
- package/dist/commands/managedGateway/delete.js +0 -57
- package/dist/commands/managedGateway/get.d.ts +0 -4
- package/dist/commands/managedGateway/get.d.ts.map +0 -1
- package/dist/commands/managedGateway/get.js +0 -71
- package/dist/commands/managedGateway/haproxy-stats.d.ts +0 -6
- package/dist/commands/managedGateway/haproxy-stats.d.ts.map +0 -1
- package/dist/commands/managedGateway/haproxy-stats.js +0 -131
- package/dist/commands/managedGateway/list.d.ts +0 -4
- package/dist/commands/managedGateway/list.d.ts.map +0 -1
- package/dist/commands/managedGateway/list.js +0 -50
- package/dist/commands/managedGateway/logs.d.ts +0 -10
- package/dist/commands/managedGateway/logs.d.ts.map +0 -1
- package/dist/commands/managedGateway/logs.js +0 -100
- package/dist/commands/managedGateway/reboot.d.ts +0 -5
- package/dist/commands/managedGateway/reboot.d.ts.map +0 -1
- package/dist/commands/managedGateway/reboot.js +0 -95
- package/dist/commands/managedGateway/resync.d.ts +0 -10
- package/dist/commands/managedGateway/resync.d.ts.map +0 -1
- package/dist/commands/managedGateway/resync.js +0 -69
- package/dist/commands/managedGateway/ssh.d.ts +0 -4
- package/dist/commands/managedGateway/ssh.d.ts.map +0 -1
- package/dist/commands/managedGateway/ssh.js +0 -130
- package/dist/commands/managedGateway/wipe-logs.d.ts +0 -4
- package/dist/commands/managedGateway/wipe-logs.d.ts.map +0 -1
- package/dist/commands/managedGateway/wipe-logs.js +0 -67
- package/dist/commands/managedGateway/wireguard.d.ts +0 -4
- package/dist/commands/managedGateway/wireguard.d.ts.map +0 -1
- package/dist/commands/managedGateway/wireguard.js +0 -68
- package/dist/di/bindings.d.ts +0 -15
- package/dist/di/bindings.d.ts.map +0 -1
- package/dist/di/bindings.js +0 -99
- package/dist/di/container.d.ts +0 -44
- package/dist/di/container.d.ts.map +0 -1
- package/dist/di/container.js +0 -88
- package/dist/di/types.d.ts +0 -23
- package/dist/di/types.d.ts.map +0 -1
- package/dist/di/types.js +0 -32
- package/dist/repositories/config-repository.d.ts +0 -46
- package/dist/repositories/config-repository.d.ts.map +0 -1
- package/dist/repositories/config-repository.js +0 -62
- package/dist/repositories/gateway-repository.d.ts +0 -37
- package/dist/repositories/gateway-repository.d.ts.map +0 -1
- package/dist/repositories/gateway-repository.js +0 -35
|
@@ -235,6 +235,23 @@ class ApplicationServiceImpl {
|
|
|
235
235
|
throw error;
|
|
236
236
|
}
|
|
237
237
|
}
|
|
238
|
+
async getApplicationDetails(id) {
|
|
239
|
+
try {
|
|
240
|
+
const response = await this.apiClient.getApplication(id);
|
|
241
|
+
const appData = response.application;
|
|
242
|
+
return {
|
|
243
|
+
id: appData.id,
|
|
244
|
+
name: appData.name,
|
|
245
|
+
subtype: appData.subtype,
|
|
246
|
+
configuration: appData.configuration,
|
|
247
|
+
deviceApplicationConfigs: appData.deviceApplicationConfigs,
|
|
248
|
+
};
|
|
249
|
+
}
|
|
250
|
+
catch (error) {
|
|
251
|
+
this.logger.error('Error getting application details', error);
|
|
252
|
+
throw error;
|
|
253
|
+
}
|
|
254
|
+
}
|
|
238
255
|
async deleteApplication(id) {
|
|
239
256
|
try {
|
|
240
257
|
// Attempt auto re-login if tokens are missing but credentials are available
|
|
@@ -293,7 +310,6 @@ class ApplicationServiceImpl {
|
|
|
293
310
|
if (params.dependsOnApplicationIds !== undefined && params.dependsOnApplicationIds.length > 0) {
|
|
294
311
|
createRequest.dependsOnApplicationIds = params.dependsOnApplicationIds;
|
|
295
312
|
}
|
|
296
|
-
console.log(`application: ${params}`);
|
|
297
313
|
const response = await this.apiClient.createApplication(createRequest);
|
|
298
314
|
return response.application;
|
|
299
315
|
}
|
|
@@ -398,6 +414,38 @@ class ApplicationServiceImpl {
|
|
|
398
414
|
throw new Error(`Failed to delete short code: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
399
415
|
}
|
|
400
416
|
}
|
|
417
|
+
/**
|
|
418
|
+
* Update application (e.g. auth modes, name, description)
|
|
419
|
+
*/
|
|
420
|
+
async updateApplication(applicationId, updates) {
|
|
421
|
+
try {
|
|
422
|
+
await this.tokenManager.ensureValidToken(this.apiClient, this.authService.loginDevice.bind(this.authService));
|
|
423
|
+
const response = await this.apiClient.updateApplication({ applicationId, ...updates });
|
|
424
|
+
return response.application;
|
|
425
|
+
}
|
|
426
|
+
catch (error) {
|
|
427
|
+
this.logger.error('Failed to update application', error);
|
|
428
|
+
throw new Error(`Failed to update application: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
429
|
+
}
|
|
430
|
+
}
|
|
431
|
+
/**
|
|
432
|
+
* Fetch the SSH private key stored for a VM application.
|
|
433
|
+
* Returns null if no key is stored (user must provide --key themselves).
|
|
434
|
+
*/
|
|
435
|
+
async getApplicationVmSshKey(applicationId) {
|
|
436
|
+
try {
|
|
437
|
+
await this.tokenManager.ensureValidToken(this.apiClient, this.authService.loginDevice.bind(this.authService));
|
|
438
|
+
const response = await this.apiClient.getApplicationVmSshKey(applicationId);
|
|
439
|
+
return response.sshPrivateKey ?? null;
|
|
440
|
+
}
|
|
441
|
+
catch (error) {
|
|
442
|
+
// 404 means no key was stored (user supplied their own at creation time)
|
|
443
|
+
if (error?.statusCode === 404 || error?.status === 404 || String(error?.message).includes('404')) {
|
|
444
|
+
return null;
|
|
445
|
+
}
|
|
446
|
+
throw error;
|
|
447
|
+
}
|
|
448
|
+
}
|
|
401
449
|
}
|
|
402
450
|
exports.ApplicationServiceImpl = ApplicationServiceImpl;
|
|
403
451
|
//# sourceMappingURL=ApplicationService.js.map
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Device service
|
|
3
|
+
* Handles device list and delete operations for the organization
|
|
4
|
+
*/
|
|
5
|
+
import { ConfigManager } from '../../state/config';
|
|
6
|
+
import { AuthService } from '../auth/AuthService';
|
|
7
|
+
import { TokenManager } from '../token/TokenManager';
|
|
8
|
+
import { Logger } from '../../utils/logger';
|
|
9
|
+
import { DeviceData } from '../../types/models/DeviceData';
|
|
10
|
+
import type { DeviceHealthStatus, DeviceApplicationHealthResponse } from '../../types/AgentConfig';
|
|
11
|
+
export type DeviceTypeFilter = 'serving' | 'gateway';
|
|
12
|
+
export interface ListDevicesOptions {
|
|
13
|
+
type?: DeviceTypeFilter;
|
|
14
|
+
}
|
|
15
|
+
export interface DeviceListResult {
|
|
16
|
+
devices: DeviceData[];
|
|
17
|
+
}
|
|
18
|
+
export interface DeviceTelemetryResult {
|
|
19
|
+
data: unknown;
|
|
20
|
+
status: number;
|
|
21
|
+
}
|
|
22
|
+
export interface DeviceService {
|
|
23
|
+
listDevices(options?: ListDevicesOptions): Promise<DeviceListResult>;
|
|
24
|
+
deleteDevice(deviceId: string): Promise<void>;
|
|
25
|
+
/** Get a single device by ID (includes telemetryUrl when set). */
|
|
26
|
+
getDevice(deviceId: string): Promise<DeviceData | null>;
|
|
27
|
+
/** Fetch JSON from a device telemetry endpoint using current auth token. */
|
|
28
|
+
fetchTelemetry(telemetryBaseUrl: string, endpoint: string): Promise<DeviceTelemetryResult>;
|
|
29
|
+
/** Resolve device by ID or name; returns device ID or null if not found / not selected. */
|
|
30
|
+
resolveDeviceId(options: {
|
|
31
|
+
deviceId?: string;
|
|
32
|
+
name?: string;
|
|
33
|
+
interactive?: boolean;
|
|
34
|
+
message?: string;
|
|
35
|
+
}): Promise<string | null>;
|
|
36
|
+
/** Fetch device health from telemetry endpoint (uses telemetry session token). */
|
|
37
|
+
getDeviceHealth(deviceId: string): Promise<DeviceHealthStatus>;
|
|
38
|
+
/** Fetch application health for a device from telemetry GET /health/applications (uses telemetry session). */
|
|
39
|
+
getDeviceApplicationHealth(deviceId: string): Promise<DeviceApplicationHealthResponse>;
|
|
40
|
+
}
|
|
41
|
+
export declare class DeviceServiceImpl implements DeviceService {
|
|
42
|
+
private apiClient;
|
|
43
|
+
private configManager;
|
|
44
|
+
private authService;
|
|
45
|
+
private tokenManager;
|
|
46
|
+
private logger;
|
|
47
|
+
private baseUrl;
|
|
48
|
+
constructor(baseUrl: string, configManager: ConfigManager, authService: AuthService, tokenManager: TokenManager, logger: Logger);
|
|
49
|
+
listDevices(options?: ListDevicesOptions): Promise<DeviceListResult>;
|
|
50
|
+
deleteDevice(deviceId: string): Promise<void>;
|
|
51
|
+
getDevice(deviceId: string): Promise<DeviceData | null>;
|
|
52
|
+
fetchTelemetry(telemetryBaseUrl: string, endpoint: string): Promise<DeviceTelemetryResult>;
|
|
53
|
+
resolveDeviceId(options: {
|
|
54
|
+
deviceId?: string;
|
|
55
|
+
name?: string;
|
|
56
|
+
interactive?: boolean;
|
|
57
|
+
message?: string;
|
|
58
|
+
}): Promise<string | null>;
|
|
59
|
+
getDeviceHealth(deviceId: string): Promise<DeviceHealthStatus>;
|
|
60
|
+
getDeviceApplicationHealth(deviceId: string): Promise<DeviceApplicationHealthResponse>;
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=DeviceService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DeviceService.d.ts","sourceRoot":"","sources":["../../../src/services/device/DeviceService.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Device service
|
|
4
|
+
* Handles device list and delete operations for the organization
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.DeviceServiceImpl = void 0;
|
|
8
|
+
const client_1 = require("../../client");
|
|
9
|
+
class DeviceServiceImpl {
|
|
10
|
+
constructor(baseUrl, configManager, authService, tokenManager, logger) {
|
|
11
|
+
this.baseUrl = baseUrl;
|
|
12
|
+
this.configManager = configManager;
|
|
13
|
+
this.authService = authService;
|
|
14
|
+
this.tokenManager = tokenManager;
|
|
15
|
+
this.logger = logger;
|
|
16
|
+
this.apiClient = (0, client_1.createApiClient)(baseUrl);
|
|
17
|
+
this.tokenManager.restoreTokensFromConfig(this.apiClient);
|
|
18
|
+
}
|
|
19
|
+
async listDevices(options) {
|
|
20
|
+
await this.tokenManager.ensureValidToken(this.apiClient, this.authService.loginDevice.bind(this.authService));
|
|
21
|
+
this.tokenManager.restoreTokensFromConfig(this.apiClient);
|
|
22
|
+
const config = this.configManager.getConfig();
|
|
23
|
+
if (!config.organizationId) {
|
|
24
|
+
throw new Error('No organization ID found. Please login first.');
|
|
25
|
+
}
|
|
26
|
+
this.logger.debug('Fetching organization devices', { organizationId: config.organizationId });
|
|
27
|
+
const response = await this.apiClient.getOrganizationDevices(config.organizationId);
|
|
28
|
+
let devices = response.devices || [];
|
|
29
|
+
if (options?.type) {
|
|
30
|
+
if (options.type === 'serving') {
|
|
31
|
+
devices = devices.filter((d) => d.type === 'server');
|
|
32
|
+
}
|
|
33
|
+
else if (options.type === 'gateway') {
|
|
34
|
+
devices = devices.filter((d) => d.type === 'gateway');
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
return { devices };
|
|
38
|
+
}
|
|
39
|
+
async deleteDevice(deviceId) {
|
|
40
|
+
await this.tokenManager.ensureValidToken(this.apiClient, this.authService.loginDevice.bind(this.authService));
|
|
41
|
+
this.tokenManager.restoreTokensFromConfig(this.apiClient);
|
|
42
|
+
this.logger.debug('Deleting device', { deviceId });
|
|
43
|
+
await this.apiClient.deleteDevice(deviceId);
|
|
44
|
+
const config = this.configManager.getConfig();
|
|
45
|
+
if (config.deviceId === deviceId) {
|
|
46
|
+
this.configManager.updateConfig({
|
|
47
|
+
deviceId: undefined,
|
|
48
|
+
deviceName: undefined,
|
|
49
|
+
devicePassword: undefined,
|
|
50
|
+
deviceType: undefined,
|
|
51
|
+
});
|
|
52
|
+
this.logger.debug('Cleared current device from config after deletion');
|
|
53
|
+
}
|
|
54
|
+
this.configManager.removeGateway(deviceId);
|
|
55
|
+
}
|
|
56
|
+
async getDevice(deviceId) {
|
|
57
|
+
await this.tokenManager.ensureValidToken(this.apiClient, this.authService.loginDevice.bind(this.authService));
|
|
58
|
+
this.tokenManager.restoreTokensFromConfig(this.apiClient);
|
|
59
|
+
this.logger.debug('Fetching device', { deviceId });
|
|
60
|
+
const response = await this.apiClient.getDevice(deviceId);
|
|
61
|
+
return response.device ?? null;
|
|
62
|
+
}
|
|
63
|
+
async fetchTelemetry(telemetryBaseUrl, endpoint) {
|
|
64
|
+
await this.tokenManager.ensureValidToken(this.apiClient, this.authService.loginDevice.bind(this.authService));
|
|
65
|
+
this.tokenManager.restoreTokensFromConfig(this.apiClient);
|
|
66
|
+
const token = this.apiClient.getIdToken() ?? this.apiClient.getAccessToken();
|
|
67
|
+
if (!token) {
|
|
68
|
+
throw new Error('No auth token available. Please run "edgible login" first.');
|
|
69
|
+
}
|
|
70
|
+
const base = telemetryBaseUrl.replace(/\/$/, '');
|
|
71
|
+
const path = endpoint.startsWith('/') ? endpoint : `/${endpoint}`;
|
|
72
|
+
const url = `${base}${path}`;
|
|
73
|
+
this.logger.debug('Fetching device telemetry', { url });
|
|
74
|
+
const controller = new AbortController();
|
|
75
|
+
const timeoutId = setTimeout(() => controller.abort(), 15000);
|
|
76
|
+
let response;
|
|
77
|
+
try {
|
|
78
|
+
response = await fetch(url, {
|
|
79
|
+
method: 'GET',
|
|
80
|
+
headers: {
|
|
81
|
+
Accept: 'application/json',
|
|
82
|
+
Authorization: `Bearer ${token}`,
|
|
83
|
+
},
|
|
84
|
+
signal: controller.signal,
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
catch (err) {
|
|
88
|
+
clearTimeout(timeoutId);
|
|
89
|
+
if (err instanceof Error && err.name === 'AbortError') {
|
|
90
|
+
throw new Error('Telemetry request timed out after 15 seconds.');
|
|
91
|
+
}
|
|
92
|
+
throw new Error(`Failed to reach telemetry endpoint: ${err instanceof Error ? err.message : String(err)}`);
|
|
93
|
+
}
|
|
94
|
+
clearTimeout(timeoutId);
|
|
95
|
+
const text = await response.text();
|
|
96
|
+
let data;
|
|
97
|
+
try {
|
|
98
|
+
data = text ? JSON.parse(text) : {};
|
|
99
|
+
}
|
|
100
|
+
catch {
|
|
101
|
+
data = { raw: text };
|
|
102
|
+
}
|
|
103
|
+
if (!response.ok) {
|
|
104
|
+
throw new Error(`Telemetry request failed (${response.status}): ${response.statusText}${text ? ` - ${text.slice(0, 200)}` : ''}`);
|
|
105
|
+
}
|
|
106
|
+
return { data, status: response.status };
|
|
107
|
+
}
|
|
108
|
+
async resolveDeviceId(options) {
|
|
109
|
+
if (options.name && !options.deviceId) {
|
|
110
|
+
const { devices } = await this.listDevices();
|
|
111
|
+
const device = devices.find((d) => d.name === options.name);
|
|
112
|
+
if (!device) {
|
|
113
|
+
throw new Error(`Device with name "${options.name}" not found. Use "edgible device list" to see available devices.`);
|
|
114
|
+
}
|
|
115
|
+
this.logger.debug('Resolved device name to ID', { name: options.name, deviceId: device.id });
|
|
116
|
+
return device.id;
|
|
117
|
+
}
|
|
118
|
+
if (options.deviceId) {
|
|
119
|
+
return options.deviceId;
|
|
120
|
+
}
|
|
121
|
+
return null;
|
|
122
|
+
}
|
|
123
|
+
async getDeviceHealth(deviceId) {
|
|
124
|
+
await this.tokenManager.ensureValidToken(this.apiClient, this.authService.loginDevice.bind(this.authService));
|
|
125
|
+
this.tokenManager.restoreTokensFromConfig(this.apiClient);
|
|
126
|
+
const device = await this.getDevice(deviceId);
|
|
127
|
+
if (!device) {
|
|
128
|
+
throw new Error(`Device not found: ${deviceId}`);
|
|
129
|
+
}
|
|
130
|
+
if (!device.telemetryUrl?.trim()) {
|
|
131
|
+
throw new Error(`No telemetry URL configured for device "${device.name}" (${deviceId}). Telemetry may not be set up for this device.`);
|
|
132
|
+
}
|
|
133
|
+
// Use same token as rest of CLI (config is source of truth; restore again before backend call)
|
|
134
|
+
this.tokenManager.restoreTokensFromConfig(this.apiClient);
|
|
135
|
+
const { sessionToken } = await this.apiClient.createTelemetrySession(deviceId);
|
|
136
|
+
const base = device.telemetryUrl.trim().replace(/\/$/, '');
|
|
137
|
+
const url = `${base}/health/device`;
|
|
138
|
+
this.logger.debug('Fetching device health via telemetry session', { deviceId, url });
|
|
139
|
+
const controller = new AbortController();
|
|
140
|
+
const timeoutId = setTimeout(() => controller.abort(), 15000);
|
|
141
|
+
let response;
|
|
142
|
+
try {
|
|
143
|
+
response = await fetch(url, {
|
|
144
|
+
method: 'GET',
|
|
145
|
+
headers: {
|
|
146
|
+
Accept: 'application/json',
|
|
147
|
+
'X-Session-Token': sessionToken,
|
|
148
|
+
},
|
|
149
|
+
signal: controller.signal,
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
catch (err) {
|
|
153
|
+
clearTimeout(timeoutId);
|
|
154
|
+
if (err instanceof Error && err.name === 'AbortError') {
|
|
155
|
+
throw new Error('Device health request timed out after 15 seconds.');
|
|
156
|
+
}
|
|
157
|
+
throw new Error(`Failed to reach device health endpoint: ${err instanceof Error ? err.message : String(err)}`);
|
|
158
|
+
}
|
|
159
|
+
clearTimeout(timeoutId);
|
|
160
|
+
const text = await response.text();
|
|
161
|
+
let data;
|
|
162
|
+
try {
|
|
163
|
+
data = text ? JSON.parse(text) : {};
|
|
164
|
+
}
|
|
165
|
+
catch {
|
|
166
|
+
throw new Error(`Invalid JSON from device health endpoint: ${text.slice(0, 200)}`);
|
|
167
|
+
}
|
|
168
|
+
if (!response.ok) {
|
|
169
|
+
throw new Error(`Device health request failed (${response.status}): ${response.statusText}${text ? ` - ${text.slice(0, 200)}` : ''}`);
|
|
170
|
+
}
|
|
171
|
+
const health = data;
|
|
172
|
+
if (typeof health.cpuUsage !== 'number' ||
|
|
173
|
+
typeof health.memoryUsage !== 'number' ||
|
|
174
|
+
typeof health.diskUsage !== 'number' ||
|
|
175
|
+
typeof health.uptime !== 'number') {
|
|
176
|
+
throw new Error('Device health endpoint returned unexpected shape (missing cpuUsage, memoryUsage, diskUsage, or uptime).');
|
|
177
|
+
}
|
|
178
|
+
return health;
|
|
179
|
+
}
|
|
180
|
+
async getDeviceApplicationHealth(deviceId) {
|
|
181
|
+
await this.tokenManager.ensureValidToken(this.apiClient, this.authService.loginDevice.bind(this.authService));
|
|
182
|
+
this.tokenManager.restoreTokensFromConfig(this.apiClient);
|
|
183
|
+
const device = await this.getDevice(deviceId);
|
|
184
|
+
if (!device) {
|
|
185
|
+
throw new Error(`Device not found: ${deviceId}`);
|
|
186
|
+
}
|
|
187
|
+
if (!device.telemetryUrl?.trim()) {
|
|
188
|
+
throw new Error(`No telemetry URL configured for device "${device.name}" (${deviceId}). Telemetry may not be set up for this device.`);
|
|
189
|
+
}
|
|
190
|
+
this.tokenManager.restoreTokensFromConfig(this.apiClient);
|
|
191
|
+
const { sessionToken } = await this.apiClient.createTelemetrySession(deviceId);
|
|
192
|
+
const base = device.telemetryUrl.trim().replace(/\/$/, '');
|
|
193
|
+
const url = `${base}/health/applications`;
|
|
194
|
+
this.logger.debug('Fetching device application health via telemetry session', { deviceId, url });
|
|
195
|
+
const controller = new AbortController();
|
|
196
|
+
const timeoutId = setTimeout(() => controller.abort(), 15000);
|
|
197
|
+
let response;
|
|
198
|
+
try {
|
|
199
|
+
response = await fetch(url, {
|
|
200
|
+
method: 'GET',
|
|
201
|
+
headers: {
|
|
202
|
+
Accept: 'application/json',
|
|
203
|
+
'X-Session-Token': sessionToken,
|
|
204
|
+
},
|
|
205
|
+
signal: controller.signal,
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
catch (err) {
|
|
209
|
+
clearTimeout(timeoutId);
|
|
210
|
+
if (err instanceof Error && err.name === 'AbortError') {
|
|
211
|
+
throw new Error('Application health request timed out after 15 seconds.');
|
|
212
|
+
}
|
|
213
|
+
throw new Error(`Failed to reach application health endpoint: ${err instanceof Error ? err.message : String(err)}`);
|
|
214
|
+
}
|
|
215
|
+
clearTimeout(timeoutId);
|
|
216
|
+
const text = await response.text();
|
|
217
|
+
let data;
|
|
218
|
+
try {
|
|
219
|
+
data = text ? JSON.parse(text) : {};
|
|
220
|
+
}
|
|
221
|
+
catch {
|
|
222
|
+
throw new Error(`Invalid JSON from application health endpoint: ${text.slice(0, 200)}`);
|
|
223
|
+
}
|
|
224
|
+
if (!response.ok) {
|
|
225
|
+
throw new Error(`Application health request failed (${response.status}): ${response.statusText}${text ? ` - ${text.slice(0, 200)}` : ''}`);
|
|
226
|
+
}
|
|
227
|
+
const body = data;
|
|
228
|
+
if (!Array.isArray(body?.applications)) {
|
|
229
|
+
throw new Error('Application health endpoint returned unexpected shape (missing applications array).');
|
|
230
|
+
}
|
|
231
|
+
return body;
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
exports.DeviceServiceImpl = DeviceServiceImpl;
|
|
235
|
+
//# sourceMappingURL=DeviceService.js.map
|
|
@@ -4,6 +4,7 @@ import { CreateDeviceWithOrphanedOrganizationResponse, GetUserOrganizationsRespo
|
|
|
4
4
|
import { ConfigManager } from '../state/config';
|
|
5
5
|
import { TokenManager } from './token/TokenManager';
|
|
6
6
|
import { Logger } from '../utils/logger';
|
|
7
|
+
import { LocalAgentManager } from './LocalAgentManager';
|
|
7
8
|
import { ApplicationSetupResult, ValidationResult } from '../types/validation';
|
|
8
9
|
import { LocalAgentHealthStatus } from '../types/agent';
|
|
9
10
|
/**
|
|
@@ -17,7 +18,8 @@ export declare class EdgibleService {
|
|
|
17
18
|
private tokenManager;
|
|
18
19
|
private logger;
|
|
19
20
|
private baseUrl;
|
|
20
|
-
|
|
21
|
+
private localAgentManager?;
|
|
22
|
+
constructor(baseUrl: string, configManager: ConfigManager, tokenManager: TokenManager, logger: Logger, localAgentManager?: LocalAgentManager);
|
|
21
23
|
/**
|
|
22
24
|
* Authenticate user with email and password
|
|
23
25
|
* @param email - Email address
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"edgible.d.ts","sourceRoot":"","sources":["../../src/services/edgible.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAA4C,aAAa,EAAE,MAAM,WAAW,CAAC;AAEpF,OAAO,EAAE,4CAA4C,EAAE,4BAA4B,EAAE,MAAM,uBAAuB,CAAC;AAEnH,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"edgible.d.ts","sourceRoot":"","sources":["../../src/services/edgible.ts"],"names":[],"mappings":"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"}
|
package/dist/services/edgible.js
CHANGED
|
@@ -53,12 +53,13 @@ const PathResolver_1 = require("../utils/PathResolver");
|
|
|
53
53
|
* Uses the real API client for authentication and device management
|
|
54
54
|
*/
|
|
55
55
|
class EdgibleService {
|
|
56
|
-
constructor(baseUrl, configManager, tokenManager, logger) {
|
|
56
|
+
constructor(baseUrl, configManager, tokenManager, logger, localAgentManager) {
|
|
57
57
|
this.applications = [];
|
|
58
58
|
this.baseUrl = baseUrl;
|
|
59
59
|
this.configManager = configManager;
|
|
60
60
|
this.tokenManager = tokenManager;
|
|
61
61
|
this.logger = logger;
|
|
62
|
+
this.localAgentManager = localAgentManager;
|
|
62
63
|
this.apiClient = (0, client_1.createApiClient)(this.baseUrl);
|
|
63
64
|
// Restore tokens from config if available
|
|
64
65
|
this.tokenManager.restoreTokensFromConfig(this.apiClient);
|
|
@@ -2642,7 +2643,7 @@ console.log('Edgible Agent started successfully');
|
|
|
2642
2643
|
console.log(chalk_1.default.blue('Setting up application with validation...'));
|
|
2643
2644
|
// Step 1: Check local agent status
|
|
2644
2645
|
console.log(chalk_1.default.gray('Checking local agent status...'));
|
|
2645
|
-
const localAgentManager = new LocalAgentManager_1.LocalAgentManager();
|
|
2646
|
+
const localAgentManager = this.localAgentManager || new LocalAgentManager_1.LocalAgentManager(this.configManager);
|
|
2646
2647
|
let localAgentStatus = await localAgentManager.checkLocalAgentStatus();
|
|
2647
2648
|
if (!localAgentStatus.installed) {
|
|
2648
2649
|
warnings.push('Local serving agent is not installed');
|
|
@@ -2915,7 +2916,7 @@ console.log('Edgible Agent started successfully');
|
|
|
2915
2916
|
});
|
|
2916
2917
|
}
|
|
2917
2918
|
// Check 4: Local agent status
|
|
2918
|
-
const localAgentManager = new LocalAgentManager_1.LocalAgentManager();
|
|
2919
|
+
const localAgentManager = this.localAgentManager || new LocalAgentManager_1.LocalAgentManager(this.configManager);
|
|
2919
2920
|
const agentStatus = await localAgentManager.checkLocalAgentStatus();
|
|
2920
2921
|
checks.push({
|
|
2921
2922
|
name: 'local_agent',
|
|
@@ -2959,7 +2960,7 @@ console.log('Edgible Agent started successfully');
|
|
|
2959
2960
|
*/
|
|
2960
2961
|
async getApplicationHealth(applicationId) {
|
|
2961
2962
|
try {
|
|
2962
|
-
const localAgentManager = new LocalAgentManager_1.LocalAgentManager();
|
|
2963
|
+
const localAgentManager = this.localAgentManager || new LocalAgentManager_1.LocalAgentManager(this.configManager);
|
|
2963
2964
|
return await localAgentManager.monitorAgentHealth();
|
|
2964
2965
|
}
|
|
2965
2966
|
catch (error) {
|
|
@@ -16,6 +16,7 @@ import type { TokenManager } from './token/TokenManager';
|
|
|
16
16
|
import type { AuthService } from './auth/AuthService';
|
|
17
17
|
import type { ApplicationService } from './application/ApplicationService';
|
|
18
18
|
import type { GatewayService } from './gateway/GatewayService';
|
|
19
|
+
import type { DeviceService } from './device/DeviceService';
|
|
19
20
|
import type { ManagedGatewayService } from './managedGateway/ManagedGatewayService';
|
|
20
21
|
import type { DiagnosticsService } from './diagnostics/DiagnosticsService';
|
|
21
22
|
import type { AgentDeploymentService } from './agentDeployment/AgentDeploymentService';
|
|
@@ -25,8 +26,9 @@ export declare const tokenManager: TokenManager;
|
|
|
25
26
|
export declare const authService: AuthService;
|
|
26
27
|
export declare const applicationService: ApplicationService;
|
|
27
28
|
export declare const gatewayService: GatewayService;
|
|
28
|
-
export declare const
|
|
29
|
+
export declare const deviceService: DeviceService;
|
|
29
30
|
export declare const localAgentManager: LocalAgentManager;
|
|
31
|
+
export declare const edgibleService: EdgibleService;
|
|
30
32
|
export declare const managedGatewayService: ManagedGatewayService;
|
|
31
33
|
export declare const diagnosticsService: DiagnosticsService;
|
|
32
34
|
export declare const agentDeploymentService: AgentDeploymentService;
|
|
@@ -47,6 +49,7 @@ export declare function getServiceInstances(): {
|
|
|
47
49
|
authService: AuthService;
|
|
48
50
|
applicationService: ApplicationService;
|
|
49
51
|
gatewayService: GatewayService;
|
|
52
|
+
deviceService: DeviceService;
|
|
50
53
|
edgibleService: EdgibleService;
|
|
51
54
|
localAgentManager: LocalAgentManager;
|
|
52
55
|
managedGatewayService: ManagedGatewayService;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instances.d.ts","sourceRoot":"","sources":["../../src/services/instances.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"instances.d.ts","sourceRoot":"","sources":["../../src/services/instances.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAMhD,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAIjE,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAIpD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAC3E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AACpF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAC3E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;AAMvF,eAAO,MAAM,MAAM,EAAE,MAInB,CAAC;AAGH,eAAO,MAAM,aAAa,eAAsB,CAAC;AAGjD,eAAO,MAAM,YAAY,EAAE,YAA0D,CAAC;AAGtF,eAAO,MAAM,WAAW,EAAE,WAKzB,CAAC;AAGF,eAAO,MAAM,kBAAkB,EAAE,kBAMhC,CAAC;AAGF,eAAO,MAAM,cAAc,EAAE,cAM5B,CAAC;AAGF,eAAO,MAAM,aAAa,EAAE,aAM3B,CAAC;AAGF,eAAO,MAAM,iBAAiB,mBAAuC,CAAC;AAGtE,eAAO,MAAM,cAAc,gBAM1B,CAAC;AAGF,eAAO,MAAM,qBAAqB,EAAE,qBAAqE,CAAC;AAG1G,eAAO,MAAM,kBAAkB,EAAE,kBAA+D,CAAC;AAGjG,eAAO,MAAM,sBAAsB,EAAE,sBAAuE,CAAC;AAI7G,wBAAgB,eAAe,IAAI,YAAY,CAoB9C;AAGD,eAAO,MAAM,YAAY;;CAIxB,CAAC;AAGF,wBAAgB,wBAAwB,IAAI,kBAAkB,CAE7D;AAGD,wBAAgB,sBAAsB,IAAI,gBAAgB,CAEzD;AAED;;;GAGG;AACH,wBAAgB,mBAAmB;;;;;;;;;;;;;;EAgBlC"}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* Services are instantiated once and shared across the application.
|
|
8
8
|
*/
|
|
9
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
exports.stackService = exports.agentDeploymentService = exports.diagnosticsService = exports.managedGatewayService = exports.localAgentManager = exports.
|
|
10
|
+
exports.stackService = exports.agentDeploymentService = exports.diagnosticsService = exports.managedGatewayService = exports.edgibleService = exports.localAgentManager = exports.deviceService = exports.gatewayService = exports.applicationService = exports.authService = exports.tokenManager = exports.configManager = exports.logger = void 0;
|
|
11
11
|
exports.getStackService = getStackService;
|
|
12
12
|
exports.createConnectivityTester = createConnectivityTester;
|
|
13
13
|
exports.createWorkloadDetector = createWorkloadDetector;
|
|
@@ -18,6 +18,7 @@ const TokenManager_1 = require("./token/TokenManager");
|
|
|
18
18
|
const AuthService_1 = require("./auth/AuthService");
|
|
19
19
|
const ApplicationService_1 = require("./application/ApplicationService");
|
|
20
20
|
const GatewayService_1 = require("./gateway/GatewayService");
|
|
21
|
+
const DeviceService_1 = require("./device/DeviceService");
|
|
21
22
|
const edgible_1 = require("./edgible");
|
|
22
23
|
const LocalAgentManager_1 = require("./LocalAgentManager");
|
|
23
24
|
const ConnectivityTester_1 = require("./ConnectivityTester");
|
|
@@ -47,10 +48,12 @@ exports.authService = new AuthService_1.AuthServiceImpl(appConfig.apiBaseUrl, ex
|
|
|
47
48
|
exports.applicationService = new ApplicationService_1.ApplicationServiceImpl(appConfig.apiBaseUrl, exports.configManager, exports.authService, exports.tokenManager, exports.logger);
|
|
48
49
|
// Create gateway service
|
|
49
50
|
exports.gatewayService = new GatewayService_1.GatewayServiceImpl(appConfig.apiBaseUrl, exports.configManager, exports.authService, exports.tokenManager, exports.logger);
|
|
51
|
+
// Create device service
|
|
52
|
+
exports.deviceService = new DeviceService_1.DeviceServiceImpl(appConfig.apiBaseUrl, exports.configManager, exports.authService, exports.tokenManager, exports.logger);
|
|
53
|
+
// Create local agent manager (pass shared configManager)
|
|
54
|
+
exports.localAgentManager = new LocalAgentManager_1.LocalAgentManager(exports.configManager);
|
|
50
55
|
// Create Edgible service (legacy - being refactored in phases)
|
|
51
|
-
exports.edgibleService = new edgible_1.EdgibleService(appConfig.apiBaseUrl, exports.configManager, exports.tokenManager, exports.logger);
|
|
52
|
-
// Create local agent manager
|
|
53
|
-
exports.localAgentManager = new LocalAgentManager_1.LocalAgentManager();
|
|
56
|
+
exports.edgibleService = new edgible_1.EdgibleService(appConfig.apiBaseUrl, exports.configManager, exports.tokenManager, exports.logger, exports.localAgentManager);
|
|
54
57
|
// Create managed gateway service
|
|
55
58
|
exports.managedGatewayService = new ManagedGatewayService_1.ManagedGatewayServiceImpl(exports.edgibleService);
|
|
56
59
|
// Create diagnostics service
|
|
@@ -98,6 +101,7 @@ function getServiceInstances() {
|
|
|
98
101
|
authService: exports.authService,
|
|
99
102
|
applicationService: exports.applicationService,
|
|
100
103
|
gatewayService: exports.gatewayService,
|
|
104
|
+
deviceService: exports.deviceService,
|
|
101
105
|
edgibleService: exports.edgibleService,
|
|
102
106
|
localAgentManager: exports.localAgentManager,
|
|
103
107
|
managedGatewayService: exports.managedGatewayService,
|
|
@@ -14,6 +14,10 @@ export interface AgentConfig {
|
|
|
14
14
|
devicePassword: string;
|
|
15
15
|
deviceType: 'gateway' | 'serving';
|
|
16
16
|
apiBaseUrl: string;
|
|
17
|
+
/**
|
|
18
|
+
* Stage (dev, test, uat, prod) - set by CLI on install so auth redirects use the correct webapp URL.
|
|
19
|
+
*/
|
|
20
|
+
stage?: string;
|
|
17
21
|
organizationId?: string;
|
|
18
22
|
firewallEnabled: boolean;
|
|
19
23
|
pollingInterval: number;
|
|
@@ -74,6 +78,28 @@ export interface ConnectivityStatus {
|
|
|
74
78
|
error?: string;
|
|
75
79
|
timestamp: string;
|
|
76
80
|
}
|
|
81
|
+
/** Per-application entry from device telemetry GET /health/applications */
|
|
82
|
+
export interface ApplicationHealthItem {
|
|
83
|
+
appId: string;
|
|
84
|
+
name: string;
|
|
85
|
+
subtype?: string;
|
|
86
|
+
deploymentState?: string;
|
|
87
|
+
deploymentStateTimestamp?: string;
|
|
88
|
+
url?: string;
|
|
89
|
+
hostnames?: string[];
|
|
90
|
+
targetState?: string;
|
|
91
|
+
health: HealthStatus;
|
|
92
|
+
workload?: {
|
|
93
|
+
running: boolean;
|
|
94
|
+
healthy: boolean;
|
|
95
|
+
port?: number;
|
|
96
|
+
error?: string;
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
/** Response from device telemetry GET /health/applications */
|
|
100
|
+
export interface DeviceApplicationHealthResponse {
|
|
101
|
+
applications: ApplicationHealthItem[];
|
|
102
|
+
}
|
|
77
103
|
export interface CaddyConfig {
|
|
78
104
|
applications: Array<{
|
|
79
105
|
id: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentConfig.d.ts","sourceRoot":"","sources":["../../src/types/AgentConfig.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AgentConfig.d.ts","sourceRoot":"","sources":["../../src/types/AgentConfig.ts"],"names":[],"mappings":"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"}
|
|
@@ -118,7 +118,7 @@ export interface CreateApplicationRequest {
|
|
|
118
118
|
deviceIds: string[];
|
|
119
119
|
gatewayIds?: string[];
|
|
120
120
|
useManagedGateway?: boolean;
|
|
121
|
-
subtype: 'local-preexisting' | 'managed-docker' | 'systemd' | 'docker-compose' | 'managed-process';
|
|
121
|
+
subtype: 'local-preexisting' | 'managed-docker' | 'systemd' | 'docker-compose' | 'managed-process' | 'telemetry' | 'vm';
|
|
122
122
|
organizationId: string;
|
|
123
123
|
/** Authentication modes for this application */
|
|
124
124
|
authModes?: Array<'none' | 'org' | 'api-key'>;
|
|
@@ -141,6 +141,10 @@ export interface UpdateApplicationRequest {
|
|
|
141
141
|
name?: string;
|
|
142
142
|
description?: string;
|
|
143
143
|
allowedSourceIPs?: string[];
|
|
144
|
+
/** Authentication modes: none, org, api-key (can include multiple). */
|
|
145
|
+
authModes?: Array<'none' | 'org' | 'api-key'>;
|
|
146
|
+
/** Organization IDs allowed to access (when org is in authModes). */
|
|
147
|
+
allowedOrganizations?: string[];
|
|
144
148
|
targetState?: 'running' | 'suspended';
|
|
145
149
|
/** Application IDs this application depends on. If any are not deployed, target state is set to suspended. */
|
|
146
150
|
dependsOnApplicationIds?: string[];
|