This guide provides step-by-step instructions for setting up the Credential Constructor and Datastore services. You will learn how to make the API accessible from your host for seamless interaction, explore the API using the Swagger UI, and enable tracing with Jaeger. This setup is part of the VC Project, a suite of services designed to manage verifiable credentials
Before starting, ensure that you have the following tools installed:
VC stands for Verifiable Credential, a set of services that provide functionalities for handling verifiable credentials, including:
ApiGW (API Gateway): Acts as the frontend for backend services, handling external connections and distributing messages to other VC services. It’s stateless, so it can run across multiple servers or data centers.
Datastore: An integration point for storing documents (e.g., PDA1, EHIC) with metadata. It aims to be flexible for various use cases.
Issuer: Issues verifiable credentials based on documents from the Datastore or an authentic source, currently focused on Selective Disclosure JWT (SDJWT).
Verifier: Verifies credentials issued by the system.
Persistent: Stores persistent data, such as authentic source documents, in MongoDB.
Registry: Manages credential registration (still under development).
To begin, clone the vc_up_and_running repository from GitHub. This contains all the necessary files to set up the VC services.
git clone git@github.com:dc4eu/vc_up_and_running.git |
This will create a local copy of the repository on your machine.
Once the repository is cloned, navigate to the base directory where all the service configurations are located.
cd vc_up_and_running |
Ensure that all subsequent commands are run from this directory.
The ports for both the API Gateway and Jaeger services are configured in the .env
file. The following ports are used by default, but they can be customized by modifying the .env
file.
API Gateway:
The APIGW_HOST_PORT
is set in the .env
file. By default, it is set to 8080
.
Access the Swagger documentation:
Jaeger Tracing:
The JAEGER_HOST_PORT
is also set in the .env
file, defaulting to 16686
.
Start the Docker Containers
The start.sh
script will generate a signing key if one doesn’t exist and then start the Docker containers. Run it with:
./start.sh |
Once the containers are running, you can explore the API using Swagger, which provides an interactive interface for testing the API.
Open your web browser and navigate to:
http://127.0.0.1:8080/swagger/index.html
Here, you can view the available API endpoints, test them, and explore the documentation.
Jaeger is used to trace the flow of requests across the VC services, enabling you to monitor distributed transactions.
To access the Jaeger tracing UI, open:
This will allow you to monitor the internal communications between the services in real-time.
After exploring the Swagger UI, you can interact with the API directly using clients such as curl or Postman. For more information regarding the API, please see this page: Authentic Source using Datastore and Issuer to issue credentials