GithubHelp home page GithubHelp logo

smartsensesolutions / bpn-did-resolution-service Goto Github PK

View Code? Open in Web Editor NEW

This project forked from eclipse-tractusx/bpn-did-resolution-service

0.0 0.0 0.0 1.24 MB

Tractus-X Resolver Service for BPN <> DID resolution

License: Apache License 2.0

Java 94.13% Smarty 3.90% Dockerfile 1.96%

bpn-did-resolution-service's Introduction

BPN-DID Resolution Service

Contributors Stargazers Apache 2.0 License Latest Release

The BPN-DID Resolution Service (BDRS) provides a directory of Business Partner Numbers (BPN) and their associated DIDs. The directory is used by dataspace participant agents to resolve a DID for a BPN.

The directory is requested via a RESTFul HTTPS API and is designed to be cached locally for resolution operations. When requesting the directory, the client must include a JWT with a presentation containing its MembershipCrediential for authentication.

Implementation

The BDRS is a collection of extensions to the EDC core runtime.

Variants

There are two general variants of BDRS:

  1. Production: named "bdrs-server", this distribution utilizes Postgres and Hashicorp Vault for data and secret retention. Please take a look at the helm chart README
  2. Testing: named "bdrs-server-memory", this distribution uses all in-memory components to lower the barrier of entry and the need for configuration when testing against BDRS

Interacting with BDRS

BDRS comes with two APIs:

  1. Management API: used to maintain directory listing entries. Should not be exposed without additional protection to the internet.
  2. Directory API: clients can obtain the BPN-DID resolution mapping directory as a whole. Clients should implement a reasonable strategy to cache the directory locally. Note that a valid VerifiablePresentation in JWT format, containing a valid MembershipCredential (also JWT format) must be provided as Bearer token in the Authorization header!

Run official Helm charts

checkout the Chart README

Build and run BDRS from source

  • Build sources (-x test skips the tests):

    ./gradlew build -x test
  • Run with java:

    java -jar <VM-PARAMS> runtimes/bdrs-server/build/libs/bdrs-server.jar
    java -jar <VM-PARAMS> runtimes/bdrs-server/build/libs/bdrs-server-memory.jar

    Note that configuration parameters have to be supplied as VM parameters or environment variables.

  • Run with Helm (recommended, assuming KinD):

    ./gradlew dockerize
    kind load docker-image bdrs-server:latest
    kind load docker-image bdrs-server-memory:latest
    
    helm install bdrs-server charts/bdrs-server \
      --set server.debug.enabled="true" \
      --set server.image.pullPolicy="Never" \
      --set server.image.tag="latest" \
      --set server.image.repository="bdrs-server" \
      -f path/to/your/values.yaml \
      --wait-for-jobs --timeout=120s --dependency-update

Further documentation

please refer to the docs folder for further documentation.

License

Distributed under the Apache 2.0 License. See LICENSE for more information.

bpn-did-resolution-service's People

Contributors

paullatzelsperger avatar dependabot[bot] avatar eclipse-tractusx-bot avatar jimmarino avatar evegufy avatar github-actions[bot] avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.