clawdie-ai/scripts/jail-provision.ts
Mevy Assistant c65c289f08 refactor(multitenant): make tenant and platform identity explicit
Replace ambiguous AGENT_NAME usage across runtime, setup, and helper scripts with explicit TENANT_ID or platform runtime identity where appropriate. Keep AGENT_NAME as a compatibility boundary instead of the primary source for shared runtime naming.

---
Build: pass | Tests: pass — 138 passed (10 files)
2026-04-23 21:41:42 +02:00

45 lines
1.2 KiB
TypeScript

import { loadJailRegistry, resolveJailIp } from '../src/jail-schema.js';
import { provisionJail, resolveJailName } from '../setup/bastille-helpers.js';
import {
AGENT_INTERNAL_DOMAIN,
SUBNET_BASE,
TENANT_ID,
} from '../src/config.js';
const role = process.argv[2];
if (!role) {
console.error('Usage: jail-provision.ts <role>');
try {
const registry = loadJailRegistry();
console.error(`Available roles: ${Object.keys(registry.jails).join(', ')}`);
} catch {
console.error('(registry not available)');
}
process.exit(1);
}
try {
const registry = loadJailRegistry();
const jailDef = registry.jails[role];
if (!jailDef) {
console.error(`Unknown jail role: ${role}`);
console.error(`Available: ${Object.keys(registry.jails).join(', ')}`);
process.exit(1);
}
const result = await provisionJail(jailDef, role, {
agentName: TENANT_ID,
subnetBase: SUBNET_BASE,
internalDomain: AGENT_INTERNAL_DOMAIN,
});
console.log(`Jail: ${result.jailName}`);
console.log(`IP: ${result.ip}`);
console.log(`Created: ${result.created ? 'yes' : 'already existed'}`);
} catch (err) {
const msg = err instanceof Error ? err.message : String(err);
console.error('Provision failed:', msg);
process.exit(1);
}