Milestone: M3 — Issuing Functionality | SOW Reference: FR1 | Requirement Clarity: ✅ Clear | Dev Status: 🟢 Prototyped in POC Moved from
docs/requirements/tasks/POC/03-credential-creation-engine.md— unmodified below.
M3-01 Credential Creation Engine Tasks¶
🎯 VNF SDK Reference Implementation¶
PRIMARY REFERENCE: vnf-wallet-sdk-nodejs-main/¶
All credential creation tasks MUST follow the official VNF SDK sample application patterns
Key Reference Files:
- Credential Manifest: packages/sample-server/src/routes/Issuing.ts - Complete issuance workflow
- Offer Generation: packages/sample-app/src/repositories/GenerateOffersRepository.ts - Offer creation patterns
- Credential Finalization: packages/sample-server/src/routes/Issuing.ts:44 - finalizeOffers implementation
- SDK Entities: packages/sdk/src/api/entities/VCLCredentialManifest.ts - Credential structure
- Constants: packages/sample-app/src/Constants.ts - Credential types and schemas
Overview¶
Implementation of credential generation using VNF Node.js SDK for past employment credentials with batch processing capabilities following official VNF SDK sample patterns.
Backend Tasks¶
VNF Credential Service¶
- Task: Create credential issuance service using VNF SDK following official patterns
- Create
vnf-credential.service.ts - Reference:
routes/Issuing.tsfor complete issuance workflow - Implement SDK initialization with sandbox configuration
- Reference:
VclSdkPlugin.tsfor SDK initialization - Add credential template management for employment credentials
- Reference:
Constants.ts:95for credential types (EmploymentPastV1.1) - Implement credential offer creation using VNF SDK methods
- Reference:
VCL.ts:65forgenerateOffers()method
Employment Credential Schema¶
- Task: Define and implement employment credential structure
- Create
employment-credential.dto.ts - Define credential schema with fields:
- Employee personal information (name, email)
- Employment details (company, position, dates)
- Issuer information (organization DID, signature)
- Add credential validation rules
Credential Offer Management¶
- Task: Implement credential offer lifecycle
- Update
credential-offer.entity.ts - Add offer status tracking:
CREATED,SENT,CLAIMED,EXPIRED,REJECTED - Implement offer expiration logic (30 days default)
- Add credential claim tracking and verification
Batch Credential Processing¶
- Task: Implement bulk credential generation
- Create
batch-credential.service.ts - Add queue-based processing for large batches (500+ records)
- Implement rate limiting to respect VNF API limits
- Add retry logic for failed credential generations
Credential Controller¶
- Task: Create credential management endpoints
- Create
credential.controller.ts - Implement endpoints:
POST /api/v1/issuer/credentials/generate- Single credentialPOST /api/v1/issuer/credentials/batch- Batch generationGET /api/v1/issuer/credentials/{id}/status- Status checkPUT /api/v1/issuer/credentials/{id}/regenerate- Regenerate failed
Frontend Tasks¶
Credential Generation Interface¶
- Task: Create credential generation dashboard
- Create
CredentialGeneration.tsx - Add batch generation controls with progress tracking
- Implement credential template selection
- Show generation statistics (success/failure counts)
Credential Status Dashboard¶
- Task: Real-time credential status monitoring
- Create
CredentialStatus.tsx - Display credential generation progress with WebSocket updates
- Show individual credential status with error details
- Add retry functionality for failed credentials
Credential Preview¶
- Task: Preview generated credentials before sending
- Create
CredentialPreview.tsx - Display credential content in readable format
- Show QR code for mobile credential claiming
- Add credential validation status indicator
Batch Processing Monitor¶
- Task: Monitor large batch processing operations
- Create
BatchMonitor.tsx - Show batch processing queue status
- Display processing rate and estimated completion time
- Add pause/resume batch processing controls
VNF SDK Integration¶
SDK Configuration¶
// VNF SDK initialization
const vnfConfig = {
environment: 'sandbox',
apiKey: process.env.VNF_API_KEY,
organizationDid: process.env.VNF_ORGANIZATION_DID,
credentialSchemas: {
employment: 'employment-verification-v1.0'
}
};
Credential Generation Flow¶
// Credential creation workflow
1. validateEmployeeData(employeeData)
2. createCredentialOffer(credentialData)
3. generateCredential(offer, schema)
4. storeCredentialOffer(offer)
5. updateCandidateStatus(candidateId, 'CREDENTIAL_GENERATED')
API Endpoints¶
Credential Management¶
POST /api/v1/issuer/credentials/generate
POST /api/v1/issuer/credentials/batch
GET /api/v1/issuer/credentials/{id}
GET /api/v1/issuer/credentials/{id}/status
PUT /api/v1/issuer/credentials/{id}/regenerate
DELETE /api/v1/issuer/credentials/{id}
GET /api/v1/issuer/credentials/batch/{batchId}/status
WebSocket Events¶
credential:generated - Individual credential completion
credential:failed - Generation failure with error
batch:progress - Batch processing progress
batch:complete - Batch processing completion
batch:error - Batch processing errors
Dependencies & Assumptions¶
Prerequisites¶
- VNF Node.js SDK properly configured
- Sandbox organization DID registered
- Employment credential schema access
- Queue processing infrastructure (Redis/Bull)
Cross-team Dependencies¶
- VNF SDK documentation and examples
- Credential schema definitions from VNF
- Rate limiting guidelines from VNF
Acceptance Criteria¶
- Generate individual employment credentials using VNF SDK
- Process batches of 500+ credentials within 5 minutes
- Track credential offer status throughout lifecycle
- Handle VNF API rate limits with retry logic
- Provide real-time progress updates for batch processing
- Generate valid credentials that pass VNF verification
- Support credential regeneration for failed attempts
- Maintain audit trail of all credential operations
Estimated Timeline¶
Week 3-4: 10 days - Day 1-2: VNF SDK service implementation - Day 3-4: Employment credential schema and DTOs - Day 5-6: Credential offer management and lifecycle - Day 7-8: Batch processing implementation - Day 9-10: Frontend dashboard and monitoring
Blockers & Risks¶
- Critical: VNF SDK sandbox access and credentials
- Risk: VNF API rate limiting affecting batch processing
- Dependency: Employment credential schema availability
- Risk: SDK documentation completeness for advanced features
- Blocker: Organization DID registration in sandbox environment