LogoLogo
ProductsCommunityGitHubShare Feedback
IDP Kit
IDP Kit
  • What is the IDP Kit?
    • Introduction
    • IDP Kit
      • IDP Kit | Basics
        • Overview
        • Functionality
      • Architecture
  • Getting started
    • Quick Start
    • CLI | Command Line Interface
    • REST APIs
    • Dependency (JVM)
    • Public deployments
    • Build
      • Docker
  • Demos
    • Try Login With NFT
  • Tutorials
    • Login with NFTs | Next.js
      • IDP Kit Setup
      • Client Registration
      • NFT Collection Configuration
      • Next.js
    • Login with NFTs | Keycloak
      • IDP Kit Setup
      • Client Registration
      • NFT Collection Configuration
      • Keycloak (18.0.2)
      • Keycloak (>19.0.1)
      • Frontend - Next.js
    • Login with SSI | Next.js
      • IDP Kit Setup
      • Client Registration
      • Verifiable Credential Config
      • Next.js
  • Configuration and Setup
    • IDP Kit configuration and setup
    • OIDC Manager configuration
      • Keys and signatures
      • Client registration
      • Client authentication
      • Claim configuration
    • SIOP Manager configuration
    • NFT Manager configuration
  • Concepts
    • OIDC Authentication - Recap
    • Identity provision via SSI
    • Identity provision via NFTs
      • EVM | Identity Provision
        • Sign in With Ethereum (SIWE)
      • Tezos | Identity provision via NFTs
        • Sign-In with Tezos (SIWT)
      • Near | Identity provision via NFTs
        • Sign-in with Near Protocol (SIWN)
      • Polkadot | Identity provision via NFTs
        • Sign-in with Polkadot (SIWP)
      • Flow | Identity provision via NFTs
        • Sign-in with Flow (SIWF)
      • Algorand | Identity provision via NFTs
        • Sign-in with Algorand (SIWA)
    • IAM / KeyCloak integration
  • Community
    • Discord
    • Twitter
    • Newsletter
    • GitHub Discussions
  • DEVELOPER RELATIONS
    • Contribute
    • Roadmap
    • Share Feedback
    • Contact
  • Product Editions
    • Open Source | Always Free
    • Enterprise
    • Cloud Platform
Powered by GitBook
On this page
  • Docker
  • Local build
  • Project structure
  • Backend build
  • Frontend build
  • Development build configuration

Was this helpful?

Export as PDF
  1. Getting started

Build

PreviousPublic deploymentsNextDocker

Last updated 1 month ago

Was this helpful?

Docker

To quickly start up the IDPKit using Docker, refer to:

Or continue on the next section, for building and running the IDP Kit on your local development environment.

Local build

To build and run the IDP Kit on your local development environment, make sure to set up your machine with these requirements:

  • JDK 16+

  • NodeJS 18 with Yarn

Project structure

The IDP Kit is structured into a backend (main) and frontend project.

IDP Kit backend

The project is written in Kotlin and compiled for JVM 16+. The build project is set up using Gradle.

IDP Kit frontend

The web UI, which provides the wallet connect and cross-device credential exchange web interfaces, is written in Nuxt.js and set up as a NodeJs/Yarn project.

Backend build

To build the IDP Kit backend, use the gradle wrapper script, which automatically sets up a local installation of gradle and runs the build:

./gradlew build

Alternatively use the build and run functionality of your IDE. We use IntellJ IDEA to build, run and test the project.

Frontend build

To build the frontend, navigate into its subfolder:

cd web/waltid-idpkit-ui

Install the required dependencies, using yarn:

yarn install

Run the dev server, if you're developing:

yarn dev

Or, generate the production build output:

yarn generate

Development build configuration

To run the IDP Kit in a development environment, you need to start both the backend and the frontend services.

Check the following configuration and possibly adapt it to your needs:

Nuxt config

File: web/waltid-idpkit-ui/nuxt.config.js:

Look for the proxy section near the end of the configuration file.

Make sure the host and port mapping of the API paths, corresponds to the host and port, on which the IDP Kit backend is running.

Typically this section will look like this:

   proxy: {
        '/verifier-api/': "http://localhost:8080/",
        '/api/': "http://localhost:8080/",
        '/webjars/': "http://localhost:8080/"
    }

Configure the port on which the frontend should be started, by using the server section like this:

    server: {
        port: 5000
    }

IDP config

File: config/idp-config.json:

Let the externalUrl point to an address on which the IDP Kit frontend service is running and reachable from a browser.

E.g.:

{
  "externalUrl": "http://localhost:5000",
}

Verifier config

File: config/verifier-config.json:

Set the verifierApiUrl to a URL on which the IDP Kit backend is listening, and that is reachable from a browser.

Set the url of the walt.id wallet configuration to the web wallet, which should be used. By default, this is pointing to the wallet deployed on walt-test.cloud.

e.g.:

{
  "verifierUiUrl": "",
  "verifierApiUrl": "http://localhost:8080/api/siop/default",

  "wallets": {
    "walt.id": {
      "id": "walt.id",
      "url": "https://wallet.walt-test.cloud",
      "presentPath": "api/siop/initiatePresentation/",
      "receivePath" : "api/siop/initiateIssuance/",
      "description": "localhost wallet"
    }
  }
}
Docker Container