@edgible-team/cli 1.2.9 → 1.2.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/agent/install.d.ts +4 -0
- package/dist/commands/agent/install.d.ts.map +1 -1
- package/dist/commands/agent/install.js +155 -129
- package/dist/commands/agent.d.ts.map +1 -1
- package/dist/commands/agent.js +4 -0
- package/dist/commands/ai/helpers.d.ts.map +1 -1
- package/dist/commands/ai/helpers.js +12 -6
- package/dist/commands/debug.d.ts.map +1 -1
- package/dist/commands/debug.js +184 -49
- package/dist/generated/compose-constants.d.ts +1 -1
- package/dist/generated/compose-constants.d.ts.map +1 -1
- package/dist/generated/compose-constants.js +1 -1
- package/dist/services/DependencyInstaller.d.ts +2 -9
- package/dist/services/DependencyInstaller.d.ts.map +1 -1
- package/dist/services/DependencyInstaller.js +5 -30
- package/dist/services/application/ApplicationService.d.ts +3 -0
- package/dist/services/application/ApplicationService.d.ts.map +1 -1
- package/dist/services/application/ApplicationService.js +3 -0
- package/dist/types/AgentConfig.d.ts +0 -13
- package/dist/types/AgentConfig.d.ts.map +1 -1
- package/dist/types/ApiRequests.d.ts +8 -0
- package/dist/types/ApiRequests.d.ts.map +1 -1
- package/dist/types/models/ApplicationData.d.ts +22 -0
- package/dist/types/models/ApplicationData.d.ts.map +1 -1
- package/dist/types/models/OrganizationData.d.ts +2 -0
- package/dist/types/models/OrganizationData.d.ts.map +1 -1
- package/dist/types/validation/schemas.d.ts +29 -6
- package/dist/types/validation/schemas.d.ts.map +1 -1
- package/dist/types/validation/schemas.js +24 -0
- package/dist/utils/run-as-user.d.ts +24 -0
- package/dist/utils/run-as-user.d.ts.map +1 -0
- package/dist/utils/run-as-user.js +42 -0
- package/package.json +1 -1
- package/recipes/compose/open-webui/docker-compose.yml +1 -9
package/dist/commands/debug.js
CHANGED
|
@@ -58,7 +58,8 @@ function setupDebugCommands(program) {
|
|
|
58
58
|
debugCommand
|
|
59
59
|
.command('full-cycle')
|
|
60
60
|
.description('Full debug cycle for customer issue troubleshooting')
|
|
61
|
-
.
|
|
61
|
+
.option('--local', 'Use local agent build from agent-v2/dist/ (development only)')
|
|
62
|
+
.action((0, command_wrapper_1.wrapCommand)(async (options) => {
|
|
62
63
|
if (!(0, sudo_checker_1.checkSudoPermissions)()) {
|
|
63
64
|
console.log(chalk_1.default.redBright("Please run this command with administrator privileges (i.e. sudo)"));
|
|
64
65
|
return;
|
|
@@ -67,76 +68,133 @@ function setupDebugCommands(program) {
|
|
|
67
68
|
console.log(chalk_1.default.blue.bold(' Full Debug Cycle'));
|
|
68
69
|
console.log(chalk_1.default.blue.bold('═══════════════════════════════════════════\n'));
|
|
69
70
|
console.log(chalk_1.default.gray('This will perform a complete agent lifecycle test:\n'));
|
|
70
|
-
console.log(chalk_1.default.gray(' 1.
|
|
71
|
-
console.log(chalk_1.default.gray(' 2.
|
|
71
|
+
console.log(chalk_1.default.gray(' 1. Teardown AI services'));
|
|
72
|
+
console.log(chalk_1.default.gray(' 2. Uninstall agent and delete all data'));
|
|
72
73
|
console.log(chalk_1.default.gray(' 3. Install agent'));
|
|
73
|
-
console.log(chalk_1.default.gray(' 4. Wait 2 minutes
|
|
74
|
+
console.log(chalk_1.default.gray(' 4. Wait 2 minutes for startup'));
|
|
74
75
|
console.log(chalk_1.default.gray(' 5. Setup AI with qwen:0.5b model'));
|
|
75
|
-
console.log(chalk_1.default.gray(' 6. Wait 1 minute
|
|
76
|
+
console.log(chalk_1.default.gray(' 6. Wait 1 minute for AI runtime'));
|
|
76
77
|
console.log(chalk_1.default.gray(' 7. Teardown AI services'));
|
|
77
|
-
console.log(chalk_1.default.gray(' 8. Uninstall agent
|
|
78
|
+
console.log(chalk_1.default.gray(' 8. Uninstall agent'));
|
|
79
|
+
console.log(chalk_1.default.gray(' 9. Collect all logs and diagnostics\n'));
|
|
78
80
|
const documentsFolder = getDocumentsFolder();
|
|
79
|
-
|
|
81
|
+
const finalLogPath = path.join(documentsFolder, 'debug_full_cycle.log');
|
|
82
|
+
console.log(chalk_1.default.cyan(`Final debug log will be saved to: ${finalLogPath}\n`));
|
|
83
|
+
// Array to collect all debug information
|
|
84
|
+
const debugSections = [];
|
|
80
85
|
try {
|
|
81
|
-
// Step 1:
|
|
82
|
-
console.log(chalk_1.default.blue.bold('\n[Step 1/
|
|
86
|
+
// Step 1: Teardown AI services
|
|
87
|
+
console.log(chalk_1.default.blue.bold('\n[Step 1/9] Tearing Down AI Services\n'));
|
|
83
88
|
try {
|
|
84
|
-
await (0,
|
|
89
|
+
await (0, teardown_1.handleAiTeardown)({ stopOllama: true, removeVolumes: true });
|
|
90
|
+
debugSections.push({
|
|
91
|
+
title: 'Initial AI Teardown',
|
|
92
|
+
content: 'AI services successfully torn down before starting debug cycle'
|
|
93
|
+
});
|
|
85
94
|
}
|
|
86
95
|
catch (error) {
|
|
87
|
-
|
|
96
|
+
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
97
|
+
debugSections.push({
|
|
98
|
+
title: 'Initial AI Teardown',
|
|
99
|
+
content: `AI services may not have been running: ${errorMsg}`
|
|
100
|
+
});
|
|
101
|
+
console.log(chalk_1.default.yellow('⚠ AI services may not have been running, continuing...\n'));
|
|
88
102
|
}
|
|
89
|
-
// Step 2:
|
|
90
|
-
console.log(chalk_1.default.blue.bold('\n[Step 2/
|
|
103
|
+
// Step 2: Uninstall agent and delete all data
|
|
104
|
+
console.log(chalk_1.default.blue.bold('\n[Step 2/9] Uninstalling Agent\n'));
|
|
91
105
|
try {
|
|
92
|
-
await (0,
|
|
106
|
+
await (0, uninstall_1.handleAgentUninstall)({ removeFiles: true, force: true }, instances_1.logger, instances_1.configManager);
|
|
107
|
+
debugSections.push({
|
|
108
|
+
title: 'Initial Agent Uninstall',
|
|
109
|
+
content: 'Agent successfully uninstalled before starting debug cycle'
|
|
110
|
+
});
|
|
93
111
|
}
|
|
94
112
|
catch (error) {
|
|
95
|
-
|
|
113
|
+
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
114
|
+
debugSections.push({
|
|
115
|
+
title: 'Initial Agent Uninstall',
|
|
116
|
+
content: `Agent may not have been installed: ${errorMsg}`
|
|
117
|
+
});
|
|
118
|
+
console.log(chalk_1.default.yellow('⚠ Agent may not have been installed, continuing...\n'));
|
|
96
119
|
}
|
|
97
120
|
// Step 3: Install agent
|
|
98
|
-
console.log(chalk_1.default.blue.bold('\n[Step 3/
|
|
121
|
+
console.log(chalk_1.default.blue.bold('\n[Step 3/9] Installing Agent\n'));
|
|
99
122
|
const platform = PlatformDetector_1.PlatformDetector.getPlatform();
|
|
100
123
|
const installationType = platform === 'darwin' ? 'launchd' : 'systemd';
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
124
|
+
if (options.local) {
|
|
125
|
+
console.log(chalk_1.default.cyan('Using local agent build from agent-v2/dist/\n'));
|
|
126
|
+
}
|
|
127
|
+
await (0, install_1.handleAgentInstall)({ type: installationType, dev: false, local: options.local || false }, instances_1.logger, instances_1.configManager, instances_1.edgibleService, instances_1.authService, instances_1.localAgentManager);
|
|
128
|
+
debugSections.push({
|
|
129
|
+
title: 'Agent Installation',
|
|
130
|
+
content: `Agent installed successfully (${installationType} on ${platform})${options.local ? ' [LOCAL BUILD]' : ''}`
|
|
131
|
+
});
|
|
132
|
+
// Step 4: Wait 2 minutes for startup
|
|
133
|
+
console.log(chalk_1.default.blue.bold('\n[Step 4/9] Waiting 2 Minutes for Agent Startup\n'));
|
|
104
134
|
await waitWithProgress(120, 'Capturing startup behavior');
|
|
105
|
-
const
|
|
106
|
-
|
|
107
|
-
console.log(chalk_1.default.green(`✓ Startup logs saved to: ${startupLogPath}\n`));
|
|
135
|
+
const startupLogs = await captureAgentLogs('Startup Phase');
|
|
136
|
+
debugSections.push(startupLogs);
|
|
108
137
|
// Step 5: Setup AI with qwen:0.5b
|
|
109
|
-
console.log(chalk_1.default.blue.bold('\n[Step 5/
|
|
138
|
+
console.log(chalk_1.default.blue.bold('\n[Step 5/9] Setting Up AI with qwen:0.5b\n'));
|
|
110
139
|
await (0, setup_1.handleAiSetup)({
|
|
111
140
|
model: 'qwen:0.5b',
|
|
112
141
|
autoInstall: true,
|
|
113
142
|
noInteractive: true
|
|
114
143
|
});
|
|
115
|
-
|
|
116
|
-
|
|
144
|
+
debugSections.push({
|
|
145
|
+
title: 'AI Setup',
|
|
146
|
+
content: 'AI services set up with qwen:0.5b model'
|
|
147
|
+
});
|
|
148
|
+
// Step 6: Wait 1 minute for AI runtime
|
|
149
|
+
console.log(chalk_1.default.blue.bold('\n[Step 6/9] Waiting 1 Minute for AI Runtime\n'));
|
|
117
150
|
await waitWithProgress(60, 'Capturing runtime behavior');
|
|
118
|
-
const
|
|
119
|
-
|
|
120
|
-
|
|
151
|
+
const runtimeLogs = await captureAgentLogs('Runtime Phase');
|
|
152
|
+
debugSections.push(runtimeLogs);
|
|
153
|
+
// Step 6.5: Capture Docker exec curl output
|
|
154
|
+
console.log(chalk_1.default.blue.bold('\n[Step 6.5/9] Testing Ollama Connectivity\n'));
|
|
155
|
+
const ollamaTestResult = await testOllamaConnectivity();
|
|
156
|
+
debugSections.push(ollamaTestResult);
|
|
121
157
|
// Step 7: Teardown AI services
|
|
122
|
-
console.log(chalk_1.default.blue.bold('\n[Step 7/
|
|
158
|
+
console.log(chalk_1.default.blue.bold('\n[Step 7/9] Tearing Down AI Services\n'));
|
|
123
159
|
await (0, teardown_1.handleAiTeardown)({ stopOllama: true, removeVolumes: true });
|
|
160
|
+
debugSections.push({
|
|
161
|
+
title: 'Final AI Teardown',
|
|
162
|
+
content: 'AI services torn down successfully'
|
|
163
|
+
});
|
|
124
164
|
// Step 8: Uninstall agent
|
|
125
|
-
console.log(chalk_1.default.blue.bold('\n[Step 8/
|
|
165
|
+
console.log(chalk_1.default.blue.bold('\n[Step 8/9] Uninstalling Agent\n'));
|
|
126
166
|
await (0, uninstall_1.handleAgentUninstall)({ removeFiles: true, force: true }, instances_1.logger, instances_1.configManager);
|
|
167
|
+
debugSections.push({
|
|
168
|
+
title: 'Final Agent Uninstall',
|
|
169
|
+
content: 'Agent uninstalled successfully'
|
|
170
|
+
});
|
|
171
|
+
// Step 9: Write final log file
|
|
172
|
+
console.log(chalk_1.default.blue.bold('\n[Step 9/9] Generating Final Debug Log\n'));
|
|
173
|
+
await writeFinalDebugLog(finalLogPath, debugSections);
|
|
174
|
+
console.log(chalk_1.default.green(`✓ Debug log saved to: ${finalLogPath}\n`));
|
|
127
175
|
// Final summary
|
|
128
176
|
console.log(chalk_1.default.blue.bold('\n═══════════════════════════════════════════'));
|
|
129
177
|
console.log(chalk_1.default.green.bold(' ✓ Full Debug Cycle Complete!'));
|
|
130
178
|
console.log(chalk_1.default.blue.bold('═══════════════════════════════════════════\n'));
|
|
131
|
-
console.log(chalk_1.default.cyan('Debug
|
|
132
|
-
console.log(chalk_1.default.gray(` • ${
|
|
133
|
-
console.log(chalk_1.default.
|
|
134
|
-
console.log(chalk_1.default.yellow('Please send these log files to support for analysis.\n'));
|
|
179
|
+
console.log(chalk_1.default.cyan('Debug log saved:'));
|
|
180
|
+
console.log(chalk_1.default.gray(` • ${finalLogPath}\n`));
|
|
181
|
+
console.log(chalk_1.default.yellow('Please send this log file to support for analysis.\n'));
|
|
135
182
|
}
|
|
136
183
|
catch (error) {
|
|
137
184
|
instances_1.logger.error('Full debug cycle failed', error);
|
|
138
185
|
console.error(chalk_1.default.red('\n✗ Debug cycle failed:'), error instanceof Error ? error.message : String(error));
|
|
139
|
-
|
|
186
|
+
// Still try to write partial logs
|
|
187
|
+
try {
|
|
188
|
+
debugSections.push({
|
|
189
|
+
title: 'ERROR',
|
|
190
|
+
content: `Debug cycle failed: ${error instanceof Error ? error.message : String(error)}\n\nStack trace:\n${error instanceof Error ? error.stack : 'No stack trace available'}`
|
|
191
|
+
});
|
|
192
|
+
await writeFinalDebugLog(finalLogPath, debugSections);
|
|
193
|
+
console.log(chalk_1.default.yellow(`\nPartial debug log saved to: ${finalLogPath}\n`));
|
|
194
|
+
}
|
|
195
|
+
catch (writeError) {
|
|
196
|
+
console.error(chalk_1.default.red('Failed to write partial log:'), writeError instanceof Error ? writeError.message : String(writeError));
|
|
197
|
+
}
|
|
140
198
|
throw error;
|
|
141
199
|
}
|
|
142
200
|
}, {
|
|
@@ -526,33 +584,110 @@ function getDocumentsFolder() {
|
|
|
526
584
|
}
|
|
527
585
|
}
|
|
528
586
|
/**
|
|
529
|
-
*
|
|
587
|
+
* Capture agent logs and return as a debug section
|
|
530
588
|
*/
|
|
531
|
-
async function
|
|
589
|
+
async function captureAgentLogs(phase) {
|
|
532
590
|
const logFilePath = instances_1.localAgentManager.getLogFilePath();
|
|
533
591
|
if (!fs.existsSync(logFilePath)) {
|
|
534
592
|
console.log(chalk_1.default.yellow(`⚠ Log file not found at: ${logFilePath}`));
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
593
|
+
return {
|
|
594
|
+
title: `Agent Logs - ${phase}`,
|
|
595
|
+
content: `Log file was not found at the time of capture\nLog path: ${logFilePath}\nTimestamp: ${new Date().toISOString()}`
|
|
596
|
+
};
|
|
597
|
+
}
|
|
598
|
+
try {
|
|
599
|
+
const logContent = fs.readFileSync(logFilePath, 'utf8');
|
|
600
|
+
return {
|
|
601
|
+
title: `Agent Logs - ${phase}`,
|
|
602
|
+
content: `Source: ${logFilePath}\nTimestamp: ${new Date().toISOString()}\n\n${logContent}`
|
|
603
|
+
};
|
|
604
|
+
}
|
|
605
|
+
catch (error) {
|
|
606
|
+
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
607
|
+
console.error(chalk_1.default.red(`✗ Failed to read logs: ${errorMsg}`));
|
|
608
|
+
return {
|
|
609
|
+
title: `Agent Logs - ${phase}`,
|
|
610
|
+
content: `Failed to read logs: ${errorMsg}`
|
|
611
|
+
};
|
|
612
|
+
}
|
|
613
|
+
}
|
|
614
|
+
/**
|
|
615
|
+
* Test Ollama connectivity from open-webui container
|
|
616
|
+
*/
|
|
617
|
+
async function testOllamaConnectivity() {
|
|
618
|
+
console.log(chalk_1.default.cyan('Testing Ollama connectivity from open-webui container...'));
|
|
619
|
+
try {
|
|
620
|
+
const output = (0, child_process_1.execSync)('docker exec open-webui curl http://host.docker.internal:11435', {
|
|
621
|
+
encoding: 'utf8',
|
|
622
|
+
timeout: 10000,
|
|
623
|
+
stdio: ['pipe', 'pipe', 'pipe']
|
|
624
|
+
});
|
|
625
|
+
console.log(chalk_1.default.green('✓ Ollama connectivity test completed\n'));
|
|
626
|
+
return {
|
|
627
|
+
title: 'Ollama Connectivity Test',
|
|
628
|
+
content: `Command: docker exec open-webui curl http://host.docker.internal:11435\nTimestamp: ${new Date().toISOString()}\n\nOutput:\n${output}`
|
|
629
|
+
};
|
|
540
630
|
}
|
|
631
|
+
catch (error) {
|
|
632
|
+
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
633
|
+
let errorOutput = errorMsg;
|
|
634
|
+
// Try to capture stderr if available
|
|
635
|
+
if (error && typeof error === 'object' && 'stderr' in error) {
|
|
636
|
+
const stderr = error.stderr;
|
|
637
|
+
errorOutput = `${errorMsg}\n\nStderr:\n${stderr.toString()}`;
|
|
638
|
+
}
|
|
639
|
+
console.log(chalk_1.default.yellow(`⚠ Ollama connectivity test failed: ${errorMsg}\n`));
|
|
640
|
+
return {
|
|
641
|
+
title: 'Ollama Connectivity Test',
|
|
642
|
+
content: `Command: docker exec open-webui curl http://host.docker.internal:11435\nTimestamp: ${new Date().toISOString()}\n\nError:\n${errorOutput}`
|
|
643
|
+
};
|
|
644
|
+
}
|
|
645
|
+
}
|
|
646
|
+
/**
|
|
647
|
+
* Write final debug log file with all collected sections
|
|
648
|
+
*/
|
|
649
|
+
async function writeFinalDebugLog(destinationPath, sections) {
|
|
541
650
|
try {
|
|
542
651
|
// Ensure destination directory exists
|
|
543
652
|
const destDir = path.dirname(destinationPath);
|
|
544
653
|
if (!fs.existsSync(destDir)) {
|
|
545
654
|
fs.mkdirSync(destDir, { recursive: true });
|
|
546
655
|
}
|
|
547
|
-
//
|
|
548
|
-
|
|
549
|
-
//
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
656
|
+
// Build the complete log file
|
|
657
|
+
const lines = [];
|
|
658
|
+
// Header
|
|
659
|
+
lines.push('═══════════════════════════════════════════════════════════════');
|
|
660
|
+
lines.push(' EDGIBLE DEBUG FULL CYCLE');
|
|
661
|
+
lines.push('═══════════════════════════════════════════════════════════════');
|
|
662
|
+
lines.push('');
|
|
663
|
+
lines.push(`Generated: ${new Date().toISOString()}`);
|
|
664
|
+
lines.push(`Platform: ${os.platform()} ${os.release()}`);
|
|
665
|
+
lines.push(`Architecture: ${os.arch()}`);
|
|
666
|
+
lines.push(`Node Version: ${process.version}`);
|
|
667
|
+
lines.push(`Hostname: ${os.hostname()}`);
|
|
668
|
+
lines.push('');
|
|
669
|
+
lines.push('═══════════════════════════════════════════════════════════════');
|
|
670
|
+
lines.push('');
|
|
671
|
+
// Add each section
|
|
672
|
+
for (const section of sections) {
|
|
673
|
+
lines.push('');
|
|
674
|
+
lines.push('───────────────────────────────────────────────────────────────');
|
|
675
|
+
lines.push(` ${section.title.toUpperCase()}`);
|
|
676
|
+
lines.push('───────────────────────────────────────────────────────────────');
|
|
677
|
+
lines.push('');
|
|
678
|
+
lines.push(section.content);
|
|
679
|
+
lines.push('');
|
|
680
|
+
}
|
|
681
|
+
// Footer
|
|
682
|
+
lines.push('═══════════════════════════════════════════════════════════════');
|
|
683
|
+
lines.push(' END OF LOG');
|
|
684
|
+
lines.push('═══════════════════════════════════════════════════════════════');
|
|
685
|
+
// Write to file
|
|
686
|
+
fs.writeFileSync(destinationPath, lines.join('\n'), 'utf8');
|
|
553
687
|
}
|
|
554
688
|
catch (error) {
|
|
555
|
-
|
|
689
|
+
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
690
|
+
console.error(chalk_1.default.red(`✗ Failed to write final log: ${errorMsg}`));
|
|
556
691
|
throw error;
|
|
557
692
|
}
|
|
558
693
|
}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* When used in application configuration with 'base64:' prefix,
|
|
6
6
|
* the agent will decode and write to working directory.
|
|
7
7
|
*/
|
|
8
|
-
export declare const OPEN_WEBUI_COMPOSE_BASE64 = "
|
|
8
|
+
export declare const OPEN_WEBUI_COMPOSE_BASE64 = "c2VydmljZXM6CiAgb3Blbi13ZWJ1aToKICAgIGltYWdlOiBnaGNyLmlvL29wZW4td2VidWkvb3Blbi13ZWJ1aToke1dFQlVJX0RPQ0tFUl9UQUctbWFpbn0KICAgIGNvbnRhaW5lcl9uYW1lOiBvcGVuLXdlYnVpCiAgICB2b2x1bWVzOgogICAgICAtIG9wZW4td2VidWk6L2FwcC9iYWNrZW5kL2RhdGEKICAgIHBvcnRzOgogICAgICAtICR7T1BFTl9XRUJVSV9QT1JULTMyMDB9OjgwODAKICAgIGVudmlyb25tZW50OgogICAgICAtICdFTkFCTEVfT0FVVEhfU0lHTlVQPXRydWUnCiAgICAgIC0gJ0VOQUJMRV9TSUdOVVA9dHJ1ZScKICAgICAgIyAtICdXRUJVSV9VUkw9b3Blbi13ZWJ1aS45ZmI4MzllOS1jZTJjLTRhYmQtOTRkNS0wNTFlNjk2Y2YxYjcuZWRnaWJsZS5jb20nCiAgICAgIC0gJ09MTEFNQV9CQVNFX1VSTD0ke09MTEFNQV9CQVNFX1VSTDotaHR0cDovL2hvc3QuZG9ja2VyLmludGVybmFsOjExNDM0fScKICAgICAgLSAnT0xMQU1BX0FQSV9LRVk9JHtPTExBTUFfQVBJX0tFWTotfScKICAgICAgIyAtICdXRUJVSV9TRUNSRVRfS0VZPTEyMycKICAgICAgLSAnV0VCVUlfQVVUSF9UUlVTVEVEX0VNQUlMX0hFQURFUj1YLUF1dGgtRW1haWwnCiAgICAgIC0gJ1dFQlVJX0FVVEhfVFJVU1RFRF9OQU1FX0hFQURFUj1YLUF1dGgtVXNlcicKICAgICAgIyAtICdXRUJVSV9BVVRIPWZhbHNlJwogICAgICAjIC0gJ1dFQlVJX1NFU1NJT05fQ09PS0lFX1NBTUVfU0lURT1sYXgnCiAgICAgICMgLSAnV0VCVUlfQVVUSF9DT09LSUVfU0FNRV9TSVRFPWxheCcKICAgICAgIyAtICdXRUJVSV9TRVNTSU9OX0NPT0tJRV9TRUNVUkU9ZmFsc2UnICAjIFNldCB0byBmYWxzZSBpZiB1c2luZyBIVFRQCiAgICAgICMgLSAnV0VCVUlfQVVUSF9DT09LSUVfU0VDVVJFPWZhbHNlJyAgICAgIyBTZXQgdG8gZmFsc2UgaWYgdXNpbmcgSFRUUAogICAgZXh0cmFfaG9zdHM6CiAgICAgIC0gaG9zdC5kb2NrZXIuaW50ZXJuYWw6aG9zdC1nYXRld2F5CgogICAgcmVzdGFydDogdW5sZXNzLXN0b3BwZWQKCnZvbHVtZXM6CiAgb3Blbi13ZWJ1aToge30KCiMgRGVmaW5lIHRoZSBETlMgbmV0d29yayBhcyBleHRlcm5hbCAoY3JlYXRlZCBieSBhZ2VudCkKbmV0d29ya3M6CiAgZWRnaWJsZS1kbnMtbmV0d29yazoKICAgIGV4dGVybmFsOiB0cnVlCg==";
|
|
9
9
|
/**
|
|
10
10
|
* Get the dockerComposePath value for Open WebUI application
|
|
11
11
|
* @returns Base64-prefixed compose content ready for API submission
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compose-constants.d.ts","sourceRoot":"","sources":["../../src/generated/compose-constants.ts"],"names":[],"mappings":"AAGA;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB,
|
|
1
|
+
{"version":3,"file":"compose-constants.d.ts","sourceRoot":"","sources":["../../src/generated/compose-constants.ts"],"names":[],"mappings":"AAGA;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB,6/CAA6/C,CAAC;AAEpiD;;;GAGG;AACH,wBAAgB,wBAAwB,IAAI,MAAM,CAEjD"}
|
|
@@ -11,7 +11,7 @@ exports.getOpenWebUIComposeValue = getOpenWebUIComposeValue;
|
|
|
11
11
|
* When used in application configuration with 'base64:' prefix,
|
|
12
12
|
* the agent will decode and write to working directory.
|
|
13
13
|
*/
|
|
14
|
-
exports.OPEN_WEBUI_COMPOSE_BASE64 = '
|
|
14
|
+
exports.OPEN_WEBUI_COMPOSE_BASE64 = 'c2VydmljZXM6CiAgb3Blbi13ZWJ1aToKICAgIGltYWdlOiBnaGNyLmlvL29wZW4td2VidWkvb3Blbi13ZWJ1aToke1dFQlVJX0RPQ0tFUl9UQUctbWFpbn0KICAgIGNvbnRhaW5lcl9uYW1lOiBvcGVuLXdlYnVpCiAgICB2b2x1bWVzOgogICAgICAtIG9wZW4td2VidWk6L2FwcC9iYWNrZW5kL2RhdGEKICAgIHBvcnRzOgogICAgICAtICR7T1BFTl9XRUJVSV9QT1JULTMyMDB9OjgwODAKICAgIGVudmlyb25tZW50OgogICAgICAtICdFTkFCTEVfT0FVVEhfU0lHTlVQPXRydWUnCiAgICAgIC0gJ0VOQUJMRV9TSUdOVVA9dHJ1ZScKICAgICAgIyAtICdXRUJVSV9VUkw9b3Blbi13ZWJ1aS45ZmI4MzllOS1jZTJjLTRhYmQtOTRkNS0wNTFlNjk2Y2YxYjcuZWRnaWJsZS5jb20nCiAgICAgIC0gJ09MTEFNQV9CQVNFX1VSTD0ke09MTEFNQV9CQVNFX1VSTDotaHR0cDovL2hvc3QuZG9ja2VyLmludGVybmFsOjExNDM0fScKICAgICAgLSAnT0xMQU1BX0FQSV9LRVk9JHtPTExBTUFfQVBJX0tFWTotfScKICAgICAgIyAtICdXRUJVSV9TRUNSRVRfS0VZPTEyMycKICAgICAgLSAnV0VCVUlfQVVUSF9UUlVTVEVEX0VNQUlMX0hFQURFUj1YLUF1dGgtRW1haWwnCiAgICAgIC0gJ1dFQlVJX0FVVEhfVFJVU1RFRF9OQU1FX0hFQURFUj1YLUF1dGgtVXNlcicKICAgICAgIyAtICdXRUJVSV9BVVRIPWZhbHNlJwogICAgICAjIC0gJ1dFQlVJX1NFU1NJT05fQ09PS0lFX1NBTUVfU0lURT1sYXgnCiAgICAgICMgLSAnV0VCVUlfQVVUSF9DT09LSUVfU0FNRV9TSVRFPWxheCcKICAgICAgIyAtICdXRUJVSV9TRVNTSU9OX0NPT0tJRV9TRUNVUkU9ZmFsc2UnICAjIFNldCB0byBmYWxzZSBpZiB1c2luZyBIVFRQCiAgICAgICMgLSAnV0VCVUlfQVVUSF9DT09LSUVfU0VDVVJFPWZhbHNlJyAgICAgIyBTZXQgdG8gZmFsc2UgaWYgdXNpbmcgSFRUUAogICAgZXh0cmFfaG9zdHM6CiAgICAgIC0gaG9zdC5kb2NrZXIuaW50ZXJuYWw6aG9zdC1nYXRld2F5CgogICAgcmVzdGFydDogdW5sZXNzLXN0b3BwZWQKCnZvbHVtZXM6CiAgb3Blbi13ZWJ1aToge30KCiMgRGVmaW5lIHRoZSBETlMgbmV0d29yayBhcyBleHRlcm5hbCAoY3JlYXRlZCBieSBhZ2VudCkKbmV0d29ya3M6CiAgZWRnaWJsZS1kbnMtbmV0d29yazoKICAgIGV4dGVybmFsOiB0cnVlCg==';
|
|
15
15
|
/**
|
|
16
16
|
* Get the dockerComposePath value for Open WebUI application
|
|
17
17
|
* @returns Base64-prefixed compose content ready for API submission
|
|
@@ -1,14 +1,7 @@
|
|
|
1
1
|
export declare class DependencyInstaller {
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*/
|
|
6
|
-
private getSudoUser;
|
|
7
|
-
/**
|
|
8
|
-
* Execute a command, running as the original user if executed via sudo
|
|
9
|
-
* This is particularly important for Homebrew, which refuses to run as root
|
|
10
|
-
* @param command The command to execute
|
|
11
|
-
* @returns The stdout from execSync
|
|
3
|
+
* Execute a command, running as the original user if executed via sudo.
|
|
4
|
+
* Delegates to shared run-as-user util (important for Homebrew on macOS).
|
|
12
5
|
*/
|
|
13
6
|
private execAsRealUser;
|
|
14
7
|
checkAndInstallDependencies(options?: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DependencyInstaller.d.ts","sourceRoot":"","sources":["../../src/services/DependencyInstaller.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DependencyInstaller.d.ts","sourceRoot":"","sources":["../../src/services/DependencyInstaller.ts"],"names":[],"mappings":"AASA,qBAAa,mBAAmB;IAC9B;;;OAGG;IACH,OAAO,CAAC,cAAc;IAIhB,2BAA2B,CAAC,OAAO,GAAE;QAAE,kBAAkB,CAAC,EAAE,OAAO,CAAC;QAAC,eAAe,CAAC,EAAE,OAAO,CAAC;QAAC,WAAW,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,OAAO,CAAC,IAAI,CAAC;YA2CpI,qBAAqB;YAYrB,oBAAoB;YA6CpB,oBAAoB;YAkBpB,gBAAgB;YAkBhB,gBAAgB;YAuChB,YAAY;YAuCZ,kBAAkB;YAkBlB,cAAc;YAmCd,sBAAsB;YAkBtB,kBAAkB;YA2ClB,mBAAmB;YAoBnB,eAAe;CAgC9B"}
|
|
@@ -41,43 +41,18 @@ const child_process_1 = require("child_process");
|
|
|
41
41
|
const os = __importStar(require("os"));
|
|
42
42
|
const chalk_1 = __importDefault(require("chalk"));
|
|
43
43
|
const inquirer_1 = __importDefault(require("inquirer"));
|
|
44
|
+
const run_as_user_1 = require("../utils/run-as-user");
|
|
44
45
|
class DependencyInstaller {
|
|
45
46
|
/**
|
|
46
|
-
*
|
|
47
|
-
*
|
|
48
|
-
*/
|
|
49
|
-
getSudoUser() {
|
|
50
|
-
const uid = process.getuid ? process.getuid() : undefined;
|
|
51
|
-
const sudoUser = process.env['SUDO_USER'];
|
|
52
|
-
// Only return SUDO_USER if we're actually running as root (uid 0)
|
|
53
|
-
if (uid === 0 && sudoUser) {
|
|
54
|
-
return sudoUser;
|
|
55
|
-
}
|
|
56
|
-
return undefined;
|
|
57
|
-
}
|
|
58
|
-
/**
|
|
59
|
-
* Execute a command, running as the original user if executed via sudo
|
|
60
|
-
* This is particularly important for Homebrew, which refuses to run as root
|
|
61
|
-
* @param command The command to execute
|
|
62
|
-
* @returns The stdout from execSync
|
|
47
|
+
* Execute a command, running as the original user if executed via sudo.
|
|
48
|
+
* Delegates to shared run-as-user util (important for Homebrew on macOS).
|
|
63
49
|
*/
|
|
64
50
|
execAsRealUser(command) {
|
|
65
|
-
|
|
66
|
-
if (sudoUser) {
|
|
67
|
-
// Running under sudo - execute as the original user
|
|
68
|
-
// Use 'sudo -u' to run the command as the original user
|
|
69
|
-
// Pass through the HOME environment variable to ensure Homebrew works correctly
|
|
70
|
-
const wrappedCommand = `sudo -u ${sudoUser} HOME=$(eval echo ~${sudoUser}) ${command}`;
|
|
71
|
-
return (0, child_process_1.execSync)(wrappedCommand);
|
|
72
|
-
}
|
|
73
|
-
else {
|
|
74
|
-
// Not running under sudo - execute normally
|
|
75
|
-
return (0, child_process_1.execSync)(command);
|
|
76
|
-
}
|
|
51
|
+
return (0, run_as_user_1.execAsRealUser)(command);
|
|
77
52
|
}
|
|
78
53
|
async checkAndInstallDependencies(options = {}) {
|
|
79
54
|
console.log('Checking dependencies...');
|
|
80
|
-
const sudoUser =
|
|
55
|
+
const sudoUser = (0, run_as_user_1.getSudoUser)();
|
|
81
56
|
if (sudoUser) {
|
|
82
57
|
console.log(chalk_1.default.gray(`Running under sudo - package manager commands will execute as user: ${sudoUser}`));
|
|
83
58
|
}
|
|
@@ -26,6 +26,8 @@ export interface ApplicationService {
|
|
|
26
26
|
authModes?: Array<'none' | 'org' | 'api-key'>;
|
|
27
27
|
requireOrgAuth?: boolean;
|
|
28
28
|
allowedOrganizations?: string[];
|
|
29
|
+
/** Application IDs this application depends on (e.g. open-webui depends on ollama-api). */
|
|
30
|
+
dependsOnApplicationIds?: string[];
|
|
29
31
|
}): Promise<unknown>;
|
|
30
32
|
listApiKeys(applicationId: string): Promise<any[]>;
|
|
31
33
|
createApiKey(applicationId: string, name: string, expiresAt?: string): Promise<any>;
|
|
@@ -63,6 +65,7 @@ export declare class ApplicationServiceImpl implements ApplicationService {
|
|
|
63
65
|
authModes?: Array<'none' | 'org' | 'api-key'>;
|
|
64
66
|
requireOrgAuth?: boolean;
|
|
65
67
|
allowedOrganizations?: string[];
|
|
68
|
+
dependsOnApplicationIds?: string[];
|
|
66
69
|
}): Promise<unknown>;
|
|
67
70
|
/**
|
|
68
71
|
* List API keys for an application
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApplicationService.d.ts","sourceRoot":"","sources":["../../../src/services/application/ApplicationService.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAEzE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,MAAM,WAAW,kBAAkB;IACjC,gBAAgB,CACd,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,KAAK,EAC1C,WAAW,CAAC,EAAE,MAAM,EACpB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,WAAW,CAAC,CAAC;IACxB,eAAe,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAC1C,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACjD,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAChD,iCAAiC,CAAC,MAAM,EAAE;QACxC,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,KAAK,CAAC;QAC3C,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;QACrB,SAAS,EAAE,MAAM,EAAE,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;QACtB,iBAAiB,CAAC,EAAE,OAAO,CAAC;QAC5B,OAAO,EAAE,mBAAmB,GAAG,gBAAgB,GAAG,SAAS,GAAG,gBAAgB,GAAG,iBAAiB,CAAC;QACnG,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACxC,SAAS,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,KAAK,GAAG,SAAS,CAAC,CAAC;QAC9C,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"ApplicationService.d.ts","sourceRoot":"","sources":["../../../src/services/application/ApplicationService.ts"],"names":[],"mappings":"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"}
|
|
@@ -290,6 +290,9 @@ class ApplicationServiceImpl {
|
|
|
290
290
|
if (params.allowedOrganizations !== undefined && params.allowedOrganizations.length > 0) {
|
|
291
291
|
createRequest.allowedOrganizations = params.allowedOrganizations;
|
|
292
292
|
}
|
|
293
|
+
if (params.dependsOnApplicationIds !== undefined && params.dependsOnApplicationIds.length > 0) {
|
|
294
|
+
createRequest.dependsOnApplicationIds = params.dependsOnApplicationIds;
|
|
295
|
+
}
|
|
293
296
|
console.log(`application: ${params}`);
|
|
294
297
|
const response = await this.apiClient.createApplication(createRequest);
|
|
295
298
|
return response.application;
|
|
@@ -53,19 +53,6 @@ export interface AgentConfig {
|
|
|
53
53
|
* Defaults to 600000 (10 minutes)
|
|
54
54
|
*/
|
|
55
55
|
fullSyncInterval?: number;
|
|
56
|
-
/**
|
|
57
|
-
* DNS server configuration for container hostname resolution
|
|
58
|
-
*/
|
|
59
|
-
dns?: {
|
|
60
|
-
enabled?: boolean;
|
|
61
|
-
containerName?: string;
|
|
62
|
-
networkName?: string;
|
|
63
|
-
networkSubnet?: string;
|
|
64
|
-
dnsServerIp?: string;
|
|
65
|
-
hostGatewayIp?: string;
|
|
66
|
-
configPath?: string;
|
|
67
|
-
upstreamDns?: string[];
|
|
68
|
-
};
|
|
69
56
|
}
|
|
70
57
|
export interface HealthStatus {
|
|
71
58
|
status: 'healthy' | 'unhealthy' | 'timeout' | 'error' | 'pending';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentConfig.d.ts","sourceRoot":"","sources":["../../src/types/AgentConfig.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAC5C,YAAY,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IACnD,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAC5C,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAC9C,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAC/C,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAC7C,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAC7C,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAC7C,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;CACjD;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,SAAS,GAAG,SAAS,CAAC;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,OAAO,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAC9C,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,aAAa,EAAE,OAAO,CAAC;IACvB,mBAAmB,EAAE,MAAM,CAAC;IAC5B;;;OAGG;IACH,aAAa,CAAC,EAAE,QAAQ,GAAG,WAAW,CAAC;IACvC;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;OAGG;IACH,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"AgentConfig.d.ts","sourceRoot":"","sources":["../../src/types/AgentConfig.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@ export interface CreateOrganizationRequest {
|
|
|
3
3
|
rootUserEmail: string;
|
|
4
4
|
description?: string;
|
|
5
5
|
billingOrganizationId?: string;
|
|
6
|
+
urlAlias?: string;
|
|
6
7
|
}
|
|
7
8
|
export interface DeleteOrganizationRequest {
|
|
8
9
|
organizationId: string;
|
|
@@ -127,6 +128,10 @@ export interface CreateApplicationRequest {
|
|
|
127
128
|
allowedOrganizations?: string[];
|
|
128
129
|
/** Custom headers to add to requests before forwarding to the application */
|
|
129
130
|
customHeaders?: Record<string, string>;
|
|
131
|
+
/** Target state of the application - 'running' or 'suspended' */
|
|
132
|
+
targetState?: 'running' | 'suspended';
|
|
133
|
+
/** Application IDs this application depends on. If any are not deployed, target state is set to suspended. */
|
|
134
|
+
dependsOnApplicationIds?: string[];
|
|
130
135
|
}
|
|
131
136
|
export interface DeleteApplicationRequest {
|
|
132
137
|
applicationId: string;
|
|
@@ -136,6 +141,9 @@ export interface UpdateApplicationRequest {
|
|
|
136
141
|
name?: string;
|
|
137
142
|
description?: string;
|
|
138
143
|
allowedSourceIPs?: string[];
|
|
144
|
+
targetState?: 'running' | 'suspended';
|
|
145
|
+
/** Application IDs this application depends on. If any are not deployed, target state is set to suspended. */
|
|
146
|
+
dependsOnApplicationIds?: string[];
|
|
139
147
|
}
|
|
140
148
|
export interface GetApplicationRequest {
|
|
141
149
|
applicationId: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApiRequests.d.ts","sourceRoot":"","sources":["../../src/types/ApiRequests.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qBAAqB,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"ApiRequests.d.ts","sourceRoot":"","sources":["../../src/types/ApiRequests.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,yBAAyB;IACxC,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,yBAAyB;IACxC,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,sBAAsB;IACrC,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,2BAA2B;IAC1C,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,0BAA0B;IACzC,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,6BAA6B;IAC5C,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,iCAAiC;IAChD,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;CAC/C;AAED,MAAM,WAAW,2CAA2C;IAC1D,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;IACzE,gBAAgB,EAAE,MAAM,CAAC;IACzB,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAGD,MAAM,WAAW,+BAA+B;IAC9C,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,OAAO,GAAG,QAAQ,GAAG,WAAW,CAAC;IAC7C,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,6BAA6B;IAC5C,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,SAAS,GAAG,WAAW,CAAC;CACxE;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,SAAS,GAAG,WAAW,CAAC;CACxE;AAED,MAAM,WAAW,wBAAwB;IACvC,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,+BAA+B;CAE/C;AAED,MAAM,WAAW,kCAAkC;IACjD,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,6BAA6B;IAC5C,cAAc,EAAE,MAAM,CAAC;CACxB;AAGD,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,2BAA2B;IAC1C,KAAK,EAAE,MAAM,CAAC;CACf;AAGD,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,aAAa,GAAG,SAAS,GAAG,MAAM,CAAC;IACjD,aAAa,EAAE;QACb,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,KAAK,CAAC;QAC3C,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;IACF,kEAAkE;IAClE,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,OAAO,EAAE,mBAAmB,GAAG,gBAAgB,GAAG,SAAS,GAAG,gBAAgB,GAAG,iBAAiB,CAAC;IACnG,cAAc,EAAE,MAAM,CAAC;IACvB,gDAAgD;IAChD,SAAS,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,KAAK,GAAG,SAAS,CAAC,CAAC;IAC9C,uGAAuG;IACvG,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,4FAA4F;IAC5F,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAChC,6EAA6E;IAC7E,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,iEAAiE;IACjE,WAAW,CAAC,EAAE,SAAS,GAAG,WAAW,CAAC;IACtC,8GAA8G;IAC9G,uBAAuB,CAAC,EAAE,MAAM,EAAE,CAAC;CACpC;AAED,MAAM,WAAW,wBAAwB;IACvC,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,wBAAwB;IACvC,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,WAAW,CAAC,EAAE,SAAS,GAAG,WAAW,CAAC;IACtC,8GAA8G;IAC9G,uBAAuB,CAAC,EAAE,MAAM,EAAE,CAAC;CACpC;AAED,MAAM,WAAW,qBAAqB;IACpC,aAAa,EAAE,MAAM,CAAC;CACvB;AAGD,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;IACzE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;IACzE,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,SAAS,GAAG,WAAW,CAAC;IACzD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,6BAA6B;IAC5C,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,4BAA4B;IAC3C,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACrB;AAGD,MAAM,WAAW,2BAA2B;IAC1C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,2BAA2B;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,wBAAwB;IACvC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,8BAA8B;IAC7C,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,EAAE,MAAM,CAAC;CAClB;AAGD,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;IACrD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACrC;AAED,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;IACrD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,MAAM,CAAC;CACpB;AAGD,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;CAE7B;AAED,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAGD,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB;AAED,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,yBAAyB;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,6BAA6B;IAC5C,SAAS,EAAE,MAAM,CAAC;CACnB;AAGD,MAAM,WAAW,mCAAmC;IAClD,aAAa,EAAE,MAAM,CAAC;CACvB"}
|
|
@@ -20,6 +20,28 @@ export interface ApplicationData {
|
|
|
20
20
|
gatewayIds: string[];
|
|
21
21
|
devicePoolId?: string;
|
|
22
22
|
subtype: 'local-preexisting' | 'managed-docker' | 'systemd' | 'docker-compose' | 'managed-process';
|
|
23
|
+
/**
|
|
24
|
+
* Target state of the application.
|
|
25
|
+
* - 'running': Application should be deployed and running on assigned devices
|
|
26
|
+
* - 'suspended': Application config/networking initialized but not started
|
|
27
|
+
*
|
|
28
|
+
* Agents will initialize suspended apps (WireGuard, routes, firewall) but won't start
|
|
29
|
+
* the actual process/service. This allows fast resume and maintains tracking.
|
|
30
|
+
*
|
|
31
|
+
* Defaults to 'running' if not specified (for backward compatibility).
|
|
32
|
+
*/
|
|
33
|
+
targetState?: 'running' | 'suspended';
|
|
34
|
+
/**
|
|
35
|
+
* Application IDs this application depends on (e.g. API depends on database).
|
|
36
|
+
* When any dependency is not deployed, this app's target state is set to suspended.
|
|
37
|
+
* When all dependencies become deployed, this app's target state is set to running.
|
|
38
|
+
*/
|
|
39
|
+
dependsOnApplicationIds?: string[];
|
|
40
|
+
/**
|
|
41
|
+
* Application IDs that depend on this application (inverse of dependsOnApplicationIds).
|
|
42
|
+
* Maintained by the backend when other applications set or change their dependsOnApplicationIds.
|
|
43
|
+
*/
|
|
44
|
+
dependentApplicationIds?: string[];
|
|
23
45
|
deviceApplicationConfigs?: Record<string, DeviceApplicationConfig>;
|
|
24
46
|
/**
|
|
25
47
|
* IP addresses or CIDR blocks that are allowed to access this application.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApplicationData.d.ts","sourceRoot":"","sources":["../../../src/types/models/ApplicationData.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ApplicationData.d.ts","sourceRoot":"","sources":["../../../src/types/models/ApplicationData.ts"],"names":[],"mappings":"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"}
|