The Tributech Catalog Monorepo is part of the Tributech open-source stack. It offers the possibility to create a custom vocabulary based on the Digital Twin Definition Language that can be used to construct a domain specific knowledge graph. Models can be revoked or updated once added.
The data model can than be used to create instances of the data that can be inserted into the Twin-API that is also part of the open-source stack. To find out what can be queried from the Twin-API you can use the meta-queries offered by the Catalog-API that is part of this repository.
- Tributech Catalog API
- Backend for the Catalog UI
- OpenAPI endpoints to manage DTDL models
- Tributech Catalog UI
- Graphical Interface Webapp
- Create, view, edit and delete DTDL models
- Create, view, edit and delete instances
Screenshots can be found under /docs/assets/.
Both projects of this repository are used in production to power the Tributech DataSpace Kit. We will create a demo repository that allows a quick bootstrap of the open-source stack including authorization soon. At the moment some manual adaptions might be necessary to get the frontend/backend running without an identity provider.
The model builder is currently under development and not feature complete, missing functionality mainly affects complex properties for now (creating instances of twins with maps, objects is not working). The DTDL model builder now supports all possibilities, full validation however is not yet built in.
Models can be added to the Catalog API via REST, a default set of models gets loaded by default.
These models can be found in the following repositories:
Tributech GAIA-X Self Description Models
Install dependencies
$ yarn install
Generate API-Connectors
$ npm run generate-connectors
- Adapt config.json in apps/tributech-catalog-ui/src/assets/config
- Currently, needs a Keycloak Identity Server with OpenID-Connect
- Insert URLs of Keycloak, make sure client-id and scope matches the config set in auth-config.base.ts in /apps/tributech-catalog-ui/src/app
- Adapt settings.json in /settings
- Currently, needs a Keycloak Identity Server with OpenID-Connect
Generate certificate to serve frontend via Self-Signed Certificate
$ openssl req -x509 -newkey rsa:2048 -keyout apps/tributech-catalog-ui/ssl/key.pem -out apps/tributech-catalog-ui/ssl/cert.pem
# start ui and api at the same time
$ npm run start
By default the swagger-ui is reachable via http://localhost:3000/api/ and the Open-API spec at http://localhost:3000/api-json/.
$ npm run test
docker-compose -f ./docker-compose.yml -f ./docker-compose.ci.build.yml build
# start
docker-compose -f ./docker-compose.yml -f ./docker-compose.run.yml up -d
# stop
docker-compose -f ./docker-compose.yml -f ./docker-compose.run.yml down
The Tributech Open-Source stack is fair-code licensed under Apache 2.0 with Commons Clause.