- ADD_CHAIN138_TO_LEDGER_LIVE: Ledger form done; public code review repo bis-innovations/LedgerLive; init/push commands - CONTRACT_DEPLOYMENT_RUNBOOK: Chain 138 gas price 1 gwei, 36-addr check, TransactionMirror workaround - CONTRACT_*: AddressMapper, MirrorManager deployed 2026-02-12; 36-address on-chain check - NEXT_STEPS_FOR_YOU: Ledger done; steps completable now (no LAN); run-completable-tasks-from-anywhere - MASTER_INDEX, OPERATOR_OPTIONAL, SMART_CONTRACTS_INVENTORY_SIMPLE: updates - LEDGER_BLOCKCHAIN_INTEGRATION_COMPLETE: bis-innovations/LedgerLive reference Co-authored-by: Cursor <cursoragent@cursor.com>
8.3 KiB
Vault Marketplace Integration - Complete ✅
Last Updated: 2026-01-31
Document Version: 1.0
Status: Active Documentation
Date: 2026-01-19
Status: ✅ INTEGRATION COMPLETE
Summary
The Vault service has been successfully integrated into the Sankofa Phoenix Marketplace. Users can now provision virtual vaults that run on the existing high-availability Vault cluster.
What Was Created
1. Vault Provisioning Service ✅
File: dbis_core/src/core/iru/provisioning/vault-provisioning.service.ts
- Provisions virtual vaults on the cluster
- Creates isolated namespaces per organization
- Generates AppRole credentials
- Configures policies based on capacity tier
- Manages virtual vault lifecycle
2. Vault Service Configuration ✅
File: dbis_core/src/core/iru/deployment/vault-service-config.service.ts
- Configures virtual vaults after provisioning
- Verifies cluster health
- Validates AppRole authentication
- Confirms path accessibility
3. Deployment Orchestrator Integration ✅
File: dbis_core/src/core/iru/deployment/deployment-orchestrator.service.ts
- Detects Vault offerings
- Skips container provisioning (uses shared cluster)
- Provisions virtual vault
- Stores credentials securely
4. Marketplace Seed Script ✅
File: dbis_core/scripts/seed-vault-marketplace-offering.ts
- Adds Vault offering to marketplace database
- Configures offering details
- Sets pricing and features
5. Documentation ✅
File: dbis_core/docs/marketplace/VAULT_MARKETPLACE_SERVICE.md
- Complete service documentation
- User guide
- API integration examples
- Security considerations
How It Works
Virtual Vault Concept
Instead of deploying separate Vault instances, users get virtual vaults - isolated namespaces within the shared cluster:
Vault Cluster (192.168.11.200-202)
├── Organization A
│ └── secret/data/organizations/org-a/vault-1/
├── Organization B
│ └── secret/data/organizations/org-b/vault-1/
└── Organization C
└── secret/data/organizations/org-c/vault-1/
Provisioning Flow
- User subscribes to Vault service in marketplace
- User initiates deployment from Phoenix Portal
- System provisions virtual vault:
- Creates unique organization ID
- Generates vault path
- Creates AppRole
- Generates Role ID and Secret ID
- Configures policies
- Sets up secret path structure
- System verifies virtual vault is accessible
- User receives credentials via portal
- User integrates with applications using credentials
Setup Instructions
1. Add Offering to Marketplace
cd dbis_core
export VAULT_TOKEN=hvs.PMJcL6HkZnz0unUYZAdfttZY # Root token for provisioning
npx tsx scripts/seed-vault-marketplace-offering.ts
2. Verify Offering
# Check offering was created
curl http://localhost:3000/api/v1/iru/marketplace/offerings | jq '.data[] | select(.offeringId == "VAULT-VIRTUAL-VAULT")'
3. Test Provisioning
# Test virtual vault provisioning (requires subscription)
# This would be done through the Phoenix Portal UI
Configuration
Environment Variables
The Vault provisioning service requires:
VAULT_TOKEN=hvs.PMJcL6HkZnz0unUYZAdfttZY # Root token for cluster access
# OR
VAULT_ROOT_TOKEN=hvs.PMJcL6HkZnz0unUYZAdfttZY
⚠️ Security Note: In production, store this token securely (e.g., in Vault itself or secure secret manager).
Vault Cluster Endpoints
The service is configured to use:
- http://192.168.11.200:8200 (Primary)
- http://192.168.11.201:8200 (Secondary)
- http://192.168.11.202:8200 (Tertiary)
These are hardcoded in vault-provisioning.service.ts but can be made configurable.
User Experience
Marketplace View
Users will see the Vault service in the marketplace with:
- Service name and description
- Features list
- Technical specifications
- Pricing information
- "Request Information" button
Portal Deployment
After subscription, users can:
- Navigate to "My Subscriptions"
- Select Vault service
- Click "Deploy Virtual Vault"
- Configure options:
- Vault name
- Storage quota
- Secret quota
- Policy level
- Backup enabled
- Audit logging
- Click "Deploy"
- Wait ~30 minutes for provisioning
- Receive credentials via portal
Credentials Delivery
Users receive:
- API Endpoint: http://192.168.11.200:8200
- Role ID: Unique identifier
- Secret ID: Unique secret (one-time display)
- Vault Path:
secret/data/organizations/{org-id}/{vault-name}/
⚠️ Important: Secret IDs should be displayed once and stored securely by the user.
Security Considerations
Credential Storage
- Role IDs: Stored in database (not sensitive)
- Secret IDs: Stored encrypted in deployment metadata
- Root Token: Stored in environment variable (should be in secure vault)
Access Control
- Each virtual vault has isolated path
- Policies prevent cross-organization access
- AppRole credentials are unique per vault
- Token TTL: 1 hour (configurable)
Recommendations
- Encrypt Secret IDs: Store Secret IDs encrypted in database
- Rotate Root Token: Use separate provisioning token
- Audit Logging: Enable for all virtual vaults
- Monitor Access: Track all API access
- Regular Backups: Ensure daily backups are working
Testing
Test Virtual Vault Provisioning
import { vaultProvisioningService } from '@/core/iru/provisioning/vault-provisioning.service';
const result = await vaultProvisioningService.provisionVirtualVault({
subscriptionId: 'SUB-TEST-001',
organizationName: 'Test Organization',
vaultName: 'test-vault',
capacityTier: 3,
deploymentConfig: {
policyLevel: 'standard',
backupEnabled: true,
auditLogging: true,
},
});
console.log('Virtual Vault Provisioned:', result);
Test Service Configuration
import { vaultServiceConfigService } from '@/core/iru/deployment/vault-service-config.service';
const result = await vaultServiceConfigService.configureVaultService({
vaultId: 'vault-test-org-1234567890',
vaultPath: 'secret/data/organizations/test-org/test-vault',
roleId: 'role-id-here',
secretId: 'secret-id-here',
apiEndpoint: 'http://192.168.11.200:8200',
organizationId: 'test-org',
subscriptionId: 'SUB-TEST-001',
});
console.log('Configuration Result:', result);
Troubleshooting
Provisioning Fails
Issue: Virtual vault provisioning fails
Solutions:
- Check Vault cluster is accessible
- Verify root token is valid
- Check cluster is unsealed
- Review logs for specific errors
Authentication Fails
Issue: AppRole authentication doesn't work
Solutions:
- Verify Role ID and Secret ID are correct
- Check AppRole is enabled on cluster
- Verify policy is attached to role
- Check token TTL hasn't expired
Path Not Accessible
Issue: Cannot access virtual vault path
Solutions:
- Verify path exists
- Check policy allows access
- Verify AppRole has correct permissions
- Check vault path format is correct
Next Steps
Immediate
- ✅ Seed Offering: Run seed script to add to marketplace
- ⏳ Test Provisioning: Test virtual vault creation
- ⏳ Update Portal UI: Add Vault deployment UI
- ⏳ Documentation: Create user-facing documentation
Short-term
- Encrypt Secret IDs: Implement encryption for stored credentials
- Monitoring: Add virtual vault monitoring
- Quota Management: Implement storage/secret quotas
- Billing Integration: Connect to billing system
Long-term
- Multi-Region: Support multi-region virtual vaults
- Advanced Policies: More granular policy options
- Secret Rotation: Automated secret rotation
- Compliance Reporting: Generate compliance reports
Related Files
Core Services
dbis_core/src/core/iru/provisioning/vault-provisioning.service.tsdbis_core/src/core/iru/deployment/vault-service-config.service.tsdbis_core/src/core/iru/deployment/deployment-orchestrator.service.ts
Scripts
dbis_core/scripts/seed-vault-marketplace-offering.ts
Documentation
dbis_core/docs/marketplace/VAULT_MARKETPLACE_SERVICE.mddocs/04-configuration/PHOENIX_VAULT_INTEGRATION_GUIDE.md
Status: ✅ INTEGRATION COMPLETE
Last Updated: 2026-01-19