Files
defi-arbitrage/docs/settlement/as4/DIRECTORY_SERVICE_SPEC.md
T
2026-03-02 12:14:07 -08:00

205 lines
4.0 KiB
Markdown

# DBIS AS4 Settlement Directory Service Specification
**Date**: 2026-01-19
**Version**: 1.0.0
---
## 1. Overview
The Directory Service maintains a registry of AS4 settlement members, their endpoints, certificates, and routing configuration.
## 2. Functional Requirements
### 2.1 Member Registry
- Member identification (Member ID)
- Organization information
- Contact details
- Capacity tier
- Status (active, suspended, terminated)
### 2.2 Endpoint Management
- AS4 endpoint URLs
- Protocol versions supported
- Message types allowed
- Service capabilities
### 2.3 Certificate Management
- TLS certificate fingerprints
- Signing certificate fingerprints
- Encryption certificate fingerprints
- Certificate validity periods
- Certificate status
### 2.4 Routing Configuration
- Cutoff windows (per corridor, per currency)
- Routing groups
- Priority levels
- Value date rules
### 2.5 Capability Management
- Supported message types
- Supported currencies
- Supported corridors
- Feature flags
## 3. Data Model
### 3.1 Member Record
```typescript
interface MemberRecord {
memberId: string;
organizationName: string;
capacityTier: number;
status: 'active' | 'suspended' | 'terminated';
as4EndpointUrl: string;
tlsCertFingerprint: string;
signingCertFingerprint?: string;
encryptionCertFingerprint?: string;
allowedMessageTypes: string[];
supportedCurrencies: string[];
cutoffWindows: CutoffWindow[];
routingGroups: string[];
createdAt: Date;
updatedAt: Date;
}
```
### 3.2 Cutoff Window
```typescript
interface CutoffWindow {
corridor: string;
currency: string;
cutoffTime: string; // HH:mm UTC
valueDateRule: 'same-day' | 'next-day';
timezone?: string;
}
```
## 4. API Specification
### 4.1 Member Lookup
**GET** `/api/v1/as4/directory/members/{memberId}`
Returns member record with all configuration.
### 4.2 Member Search
**GET** `/api/v1/as4/directory/members?status=active&capacityTier=1`
Search members by criteria.
### 4.3 Certificate Lookup
**GET** `/api/v1/as4/directory/members/{memberId}/certificates`
Returns all certificates for a member.
### 4.4 Endpoint Discovery
**GET** `/api/v1/as4/directory/members/{memberId}/endpoint`
Returns AS4 endpoint configuration.
### 4.5 Directory Updates
**POST** `/api/v1/as4/directory/members/{memberId}/update`
Update member configuration (requires authorization).
## 5. Security
### 5.1 Access Control
- Read access: All authenticated members
- Write access: Member owner or DBIS admin
- Certificate updates: Member owner only
### 5.2 Data Integrity
- Directory updates signed
- Version control for changes
- Audit trail for all modifications
### 5.3 Availability
- High availability (99.9% target)
- Replication for redundancy
- Caching for performance
## 6. Versioning
### 6.1 Directory Versions
- Directory updates versioned
- Version numbers incremented on changes
- Members can query specific versions
### 6.2 Change Notifications
- Members notified of directory updates
- Webhook support for real-time updates
- Change log available via API
## 7. Integration
### 7.1 AS4 Gateway Integration
- Gateway queries directory for routing
- Certificate validation uses directory
- Endpoint discovery uses directory
### 7.2 Member Onboarding
- New members registered in directory
- Certificates registered during onboarding
- Configuration set during provisioning
### 7.3 Marketplace Integration
- Directory updated from marketplace subscriptions
- Member status synced with IRU subscriptions
- Capacity tier from marketplace tier
## 8. Performance
### 8.1 Caching
- Directory data cached in gateway
- Cache invalidation on updates
- TTL-based cache expiration
### 8.2 Query Optimization
- Indexed lookups by member ID
- Indexed searches by status, tier
- Efficient certificate fingerprint lookups
## 9. Monitoring
### 8.1 Metrics
- Directory query latency
- Cache hit rates
- Update frequency
- Member count by status
### 9.2 Alerts
- Directory service unavailable
- Certificate expiration warnings
- Member status changes
- High query error rates
---
**End of Specification**