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

90 lines
2.9 KiB
TypeScript

// Seed AS4 Settlement Marketplace Offering
// Adds AS4 Settlement Master 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 AS4 Settlement Marketplace Offering...');
// Check if offering already exists
const existing = await prisma.iruOffering.findUnique({
where: { offeringId: 'AS4-SETTLEMENT-MASTER' },
});
if (existing) {
console.log('AS4 Settlement offering already exists, skipping...');
return;
}
// Create offering
const offering = await prisma.iruOffering.create({
data: {
id: uuidv4(),
offeringId: 'AS4-SETTLEMENT-MASTER',
name: 'AS4 Settlement Master Service',
description:
'Final settlement institution providing SWIFT-FIN equivalent instruction and confirmation flows (MT202/MT910 semantics) over a custom AS4 gateway, with settlement posting on the DBIS ledger (ChainID 138).',
capacityTier: 1, // Central Banks and Settlement Banks
institutionalType: 'SettlementBank',
pricingModel: 'Hybrid', // Subscription + Usage-based
basePrice: 10000, // $10,000/month base
currency: 'USD',
features: {
messageTypes: ['DBIS.SI.202', 'DBIS.SI.202COV', 'DBIS.AD.900', 'DBIS.AD.910'],
capabilities: [
'AS4 Gateway',
'Settlement Core',
'Member Directory',
'Compliance Gates',
'Ledger Integration',
'ChainID 138 Anchoring',
],
supportedCurrencies: ['USD', 'EUR', 'GBP', 'XAU', 'XAG'],
finality: 'IMMEDIATE',
availability: '99.9%',
},
technicalSpecs: {
as4Version: 'ebMS3/AS4',
ledgerMode: 'HYBRID',
chainId: 138,
messageFormat: 'JSON',
signingAlgorithm: 'RSA-SHA256',
encryptionAlgorithm: 'AES-256-GCM',
tlsVersion: '1.3',
},
legalFramework: {
rulebook: 'DBIS AS4 Settlement Member Rulebook v1.0',
compliance: ['AML/CTF', 'Sanctions Screening', 'KYC/KYB'],
audit: 'IMMUTABLE_WORM_STORAGE',
},
regulatoryPosition: {
status: 'REGULATED',
jurisdictions: ['GLOBAL'],
licensing: 'REQUIRED',
},
documents: {
rulebook: '/docs/settlement/as4/MEMBER_RULEBOOK_V1.md',
pkiModel: '/docs/settlement/as4/PKI_CA_MODEL.md',
directorySpec: '/docs/settlement/as4/DIRECTORY_SERVICE_SPEC.md',
threatModel: '/docs/settlement/as4/THREAT_MODEL_CONTROL_CATALOG.md',
},
status: 'active',
displayOrder: 10,
},
});
console.log('AS4 Settlement Marketplace Offering created:', offering.offeringId);
}
main()
.catch((e) => {
console.error('Error seeding AS4 Settlement offering:', e);
process.exit(1);
})
.finally(async () => {
await prisma.$disconnect();
});