This is a portal to onboard dataspace participants and administrate entries in the federated catalog. Further documentation can be found here.
Run the docker compose setup from the federated catalog repo. Create a user in Keycloak for the realm gaia-x
with the client role Ro-MU-CA
.
Additionally create a .env.local
file in the root directory of this repository with the following structure:
NEXT_PUBLIC_FEDERATED_CATALOG_URL="http://localhost:8081"
NEXTAUTH_URL="http://localhost:3000"
KEYCLOAK_ID=federated-catalogue
KEYCLOAK_SECRET=**********
KEYCLOAK_ISSUER=http://key-server:8080
KEYCLOAK_REALM=gaia-x
NEXTAUTH_SECRET=someSecret # replace
DATABASE_URL="postgresql://postgres:postgres@localhost:5432/portal"
NOTARY_URLS="[{"url": "https://registrationnumber.notary.lab.gaia-x.eu/v1-staging/registrationNumberVC","issuer": "did:web:registration.lab.gaia-x.eu:v1-staging","label": "Gaia-X Staging Notary"}]"
COMPLIANCE_URLS=["https://compliance.lab.gaia-x.eu/v1-staging/api/credential-offers"]
PORTAL_BASE_URL="https://portal.my-url.com" # replace
PORTAL_CERT="-----BEGIN CERTIFICATE-----
... # replace
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
... # replace
-----END CERTIFICATE-----"
PORTAL_KEY="-----BEGIN RSA PRIVATE KEY-----
... # replace
-----END RSA PRIVATE KEY-----"
LETS_ENCRYPT_ROOT_CERTIFICATE="-----BEGIN CERTIFICATE-----
... # replace
-----END CERTIFICATE-----"
Note
To be able to onboard participants locally, PORTAL_KEY
needs to be the key of the DID corresponding to the PORTAL_BASE_URL
. Also in a local dev setup only self-hosted DIDs are supported.
Before starting the development server, some additional code has to be generated. Run this once initially and after the fc_openapi.yaml
or prisma schema changes:
npm run codegen
Additionally, the database needs to be initialized:
npm run migrate dev
To run the development server:
npm run dev
Open http://localhost:3000 with your browser to see the result.
The portal is a Next.js application using the App Router.
To generate API typings and hook Kubb is utilized.
Prisma is used as ORM.
The application is deployed by a docker image.