Skip to content

Tributech Catalog - Create and manage your DTDL models using our graphical interface and store them using our APIs.

License

Notifications You must be signed in to change notification settings

tributech-solutions/tributech-catalog-api

Repository files navigation

Tributech Catalog

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 UI Screenshot

Projects

  • 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/.

State of the projects

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.

Catalog-UI

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.

Example DTDL-Models

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 Data-Asset Models

Tributech GAIA-X Self Description Models

Installation

Install dependencies

$ yarn install

Generate API-Connectors

$ npm run generate-connectors

Configuration UI

  • 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

Configuration API

  • Adapt settings.json in /settings
    • Currently, needs a Keycloak Identity Server with OpenID-Connect

HTTPS

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

Development

# 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/.

Testing

$ npm run test

Docker

Build images

docker-compose -f ./docker-compose.yml -f ./docker-compose.ci.build.yml build

Run

# 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

Licence

The Tributech Open-Source stack is fair-code licensed under Apache 2.0 with Commons Clause.