1bbdd7acba
- Add apps/api/ — Hono REST API server for managing pentest scans via K8s Jobs - POST/GET /api/scans, GET /api/scans/:id, cancel, report endpoints - Bearer token auth, Temporal client integration, K8s Job builder - Dockerfile, Kustomize manifests (Deployment, Service, RBAC) - Add CLI orchestrator abstraction (docker.ts → Orchestrator interface) - DockerOrchestrator and K8sOrchestrator implementations - Backend detection via SHANNON_BACKEND env var or --backend flag - Add CI workflow: type-check + lint on PR, build+push both images on main - Switch all workflows to self-hosted runners (runners-farhoodliquor) - Add shannon-api image build to release and release-beta workflows - Add root infra/kustomization.yaml as Flux entry point - Export PipelineProgress from @shannon/worker/pipeline Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
23 lines
595 B
TypeScript
23 lines
595 B
TypeScript
/**
|
|
* `shannon stop` command — stop workers and infrastructure.
|
|
*/
|
|
|
|
import * as p from '@clack/prompts';
|
|
import { getOrchestrator } from '../backend.js';
|
|
|
|
export async function stop(clean: boolean): Promise<void> {
|
|
if (clean) {
|
|
const confirmed = await p.confirm({
|
|
message: 'This will stop all running scans and remove the Temporal data. Continue?',
|
|
});
|
|
if (p.isCancel(confirmed) || !confirmed) {
|
|
p.cancel('Aborted.');
|
|
process.exit(0);
|
|
}
|
|
}
|
|
|
|
const orchestrator = await getOrchestrator();
|
|
orchestrator.stopWorkers();
|
|
orchestrator.stopInfra(clean);
|
|
}
|