Skip to content

in2workspace/in2-wallet-api

Repository files navigation

Wallet API

by in2.es

Quality Gate Status

Bugs Vulnerabilities Security Rating Code Smells Lines of Code

Coverage Duplicated Lines (%) Reliability Rating Maintainability Rating Technical Debt

Introduction

Wallet Server is a service that allows to manage digital credentials. It is designed to be used in a decentralized identity ecosystem, where users can store their credentials in a secure and private way.

Wallet Server includes the requested features described in the EUDI Wallet Architecture Reference, and it is EBSI compliance (EBSI test v3.4).

Features

  • Create a key pair from secp256r1 algorithm.
  • Create did:key identifier from ES256 key algorithm.
  • Create did:key:jwk_jcs-pub identifier from ES256 key algorithm.
  • Complete flows compliant with EBSI for issuing and presenting digital credentials.
  • Context Broker Integration: Facilitates advanced management of credentials and DIDs through standardized interfaces.
  • Vault Integration Provides secure cryptographic storage for private keys using state-of-the-art vault technology.
  • Cross-Device and Same-Device support.

Installation

Prerequisites

Supported Platforms

Context Brokers

Wallet Server supports integration with various context brokers, offering flexibility in deployment and operation:

  • Scorpio //todo version
  • Orion-LD //todo version

Vault Solutions

For secure storage of private keys, Wallet Server integrates with leading vault technologies:

  • HashiCorp Vault //todo version
  • Azure Key Vault //todo version

This integration ensures high-level security for cryptographic operations within the Wallet Server ecosystem.

Configuration

Ensure to adjust the environment variables to match your configurations.

  • Wallet-Server Configuration
wallet-server:
  image: in2kizuna/wallet-server:v1.0.0
  environment:
    # Logging Configuration
    LOGGING_LEVEL_ES_IN2_WALLET_SERVER: "DEBUG" # Set logging level (e.g., DEBUG, INFO, WARN, ERROR)
    # OpenAPI Configuration
    OPENAPI_SERVER_URL: "https://yourdomain.com" # The URL where your Wallet Server is hosted
    OPENAPI_SERVER_DESCRIPTION: "Wallet Server API" # Brief description of your server
    OPENAPI_INFO_TITLE: "Your Wallet Server Title" # The title of your API
    OPENAPI_INFO_DESCRIPTION: "Description of your Wallet Server functionalities"
    OPENAPI_INFO_VERSION: "1.0.0" # API version
    OPENAPI_INFO_TERMS_OF_SERVICE: "https://yourdomain.com/terms" # URL to the terms of service
    OPENAPI_INFO_LICENSE_NAME: "Apache 2.0" # License name
    OPENAPI_INFO_LICENSE_URL: "https://www.apache.org/licenses/LICENSE-2.0.html" # Link to license
    OPENAPI_INFO_CONTACT_NAME: "Your Organization Name"
    OPENAPI_INFO_CONTACT_URL: "https://yourdomain.com"
    OPENAPI_INFO_CONTACT_EMAIL: "[email protected]"
    # CORS Configuration
    WALLET_WDA_URL: "https://yourfrontenddomain.com" # Frontend domain for CORS policy
    # Broker Configuration
    BROKER_PROVIDER: "YourBrokerProvider" # e.g., scorpio, orion-ld
    BROKER_EXTERNAL_DOMAIN: "https://yourbrokerdomain:port"
    BROKER_INTERNAL_DOMAIN: "https://yourinternalbrokerdomain:port"
    BROKER_PATHS_ENTITIES: "/ngsi-ld/v1/entities"
    # Vault Configuration
    VAULT_PROVIDER_NAME: "YourVaultProvider" # e.g., hashicorp
    SPRING_CLOUD_VAULT_AUTHENTICATION: "token"
    SPRING_CLOUD_VAULT_TOKEN: "YourVaultToken"
    SPRING_CLOUD_VAULT_HOST: "vault"
    SPRING_CLOUD_VAULT_SCHEME: "http"
    SPRING_CLOUD_VAULT_PORT: "YourVaultPort"
    SPRING_CLOUD_VAULT_KV_ENABLED: "true"
  ports:
    - "8080:8081"

Resources

Project Status

The project is currently at version 1.1.1 and is in a stable state.

Contact

For any inquiries or collaboration, you can contact us at:

Creation Date and Update Dates

  • Creation Date: February 19, 2024

License

This project is licensed under the Apache 2.0 License — see the LICENSE file for details.