67 lines
2.1 KiB
TypeScript
67 lines
2.1 KiB
TypeScript
// Provision Admin Vault for Sankofa Admin Portal
|
|
// Creates the admin vault using the provisioning service
|
|
|
|
import { adminVaultProvisioningService } from '../src/core/iru/provisioning/admin-vault-provisioning.service';
|
|
|
|
async function main() {
|
|
const args = process.argv.slice(2);
|
|
|
|
// Parse arguments
|
|
let orgName = 'Sankofa Admin';
|
|
let vaultName = 'sankofa-admin';
|
|
let adminLevel: 'super_admin' | 'admin' | 'operator' = 'super_admin';
|
|
|
|
for (let i = 0; i < args.length; i++) {
|
|
if (args[i] === '--org' && args[i + 1]) {
|
|
orgName = args[i + 1];
|
|
i++;
|
|
} else if (args[i] === '--name' && args[i + 1]) {
|
|
vaultName = args[i + 1];
|
|
i++;
|
|
} else if (args[i] === '--level' && args[i + 1]) {
|
|
adminLevel = args[i + 1] as 'super_admin' | 'admin' | 'operator';
|
|
i++;
|
|
}
|
|
}
|
|
|
|
console.log('Provisioning Admin Vault...');
|
|
console.log(` Organization: ${orgName}`);
|
|
console.log(` Vault Name: ${vaultName}`);
|
|
console.log(` Admin Level: ${adminLevel}`);
|
|
console.log('');
|
|
|
|
try {
|
|
const result = await adminVaultProvisioningService.provisionAdminVault({
|
|
organizationName: orgName,
|
|
vaultName: vaultName,
|
|
adminLevel: adminLevel,
|
|
features: {
|
|
auditLogging: true,
|
|
backupEnabled: true,
|
|
encryptionLevel: 'enhanced',
|
|
},
|
|
});
|
|
|
|
console.log('✅ Admin vault provisioned successfully!');
|
|
console.log('');
|
|
console.log('Vault Details:');
|
|
console.log(` Vault ID: ${result.vaultId}`);
|
|
console.log(` Vault Path: ${result.vaultPath}`);
|
|
console.log(` API Endpoint: ${result.apiEndpoint}`);
|
|
console.log(` Role ID: ${result.roleId}`);
|
|
console.log(` Secret ID: ${result.secretId}`);
|
|
console.log('');
|
|
console.log('⚠️ IMPORTANT: Store these credentials securely!');
|
|
console.log('');
|
|
console.log('Next steps:');
|
|
console.log('1. Run migration script: ./scripts/migrate-secrets-to-admin-vault.sh');
|
|
console.log('2. Store credentials in secure location');
|
|
console.log('3. Update applications to use admin vault');
|
|
} catch (error) {
|
|
console.error('❌ Failed to provision admin vault:', error);
|
|
process.exit(1);
|
|
}
|
|
}
|
|
|
|
main();
|