Skip to content

Third Party Software

The DTaaS platform uses a range of third-party software components. Each component remains subject to its upstream licence terms.

Deployment and Runtime Software

The core deployment stack currently references the following software:

Software Package Usage Licence
Docker CE mandatory Apache 2.0
Traefik mandatory MIT
Traefik Forward Auth optional MIT
GitLab CE optional MIT
GitLab Runner optional MIT
Dex optional Apache 2.0
Keycloak optional Apache 2.0
RabbitMQ optional MPL 2.0
MongoDB optional SSPL v1
Grafana optional AGPL v3
InfluxDB optional Apache 2.0 / MIT
PostgreSQL optional PostgreSQL Licence
ThingsBoard optional Apache 2.0

Development Environments

In addition to runtime software, the development and documentation workflows use the following tools.

Software Package Usage Licence
Node.js mandatory Node.js licence
npm mandatory Artistic Licence 2.0
Yarn optional BSD 2-Clause
Material for MkDocs mandatory MIT
JupyterLab optional BSD 3-Clause
MicroK8s optional Apache 2.0

Client Packages With Copyleft Terms

Most client dependencies are permissively licensed and are declared in client/package.json. Two are named here because their terms carry obligations that a redistributor has to meet, and a name in a lock file is not a notice.

Software Package Usage Licence
@into-cps-association/bim-kit mandatory INTO-CPS Association Public Licence
web-ifc mandatory MPL 2.0

web-ifc is the IFC geometry kernel, and it reaches the client through bim-kit, which embeds its WebAssembly build so that a deployment serves no extra file. Embedding it does not change its terms.

MPL 2.0 is file-level copyleft and is compatible with redistributing DTaaS under the INTO-CPS Licence. What it requires of anyone shipping a build:

  • The source of the MPL-covered files has to be available to whoever receives that build. Upstream is linked above, and the version in use is the one client/yarn.lock resolves for web-ifc.
  • The notice has to travel with the artifact. Embedding the kernel inside a JavaScript chunk makes its provenance invisible in the built output, which is the reason this table exists instead of a pointer to package.json.
  • A modified MPL file stays MPL. bim-kit uses web-ifc as a dependency and does not fork it, so the boundary is the package boundary.

Package Dependencies

Additional third-party dependencies for client, servers, CLI, and tooling are declared in:

  • client/package.json
  • servers/**/package.json
  • cli/pyproject.toml
  • deploy/services/cli/pyproject.toml
  • script/docs/mkdocs-requirements.txt

Upstream dependency licences should be consulted in those manifests when detailed licence auditing is required.