feat: Add backend support for one-click Rust server deployment
All checks were successful
Test Asgard Runner / test (push) Successful in 2s

Add deploy endpoint, DTO, NATS command publisher, and WebSocket bridge
subscription to support the one-click server deployment feature via the
companion agent.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Vantz Stockwell
2026-02-21 14:45:06 -05:00
parent ee7fdb897d
commit 834e17e7cf
5 changed files with 75 additions and 0 deletions

View File

@@ -34,6 +34,11 @@ export class NatsBridgeService implements OnModuleInit {
this.emit(licenseId, 'server_status', data);
});
this.nats.subscribe('corrosion.*.deploy.status', (data, subject) => {
const licenseId = subject.split('.')[1];
this.emit(licenseId, 'deploy_status', data);
});
this.logger.log('NATS bridge subscriptions initialized');
}

View File

@@ -70,4 +70,13 @@ export class NatsService implements OnModuleInit, OnModuleDestroy {
timestamp: new Date().toISOString(),
});
}
/** Publish a deploy command to a specific license's companion agent */
async sendDeployCommand(licenseId: string, config: Record<string, unknown>): Promise<void> {
await this.publish(`corrosion.${licenseId}.cmd.deploy`, {
action: 'deploy',
config,
timestamp: new Date().toISOString(),
});
}
}