Skip to content

smartSenseSolutions/smartsense-gaia-x-api

Repository files navigation

Gaia-x onboarding and credential verification MVP by smartSense

This is MVP to showcase the capability of smartSense in contact with the Gaia-X economy. This MVP covers below user case:

  1. Create Gaia-x compliment credentials(Participant json)
    1. Create a sub-domain for enterprise
    2. Create SSL key-value pair for enterprise
    3. Create web did
    4. Create participant credentials and sign in using Gaia-x API
    5. Host public key, did.json, and participant files under the .well-known path
  2. Create service offering and create service offering credential and host offer file under the .well-known path
  3. List Catalogue
  4. Store Credential in PCM
  5. Share credential from PCM
  6. Access your wallet by sharing the credential using PCM(ie. Login with PCM)

Tools and Technologies

  1. Spring boot with JPA
  2. K8S Java SDK
  3. Certbot SDK acme4j
  4. AWS Route53 SDK
  5. AWS S3 SDK
  6. NodeJS for signer tool
  7. GXFS PCM
  8. GXFS Connection manager
  9. GXFS proof manager
  10. Tiny URL

Onboarding flow

onboarding.png

Login with PCM

Login with PCM.png

Create service offer flow

Create service offer.png

Consume service flow

Service offer flow.png

High level could deployment diagram

Gaia-x MVP.drawio.png

Known issue or improvement

  1. Authentication and Authorization flow can be improved(using OpenID4VP/SOIPV2)
  2. Unit Test
  3. K8S ingress and secret creation can be done using argoCD/argo workflow
  4. Storage of key and other files can be done in better and more secure way

Run application

Configuration

  1. Create k8s user with access to ingress and secret creation
  2. Create AWS s3 bucket
  3. Create hosted zone in AWS with your base domain
  4. Create an AWS IAM user with the access to hosted zone and S3

Run in IntelliJ Idea

  1. Set values in the application.yaml
  2. Run using the Intellij idea

Run in k8s

Please refer to sample config files in /k8s folder

References

  1. Create SSL certificate using acme4j