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.lockresolves forweb-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-kitusesweb-ifcas 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.jsonservers/**/package.jsoncli/pyproject.tomldeploy/services/cli/pyproject.tomlscript/docs/mkdocs-requirements.txt
Upstream dependency licences should be consulted in those manifests when detailed licence auditing is required.