gaiax-credentials-tool

A tool to help in the process of building and signing Gaia-X Credentials

https://github.com/fundacionctic/gaiax-credentials-tool

Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (11.2%) to scientific vocabulary

Keywords

data-spaces gaia-x gaia-x-credentials verifiable-credentials
Last synced: 6 months ago · JSON representation ·

Repository

A tool to help in the process of building and signing Gaia-X Credentials

Basic Info
  • Host: GitHub
  • Owner: fundacionctic
  • License: gpl-3.0
  • Language: JavaScript
  • Default Branch: main
  • Homepage:
  • Size: 345 KB
Statistics
  • Stars: 8
  • Watchers: 1
  • Forks: 5
  • Open Issues: 0
  • Releases: 0
Topics
data-spaces gaia-x gaia-x-credentials verifiable-credentials
Created over 3 years ago · Last pushed about 1 year ago
Metadata Files
Readme License Citation

README.md

Gaia-X Self-Descriptions

A simple proof of concept of the process to build and sign a Self-Description using the Gaia-X Compliance Service.

The main contribution of this repository is demonstrating how to programmatically build Gaia-X Self-Description documents, which are then validated by the Gaia-X Lab Compliance API. We leverage the fact that Lets Encrypt is able to issue free certificates signed by a valid Trust Anchor, ensuring compliance without incurring extra costs.

Prerequisites

Running in a Docker container

  • A Linux server with sudo access that has ports 80 and 443 exposed to the Internet.
  • A public DNS domain that points to the IP address of the previous Linux server.
  • Docker.
  • Taskfile.

Running with local development tools

Usage

First you need to update the configuration to match your environment. Copy the file .env.default from this repository to .env and, at least, update the following variables:

| Variable | Description | | ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | CERTBOT_DOMAIN | The domain name of your server for which you want to generate the Let's Encrypt certificate. | | CERTBOT_EMAIL | The email of the owner of the domain name. | | RESOURCE_OPENAPI_SPEC | This variable should point to an OpenAPI schema that describes the HTTP API that you want to model as a Gaia-X Resource. |

Running in a Docker container

To simplify the process, we recommend creating a shell alias that will run the Docker container with the correct parameters. You can create this alias by copying and pasting the command generated by the following task, which first builds the Docker image:

```console $ task build-show-runner-alias

[...]

Copy and paste the following command to create the alias:

alias gaia-x='docker run --rm -it -p 80:80 -p 443:443 [...]' ```

You should run the commands the rest of commands in this guide from the directory where the .env file is located.

Request the certificates with the following command:

console $ gaia-x get-certs

This will generate the certificates and store them in the certs folder.

Generate the DID with the following command:

console $ gaia-x build-did

Generate the Verifiable Credentials with the following command:

console $ gaia-x build-credentials

You can now build submit the resulting Verifiable Presentation to the Compliance API:

console $ gaia-x build-vp

Alternatively, you can create a container image that will generate the Verifiable Presentation and submit it to the Compliance API every time it is run:

console $ gaia-x build-credential-server-image

This will create a file named image.tar in the current directory. You can load this image into your Docker daemon with the following command:

console $ docker load -i image.tar

You can now run the container with the following command:

console docker run -it --rm -p 443:443 gaiax-credential-server

Running with local development tools

Install the dependencies and request the certificates with the following commands:

console $ npm install $ sudo task get-certs

This will generate the certificates and store them in the certs folder.

Generate the DID with the following command:

console $ task build-did

Generate the Verifiable Credentials with the following command:

console $ task build-credentials

You can now build submit the resulting Verifiable Presentation to the Compliance API:

console $ task build-vp

Alternatively, you can create a container image that will generate the Verifiable Presentation and submit it to the Compliance API every time it is run:

console $ task build-credential-server-image

This will build a Docker image named gaiax-credential-server. You can now run the container with the following command:

console $ docker run -it --rm -p 443:443 gaiax-credential-server

References

| Reference | Description | | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Gaia-X GitLab | A GitLab organization that contains the repositories for the software implementations and documentation materials of Gaia-X. | 1 | | Gaia-X Glossary | A comprehensive list of Gaia-X terms. | | Gaia-X Digital Clearing House | A closer look at the services required to achieve Gaia-X compliance. | | Gaia-X Digital Clearing House Status | Public instances of the Gaia-X Digital Clearing House, including availability and status metrics. | | Gaia-X Trust Framework | Detailed documentation of the minimal set of rules to be part of Gaia-X Ecosystem. | | Simplified Gaia-X credentials usage flow | A diagram that shows how the Notary, Compliance Service and Registry fit together in the process of building and signing Gaia-X credentials (i.e., self-descriptions). | | deltaDAO/self-description-signer | The original repository that served as an inspiration and reference for this proof of concept. |

Owner

  • Name: CTIC Technology Centre
  • Login: fundacionctic
  • Kind: organization
  • Location: Spain

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
  - family-names: García Mangas
    given-names: Andrés
    orcid: https://orcid.org/0000-0002-8010-8681
    affiliation:
      - name: "CTIC"
        city: "Gijón"
        country: "Spain"
  - family-names: Recio Pérez
    given-names: Álvaro Manuel
  - family-names: Arias
    given-names: Jacinto
title: "Gaia-X Credentials Generation Tool"
version: 1.2.0
date-released: 2024-12-11
repository-code: "https://github.com/fundacionctic/gaiax-credentials-tool"
keywords:
  - "Gaia-X"
  - "Verifiable Credentials"
  - "Trust Framework"
  - "Data Spaces"

GitHub Events

Total
  • Watch event: 4
  • Issue comment event: 1
  • Push event: 3
  • Pull request review event: 1
  • Pull request event: 2
  • Fork event: 1
  • Create event: 1
Last Year
  • Watch event: 4
  • Issue comment event: 1
  • Push event: 3
  • Pull request review event: 1
  • Pull request event: 2
  • Fork event: 1
  • Create event: 1

Dependencies

package-lock.json npm
  • @digitalbazaar/http-client 3.4.1
  • abort-controller 3.0.0
  • ansi-styles 4.3.0
  • asynckit 0.4.0
  • atomic-sleep 1.0.0
  • axios 1.5.0
  • balanced-match 1.0.2
  • base64-js 1.5.1
  • brace-expansion 2.0.1
  • buffer 6.0.3
  • busboy 1.6.0
  • canonicalize 1.0.8
  • chalk 4.1.2
  • color-convert 2.0.1
  • color-name 1.1.4
  • colorette 2.0.20
  • combined-stream 1.0.8
  • commander 11.0.0
  • data-uri-to-buffer 4.0.1
  • dateformat 4.6.3
  • delayed-stream 1.0.0
  • end-of-stream 1.4.4
  • event-target-shim 5.0.1
  • events 3.3.0
  • fast-copy 3.0.1
  • fast-redact 3.3.0
  • fast-safe-stringify 2.1.1
  • fetch-blob 3.2.0
  • follow-redirects 1.15.2
  • form-data 4.0.0
  • formdata-polyfill 4.0.10
  • fs.realpath 1.0.0
  • glob 8.1.0
  • has-flag 4.0.0
  • help-me 4.2.0
  • ieee754 1.2.1
  • inflight 1.0.6
  • inherits 2.0.4
  • jose 4.14.4
  • joycon 3.1.1
  • jsonld 8.2.0
  • ky 0.33.3
  • ky-universal 0.11.0
  • lru-cache 6.0.0
  • mime-db 1.52.0
  • mime-types 2.1.35
  • minimatch 5.1.6
  • minimist 1.2.8
  • node-domexception 1.0.0
  • node-fetch 3.3.2
  • on-exit-leak-free 2.1.0
  • once 1.4.0
  • pino 8.15.1
  • pino-abstract-transport 1.1.0
  • pino-pretty 10.2.0
  • pino-std-serializers 6.2.2
  • process 0.11.10
  • process-warning 2.2.0
  • property-expr 2.0.5
  • proxy-from-env 1.1.0
  • pump 3.0.0
  • quick-format-unescaped 4.0.4
  • rdf-canonize 3.4.0
  • readable-stream 3.6.2
  • readable-stream 4.4.2
  • real-require 0.2.0
  • safe-buffer 5.2.1
  • safe-stable-stringify 2.4.3
  • secure-json-parse 2.7.0
  • setimmediate 1.0.5
  • sonic-boom 3.3.0
  • split2 4.2.0
  • streamsearch 1.1.0
  • string_decoder 1.3.0
  • strip-json-comments 3.1.1
  • supports-color 7.2.0
  • thread-stream 2.4.0
  • tiny-case 1.0.3
  • toposort 2.0.2
  • type-fest 2.19.0
  • undici 5.23.0
  • util-deprecate 1.0.2
  • web-streams-polyfill 3.2.1
  • wrappy 1.0.2
  • yallist 4.0.0
  • yup 1.2.0
package.json npm
  • axios ^1.5.0
  • chalk ^4.1.2
  • commander ^11.0.0
  • jose ^4.14.4
  • jsonld ^8.2.0
  • pino ^8.15.1
  • pino-pretty ^10.2.0
  • yup ^1.2.0