Skip to content

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.ts for complete issuance workflow
  • Implement SDK initialization with sandbox configuration
  • Reference: VclSdkPlugin.ts for SDK initialization
  • Add credential template management for employment credentials
  • Reference: Constants.ts:95 for credential types (EmploymentPastV1.1)
  • Implement credential offer creation using VNF SDK methods
  • Reference: VCL.ts:65 for generateOffers() 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 credential
    • POST /api/v1/issuer/credentials/batch - Batch generation
    • GET /api/v1/issuer/credentials/{id}/status - Status check
    • PUT /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