@edgible-team/cli 1.0.1 → 1.0.2
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/LICENSE +16 -0
- package/README.md +114 -1
- package/dist/client/api-client.d.ts +575 -0
- package/dist/client/api-client.d.ts.map +1 -0
- package/dist/client/api-client.js +196 -2
- package/dist/client/index.d.ts +10 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/commands/agent.d.ts +3 -0
- package/dist/commands/agent.d.ts.map +1 -0
- package/dist/commands/agent.js +18 -34
- package/dist/commands/ai.d.ts +3 -0
- package/dist/commands/ai.d.ts.map +1 -0
- package/dist/commands/ai.js +1660 -274
- package/dist/commands/application.d.ts +6 -0
- package/dist/commands/application.d.ts.map +1 -0
- package/dist/commands/application.js +377 -0
- package/dist/commands/auth.d.ts +3 -0
- package/dist/commands/auth.d.ts.map +1 -0
- package/dist/commands/base/BaseCommand.d.ts +53 -0
- package/dist/commands/base/BaseCommand.d.ts.map +1 -0
- package/dist/commands/base/CommandHandler.d.ts +28 -0
- package/dist/commands/base/CommandHandler.d.ts.map +1 -0
- package/dist/commands/base/command-wrapper.d.ts +21 -0
- package/dist/commands/base/command-wrapper.d.ts.map +1 -0
- package/dist/commands/base/middleware.d.ts +34 -0
- package/dist/commands/base/middleware.d.ts.map +1 -0
- package/dist/commands/config.d.ts +3 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/connectivity.d.ts +3 -0
- package/dist/commands/connectivity.d.ts.map +1 -0
- package/dist/commands/debug.d.ts +3 -0
- package/dist/commands/debug.d.ts.map +1 -0
- package/dist/commands/debug.js +336 -0
- package/dist/commands/discover.d.ts +3 -0
- package/dist/commands/discover.d.ts.map +1 -0
- package/dist/commands/examples/migrated-command-example.d.ts +31 -0
- package/dist/commands/examples/migrated-command-example.d.ts.map +1 -0
- package/dist/commands/gateway.d.ts +6 -0
- package/dist/commands/gateway.d.ts.map +1 -0
- package/dist/commands/managedGateway.d.ts +6 -0
- package/dist/commands/managedGateway.d.ts.map +1 -0
- package/dist/commands/managedGateway.js +132 -0
- package/dist/commands/utils/config-validator.d.ts +29 -0
- package/dist/commands/utils/config-validator.d.ts.map +1 -0
- package/dist/commands/utils/gateway-prompt.d.ts +23 -0
- package/dist/commands/utils/gateway-prompt.d.ts.map +1 -0
- package/dist/commands/utils/input-parser.d.ts +34 -0
- package/dist/commands/utils/input-parser.d.ts.map +1 -0
- package/dist/commands/utils/output-formatter.d.ts +62 -0
- package/dist/commands/utils/output-formatter.d.ts.map +1 -0
- package/dist/config/app-config.d.ts +44 -0
- package/dist/config/app-config.d.ts.map +1 -0
- package/dist/detection/SystemCapabilityDetector.d.ts +139 -0
- package/dist/detection/SystemCapabilityDetector.d.ts.map +1 -0
- package/dist/detection/ToolDetector.d.ts +16 -0
- package/dist/detection/ToolDetector.d.ts.map +1 -0
- package/dist/detection/WorkloadDetector.d.ts +62 -0
- package/dist/detection/WorkloadDetector.d.ts.map +1 -0
- package/dist/di/bindings.d.ts +15 -0
- package/dist/di/bindings.d.ts.map +1 -0
- package/dist/di/container.d.ts +44 -0
- package/dist/di/container.d.ts.map +1 -0
- package/dist/di/types.d.ts +23 -0
- package/dist/di/types.d.ts.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +8 -1
- package/dist/interfaces/IDaemonManager.d.ts +67 -0
- package/dist/interfaces/IDaemonManager.d.ts.map +1 -0
- package/dist/repositories/config-repository.d.ts +46 -0
- package/dist/repositories/config-repository.d.ts.map +1 -0
- package/dist/repositories/gateway-repository.d.ts +37 -0
- package/dist/repositories/gateway-repository.d.ts.map +1 -0
- package/dist/services/AgentStatusManager.d.ts +30 -0
- package/dist/services/AgentStatusManager.d.ts.map +1 -0
- package/dist/services/ConnectivityTester.d.ts +30 -0
- package/dist/services/ConnectivityTester.d.ts.map +1 -0
- package/dist/services/DependencyInstaller.d.ts +32 -0
- package/dist/services/DependencyInstaller.d.ts.map +1 -0
- package/dist/services/LocalAgentManager.d.ts +220 -0
- package/dist/services/LocalAgentManager.d.ts.map +1 -0
- package/dist/services/LocalAgentManager.js +2 -2
- package/dist/services/application/ApplicationService.d.ts +54 -0
- package/dist/services/application/ApplicationService.d.ts.map +1 -0
- package/dist/services/application/ApplicationService.js +10 -3
- package/dist/services/auth/AuthService.d.ts +42 -0
- package/dist/services/auth/AuthService.d.ts.map +1 -0
- package/dist/services/aws.d.ts +136 -0
- package/dist/services/aws.d.ts.map +1 -0
- package/dist/services/aws.js +2 -2
- package/dist/services/daemon/DaemonManagerFactory.d.ts +17 -0
- package/dist/services/daemon/DaemonManagerFactory.d.ts.map +1 -0
- package/dist/services/daemon/DockerDaemonManager.d.ts +26 -0
- package/dist/services/daemon/DockerDaemonManager.d.ts.map +1 -0
- package/dist/services/daemon/LaunchdDaemonManager.d.ts +20 -0
- package/dist/services/daemon/LaunchdDaemonManager.d.ts.map +1 -0
- package/dist/services/daemon/LaunchdDaemonManager.js +6 -0
- package/dist/services/daemon/PodmanDaemonManager.d.ts +24 -0
- package/dist/services/daemon/PodmanDaemonManager.d.ts.map +1 -0
- package/dist/services/daemon/SystemdDaemonManager.d.ts +20 -0
- package/dist/services/daemon/SystemdDaemonManager.d.ts.map +1 -0
- package/dist/services/daemon/WindowsServiceDaemonManager.d.ts +19 -0
- package/dist/services/daemon/WindowsServiceDaemonManager.d.ts.map +1 -0
- package/dist/services/daemon/index.d.ts +7 -0
- package/dist/services/daemon/index.d.ts.map +1 -0
- package/dist/services/edgible.d.ts +304 -0
- package/dist/services/edgible.d.ts.map +1 -0
- package/dist/services/edgible.js +53 -4
- package/dist/services/gateway/GatewayService.d.ts +88 -0
- package/dist/services/gateway/GatewayService.d.ts.map +1 -0
- package/dist/state/config.d.ts +96 -0
- package/dist/state/config.d.ts.map +1 -0
- package/dist/types/AgentConfig.d.ts +126 -0
- package/dist/types/AgentConfig.d.ts.map +1 -0
- package/dist/types/AgentStatus.d.ts +30 -0
- package/dist/types/AgentStatus.d.ts.map +1 -0
- package/dist/types/ApiClient.d.ts +36 -0
- package/dist/types/ApiClient.d.ts.map +1 -0
- package/dist/types/ApiRequests.d.ts +269 -0
- package/dist/types/ApiRequests.d.ts.map +1 -0
- package/dist/types/ApiResponses.d.ts +348 -0
- package/dist/types/ApiResponses.d.ts.map +1 -0
- package/dist/types/Application.d.ts +13 -0
- package/dist/types/Application.d.ts.map +1 -0
- package/dist/types/CaddyJson.d.ts +231 -0
- package/dist/types/CaddyJson.d.ts.map +1 -0
- package/dist/types/DeviceMetrics.d.ts +95 -0
- package/dist/types/DeviceMetrics.d.ts.map +1 -0
- package/dist/types/DeviceMetrics.js +5 -0
- package/dist/types/LogAggregation.d.ts +106 -0
- package/dist/types/LogAggregation.d.ts.map +1 -0
- package/dist/types/LogAggregation.js +5 -0
- package/dist/types/LogEntry.d.ts +60 -0
- package/dist/types/LogEntry.d.ts.map +1 -0
- package/dist/types/LogEntry.js +5 -0
- package/dist/types/UnifiedAgentStatus.d.ts +28 -0
- package/dist/types/UnifiedAgentStatus.d.ts.map +1 -0
- package/dist/types/WireGuard.d.ts +36 -0
- package/dist/types/WireGuard.d.ts.map +1 -0
- package/dist/types/Workload.d.ts +9 -0
- package/dist/types/Workload.d.ts.map +1 -0
- package/dist/types/agent.d.ts +120 -0
- package/dist/types/agent.d.ts.map +1 -0
- package/dist/types/command-options.d.ts +115 -0
- package/dist/types/command-options.d.ts.map +1 -0
- package/dist/types/connectivity.d.ts +80 -0
- package/dist/types/connectivity.d.ts.map +1 -0
- package/dist/types/errors.d.ts +97 -0
- package/dist/types/errors.d.ts.map +1 -0
- package/dist/types/gateway-types.d.ts +46 -0
- package/dist/types/gateway-types.d.ts.map +1 -0
- package/dist/types/index.d.ts +28 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/models/ApplicationData.d.ts +78 -0
- package/dist/types/models/ApplicationData.d.ts.map +1 -0
- package/dist/types/models/CertificateData.d.ts +44 -0
- package/dist/types/models/CertificateData.d.ts.map +1 -0
- package/dist/types/models/DeviceData.d.ts +29 -0
- package/dist/types/models/DeviceData.d.ts.map +1 -0
- package/dist/types/models/DevicePoolData.d.ts +47 -0
- package/dist/types/models/DevicePoolData.d.ts.map +1 -0
- package/dist/types/models/LifecycleEvent.d.ts +27 -0
- package/dist/types/models/LifecycleEvent.d.ts.map +1 -0
- package/dist/types/models/LifecycleEvent.js +5 -0
- package/dist/types/models/OrganizationData.d.ts +53 -0
- package/dist/types/models/OrganizationData.d.ts.map +1 -0
- package/dist/types/models/OrganizationInviteData.d.ts +39 -0
- package/dist/types/models/OrganizationInviteData.d.ts.map +1 -0
- package/dist/types/models/ProviderConfiguration.d.ts +37 -0
- package/dist/types/models/ProviderConfiguration.d.ts.map +1 -0
- package/dist/types/models/ResourceData.d.ts +18 -0
- package/dist/types/models/ResourceData.d.ts.map +1 -0
- package/dist/types/models/ServiceResourceData.d.ts +5 -0
- package/dist/types/models/ServiceResourceData.d.ts.map +1 -0
- package/dist/types/models/UserData.d.ts +12 -0
- package/dist/types/models/UserData.d.ts.map +1 -0
- package/dist/types/route.d.ts +67 -0
- package/dist/types/route.d.ts.map +1 -0
- package/dist/types/validation/schemas.d.ts +606 -0
- package/dist/types/validation/schemas.d.ts.map +1 -0
- package/dist/types/validation/schemas.js +46 -4
- package/dist/types/validation.d.ts +68 -0
- package/dist/types/validation.d.ts.map +1 -0
- package/dist/utils/FileIntegrityManager.d.ts +37 -0
- package/dist/utils/FileIntegrityManager.d.ts.map +1 -0
- package/dist/utils/PathMigration.d.ts +45 -0
- package/dist/utils/PathMigration.d.ts.map +1 -0
- package/dist/utils/PathResolver.d.ts +76 -0
- package/dist/utils/PathResolver.d.ts.map +1 -0
- package/dist/utils/PlatformDetector.d.ts +60 -0
- package/dist/utils/PlatformDetector.d.ts.map +1 -0
- package/dist/utils/console-logger.d.ts +37 -0
- package/dist/utils/console-logger.d.ts.map +1 -0
- package/dist/utils/docker-compose-parser.d.ts +28 -0
- package/dist/utils/docker-compose-parser.d.ts.map +1 -0
- package/dist/utils/errors.d.ts +63 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/health-checker.d.ts +34 -0
- package/dist/utils/health-checker.d.ts.map +1 -0
- package/dist/utils/json-logger.d.ts +23 -0
- package/dist/utils/json-logger.d.ts.map +1 -0
- package/dist/utils/log-formatter.d.ts +85 -0
- package/dist/utils/log-formatter.d.ts.map +1 -0
- package/dist/utils/log-formatter.js +39 -11
- package/dist/utils/logger.d.ts +34 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/network-utils.d.ts +56 -0
- package/dist/utils/network-utils.d.ts.map +1 -0
- package/dist/utils/output.d.ts +73 -0
- package/dist/utils/output.d.ts.map +1 -0
- package/dist/utils/passwordValidation.d.ts +32 -0
- package/dist/utils/passwordValidation.d.ts.map +1 -0
- package/dist/utils/progress.d.ts +74 -0
- package/dist/utils/progress.d.ts.map +1 -0
- package/dist/utils/sudo-checker.d.ts +9 -0
- package/dist/utils/sudo-checker.d.ts.map +1 -0
- package/dist/utils/urls.d.ts +19 -0
- package/dist/utils/urls.d.ts.map +1 -0
- package/dist/utils/urls.js +3 -3
- package/dist/utils/validation.d.ts +19 -0
- package/dist/utils/validation.d.ts.map +1 -0
- package/dist/validation/schemas.d.ts +197 -0
- package/dist/validation/schemas.d.ts.map +1 -0
- package/dist/validation/schemas.js +1 -1
- package/dist/validation/validator.d.ts +22 -0
- package/dist/validation/validator.d.ts.map +1 -0
- package/package.json +8 -3
- package/recipes/compose/open-webui/docker-compose.yml +17 -0
package/dist/services/aws.js
CHANGED
|
@@ -569,7 +569,7 @@ echo "Edgible Agent setup complete"
|
|
|
569
569
|
`To deploy the agent:\n` +
|
|
570
570
|
` 1. Navigate to agent-v2 directory\n` +
|
|
571
571
|
` 2. Run: npm run build\n` +
|
|
572
|
-
` 3. Run: ./scripts/deploy-to-s3.sh --env
|
|
572
|
+
` 3. Run: ./scripts/deploy-to-s3.sh --env prod\n\n` +
|
|
573
573
|
`Expected S3 path: s3://${bucketName}/${keyPath}\n` +
|
|
574
574
|
`Current environment: ${keyPath.split('/')[0] || 'unknown'}`;
|
|
575
575
|
}
|
|
@@ -577,7 +577,7 @@ echo "Edgible Agent setup complete"
|
|
|
577
577
|
errorMessage = `Access denied to ${url}\n\n` +
|
|
578
578
|
`This usually means one of:\n` +
|
|
579
579
|
` 1. Agent not deployed: The file doesn't exist at s3://${bucketName}/${keyPath}\n` +
|
|
580
|
-
` → Deploy agent: cd agent-v2 && ./scripts/deploy-to-s3.sh --env
|
|
580
|
+
` → Deploy agent: cd agent-v2 && ./scripts/deploy-to-s3.sh --env prod\n\n` +
|
|
581
581
|
` 2. CloudFront misconfiguration: OAC or bucket policy issue\n` +
|
|
582
582
|
` → Check backend Pulumi outputs for distribution status\n\n` +
|
|
583
583
|
` 3. Wrong bucket: Using bucket "${bucketName}" but file may be in different bucket\n` +
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { IDaemonManager } from '../../interfaces/IDaemonManager';
|
|
2
|
+
export type DaemonType = 'systemd' | 'launchd' | 'windows-service' | 'docker' | 'podman';
|
|
3
|
+
export declare class DaemonManagerFactory {
|
|
4
|
+
/**
|
|
5
|
+
* Create a daemon manager instance based on the type
|
|
6
|
+
*/
|
|
7
|
+
static create(type: DaemonType): IDaemonManager;
|
|
8
|
+
/**
|
|
9
|
+
* Get daemon manager from stored config type
|
|
10
|
+
*/
|
|
11
|
+
static fromConfig(installationType?: string): IDaemonManager | null;
|
|
12
|
+
/**
|
|
13
|
+
* Get the recommended daemon manager for the current platform
|
|
14
|
+
*/
|
|
15
|
+
static getRecommended(): Promise<IDaemonManager | null>;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=DaemonManagerFactory.d.ts.map
|
|
@@ -0,0 +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;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,GAAG,cAAc;IAiC/C;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI;IAanE;;OAEG;WACU,cAAc,IAAI,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;CAS9D"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { IDaemonManager, DaemonStatus, DaemonConfig } from '../../interfaces/IDaemonManager';
|
|
2
|
+
export declare class DockerDaemonManager implements IDaemonManager {
|
|
3
|
+
private containerName;
|
|
4
|
+
private imageName;
|
|
5
|
+
private platform;
|
|
6
|
+
constructor();
|
|
7
|
+
install(config: DaemonConfig): Promise<void>;
|
|
8
|
+
start(): Promise<void>;
|
|
9
|
+
stop(): Promise<void>;
|
|
10
|
+
restart(): Promise<void>;
|
|
11
|
+
status(): Promise<DaemonStatus>;
|
|
12
|
+
logs(follow: boolean, lines?: number): Promise<string>;
|
|
13
|
+
enable(): Promise<void>;
|
|
14
|
+
disable(): Promise<void>;
|
|
15
|
+
uninstall(): Promise<void>;
|
|
16
|
+
getPlatform(): string;
|
|
17
|
+
getType(): 'systemd' | 'launchd' | 'windows-service' | 'docker' | 'podman';
|
|
18
|
+
private checkImageExists;
|
|
19
|
+
private buildImage;
|
|
20
|
+
private generateDockerRunCommand;
|
|
21
|
+
private createServiceWrapper;
|
|
22
|
+
private createSystemdWrapper;
|
|
23
|
+
private createLaunchdWrapper;
|
|
24
|
+
private removeServiceWrapper;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=DockerDaemonManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DockerDaemonManager.d.ts","sourceRoot":"","sources":["../../../src/services/daemon/DockerDaemonManager.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAM7F,qBAAa,mBAAoB,YAAW,cAAc;IACxD,OAAO,CAAC,aAAa,CAA2B;IAChD,OAAO,CAAC,SAAS,CAAkC;IACnD,OAAO,CAAC,QAAQ,CAA+B;;IAMzC,OAAO,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAkC5C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAQtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAQrB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAQxB,MAAM,IAAI,OAAO,CAAC,YAAY,CAAC;IA0C/B,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,GAAE,MAAY,GAAG,OAAO,CAAC,MAAM,CAAC;IA0B3D,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAmBvB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAgBxB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAkBhC,WAAW,IAAI,MAAM;IAIrB,OAAO,IAAI,SAAS,GAAG,SAAS,GAAG,iBAAiB,GAAG,QAAQ,GAAG,QAAQ;YAI5D,gBAAgB;YAShB,UAAU;IAqBxB,OAAO,CAAC,wBAAwB;YA+DlB,oBAAoB;YASpB,oBAAoB;YAwBpB,oBAAoB;YA+BpB,oBAAoB;CAkBnC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { IDaemonManager, DaemonStatus, DaemonConfig } from '../../interfaces/IDaemonManager';
|
|
2
|
+
export declare class LaunchdDaemonManager implements IDaemonManager {
|
|
3
|
+
private serviceName;
|
|
4
|
+
private plistPath;
|
|
5
|
+
private logPath;
|
|
6
|
+
constructor();
|
|
7
|
+
install(config: DaemonConfig): Promise<void>;
|
|
8
|
+
start(): Promise<void>;
|
|
9
|
+
stop(): Promise<void>;
|
|
10
|
+
restart(): Promise<void>;
|
|
11
|
+
status(): Promise<DaemonStatus>;
|
|
12
|
+
logs(follow: boolean, lines?: number): Promise<string>;
|
|
13
|
+
enable(): Promise<void>;
|
|
14
|
+
disable(): Promise<void>;
|
|
15
|
+
uninstall(): Promise<void>;
|
|
16
|
+
getPlatform(): string;
|
|
17
|
+
getType(): 'systemd' | 'launchd' | 'windows-service' | 'docker' | 'podman';
|
|
18
|
+
private generatePlistFile;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=LaunchdDaemonManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LaunchdDaemonManager.d.ts","sourceRoot":"","sources":["../../../src/services/daemon/LaunchdDaemonManager.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAM7F,qBAAa,oBAAqB,YAAW,cAAc;IACzD,OAAO,CAAC,WAAW,CAA+B;IAClD,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,OAAO,CAAS;;IAYlB,OAAO,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAqB5C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAStB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IASrB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAOxB,MAAM,IAAI,OAAO,CAAC,YAAY,CAAC;IAiC/B,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,GAAE,MAAY,GAAG,OAAO,CAAC,MAAM,CAAC;IAsD3D,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAUvB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAQxB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAgBhC,WAAW,IAAI,MAAM;IAIrB,OAAO,IAAI,SAAS,GAAG,SAAS,GAAG,iBAAiB,GAAG,QAAQ,GAAG,QAAQ;IAI1E,OAAO,CAAC,iBAAiB;CA8C1B"}
|
|
@@ -39,6 +39,7 @@ const util_1 = require("util");
|
|
|
39
39
|
const fs = __importStar(require("fs/promises"));
|
|
40
40
|
const path = __importStar(require("path"));
|
|
41
41
|
const PlatformDetector_1 = require("../../utils/PlatformDetector");
|
|
42
|
+
const PathResolver_1 = require("../../utils/PathResolver");
|
|
42
43
|
const execAsync = (0, util_1.promisify)(child_process_1.exec);
|
|
43
44
|
class LaunchdDaemonManager {
|
|
44
45
|
constructor() {
|
|
@@ -215,6 +216,9 @@ class LaunchdDaemonManager {
|
|
|
215
216
|
}
|
|
216
217
|
generatePlistFile(config) {
|
|
217
218
|
const nodePath = process.execPath; // Path to current Node.js executable
|
|
219
|
+
// Get the real user's home directory (even when running as root via sudo)
|
|
220
|
+
// This ensures applications like ollama can find their config/data directories
|
|
221
|
+
const userHome = PathResolver_1.PathResolver.getRealUserHome();
|
|
218
222
|
return `<?xml version="1.0" encoding="UTF-8"?>
|
|
219
223
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
220
224
|
<plist version="1.0">
|
|
@@ -245,6 +249,8 @@ class LaunchdDaemonManager {
|
|
|
245
249
|
<string>production</string>
|
|
246
250
|
<key>EDGIBLE_CONFIG_PATH</key>
|
|
247
251
|
<string>${config.configPath}</string>
|
|
252
|
+
<key>HOME</key>
|
|
253
|
+
<string>${userHome}</string>
|
|
248
254
|
</dict>
|
|
249
255
|
<key>WorkingDirectory</key>
|
|
250
256
|
<string>${config.agentPath}</string>
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { IDaemonManager, DaemonStatus, DaemonConfig } from '../../interfaces/IDaemonManager';
|
|
2
|
+
export declare class PodmanDaemonManager implements IDaemonManager {
|
|
3
|
+
private containerName;
|
|
4
|
+
private imageName;
|
|
5
|
+
private platform;
|
|
6
|
+
private systemdUserPath;
|
|
7
|
+
constructor();
|
|
8
|
+
install(config: DaemonConfig): Promise<void>;
|
|
9
|
+
start(): Promise<void>;
|
|
10
|
+
stop(): Promise<void>;
|
|
11
|
+
restart(): Promise<void>;
|
|
12
|
+
status(): Promise<DaemonStatus>;
|
|
13
|
+
logs(follow: boolean, lines?: number): Promise<string>;
|
|
14
|
+
enable(): Promise<void>;
|
|
15
|
+
disable(): Promise<void>;
|
|
16
|
+
uninstall(): Promise<void>;
|
|
17
|
+
getPlatform(): string;
|
|
18
|
+
getType(): 'systemd' | 'launchd' | 'windows-service' | 'docker' | 'podman';
|
|
19
|
+
private checkImageExists;
|
|
20
|
+
private buildImage;
|
|
21
|
+
private generatePodmanRunCommand;
|
|
22
|
+
private createUserService;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=PodmanDaemonManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PodmanDaemonManager.d.ts","sourceRoot":"","sources":["../../../src/services/daemon/PodmanDaemonManager.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAM7F,qBAAa,mBAAoB,YAAW,cAAc;IACxD,OAAO,CAAC,aAAa,CAA2B;IAChD,OAAO,CAAC,SAAS,CAAkC;IACnD,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,eAAe,CAAS;;IAO1B,OAAO,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAkC5C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IActB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAarB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAaxB,MAAM,IAAI,OAAO,CAAC,YAAY,CAAC;IAkD/B,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,GAAE,MAAY,GAAG,OAAO,CAAC,MAAM,CAAC;IAwB3D,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAavB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAUxB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IA0BhC,WAAW,IAAI,MAAM;IAIrB,OAAO,IAAI,SAAS,GAAG,SAAS,GAAG,iBAAiB,GAAG,QAAQ,GAAG,QAAQ;YAI5D,gBAAgB;YAShB,UAAU;IAqBxB,OAAO,CAAC,wBAAwB;YAyElB,iBAAiB;CAoChC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { IDaemonManager, DaemonStatus, DaemonConfig } from '../../interfaces/IDaemonManager';
|
|
2
|
+
export declare class SystemdDaemonManager implements IDaemonManager {
|
|
3
|
+
private serviceName;
|
|
4
|
+
private serviceFilePath;
|
|
5
|
+
constructor();
|
|
6
|
+
install(config: DaemonConfig): Promise<void>;
|
|
7
|
+
start(): Promise<void>;
|
|
8
|
+
stop(): Promise<void>;
|
|
9
|
+
restart(): Promise<void>;
|
|
10
|
+
status(): Promise<DaemonStatus>;
|
|
11
|
+
logs(follow: boolean, lines?: number): Promise<string>;
|
|
12
|
+
enable(): Promise<void>;
|
|
13
|
+
disable(): Promise<void>;
|
|
14
|
+
uninstall(): Promise<void>;
|
|
15
|
+
getPlatform(): string;
|
|
16
|
+
getType(): 'systemd' | 'launchd' | 'windows-service' | 'docker' | 'podman';
|
|
17
|
+
private isEnabled;
|
|
18
|
+
private generateServiceFile;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=SystemdDaemonManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SystemdDaemonManager.d.ts","sourceRoot":"","sources":["../../../src/services/daemon/SystemdDaemonManager.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAM7F,qBAAa,oBAAqB,YAAW,cAAc;IACzD,OAAO,CAAC,WAAW,CAA2B;IAC9C,OAAO,CAAC,eAAe,CAA6D;;IAQ9E,OAAO,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAmB5C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAQtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAQrB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAQxB,MAAM,IAAI,OAAO,CAAC,YAAY,CAAC;IA0B/B,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,GAAE,MAAY,GAAG,OAAO,CAAC,MAAM,CAAC;IA6B3D,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAQvB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAQxB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAuBhC,WAAW,IAAI,MAAM;IAIrB,OAAO,IAAI,SAAS,GAAG,SAAS,GAAG,iBAAiB,GAAG,QAAQ,GAAG,QAAQ;YAI5D,SAAS;IASvB,OAAO,CAAC,mBAAmB;CAuB5B"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { IDaemonManager, DaemonStatus, DaemonConfig } from '../../interfaces/IDaemonManager';
|
|
2
|
+
export declare class WindowsServiceDaemonManager implements IDaemonManager {
|
|
3
|
+
private serviceName;
|
|
4
|
+
private displayName;
|
|
5
|
+
private description;
|
|
6
|
+
constructor();
|
|
7
|
+
install(config: DaemonConfig): Promise<void>;
|
|
8
|
+
start(): Promise<void>;
|
|
9
|
+
stop(): Promise<void>;
|
|
10
|
+
restart(): Promise<void>;
|
|
11
|
+
status(): Promise<DaemonStatus>;
|
|
12
|
+
logs(follow: boolean, lines?: number): Promise<string>;
|
|
13
|
+
enable(): Promise<void>;
|
|
14
|
+
disable(): Promise<void>;
|
|
15
|
+
uninstall(): Promise<void>;
|
|
16
|
+
getPlatform(): string;
|
|
17
|
+
getType(): 'systemd' | 'launchd' | 'windows-service' | 'docker' | 'podman';
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=WindowsServiceDaemonManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WindowsServiceDaemonManager.d.ts","sourceRoot":"","sources":["../../../src/services/daemon/WindowsServiceDaemonManager.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAK7F,qBAAa,2BAA4B,YAAW,cAAc;IAChE,OAAO,CAAC,WAAW,CAA0B;IAC7C,OAAO,CAAC,WAAW,CAA2B;IAC9C,OAAO,CAAC,WAAW,CAAwE;;IAQrF,OAAO,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAoC5C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAUtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAUrB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAKxB,MAAM,IAAI,OAAO,CAAC,YAAY,CAAC;IA2B/B,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,GAAE,MAAY,GAAG,OAAO,CAAC,MAAM,CAAC;IA4C3D,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAQvB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAQxB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAgBhC,WAAW,IAAI,MAAM;IAIrB,OAAO,IAAI,SAAS,GAAG,SAAS,GAAG,iBAAiB,GAAG,QAAQ,GAAG,QAAQ;CAG3E"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { SystemdDaemonManager } from './SystemdDaemonManager';
|
|
2
|
+
export { LaunchdDaemonManager } from './LaunchdDaemonManager';
|
|
3
|
+
export { WindowsServiceDaemonManager } from './WindowsServiceDaemonManager';
|
|
4
|
+
export { DockerDaemonManager } from './DockerDaemonManager';
|
|
5
|
+
export { PodmanDaemonManager } from './PodmanDaemonManager';
|
|
6
|
+
export { DaemonManagerFactory, DaemonType } from './DaemonManagerFactory';
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/daemon/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,304 @@
|
|
|
1
|
+
import { Workload, Application } from '../detection/WorkloadDetector';
|
|
2
|
+
import { LoginResponse } from '../client';
|
|
3
|
+
import { CreateDeviceWithOrphanedOrganizationResponse, GetUserOrganizationsResponse } from '../types/ApiResponses';
|
|
4
|
+
import { ApplicationSetupResult, ValidationResult } from '../types/validation';
|
|
5
|
+
import { LocalAgentHealthStatus } from '../types/agent';
|
|
6
|
+
/**
|
|
7
|
+
* Edgible service interface
|
|
8
|
+
* Uses the real API client for authentication and device management
|
|
9
|
+
*/
|
|
10
|
+
export declare class EdgibleService {
|
|
11
|
+
private apiClient;
|
|
12
|
+
private applications;
|
|
13
|
+
private configManager;
|
|
14
|
+
private baseUrl;
|
|
15
|
+
constructor(baseUrl?: string);
|
|
16
|
+
private restoreTokensFromConfigSync;
|
|
17
|
+
private attemptAutoRelogin;
|
|
18
|
+
private saveTokensToConfig;
|
|
19
|
+
/**
|
|
20
|
+
* Authenticate user with email and password
|
|
21
|
+
* @param email - Email address
|
|
22
|
+
* @param password - Password
|
|
23
|
+
* @returns Promise<LoginResponse> - Login response with tokens
|
|
24
|
+
*/
|
|
25
|
+
loginUser(email: string, password: string): Promise<LoginResponse>;
|
|
26
|
+
/**
|
|
27
|
+
* Create a device with orphaned organization (device login without user account)
|
|
28
|
+
* @param deviceName - Name of the device
|
|
29
|
+
* @param password - Password for the device (must meet Cognito requirements)
|
|
30
|
+
* @param userEmail - Optional user email for invite
|
|
31
|
+
* @returns Promise<CreateDeviceWithOrphanedOrganizationResponse> - Device creation response
|
|
32
|
+
*/
|
|
33
|
+
createDeviceWithOrganization(deviceName: string, password: string, userEmail?: string): Promise<CreateDeviceWithOrphanedOrganizationResponse>;
|
|
34
|
+
/**
|
|
35
|
+
* Check if an account exists for the given email
|
|
36
|
+
* @param email - Email address to check
|
|
37
|
+
* @returns Promise<boolean> - True if account exists
|
|
38
|
+
*/
|
|
39
|
+
checkAccount(email: string): Promise<boolean>;
|
|
40
|
+
/**
|
|
41
|
+
* Authenticate device with device ID and password
|
|
42
|
+
* This method is used when the CLI needs to authenticate as a device.
|
|
43
|
+
* NOTE: This will overwrite user tokens. Use verifyDeviceCredentials() for verification only.
|
|
44
|
+
* @param deviceId - Device ID
|
|
45
|
+
* @param password - Device password
|
|
46
|
+
* @returns Promise<LoginResponse> - Login response with tokens
|
|
47
|
+
*/
|
|
48
|
+
loginDevice(deviceId: string, password: string): Promise<LoginResponse>;
|
|
49
|
+
/**
|
|
50
|
+
* Verify device credentials without overwriting user tokens
|
|
51
|
+
* This creates a temporary API client instance for verification
|
|
52
|
+
* @param deviceId - Device ID
|
|
53
|
+
* @param password - Device password
|
|
54
|
+
* @returns Promise<boolean> - True if credentials are valid
|
|
55
|
+
*/
|
|
56
|
+
verifyDeviceCredentials(deviceId: string, password: string): Promise<boolean>;
|
|
57
|
+
/**
|
|
58
|
+
* Refresh authentication tokens
|
|
59
|
+
* @param refreshToken - Refresh token
|
|
60
|
+
* @returns Promise<RefreshTokenResponse> - New tokens
|
|
61
|
+
*/
|
|
62
|
+
refreshToken(refreshToken: string): Promise<any>;
|
|
63
|
+
/**
|
|
64
|
+
* Get access token
|
|
65
|
+
* @returns string | undefined - Access token
|
|
66
|
+
*/
|
|
67
|
+
getAccessToken(): string | undefined;
|
|
68
|
+
/**
|
|
69
|
+
* Get ID token
|
|
70
|
+
* @returns string | undefined - ID token
|
|
71
|
+
*/
|
|
72
|
+
getIdToken(): string | undefined;
|
|
73
|
+
/**
|
|
74
|
+
* Get refresh token
|
|
75
|
+
* @returns string | undefined - Refresh token
|
|
76
|
+
*/
|
|
77
|
+
getRefreshToken(): string | undefined;
|
|
78
|
+
/**
|
|
79
|
+
* Create a new account
|
|
80
|
+
* @param email - Email address
|
|
81
|
+
* @param name - Full name
|
|
82
|
+
* @returns Promise<boolean> - True if account created successfully
|
|
83
|
+
*/
|
|
84
|
+
createAccount(email: string, name: string): Promise<boolean>;
|
|
85
|
+
/**
|
|
86
|
+
* Get account status
|
|
87
|
+
* @param email - Email address
|
|
88
|
+
* @returns Promise<object> - Account status information
|
|
89
|
+
*/
|
|
90
|
+
getAccountStatus(email: string): Promise<object>;
|
|
91
|
+
/**
|
|
92
|
+
* Set up an application for a workload
|
|
93
|
+
* @param workload - The workload to set up an application for
|
|
94
|
+
* @param port - The port to expose
|
|
95
|
+
* @param protocol - The protocol to use
|
|
96
|
+
* @param description - Optional description
|
|
97
|
+
* @returns Promise<Application> - The created application
|
|
98
|
+
*/
|
|
99
|
+
setupApplication(workload: Workload, port: number, protocol?: 'http' | 'https' | 'tcp' | 'udp', description?: string, gatewayId?: string): Promise<Application>;
|
|
100
|
+
/**
|
|
101
|
+
* Get all applications
|
|
102
|
+
* @returns Promise<Application[]> - List of applications
|
|
103
|
+
*/
|
|
104
|
+
getApplications(): Promise<Application[]>;
|
|
105
|
+
/**
|
|
106
|
+
* Get application by ID
|
|
107
|
+
* @param id - Application ID
|
|
108
|
+
* @returns Promise<Application | null> - The application or null if not found
|
|
109
|
+
*/
|
|
110
|
+
getApplication(id: string): Promise<Application>;
|
|
111
|
+
/**
|
|
112
|
+
* Delete an application
|
|
113
|
+
* @param id - Application ID
|
|
114
|
+
* @returns Promise<boolean> - True if deleted successfully
|
|
115
|
+
*/
|
|
116
|
+
deleteApplication(id: string): Promise<boolean>;
|
|
117
|
+
/**
|
|
118
|
+
* Generate a mock serving IP address
|
|
119
|
+
* In a real implementation, this would be provided by the Edgible service
|
|
120
|
+
*/
|
|
121
|
+
private generateServingIp;
|
|
122
|
+
/**
|
|
123
|
+
* Get user organizations
|
|
124
|
+
* @param email - Email address
|
|
125
|
+
* @returns Promise<GetUserOrganizationsResponse> - User organizations
|
|
126
|
+
*/
|
|
127
|
+
getUserOrganizations(email: string): Promise<GetUserOrganizationsResponse>;
|
|
128
|
+
/**
|
|
129
|
+
* Create a gateway device and EC2 instance
|
|
130
|
+
*/
|
|
131
|
+
createGateway(config: {
|
|
132
|
+
name: string;
|
|
133
|
+
description?: string;
|
|
134
|
+
awsProfile?: string;
|
|
135
|
+
region?: string;
|
|
136
|
+
instanceType?: string;
|
|
137
|
+
}): Promise<any>;
|
|
138
|
+
/**
|
|
139
|
+
* Create a serving device in the organization
|
|
140
|
+
*/
|
|
141
|
+
createServingDevice(config: {
|
|
142
|
+
name: string;
|
|
143
|
+
description?: string;
|
|
144
|
+
}): Promise<any>;
|
|
145
|
+
/**
|
|
146
|
+
* List all serving devices
|
|
147
|
+
*/
|
|
148
|
+
listServingDevices(): Promise<any>;
|
|
149
|
+
/**
|
|
150
|
+
* Get a specific device by ID
|
|
151
|
+
*/
|
|
152
|
+
getDevice(deviceId: string): Promise<any>;
|
|
153
|
+
/**
|
|
154
|
+
* List all gateways
|
|
155
|
+
*/
|
|
156
|
+
listGateways(): Promise<any>;
|
|
157
|
+
/**
|
|
158
|
+
* Delete a gateway
|
|
159
|
+
*/
|
|
160
|
+
deleteGateway(gatewayId: string, force?: boolean): Promise<any>;
|
|
161
|
+
/**
|
|
162
|
+
* Resync agent on gateway
|
|
163
|
+
*/
|
|
164
|
+
/**
|
|
165
|
+
* Create a managed gateway (admin only)
|
|
166
|
+
*/
|
|
167
|
+
createManagedGateway(config: {
|
|
168
|
+
region?: string;
|
|
169
|
+
instanceType?: string;
|
|
170
|
+
name?: string;
|
|
171
|
+
}): Promise<any>;
|
|
172
|
+
/**
|
|
173
|
+
* List all managed gateways (admin only)
|
|
174
|
+
*/
|
|
175
|
+
listManagedGateways(): Promise<any>;
|
|
176
|
+
/**
|
|
177
|
+
* Get managed gateway details (admin only)
|
|
178
|
+
*/
|
|
179
|
+
getManagedGateway(gatewayId: string): Promise<any>;
|
|
180
|
+
/**
|
|
181
|
+
* Delete a managed gateway (admin only)
|
|
182
|
+
*/
|
|
183
|
+
deleteManagedGateway(gatewayId: string, force?: boolean): Promise<any>;
|
|
184
|
+
/**
|
|
185
|
+
* Resync agent on a managed gateway (admin only)
|
|
186
|
+
*/
|
|
187
|
+
resyncManagedGatewayAgent(gatewayId: string, agentVersion?: string, installFromLocal?: boolean, reboot?: boolean, wipeLogs?: boolean, debug?: boolean): Promise<any>;
|
|
188
|
+
resyncGatewayAgent(gatewayId: string, agentVersion?: string, installFromLocal?: boolean): Promise<any>;
|
|
189
|
+
/**
|
|
190
|
+
* Get comprehensive gateway diagnostics including status, logs, and system info
|
|
191
|
+
*/
|
|
192
|
+
getGatewayDiagnostics(gatewayId: string): Promise<{
|
|
193
|
+
status: string;
|
|
194
|
+
agentLogs: string;
|
|
195
|
+
systemInfo: string;
|
|
196
|
+
wireguardStatus: string;
|
|
197
|
+
caddyStatus: string;
|
|
198
|
+
serviceStatus: string;
|
|
199
|
+
networkInfo: string;
|
|
200
|
+
logPaths: string;
|
|
201
|
+
success: boolean;
|
|
202
|
+
}>;
|
|
203
|
+
/**
|
|
204
|
+
* Get agent logs from a gateway
|
|
205
|
+
*/
|
|
206
|
+
/**
|
|
207
|
+
* Get logs from a managed gateway (admin only)
|
|
208
|
+
*/
|
|
209
|
+
getManagedGatewayLogs(gatewayId: string, options: {
|
|
210
|
+
lines?: number;
|
|
211
|
+
follow?: boolean;
|
|
212
|
+
level?: 'error' | 'warn' | 'info' | 'debug' | 'all';
|
|
213
|
+
comprehensive?: boolean;
|
|
214
|
+
}): Promise<any>;
|
|
215
|
+
/**
|
|
216
|
+
* Execute a command on a managed gateway
|
|
217
|
+
*/
|
|
218
|
+
executeManagedGatewayCommand(gatewayId: string, command: string): Promise<{
|
|
219
|
+
success: boolean;
|
|
220
|
+
output: string;
|
|
221
|
+
error?: string;
|
|
222
|
+
}>;
|
|
223
|
+
/**
|
|
224
|
+
* Execute gateway logs retrieval (internal method)
|
|
225
|
+
*/
|
|
226
|
+
private executeGatewayLogs;
|
|
227
|
+
getGatewayLogs(gatewayId: string, options?: {
|
|
228
|
+
lines?: number;
|
|
229
|
+
follow?: boolean;
|
|
230
|
+
level?: 'error' | 'warn' | 'info' | 'debug' | 'all';
|
|
231
|
+
comprehensive?: boolean;
|
|
232
|
+
}): Promise<{
|
|
233
|
+
logs: string;
|
|
234
|
+
success: boolean;
|
|
235
|
+
}>;
|
|
236
|
+
/**
|
|
237
|
+
* Wipe agent log file on a gateway
|
|
238
|
+
*/
|
|
239
|
+
wipeGatewayLogs(gatewayId: string): Promise<{
|
|
240
|
+
success: boolean;
|
|
241
|
+
message?: string;
|
|
242
|
+
logFile?: string;
|
|
243
|
+
}>;
|
|
244
|
+
/**
|
|
245
|
+
* Wipe agent log file on a managed gateway
|
|
246
|
+
*/
|
|
247
|
+
wipeManagedGatewayLogs(gatewayId: string): Promise<{
|
|
248
|
+
success: boolean;
|
|
249
|
+
message?: string;
|
|
250
|
+
logFile?: string;
|
|
251
|
+
}>;
|
|
252
|
+
/**
|
|
253
|
+
* Get applications for a specific gateway
|
|
254
|
+
*/
|
|
255
|
+
getGatewayApplications(gatewayId: string): Promise<Application[]>;
|
|
256
|
+
/**
|
|
257
|
+
* Generate user data script for agent
|
|
258
|
+
*/
|
|
259
|
+
private generateAgentUserData;
|
|
260
|
+
/**
|
|
261
|
+
* Generate placeholder agent code
|
|
262
|
+
*/
|
|
263
|
+
private generateAgentCode;
|
|
264
|
+
/**
|
|
265
|
+
* Enhanced setup with full validation
|
|
266
|
+
*/
|
|
267
|
+
setupApplicationWithValidation(workload: Workload, port: number, protocol?: 'http' | 'https' | 'tcp' | 'udp', description?: string, gatewayId?: string): Promise<ApplicationSetupResult>;
|
|
268
|
+
/**
|
|
269
|
+
* Test application after setup
|
|
270
|
+
*/
|
|
271
|
+
validateApplicationSetup(application: Application): Promise<ValidationResult>;
|
|
272
|
+
/**
|
|
273
|
+
* Get application health status
|
|
274
|
+
*/
|
|
275
|
+
getApplicationHealth(applicationId: string): Promise<LocalAgentHealthStatus>;
|
|
276
|
+
/**
|
|
277
|
+
* Create application programmatically without interactive prompts
|
|
278
|
+
*/
|
|
279
|
+
createApplicationProgrammatically(params: {
|
|
280
|
+
name: string;
|
|
281
|
+
description: string;
|
|
282
|
+
port: number;
|
|
283
|
+
protocol: 'http' | 'https' | 'tcp' | 'udp';
|
|
284
|
+
hostnames?: string[];
|
|
285
|
+
deviceIds: string[];
|
|
286
|
+
gatewayIds?: string[];
|
|
287
|
+
useManagedGateway?: boolean;
|
|
288
|
+
subtype: 'local-preexisting' | 'managed-docker' | 'systemd' | 'docker-compose' | 'managed-process';
|
|
289
|
+
configuration?: Record<string, unknown>;
|
|
290
|
+
}): Promise<any>;
|
|
291
|
+
/**
|
|
292
|
+
* Get application metrics (cross-org aware)
|
|
293
|
+
*/
|
|
294
|
+
getApplicationMetrics(organizationId: string, applicationId: string, startTime: number, endTime: number): Promise<any>;
|
|
295
|
+
/**
|
|
296
|
+
* Get application metrics files (cross-org aware)
|
|
297
|
+
*/
|
|
298
|
+
getApplicationMetricsFiles(organizationId: string, applicationId: string, startTime: number, endTime: number, interval?: '5min' | 'hourly'): Promise<any>;
|
|
299
|
+
/**
|
|
300
|
+
* Get application logs (cross-org aware)
|
|
301
|
+
*/
|
|
302
|
+
getApplicationLogs(organizationId: string, applicationId: string, startTime: number, endTime: number, level?: string, eventType?: string): Promise<any>;
|
|
303
|
+
}
|
|
304
|
+
//# sourceMappingURL=edgible.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
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
|
@@ -461,7 +461,7 @@ class EdgibleService {
|
|
|
461
461
|
servingIp: app.url ? new URL(app.url).hostname : 'unknown',
|
|
462
462
|
port: app.url ? parseInt(new URL(app.url).port) || 80 : 80,
|
|
463
463
|
protocol: app.url && app.url.startsWith('https') ? 'https' : 'http',
|
|
464
|
-
status: app.status === '
|
|
464
|
+
status: app.status === 'deployed' ? 'active' : 'inactive',
|
|
465
465
|
createdAt: app.createdAt,
|
|
466
466
|
description: app.description
|
|
467
467
|
}));
|
|
@@ -494,7 +494,7 @@ class EdgibleService {
|
|
|
494
494
|
servingIp: this.generateServingIp(),
|
|
495
495
|
port: typeof port === 'number' ? port : 3000,
|
|
496
496
|
protocol: protocol,
|
|
497
|
-
status: appData.status === '
|
|
497
|
+
status: appData.status === 'deployed' ? 'active' : 'inactive',
|
|
498
498
|
workloadId: workloadId || undefined,
|
|
499
499
|
createdAt: appData.createdAt || new Date().toISOString(),
|
|
500
500
|
url: appData.url
|
|
@@ -2569,7 +2569,7 @@ echo "OK"
|
|
|
2569
2569
|
servingIp: app.url ? new URL(app.url).hostname : 'unknown',
|
|
2570
2570
|
port: app.url ? parseInt(new URL(app.url).port) || 80 : 80,
|
|
2571
2571
|
protocol: app.url && app.url.startsWith('https') ? 'https' : 'http',
|
|
2572
|
-
status: app.status === '
|
|
2572
|
+
status: app.status === 'deployed' ? 'active' : 'inactive',
|
|
2573
2573
|
createdAt: app.createdAt,
|
|
2574
2574
|
description: app.description
|
|
2575
2575
|
}));
|
|
@@ -3038,16 +3038,26 @@ console.log('Edgible Agent started successfully');
|
|
|
3038
3038
|
if (!config.organizationId) {
|
|
3039
3039
|
throw new Error('Not logged in. Please run "edgible login" first.');
|
|
3040
3040
|
}
|
|
3041
|
+
// Build configuration object, merging provided configuration with port and protocol
|
|
3042
|
+
const configuration = {
|
|
3043
|
+
port: params.port,
|
|
3044
|
+
protocol: params.protocol,
|
|
3045
|
+
...(params.configuration || {}),
|
|
3046
|
+
};
|
|
3041
3047
|
const createRequest = {
|
|
3042
3048
|
name: params.name,
|
|
3043
3049
|
description: params.description,
|
|
3044
3050
|
organizationId: config.organizationId,
|
|
3045
|
-
configuration
|
|
3051
|
+
configuration,
|
|
3046
3052
|
hostnames: params.hostnames,
|
|
3047
3053
|
deviceIds: params.deviceIds,
|
|
3048
3054
|
gatewayIds: params.gatewayIds,
|
|
3049
3055
|
subtype: params.subtype
|
|
3050
3056
|
};
|
|
3057
|
+
// Add useManagedGateway if specified
|
|
3058
|
+
if (params.useManagedGateway !== undefined) {
|
|
3059
|
+
createRequest.useManagedGateway = params.useManagedGateway;
|
|
3060
|
+
}
|
|
3051
3061
|
const response = await this.apiClient.createApplication(createRequest);
|
|
3052
3062
|
return response.application;
|
|
3053
3063
|
}
|
|
@@ -3055,6 +3065,45 @@ console.log('Edgible Agent started successfully');
|
|
|
3055
3065
|
throw new Error(`Failed to create application: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
3056
3066
|
}
|
|
3057
3067
|
}
|
|
3068
|
+
/**
|
|
3069
|
+
* Get application metrics (cross-org aware)
|
|
3070
|
+
*/
|
|
3071
|
+
async getApplicationMetrics(organizationId, applicationId, startTime, endTime) {
|
|
3072
|
+
try {
|
|
3073
|
+
// Attempt auto re-login if tokens are missing but credentials are available
|
|
3074
|
+
await this.attemptAutoRelogin();
|
|
3075
|
+
return await this.apiClient.getApplicationMetrics(organizationId, applicationId, startTime, endTime);
|
|
3076
|
+
}
|
|
3077
|
+
catch (error) {
|
|
3078
|
+
throw new Error(`Failed to get application metrics: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
3079
|
+
}
|
|
3080
|
+
}
|
|
3081
|
+
/**
|
|
3082
|
+
* Get application metrics files (cross-org aware)
|
|
3083
|
+
*/
|
|
3084
|
+
async getApplicationMetricsFiles(organizationId, applicationId, startTime, endTime, interval) {
|
|
3085
|
+
try {
|
|
3086
|
+
// Attempt auto re-login if tokens are missing but credentials are available
|
|
3087
|
+
await this.attemptAutoRelogin();
|
|
3088
|
+
return await this.apiClient.getApplicationMetricsFiles(organizationId, applicationId, startTime, endTime, interval);
|
|
3089
|
+
}
|
|
3090
|
+
catch (error) {
|
|
3091
|
+
throw new Error(`Failed to get application metrics files: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
3092
|
+
}
|
|
3093
|
+
}
|
|
3094
|
+
/**
|
|
3095
|
+
* Get application logs (cross-org aware)
|
|
3096
|
+
*/
|
|
3097
|
+
async getApplicationLogs(organizationId, applicationId, startTime, endTime, level, eventType) {
|
|
3098
|
+
try {
|
|
3099
|
+
// Attempt auto re-login if tokens are missing but credentials are available
|
|
3100
|
+
await this.attemptAutoRelogin();
|
|
3101
|
+
return await this.apiClient.getApplicationLogs(organizationId, applicationId, startTime, endTime, level, eventType);
|
|
3102
|
+
}
|
|
3103
|
+
catch (error) {
|
|
3104
|
+
throw new Error(`Failed to get application logs: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
3105
|
+
}
|
|
3106
|
+
}
|
|
3058
3107
|
}
|
|
3059
3108
|
exports.EdgibleService = EdgibleService;
|
|
3060
3109
|
//# sourceMappingURL=edgible.js.map
|