@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
|
@@ -43,6 +43,7 @@ exports.handleStackTeardown = handleStackTeardown;
|
|
|
43
43
|
const chalk_1 = __importDefault(require("chalk"));
|
|
44
44
|
const readline = __importStar(require("readline"));
|
|
45
45
|
const instances_1 = require("../../services/instances");
|
|
46
|
+
const stack_file_1 = require("../../utils/stack-file");
|
|
46
47
|
async function promptConfirmation(message) {
|
|
47
48
|
const rl = readline.createInterface({
|
|
48
49
|
input: process.stdin,
|
|
@@ -58,7 +59,9 @@ async function promptConfirmation(message) {
|
|
|
58
59
|
async function handleStackTeardown(options) {
|
|
59
60
|
const { stackService, logger } = (0, instances_1.getServiceInstances)();
|
|
60
61
|
try {
|
|
61
|
-
|
|
62
|
+
const file = (0, stack_file_1.findStackFile)(options.file);
|
|
63
|
+
const teardownOptions = { ...options, file };
|
|
64
|
+
logger.info(`Tearing down stack from: ${file}`);
|
|
62
65
|
// Prompt for confirmation unless --force
|
|
63
66
|
if (!options.force) {
|
|
64
67
|
const confirmed = await promptConfirmation(chalk_1.default.yellow('\n⚠ This will remove all applications in the stack. Continue?'));
|
|
@@ -67,7 +70,7 @@ async function handleStackTeardown(options) {
|
|
|
67
70
|
return;
|
|
68
71
|
}
|
|
69
72
|
}
|
|
70
|
-
const result = await stackService.teardownStack(
|
|
73
|
+
const result = await stackService.teardownStack(teardownOptions);
|
|
71
74
|
// Display results
|
|
72
75
|
console.log('\n' + chalk_1.default.bold('Teardown Results:'));
|
|
73
76
|
console.log(chalk_1.default.gray('─'.repeat(50)));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../../src/commands/stack/validate.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../../src/commands/stack/validate.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,wBAAsB,mBAAmB,CAAC,OAAO,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAiCnF"}
|
|
@@ -9,11 +9,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
9
9
|
exports.handleStackValidate = handleStackValidate;
|
|
10
10
|
const chalk_1 = __importDefault(require("chalk"));
|
|
11
11
|
const instances_1 = require("../../services/instances");
|
|
12
|
+
const stack_file_1 = require("../../utils/stack-file");
|
|
12
13
|
async function handleStackValidate(options) {
|
|
13
14
|
const { stackService, logger } = (0, instances_1.getServiceInstances)();
|
|
14
15
|
try {
|
|
15
|
-
|
|
16
|
-
|
|
16
|
+
const file = (0, stack_file_1.findStackFile)(options.file);
|
|
17
|
+
logger.info(`Validating stack file: ${file}`);
|
|
18
|
+
const result = await stackService.validateStack(file);
|
|
17
19
|
if (result.valid) {
|
|
18
20
|
console.log(chalk_1.default.green('✓ Stack validation passed'));
|
|
19
21
|
if (result.warnings.length > 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stack.d.ts","sourceRoot":"","sources":["../../src/commands/stack.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"stack.d.ts","sourceRoot":"","sources":["../../src/commands/stack.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAiIzD"}
|
package/dist/commands/stack.js
CHANGED
|
@@ -22,13 +22,14 @@ function setupStackCommands(program) {
|
|
|
22
22
|
stackCommand
|
|
23
23
|
.command('deploy')
|
|
24
24
|
.description('Deploy or update applications from a stack file')
|
|
25
|
-
.
|
|
25
|
+
.option('-f, --file <path>', 'Path to stack file (default: edgible.yml in current directory)')
|
|
26
26
|
.option('--app <name>', 'Deploy only specified application')
|
|
27
27
|
.option('--dry-run', 'Show what would change without deploying')
|
|
28
28
|
.option('--skip-dependencies', "Don't deploy dependencies")
|
|
29
29
|
.option('--force', 'Force redeployment even if unchanged')
|
|
30
30
|
.addHelpText('after', `
|
|
31
31
|
Examples:
|
|
32
|
+
$ edgible stack deploy
|
|
32
33
|
$ edgible stack deploy -f production.yml
|
|
33
34
|
$ edgible stack deploy -f production.yml --app api-server
|
|
34
35
|
$ edgible stack deploy -f production.yml --dry-run
|
|
@@ -43,12 +44,13 @@ Examples:
|
|
|
43
44
|
stackCommand
|
|
44
45
|
.command('teardown')
|
|
45
46
|
.description('Remove applications defined in a stack')
|
|
46
|
-
.
|
|
47
|
+
.option('-f, --file <path>', 'Path to stack file (default: edgible.yml in current directory)')
|
|
47
48
|
.option('--app <name>', 'Teardown only specified application')
|
|
48
49
|
.option('--force', 'Skip confirmation prompts')
|
|
49
50
|
.option('--keep-dependencies', "Don't teardown dependencies")
|
|
50
51
|
.addHelpText('after', `
|
|
51
52
|
Examples:
|
|
53
|
+
$ edgible stack teardown
|
|
52
54
|
$ edgible stack teardown -f production.yml
|
|
53
55
|
$ edgible stack teardown -f production.yml --app worker
|
|
54
56
|
$ edgible stack teardown -f production.yml --force
|
|
@@ -63,11 +65,12 @@ Examples:
|
|
|
63
65
|
stackCommand
|
|
64
66
|
.command('status')
|
|
65
67
|
.description('Check the status of applications in a stack')
|
|
66
|
-
.
|
|
68
|
+
.option('-f, --file <path>', 'Path to stack file (default: edgible.yml in current directory)')
|
|
67
69
|
.option('--json', 'Output as JSON')
|
|
68
70
|
.option('--app <name>', 'Show status for specific application')
|
|
69
71
|
.addHelpText('after', `
|
|
70
72
|
Examples:
|
|
73
|
+
$ edgible stack status
|
|
71
74
|
$ edgible stack status -f production.yml
|
|
72
75
|
$ edgible stack status -f production.yml --json
|
|
73
76
|
$ edgible stack status -f production.yml --app database
|
|
@@ -82,9 +85,10 @@ Examples:
|
|
|
82
85
|
stackCommand
|
|
83
86
|
.command('validate')
|
|
84
87
|
.description('Validate a stack file without deploying')
|
|
85
|
-
.
|
|
88
|
+
.option('-f, --file <path>', 'Path to stack file (default: edgible.yml in current directory)')
|
|
86
89
|
.addHelpText('after', `
|
|
87
90
|
Examples:
|
|
91
|
+
$ edgible stack validate
|
|
88
92
|
$ edgible stack validate -f production.yml
|
|
89
93
|
`)
|
|
90
94
|
.action((0, command_wrapper_1.wrapCommand)(async (options) => {
|
|
@@ -97,9 +101,10 @@ Examples:
|
|
|
97
101
|
stackCommand
|
|
98
102
|
.command('diff')
|
|
99
103
|
.description('Show differences between stack and deployed state')
|
|
100
|
-
.
|
|
104
|
+
.option('-f, --file <path>', 'Path to stack file (default: edgible.yml in current directory)')
|
|
101
105
|
.addHelpText('after', `
|
|
102
106
|
Examples:
|
|
107
|
+
$ edgible stack diff
|
|
103
108
|
$ edgible stack diff -f production.yml
|
|
104
109
|
`)
|
|
105
110
|
.action((0, command_wrapper_1.wrapCommand)(async (options) => {
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared auth mode selection for application create flows.
|
|
3
|
+
* Uses authModes (none | org | api-key | org+api-key) instead of deprecated requireOrgAuth.
|
|
4
|
+
*/
|
|
5
|
+
export type AuthModeChoice = 'none' | 'org' | 'api-key' | 'org-and-api-key';
|
|
6
|
+
export type AuthMode = 'none' | 'org' | 'api-key';
|
|
7
|
+
export interface AuthPromptResult {
|
|
8
|
+
authModes: AuthMode[];
|
|
9
|
+
allowedOrganizations?: string[];
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Parse --auth-modes string (e.g. "org", "org,api-key") into AuthMode[].
|
|
13
|
+
* Used for non-interactive and flags.
|
|
14
|
+
*/
|
|
15
|
+
export declare function parseAuthModes(value: string | undefined): AuthMode[] | undefined;
|
|
16
|
+
/**
|
|
17
|
+
* Prompt for auth mode (and optionally allowed orgs) in interactive mode.
|
|
18
|
+
* Returns authModes and allowedOrganizations (only when org is in authModes).
|
|
19
|
+
*/
|
|
20
|
+
export declare function promptAuthModes(options: {
|
|
21
|
+
authModesFromFlag?: AuthMode[];
|
|
22
|
+
allowedOrgsFromFlag?: string[];
|
|
23
|
+
nonInteractive?: boolean;
|
|
24
|
+
}): Promise<AuthPromptResult>;
|
|
25
|
+
//# sourceMappingURL=auth-prompt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-prompt.d.ts","sourceRoot":"","sources":["../../../src/commands/utils/auth-prompt.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,KAAK,GAAG,SAAS,GAAG,iBAAiB,CAAC;AAC5E,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,KAAK,GAAG,SAAS,CAAC;AAwBlD,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;CACjC;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,EAAE,GAAG,SAAS,CAahF;AAED;;;GAGG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE;IAC7C,iBAAiB,CAAC,EAAE,QAAQ,EAAE,CAAC;IAC/B,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAgE5B"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Shared auth mode selection for application create flows.
|
|
4
|
+
* Uses authModes (none | org | api-key | org+api-key) instead of deprecated requireOrgAuth.
|
|
5
|
+
*/
|
|
6
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
7
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
8
|
+
};
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.parseAuthModes = parseAuthModes;
|
|
11
|
+
exports.promptAuthModes = promptAuthModes;
|
|
12
|
+
const inquirer_1 = __importDefault(require("inquirer"));
|
|
13
|
+
const AUTH_CHOICES = [
|
|
14
|
+
{ name: 'None (public access)', value: 'none', short: 'None' },
|
|
15
|
+
{ name: 'Organization (logged-in org members)', value: 'org', short: 'Org' },
|
|
16
|
+
{ name: 'API key (programmatic access)', value: 'api-key', short: 'API key' },
|
|
17
|
+
{ name: 'Organization + API key (either)', value: 'org-and-api-key', short: 'Org + API key' },
|
|
18
|
+
];
|
|
19
|
+
function choiceToAuthModes(choice) {
|
|
20
|
+
switch (choice) {
|
|
21
|
+
case 'none':
|
|
22
|
+
return ['none'];
|
|
23
|
+
case 'org':
|
|
24
|
+
return ['org'];
|
|
25
|
+
case 'api-key':
|
|
26
|
+
return ['api-key'];
|
|
27
|
+
case 'org-and-api-key':
|
|
28
|
+
return ['org', 'api-key'];
|
|
29
|
+
default:
|
|
30
|
+
return ['none'];
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Parse --auth-modes string (e.g. "org", "org,api-key") into AuthMode[].
|
|
35
|
+
* Used for non-interactive and flags.
|
|
36
|
+
*/
|
|
37
|
+
function parseAuthModes(value) {
|
|
38
|
+
if (!value || !value.trim())
|
|
39
|
+
return undefined;
|
|
40
|
+
const parts = value.split(',').map((s) => s.trim().toLowerCase());
|
|
41
|
+
const valid = [];
|
|
42
|
+
for (const p of parts) {
|
|
43
|
+
if (p === 'none' || p === 'org' || p === 'api-key') {
|
|
44
|
+
if (p === 'none' && valid.length > 0)
|
|
45
|
+
continue;
|
|
46
|
+
if (p !== 'none' && valid.includes('none'))
|
|
47
|
+
valid.length = 0;
|
|
48
|
+
if (!valid.includes(p))
|
|
49
|
+
valid.push(p);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
if (valid.length === 0)
|
|
53
|
+
return undefined;
|
|
54
|
+
return valid;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Prompt for auth mode (and optionally allowed orgs) in interactive mode.
|
|
58
|
+
* Returns authModes and allowedOrganizations (only when org is in authModes).
|
|
59
|
+
*/
|
|
60
|
+
async function promptAuthModes(options) {
|
|
61
|
+
const { authModesFromFlag, allowedOrgsFromFlag, nonInteractive } = options;
|
|
62
|
+
if (nonInteractive) {
|
|
63
|
+
const authModes = authModesFromFlag && authModesFromFlag.length > 0 ? authModesFromFlag : ['none'];
|
|
64
|
+
return {
|
|
65
|
+
authModes,
|
|
66
|
+
allowedOrganizations: authModes.includes('org') && allowedOrgsFromFlag && allowedOrgsFromFlag.length > 0
|
|
67
|
+
? allowedOrgsFromFlag
|
|
68
|
+
: undefined,
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
if (authModesFromFlag && authModesFromFlag.length > 0) {
|
|
72
|
+
const allowedOrganizations = authModesFromFlag.includes('org') && allowedOrgsFromFlag && allowedOrgsFromFlag.length > 0
|
|
73
|
+
? allowedOrgsFromFlag
|
|
74
|
+
: undefined;
|
|
75
|
+
return { authModes: authModesFromFlag, allowedOrganizations };
|
|
76
|
+
}
|
|
77
|
+
const { authChoice } = await inquirer_1.default.prompt([
|
|
78
|
+
{
|
|
79
|
+
type: 'list',
|
|
80
|
+
name: 'authChoice',
|
|
81
|
+
message: 'How should access to this application be protected?',
|
|
82
|
+
choices: AUTH_CHOICES,
|
|
83
|
+
default: 'none',
|
|
84
|
+
},
|
|
85
|
+
]);
|
|
86
|
+
const authModes = choiceToAuthModes(authChoice);
|
|
87
|
+
let allowedOrganizations;
|
|
88
|
+
if (authModes.includes('org')) {
|
|
89
|
+
const { allowOtherOrgs } = await inquirer_1.default.prompt([
|
|
90
|
+
{
|
|
91
|
+
type: 'confirm',
|
|
92
|
+
name: 'allowOtherOrgs',
|
|
93
|
+
message: 'Allow other organizations to access this application?',
|
|
94
|
+
default: false,
|
|
95
|
+
},
|
|
96
|
+
]);
|
|
97
|
+
if (allowOtherOrgs) {
|
|
98
|
+
const { orgIds } = await inquirer_1.default.prompt([
|
|
99
|
+
{
|
|
100
|
+
type: 'input',
|
|
101
|
+
name: 'orgIds',
|
|
102
|
+
message: 'Enter comma-separated organization IDs to allow access:',
|
|
103
|
+
},
|
|
104
|
+
]);
|
|
105
|
+
if (orgIds && typeof orgIds === 'string' && orgIds.trim()) {
|
|
106
|
+
allowedOrganizations = orgIds
|
|
107
|
+
.split(',')
|
|
108
|
+
.map((s) => s.trim())
|
|
109
|
+
.filter(Boolean);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
return { authModes, allowedOrganizations };
|
|
114
|
+
}
|
|
115
|
+
//# sourceMappingURL=auth-prompt.js.map
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared device selection utilities
|
|
3
|
+
*/
|
|
4
|
+
import type { DeviceService } from '../../services/device/DeviceService';
|
|
5
|
+
export interface DeviceSelectionOptions {
|
|
6
|
+
allowNone?: boolean;
|
|
7
|
+
message?: string;
|
|
8
|
+
required?: boolean;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Prompt user to select a device from available devices
|
|
12
|
+
*/
|
|
13
|
+
export declare function promptDeviceSelection(deviceService: DeviceService, options?: DeviceSelectionOptions): Promise<string | null>;
|
|
14
|
+
/**
|
|
15
|
+
* Get device ID from option or prompt if not provided
|
|
16
|
+
*/
|
|
17
|
+
export declare function getDeviceId(deviceService: DeviceService, providedId: string | undefined, options?: DeviceSelectionOptions): Promise<string | null>;
|
|
18
|
+
//# sourceMappingURL=device-prompt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"device-prompt.d.ts","sourceRoot":"","sources":["../../../src/commands/utils/device-prompt.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAGzE,MAAM,WAAW,sBAAsB;IACrC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,aAAa,EAAE,aAAa,EAC5B,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAsCxB;AAED;;GAEG;AACH,wBAAsB,WAAW,CAC/B,aAAa,EAAE,aAAa,EAC5B,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAKxB"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Shared device selection utilities
|
|
4
|
+
*/
|
|
5
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
6
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.promptDeviceSelection = promptDeviceSelection;
|
|
10
|
+
exports.getDeviceId = getDeviceId;
|
|
11
|
+
const inquirer_1 = __importDefault(require("inquirer"));
|
|
12
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
13
|
+
/**
|
|
14
|
+
* Prompt user to select a device from available devices
|
|
15
|
+
*/
|
|
16
|
+
async function promptDeviceSelection(deviceService, options = {}) {
|
|
17
|
+
const { allowNone = false, message = 'Select device:', required = true } = options;
|
|
18
|
+
const { devices } = await deviceService.listDevices();
|
|
19
|
+
if (devices.length === 0) {
|
|
20
|
+
if (allowNone) {
|
|
21
|
+
return null;
|
|
22
|
+
}
|
|
23
|
+
console.log(chalk_1.default.yellow('⚠ No devices found in organization'));
|
|
24
|
+
if (required) {
|
|
25
|
+
throw new Error('No devices available');
|
|
26
|
+
}
|
|
27
|
+
return null;
|
|
28
|
+
}
|
|
29
|
+
const choices = devices.map((d) => ({
|
|
30
|
+
name: `${d.name} (${d.id}) - ${d.type}`,
|
|
31
|
+
value: d.id,
|
|
32
|
+
}));
|
|
33
|
+
if (allowNone) {
|
|
34
|
+
choices.push({
|
|
35
|
+
name: 'None',
|
|
36
|
+
value: '',
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
const answer = await inquirer_1.default.prompt([
|
|
40
|
+
{
|
|
41
|
+
type: 'list',
|
|
42
|
+
name: 'deviceId',
|
|
43
|
+
message,
|
|
44
|
+
choices,
|
|
45
|
+
},
|
|
46
|
+
]);
|
|
47
|
+
return answer.deviceId === '' ? null : answer.deviceId;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Get device ID from option or prompt if not provided
|
|
51
|
+
*/
|
|
52
|
+
async function getDeviceId(deviceService, providedId, options = {}) {
|
|
53
|
+
if (providedId) {
|
|
54
|
+
return providedId;
|
|
55
|
+
}
|
|
56
|
+
return await promptDeviceSelection(deviceService, options);
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=device-prompt.js.map
|
|
@@ -40,6 +40,19 @@ export declare function formatGateway(gateway: {
|
|
|
40
40
|
};
|
|
41
41
|
applicationCount?: number;
|
|
42
42
|
}): string;
|
|
43
|
+
/**
|
|
44
|
+
* Format device output (for device list)
|
|
45
|
+
*/
|
|
46
|
+
export declare function formatDevice(device: {
|
|
47
|
+
id: string;
|
|
48
|
+
name: string;
|
|
49
|
+
type: string;
|
|
50
|
+
status: string;
|
|
51
|
+
organizationId: string;
|
|
52
|
+
createdAt: string;
|
|
53
|
+
lastSeen?: string;
|
|
54
|
+
description?: string;
|
|
55
|
+
}): string;
|
|
43
56
|
/**
|
|
44
57
|
* Format list of items as table-like output
|
|
45
58
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"output-formatter.d.ts","sourceRoot":"","sources":["../../../src/commands/utils/output-formatter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,GAAG,MAAM,CAqBT;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE;IACrC,MAAM,EAAE;QACN,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,WAAW,CAAC,EAAE;QACZ,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,GAAG,MAAM,CAuBT;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAC1B,KAAK,EAAE,CAAC,EAAE,EACV,UAAU,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,EAC9C,MAAM,CAAC,EAAE,MAAM,EACf,YAAY,CAAC,EAAE,MAAM,GACpB,MAAM,CAgBR;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAMxE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAErD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAErD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAElD"}
|
|
1
|
+
{"version":3,"file":"output-formatter.d.ts","sourceRoot":"","sources":["../../../src/commands/utils/output-formatter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,GAAG,MAAM,CAqBT;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE;IACrC,MAAM,EAAE;QACN,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,WAAW,CAAC,EAAE;QACZ,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,GAAG,MAAM,CAuBT;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,MAAM,CAkBT;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAC1B,KAAK,EAAE,CAAC,EAAE,EACV,UAAU,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,EAC9C,MAAM,CAAC,EAAE,MAAM,EACf,YAAY,CAAC,EAAE,MAAM,GACpB,MAAM,CAgBR;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAMxE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAErD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAErD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAElD"}
|
|
@@ -9,6 +9,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
9
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
10
|
exports.formatApplication = formatApplication;
|
|
11
11
|
exports.formatGateway = formatGateway;
|
|
12
|
+
exports.formatDevice = formatDevice;
|
|
12
13
|
exports.formatList = formatList;
|
|
13
14
|
exports.formatError = formatError;
|
|
14
15
|
exports.formatSuccess = formatSuccess;
|
|
@@ -61,6 +62,26 @@ function formatGateway(gateway) {
|
|
|
61
62
|
output += chalk_1.default.gray(` Created: ${new Date(gateway.device.createdAt).toLocaleString()}\n`);
|
|
62
63
|
return output;
|
|
63
64
|
}
|
|
65
|
+
/**
|
|
66
|
+
* Format device output (for device list)
|
|
67
|
+
*/
|
|
68
|
+
function formatDevice(device) {
|
|
69
|
+
const statusColor = device.status === 'active' ? chalk_1.default.green : chalk_1.default.yellow;
|
|
70
|
+
const statusIcon = device.status === 'active' ? '●' : '○';
|
|
71
|
+
let output = '';
|
|
72
|
+
output += `${statusIcon} ${device.name}\n`;
|
|
73
|
+
output += chalk_1.default.gray(` ID: ${device.id}\n`);
|
|
74
|
+
output += chalk_1.default.gray(` Type: ${device.type}\n`);
|
|
75
|
+
output += chalk_1.default.gray(` Status: ${statusColor(device.status)}\n`);
|
|
76
|
+
output += chalk_1.default.gray(` Created: ${new Date(device.createdAt).toLocaleString()}\n`);
|
|
77
|
+
if (device.lastSeen) {
|
|
78
|
+
output += chalk_1.default.gray(` Last seen: ${new Date(device.lastSeen).toLocaleString()}\n`);
|
|
79
|
+
}
|
|
80
|
+
if (device.description) {
|
|
81
|
+
output += chalk_1.default.gray(` Description: ${device.description}\n`);
|
|
82
|
+
}
|
|
83
|
+
return output;
|
|
84
|
+
}
|
|
64
85
|
/**
|
|
65
86
|
* Format list of items as table-like output
|
|
66
87
|
*/
|
package/dist/index.js
CHANGED
|
@@ -6,6 +6,7 @@ const errors_1 = require("./utils/errors");
|
|
|
6
6
|
const output_1 = require("./utils/output");
|
|
7
7
|
const application_1 = require("./commands/application");
|
|
8
8
|
const gateway_1 = require("./commands/gateway");
|
|
9
|
+
const device_1 = require("./commands/device");
|
|
9
10
|
const auth_1 = require("./commands/auth");
|
|
10
11
|
const config_1 = require("./commands/config");
|
|
11
12
|
const discover_1 = require("./commands/discover");
|
|
@@ -37,6 +38,7 @@ program
|
|
|
37
38
|
(0, auth_1.setupAuthCommands)(program);
|
|
38
39
|
(0, application_1.setupApplicationCommands)(program);
|
|
39
40
|
(0, gateway_1.setupGatewayCommands)(program);
|
|
41
|
+
(0, device_1.setupDeviceCommands)(program);
|
|
40
42
|
(0, stack_1.setupStackCommands)(program);
|
|
41
43
|
(0, config_1.setupConfigCommands)(program);
|
|
42
44
|
(0, discover_1.setupDiscoverCommands)(program);
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { UnifiedAgentStatus } from '../types/UnifiedAgentStatus';
|
|
2
2
|
import { InstallationResult, UpdateResult, ConfigurationResult, LocalAgentHealthStatus, AgentInstallationOptions, AgentUpdateOptions } from '../types/agent';
|
|
3
3
|
import { Application } from '../types/validation';
|
|
4
|
+
import { ConfigManager } from '../state/config';
|
|
4
5
|
export declare class LocalAgentManager {
|
|
5
6
|
private configPath;
|
|
6
7
|
private agentPath;
|
|
@@ -9,7 +10,7 @@ export declare class LocalAgentManager {
|
|
|
9
10
|
private agentProcess;
|
|
10
11
|
private configManager;
|
|
11
12
|
private statusManager;
|
|
12
|
-
constructor();
|
|
13
|
+
constructor(configManager?: ConfigManager);
|
|
13
14
|
/**
|
|
14
15
|
* Update agent configuration with current CLI device credentials
|
|
15
16
|
* @param configPath Optional config path to use. If not provided, uses the instance's configPath.
|
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"LocalAgentManager.d.ts","sourceRoot":"","sources":["../../src/services/LocalAgentManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -55,11 +55,12 @@ const writeFile = (0, util_1.promisify)(fs.writeFile);
|
|
|
55
55
|
const readFile = (0, util_1.promisify)(fs.readFile);
|
|
56
56
|
const mkdir = (0, util_1.promisify)(fs.mkdir);
|
|
57
57
|
class LocalAgentManager {
|
|
58
|
-
constructor() {
|
|
58
|
+
constructor(configManager) {
|
|
59
59
|
this.agentProcess = null;
|
|
60
|
+
// Use provided configManager or create a new one (for backwards compatibility)
|
|
61
|
+
this.configManager = configManager || new config_1.ConfigManager();
|
|
60
62
|
// Get user config to determine installation type
|
|
61
|
-
const
|
|
62
|
-
const userConfig = tempConfigManager.getConfig();
|
|
63
|
+
const userConfig = this.configManager.getConfig();
|
|
63
64
|
// Resolve agent config path based on installation type
|
|
64
65
|
this.configPath = PathResolver_1.PathResolver.resolveAgentConfigPath(userConfig.agentInstallationType);
|
|
65
66
|
// Check for the actual agent binary location
|
|
@@ -71,7 +72,6 @@ class LocalAgentManager {
|
|
|
71
72
|
this.agentPath = possibleAgentPaths.find(p => fs.existsSync(p)) || possibleAgentPaths[0];
|
|
72
73
|
this.serviceName = 'edgible-agent';
|
|
73
74
|
this.statePath = path.join(this.configPath, 'state.json');
|
|
74
|
-
this.configManager = new config_1.ConfigManager();
|
|
75
75
|
this.statusManager = new AgentStatusManager_1.AgentStatusManager();
|
|
76
76
|
}
|
|
77
77
|
/**
|
|
@@ -91,6 +91,7 @@ class LocalAgentManager {
|
|
|
91
91
|
devicePassword: cliConfig.devicePassword,
|
|
92
92
|
deviceType: cliConfig.deviceType || 'serving',
|
|
93
93
|
apiBaseUrl: (0, urls_1.getApiBaseUrl)(),
|
|
94
|
+
stage: (0, urls_1.getStage)(),
|
|
94
95
|
organizationId: cliConfig.organizationId,
|
|
95
96
|
firewallEnabled: true,
|
|
96
97
|
pollingInterval: 60000,
|
|
@@ -1484,6 +1485,7 @@ class LocalAgentManager {
|
|
|
1484
1485
|
devicePassword: cliConfig.devicePassword || 'edgible-password-' + Math.random().toString(36).substr(2, 9),
|
|
1485
1486
|
deviceType: cliConfig.deviceType || 'serving',
|
|
1486
1487
|
apiBaseUrl: (0, urls_1.getApiBaseUrl)(),
|
|
1488
|
+
stage: (0, urls_1.getStage)(),
|
|
1487
1489
|
firewallEnabled: true,
|
|
1488
1490
|
pollingInterval: 60000,
|
|
1489
1491
|
healthCheckTimeout: 5000,
|
|
@@ -11,6 +11,13 @@ export interface ApplicationService {
|
|
|
11
11
|
setupApplication(workload: Workload, port: number, protocol: 'http' | 'https' | 'tcp' | 'udp', description?: string, gatewayId?: string): Promise<Application>;
|
|
12
12
|
getApplications(): Promise<Application[]>;
|
|
13
13
|
getApplication(id: string): Promise<Application>;
|
|
14
|
+
getApplicationDetails(id: string): Promise<{
|
|
15
|
+
id: string;
|
|
16
|
+
name: string;
|
|
17
|
+
subtype?: string;
|
|
18
|
+
configuration?: Record<string, unknown>;
|
|
19
|
+
deviceApplicationConfigs?: Record<string, any>;
|
|
20
|
+
}>;
|
|
14
21
|
deleteApplication(id: string): Promise<boolean>;
|
|
15
22
|
createApplicationProgrammatically(params: {
|
|
16
23
|
name: string;
|
|
@@ -21,7 +28,7 @@ export interface ApplicationService {
|
|
|
21
28
|
deviceIds: string[];
|
|
22
29
|
gatewayIds?: string[];
|
|
23
30
|
useManagedGateway?: boolean;
|
|
24
|
-
subtype: 'local-preexisting' | 'managed-docker' | 'systemd' | 'docker-compose' | 'managed-process';
|
|
31
|
+
subtype: 'local-preexisting' | 'managed-docker' | 'systemd' | 'docker-compose' | 'managed-process' | 'vm';
|
|
25
32
|
configuration?: Record<string, unknown>;
|
|
26
33
|
authModes?: Array<'none' | 'org' | 'api-key'>;
|
|
27
34
|
requireOrgAuth?: boolean;
|
|
@@ -36,6 +43,15 @@ export interface ApplicationService {
|
|
|
36
43
|
createShortCode(applicationId: string, name: string, expiresAt?: string, maxUses?: number): Promise<any>;
|
|
37
44
|
updateShortCode(applicationId: string, codeId: string, updates: any): Promise<any>;
|
|
38
45
|
deleteShortCode(applicationId: string, codeId: string): Promise<void>;
|
|
46
|
+
updateApplication(applicationId: string, updates: {
|
|
47
|
+
name?: string;
|
|
48
|
+
description?: string;
|
|
49
|
+
authModes?: Array<'none' | 'org' | 'api-key'>;
|
|
50
|
+
allowedOrganizations?: string[];
|
|
51
|
+
targetState?: string;
|
|
52
|
+
dependsOnApplicationIds?: string[];
|
|
53
|
+
}): Promise<unknown>;
|
|
54
|
+
getApplicationVmSshKey(applicationId: string): Promise<string | null>;
|
|
39
55
|
}
|
|
40
56
|
export declare class ApplicationServiceImpl implements ApplicationService {
|
|
41
57
|
private apiClient;
|
|
@@ -50,6 +66,13 @@ export declare class ApplicationServiceImpl implements ApplicationService {
|
|
|
50
66
|
setupApplication(workload: Workload, port: number, protocol?: 'http' | 'https' | 'tcp' | 'udp', description?: string, gatewayId?: string): Promise<Application>;
|
|
51
67
|
getApplications(): Promise<Application[]>;
|
|
52
68
|
getApplication(id: string): Promise<Application>;
|
|
69
|
+
getApplicationDetails(id: string): Promise<{
|
|
70
|
+
id: string;
|
|
71
|
+
name: string;
|
|
72
|
+
subtype?: string;
|
|
73
|
+
configuration?: Record<string, unknown>;
|
|
74
|
+
deviceApplicationConfigs?: Record<string, any>;
|
|
75
|
+
}>;
|
|
53
76
|
deleteApplication(id: string): Promise<boolean>;
|
|
54
77
|
createApplicationProgrammatically(params: {
|
|
55
78
|
name: string;
|
|
@@ -60,7 +83,7 @@ export declare class ApplicationServiceImpl implements ApplicationService {
|
|
|
60
83
|
deviceIds: string[];
|
|
61
84
|
gatewayIds?: string[];
|
|
62
85
|
useManagedGateway?: boolean;
|
|
63
|
-
subtype: 'local-preexisting' | 'managed-docker' | 'systemd' | 'docker-compose' | 'managed-process';
|
|
86
|
+
subtype: 'local-preexisting' | 'managed-docker' | 'systemd' | 'docker-compose' | 'managed-process' | 'vm';
|
|
64
87
|
configuration?: Record<string, unknown>;
|
|
65
88
|
authModes?: Array<'none' | 'org' | 'api-key'>;
|
|
66
89
|
requireOrgAuth?: boolean;
|
|
@@ -95,5 +118,21 @@ export declare class ApplicationServiceImpl implements ApplicationService {
|
|
|
95
118
|
* Delete a short code
|
|
96
119
|
*/
|
|
97
120
|
deleteShortCode(applicationId: string, codeId: string): Promise<void>;
|
|
121
|
+
/**
|
|
122
|
+
* Update application (e.g. auth modes, name, description)
|
|
123
|
+
*/
|
|
124
|
+
updateApplication(applicationId: string, updates: {
|
|
125
|
+
name?: string;
|
|
126
|
+
description?: string;
|
|
127
|
+
authModes?: Array<'none' | 'org' | 'api-key'>;
|
|
128
|
+
allowedOrganizations?: string[];
|
|
129
|
+
targetState?: 'running' | 'suspended';
|
|
130
|
+
dependsOnApplicationIds?: string[];
|
|
131
|
+
}): Promise<unknown>;
|
|
132
|
+
/**
|
|
133
|
+
* Fetch the SSH private key stored for a VM application.
|
|
134
|
+
* Returns null if no key is stored (user must provide --key themselves).
|
|
135
|
+
*/
|
|
136
|
+
getApplicationVmSshKey(applicationId: string): Promise<string | null>;
|
|
98
137
|
}
|
|
99
138
|
//# sourceMappingURL=ApplicationService.d.ts.map
|
|
@@ -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,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;
|
|
1
|
+
{"version":3,"file":"ApplicationService.d.ts","sourceRoot":"","sources":["../../../src/services/application/ApplicationService.ts"],"names":[],"mappings":"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"}
|