gaiax-credentials-tool
A tool to help in the process of building and signing Gaia-X Credentials
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
Repository
A tool to help in the process of building and signing Gaia-X Credentials
Basic Info
Statistics
- Stars: 8
- Watchers: 1
- Forks: 5
- Open Issues: 0
- Releases: 0
Topics
Metadata Files
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
- The prerequisites above.
- Node 18+.
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
- Website: https://www.fundacionctic.org/en
- Twitter: fundacionctic
- Repositories: 1
- Profile: https://github.com/fundacionctic
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
- @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
- 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