Files
dbis_core/scripts/seed-vault-marketplace-offering.ts
2026-03-02 12:14:07 -08:00

160 lines
5.6 KiB
TypeScript

// Seed Vault Marketplace Offering
// Adds Vault service to Sankofa Phoenix Marketplace
import { PrismaClient } from '@prisma/client';
import { v4 as uuidv4 } from 'uuid';
const prisma = new PrismaClient();
async function main() {
console.log('Seeding Vault marketplace offering...');
const offeringId = 'VAULT-VIRTUAL-VAULT';
const existingOffering = await prisma.iruOffering.findUnique({
where: { offeringId },
});
if (existingOffering) {
console.log(`Offering ${offeringId} already exists. Updating...`);
await prisma.iruOffering.update({
where: { offeringId },
data: {
name: 'Virtual Vault Service',
description: 'Enterprise-grade secrets management with HashiCorp Vault. Create isolated virtual vaults on our high-availability Vault cluster for secure storage and management of secrets, API keys, certificates, and sensitive configuration data.',
capacityTier: 0, // Available to all tiers
institutionalType: 'all',
pricingModel: 'subscription',
basePrice: 500.00, // Monthly base price
currency: 'USD',
features: {
secretsManagement: true,
encryptionAtRest: true,
encryptionInTransit: true,
highAvailability: true,
automaticBackups: true,
auditLogging: true,
apiAccess: true,
cliAccess: true,
sdkSupport: ['nodejs', 'python', 'java', 'go', 'dotnet'],
integrations: ['kubernetes', 'terraform', 'ansible', 'jenkins'],
},
technicalSpecs: {
vaultVersion: '1.21.2',
clusterType: 'Raft HA',
nodeCount: 3,
redundancy: 'Full',
storageBackend: 'Raft',
apiEndpoints: [
'http://192.168.11.200:8200',
'http://192.168.11.215:8200',
'http://192.168.11.202:8200',
],
authentication: ['AppRole', 'Token', 'LDAP', 'OIDC'],
encryption: 'AES-256-GCM',
compliance: ['SOC 2', 'ISO 27001', 'GDPR'],
sla: '99.9%',
backupFrequency: 'Daily',
retention: '30 days',
},
legalFramework: {
serviceAgreement: 'Virtual Vault Service Agreement',
dataProcessing: 'GDPR Compliant',
jurisdiction: 'International',
},
regulatoryPosition: {
compliance: 'Enterprise-grade security and compliance',
certifications: ['SOC 2', 'ISO 27001'],
dataResidency: 'Configurable',
},
documents: {
serviceAgreement: '/documents/vault-service-agreement.pdf',
technicalDocumentation: '/documents/vault-technical-specs.pdf',
apiDocumentation: '/documents/vault-api-docs.pdf',
integrationGuide: '/documents/vault-integration-guide.pdf',
},
status: 'active',
displayOrder: 10,
updatedAt: new Date(),
},
});
console.log(`✅ Offering ${offeringId} updated successfully`);
} else {
await prisma.iruOffering.create({
data: {
id: uuidv4(),
offeringId,
name: 'Virtual Vault Service',
description: 'Enterprise-grade secrets management with HashiCorp Vault. Create isolated virtual vaults on our high-availability Vault cluster for secure storage and management of secrets, API keys, certificates, and sensitive configuration data.',
capacityTier: 0, // Available to all tiers
institutionalType: 'all',
pricingModel: 'subscription',
basePrice: 500.00, // Monthly base price
currency: 'USD',
features: {
secretsManagement: true,
encryptionAtRest: true,
encryptionInTransit: true,
highAvailability: true,
automaticBackups: true,
auditLogging: true,
apiAccess: true,
cliAccess: true,
sdkSupport: ['nodejs', 'python', 'java', 'go', 'dotnet'],
integrations: ['kubernetes', 'terraform', 'ansible', 'jenkins'],
},
technicalSpecs: {
vaultVersion: '1.21.2',
clusterType: 'Raft HA',
nodeCount: 3,
redundancy: 'Full',
storageBackend: 'Raft',
apiEndpoints: [
'http://192.168.11.200:8200',
'http://192.168.11.215:8200',
'http://192.168.11.202:8200',
],
authentication: ['AppRole', 'Token', 'LDAP', 'OIDC'],
encryption: 'AES-256-GCM',
compliance: ['SOC 2', 'ISO 27001', 'GDPR'],
sla: '99.9%',
backupFrequency: 'Daily',
retention: '30 days',
},
legalFramework: {
serviceAgreement: 'Virtual Vault Service Agreement',
dataProcessing: 'GDPR Compliant',
jurisdiction: 'International',
},
regulatoryPosition: {
compliance: 'Enterprise-grade security and compliance',
certifications: ['SOC 2', 'ISO 27001'],
dataResidency: 'Configurable',
},
documents: {
serviceAgreement: '/documents/vault-service-agreement.pdf',
technicalDocumentation: '/documents/vault-technical-specs.pdf',
apiDocumentation: '/documents/vault-api-docs.pdf',
integrationGuide: '/documents/vault-integration-guide.pdf',
},
status: 'active',
displayOrder: 10,
createdAt: new Date(),
updatedAt: new Date(),
},
});
console.log(`✅ Offering ${offeringId} created successfully`);
}
}
main()
.catch((e) => {
console.error('Error seeding Vault offering:', e);
process.exit(1);
})
.finally(async () => {
await prisma.$disconnect();
});