Skip to main content

System Overview

DPP Kit is composed of several services that work together to issue, store, resolve, and verify Digital Product Passports.

Architecture Diagram

Frontend (Astro + React)          Express REST API             External Services
Port 4321 Port 3001 (Docker containers)
┌──────────────────┐ ┌──────────────────────┐ ┌──────────────────────────┐
│ Web App │───►│ API Server │───►│ VCKit :3332 │
│ Dashboard │ │ /api/organizations │ │ Identity Resolver :3300 │
│ Credential Mgmt │ │ /api/credentials │ │ Storage Service :3333 │
│ User Management │ │ /orgs (public DID) │ │ Directus CMS :8055 │
└──────────────────┘ └──────────────────────┘ │ PostgreSQL :5432 │
│ MinIO/S3 :9000 │
└──────────────────────────┘

Service Responsibilities

Web Frontend

The user interface where practitioners and product managers interact with DPP Kit. Built with Astro (server-side rendered pages) and React (interactive components). Handles authentication via Directus JWT tokens.

Express API

The backend service that orchestrates credential issuance. Validates requests, manages the credential pipeline, and coordinates between VCKit, Storage Service, and the Identity Resolver.

VCKit

The credential engine powered by Veramo. Handles:

  • DID creation and key management
  • Credential signing (W3C Verifiable Credentials v2)
  • Credential verification
  • Revocation status lists

Identity Resolver (IDR)

A GS1 Digital Link resolver that maps product identifiers (GTIN, GLN) to credential URLs. When someone scans a product's barcode or QR code, the resolver redirects them to the credential.

Storage Service

Stores signed Verifiable Credentials in S3-compatible object storage (MinIO for development, DigitalOcean Spaces for production). This is the source of truth for signed credentials.

Directus CMS

Manages user authentication, organization data, and credential metadata. Provides the database layer (PostgreSQL) and file storage for evidence documents.

PostgreSQL

The relational database backing both Directus (metadata, users, organizations) and VCKit (keys, DIDs, status lists).

MinIO / S3

Object storage for signed credentials and Identity Resolver data. MinIO is used in development; S3-compatible cloud storage (e.g., DigitalOcean Spaces) is used in production.