On this page
Licensing
The license below governs the Robot Vault appliance. The notices that follow explain principal third-party components and the scope and limits of the generated source dependency inventory.
Software license
Robot Vault — Software License
Copyright © 2026 Ingotron. All rights reserved.
Version 0.9.7
This license is a legal agreement between you (the "Licensee", "you") and
Ingotron ("Ingotron", "we", "us") covering the Robot Vault software (the
"Software"). The Software comprises the container images published as
ghcr.io/ingotron-vault/robot-vault-ingest, -processor, -query and -toolkit,
together with the deployment files, installer, configuration templates and
documentation distributed with them, and any updates, patches or successor
versions Ingotron makes available to you.
By installing, copying, running or otherwise using the Software you accept
this license. If you do not accept it, do not install or use the Software.
The Software is licensed, not sold. Ingotron and its licensors retain all
right, title and interest in and to the Software and all copies of it,
including all intellectual property rights. You receive only the rights
expressly granted below; no other rights are granted by implication,
estoppel or otherwise.
1. LICENSE GRANT
Subject to your compliance with this license, Ingotron grants you a
non-exclusive, non-transferable, non-sublicensable, revocable, worldwide
license to install and run the Software on computing systems that you own or
control, in object-code form only, solely for your own internal business
purposes. You may make a reasonable number of copies of the Software for
internal deployment, backup and disaster-recovery purposes, provided every
copy carries all notices that accompany the original.
Evaluation and proof-of-concept use is permitted under this same license and
on the same terms. Where you and Ingotron have signed a separate written
agreement or order covering the Software, any quantity, environment, term or
edition limits stated there also apply to your use.
2. RESTRICTIONS
Except as expressly permitted above, or to the extent that a restriction
below is unenforceable under applicable law, you may not:
(a) distribute, publish, transmit, sublicense, sell, resell, rent, lease,
lend, or otherwise transfer or make the Software available to any third
party, whether alone or bundled with other products;
(b) host, operate or use the Software to provide a service, service bureau,
managed service, time-sharing or hosted offering for the benefit of any
third party, or otherwise permit any third party to use the Software;
(c) modify, adapt, translate or create derivative works of the Software;
(d) reverse engineer, decompile, disassemble or otherwise attempt to derive
the source code, underlying ideas, algorithms or internal interfaces of
the Software, except and only to the extent that applicable law
expressly prohibits this restriction, and then only after you have
requested the necessary information from Ingotron and Ingotron has not
supplied it within a reasonable time;
(e) remove, obscure, alter or fail to reproduce any copyright, trademark,
proprietary, license or attribution notice contained in or displayed by
the Software, including this file and THIRD_PARTY_NOTICES.md; or
(f) circumvent, disable or interfere with any licensing, edition, metering,
integrity or security mechanism of the Software.
3. THIRD-PARTY OPEN-SOURCE COMPONENTS
The Software includes third-party open-source components, which are
identified in the THIRD_PARTY_NOTICES.md file distributed with the Software
and in the license texts shipped inside the container images. Those
components are licensed to you under their own license terms, and those terms
govern your use of those components. Nothing in this license restricts,
limits or supersedes any right you have under an open-source license, and to
the extent of any conflict between this license and an applicable open-source
license, that open-source license controls for the component it covers.
4. NO WARRANTY
THE SOFTWARE IS PROVIDED "AS IS" AND "AS AVAILABLE", WITH ALL FAULTS AND
WITHOUT WARRANTY OF ANY KIND. TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE
LAW, INGOTRON AND ITS LICENSORS DISCLAIM ALL WARRANTIES AND CONDITIONS,
EXPRESS, IMPLIED OR STATUTORY, INCLUDING ANY IMPLIED WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE, ACCURACY AND
NON-INFRINGEMENT, AND ANY WARRANTY THAT THE SOFTWARE WILL BE UNINTERRUPTED,
SECURE OR ERROR-FREE OR THAT DATA WILL NOT BE LOST OR CORRUPTED. You are
responsible for determining whether the Software is suitable for your
intended use, for the data you process with it, and for maintaining
independent backups of that data.
5. LIMITATION OF LIABILITY
TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, INGOTRON AND ITS LICENSORS
WILL NOT BE LIABLE FOR ANY INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL,
EXEMPLARY OR PUNITIVE DAMAGES, OR FOR ANY LOST PROFITS, LOST REVENUE, LOST OR
CORRUPTED DATA, OR BUSINESS INTERRUPTION, ARISING OUT OF OR RELATED TO THE
SOFTWARE OR THIS LICENSE, ON ANY THEORY OF LIABILITY, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES. TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE
LAW, THE TOTAL AGGREGATE LIABILITY OF INGOTRON AND ITS LICENSORS ARISING OUT
OF OR RELATED TO THE SOFTWARE OR THIS LICENSE WILL NOT EXCEED THE GREATER OF
(i) THE FEES YOU PAID INGOTRON FOR THE SOFTWARE IN THE TWELVE MONTHS BEFORE
THE EVENT GIVING RISE TO THE CLAIM, OR (ii) ONE HUNDRED US DOLLARS (USD 100).
Nothing in this license excludes or limits any liability that cannot lawfully
be excluded or limited.
6. TERM AND TERMINATION
This license takes effect when you first install or use the Software and
continues until terminated. It terminates automatically, without notice, if
you breach any of its terms. Ingotron may reinstate it in writing at its
discretion. On termination you must immediately stop all use of the Software
and delete or destroy all copies in your possession or control, including
container images and any copies held by your hosting providers, and on
request confirm in writing that you have done so. Data you created with the
Software remains yours. Sections 2 through 6, and this sentence, survive
termination.
7. GENERAL
This license, together with any separate written agreement signed by you and
Ingotron, is the entire agreement between the parties regarding the Software
and supersedes any prior or contemporaneous understandings on that subject.
Where a signed agreement conflicts with this license, the signed agreement
controls. If any provision of this license is held unenforceable, it will be
enforced to the greatest extent permitted or severed, and the remaining
provisions stay in full force. A failure to enforce a provision is not a
waiver of it. You may not assign or transfer this license, in whole or in
part, without Ingotron's prior written consent; any attempted assignment
without that consent is void.
Licensing questions, additional rights, and requests under section 2(d):
hello@ingotron.com
Third-Party Notices — Robot Vault 0.9.7
Robot Vault includes third-party open-source software. This document summarizes the principal components and reproduces the notices that need explanatory context.
Each component named here is licensed to you under its own license terms, not under the Robot Vault Software License. Those open-source licenses govern your use of the components they cover, and nothing in the Robot Vault Software License limits the rights they grant you. Where a component's license requires that its full text accompany the software, that text ships inside the container image that contains the component, at the paths given below.
The appliance bundle also includes THIRD_PARTY_INVENTORY.json, a deterministic
machine-readable inventory of all 824 entries in the source dependency
authorities used by the four first-party release images and frozen robot agent:
the 341 third-party crates in the Linux/amd64 Cargo graph, every external
package entry in the npm
lock, every pin in the four shipped-image/agent Python locks, and every committed
processor vendor wheel. Licence expressions in that file are copied verbatim
from Cargo metadata, the npm lock, or the vendor manifest. Python requirement
locks do not carry licence metadata, so those entries retain the explicit value
NOASSERTION.
That file is a source-derived dependency inventory, not an image SBOM and not a legal conclusion. Release diligence must separately generate SBOMs from the exact final image digests; those SBOMs cover base operating-system packages and other installed material that no source lock describes.
Publication limitation: an identity and licence-declaration inventory is not automatically a complete attribution or licence-text bundle. Cargo, npm, and Python lock authorities do not contain every copyright notice or applicable licence text for statically linked crates and compiled browser code. Before a public release, the owner/legal review must approve the exact attribution, licence-text, and source-offer set derived from the final image evidence; this generated inventory alone does not close that obligation.
The Robot Vault 0.9.7 deployment uses four first-party container images —
robot-vault-ingest, robot-vault-processor, robot-vault-query and
robot-vault-toolkit — together with the unmodified Keycloak 26.7.1
identity-provider image and other third-party services. The Compose files,
installer, configuration templates and documentation are distributed with the
appliance bundle. The /robot bootstrap is a separately signed and published
object; it downloads the signed frozen agent artifact.
FFmpeg, SVT-AV1 and dav1d — the media pipeline
The robot-vault-processor image contains a purpose-built FFmpeg installation
used for video transcoding.
| Component | Version | License |
|---|---|---|
| FFmpeg | 9.0.1 | LGPL-2.1-or-later |
| SVT-AV1 (AV1 encoder) | 3.1.2 | BSD-3-Clause-Clear, with the Alliance for Open Media Patent License 1.0 |
| dav1d (AV1 decoder) | 1.5.4 | BSD-2-Clause |
This FFmpeg is compiled from upstream source under the terms of the GNU Lesser
General Public License, version 2.1 or later, only. It is configured with
--disable-gpl --disable-nonfree --disable-version3, so no GPL-licensed or
nonfree FFmpeg component set is enabled in the build, and it is built as shared
libraries (--enable-shared --disable-static).
Full license texts ship inside the robot-vault-processor image at
/opt/ffmpeg-lgpl/share/licenses/:
FFmpeg-COPYING.LGPLv2.1— the GNU Lesser General Public License, v2.1SVT-AV1-LICENSE.md— the SVT-AV1 BSD-3-Clause-Clear licenseSVT-AV1-PATENTS.md— the Alliance for Open Media Patent License 1.0, verbatimdav1d-COPYING— the dav1d BSD-2-Clause license
The exact component versions, their source archive URLs and the SHA-256 digest
of each archive as it was downloaded and verified during the build are recorded
in the same image at /opt/ffmpeg-lgpl/SOURCES.txt.
LGPL notice
FFmpeg is used in Robot Vault as separate, unmodified shared libraries
(libavcodec, libavformat, libavutil, libavfilter, libswscale,
libswresample), which are invoked through the standalone ffmpeg and
ffprobe executables run as a subprocess. Robot Vault's own code is not linked
against them. SVT-AV1 (libSvtAv1Enc) and dav1d (libdav1d) are likewise
separate shared libraries. You may replace these libraries with modified or
alternative versions, subject to the terms of their licenses.
You may obtain the complete corresponding source code of these libraries from their upstream projects:
- FFmpeg — https://ffmpeg.org/releases/ (source of
ffmpeg-9.0.1.tar.xz) - SVT-AV1 — https://gitlab.com/AOMediaCodec/SVT-AV1
- dav1d — https://code.videolan.org/videolan/dav1d (releases at https://downloads.videolan.org/pub/videolan/dav1d/)
The precise upstream URLs used for the build that ships in this release are
recorded in /opt/ffmpeg-lgpl/SOURCES.txt inside the processor image.
psycopg (LGPL-3.0)
The robot-vault-processor, robot-vault-query and robot-vault-toolkit
images include psycopg 3.3.4 and psycopg-binary 3.3.4, the PostgreSQL
adapter for Python, licensed under the GNU Lesser General Public License,
version 3.0 only.
psycopg is used unmodified, installed from the publisher's own distribution
and loaded as a dynamically imported library across an import psycopg
boundary; no Robot Vault code is derived from it or statically linked into it.
You may replace the installed package with a modified or alternative version of
your own, subject to the terms of the LGPL.
The complete corresponding source code is available from the upstream project at https://github.com/psycopg/psycopg.
Base operating-system packages
Each image is built on a public base image and redistributes that base image's operating-system packages unmodified.
| Image | Base image | Distribution |
|---|---|---|
robot-vault-ingest |
ubuntu:22.04 |
Ubuntu 22.04 |
robot-vault-processor |
ubuntu:22.04 with distro Python 3.10 venv |
Ubuntu 22.04 |
robot-vault-query |
ubuntu:22.04 with distro Python 3.10 venv |
Ubuntu 22.04 |
robot-vault-toolkit |
ubuntu:22.04 with distro Python 3.10 venv |
Ubuntu 22.04 |
| frozen robot agent build/runtime | pinned python:3.10.18-slim-bullseye manifest |
Debian 11 / CPython 3.10.18 |
These images contain the standard system libraries and command-line utilities
of their distributions — the GNU C library, bash, coreutils, OpenSSL,
ca-certificates, zlib and similar — under a mixture of licenses including
GPL-2.0, GPL-3.0, LGPL-2.1, LGPL-3.0, MIT, BSD, Apache-2.0 and the Perl and
Python licenses. Each package's own copyright and license text is present in
the image at /usr/share/doc/<package>/copyright.
These packages are redistributed as published, without modification. Their complete corresponding source code, including for the GPL- and LGPL-licensed packages, is published by the distributions themselves:
- Debian source packages — https://sources.debian.org/
- Ubuntu source packages — https://launchpad.net/ubuntu
Schema-driven ROS 2 MCAP support
The processor does not ship a ROS apt runtime, generated ROS message packages,
or ROS build tooling. It decodes CDR only through the official pure-Python
mcap-ros2-support package, using the ros2msg definition embedded in each
MCAP record. mcap-ros2-support 0.5.7 is MIT-licensed (upstream:
https://github.com/foxglove/mcap); it depends on the separately listed MIT
mcap package. The final runtime intentionally contains neither rclpy nor
the ROS 2 interface/type-support package family.
Python dependencies
The robot-vault-processor, robot-vault-query and robot-vault-toolkit
images install Python packages from their publishers' distributions. The
frozen robot agent is built from exact publisher wheels without modifying
their source and freezes selected modules into its executable. Significant
runtime components include, among others:
| Package | License |
|---|---|
| FastAPI | MIT |
| Starlette | BSD-3-Clause |
| uvicorn | BSD-3-Clause |
| uvloop | MIT |
| httptools | MIT |
| websockets | BSD-3-Clause |
| pydantic, pydantic-core, typing-inspection | MIT |
| annotated-types | MIT |
| anyio, h11 | MIT |
| httpx, httpcore | BSD-3-Clause |
| DuckDB | MIT |
| PyArrow | Apache-2.0 |
| NumPy | BSD-3-Clause |
| Pillow | MIT-CMU |
| boto3, botocore, s3transfer | Apache-2.0 |
| psycopg, psycopg-binary | LGPL-3.0-only (see the section above) |
| redis (redis-py) | MIT |
| prometheus-client | Apache-2.0 AND BSD-2-Clause |
| PyYAML | MIT |
| ruamel.yaml | MIT |
| grpcio, grpcio-tools | Apache-2.0 |
| protobuf | BSD-3-Clause |
| mcap | MIT |
| mcap-ros2-support | MIT |
| rosbags | Apache-2.0 |
| zstandard | BSD-3-Clause |
| cryptography | Apache-2.0 OR BSD-3-Clause |
| PyJWT | MIT |
| click | BSD-3-Clause |
| python-dotenv | BSD-3-Clause |
| python-dateutil | Apache-2.0 / BSD-3-Clause (dual) |
| urllib3, jmespath, pytz, six | MIT |
| idna, pycparser | BSD-3-Clause |
| typing-extensions | PSF-2.0 |
| certifi | MPL-2.0 |
This table is a human-readable selection, not the closure authority. The
generated THIRD_PARTY_INVENTORY.json records every pinned Python requirement
for each shipped first-party image and the agent. Because requirement locks record package
identities and hashes but no licence declaration, every such generated entry
truthfully says NOASSERTION; final installed-distribution metadata is checked
against the exact image SBOM instead of being inferred here.
Two packages in these images carry weak-copyleft terms in addition to
psycopg, and both are used unmodified and are individually replaceable:
certifi(MPL-2.0) — the CA-certificate bundle; source at https://github.com/certifi/python-certifiautocommand(LGPL-3.0), which arrives as a Python packaging helper; source at https://github.com/Lucretiel/autocommand
Each installed Python distribution carries its own license metadata and, where
the publisher includes one, its license file, inside the image's
site-packages directory.
Frozen robot-agent evidence
agent-linux-amd64.tar.gz carries its own CPython runtime and the exact
Linux/amd64 wheel closure used to freeze it. Its root contains
AGENT_DEPENDENCIES.lock.txt (exact pins and wheel SHA-256 values),
AGENT_DEPENDENCY_SBOM.cdx.json (the deterministic build/runtime dependency
BOM), THIRD_PARTY_INVENTORY.json, and publisher licence/notice files under
THIRD_PARTY_LICENSES/, including the CPython 3.10.18 licence and PyInstaller's
bootloader exception terms. The final binary/OS-package scan remains part of
release diligence; the dependency BOM says so explicitly and is not presented
as that scan.
Rust crates — robot-vault-ingest
The ingest server is a Rust binary that statically links its dependency
closure: 341 third-party crates for the shipped Linux/amd64 target, alongside
Robot Vault's own crate. THIRD_PARTY_INVENTORY.json records every crate's
exact name, version, Cargo checksum, source, repository when declared, and
publisher-declared licence expression. Expressions such as MIT OR Apache-2.0
are preserved exactly; the inventory does not choose one branch or turn a
declaration into a concluded licence.
Significant crates in that closure include Tokio, Hyper, axum, tonic, prost,
Serde and serde_json, tracing and tracing-subscriber, rustls, chrono, uuid,
the AWS SDK for Rust (aws-config, aws-sdk-s3, aws-types),
tokio-postgres and deadpool-postgres, metrics and
metrics-exporter-prometheus, sha2, x509-parser, dashmap and
parking_lot.
Copyright notices and licence texts for these crates are published with their source at https://crates.io and in each project's repository. The generated inventory ships in the appliance bundle rather than being available only on request.
JavaScript and browser assets
The robot-vault-query image serves a single-page web application. Only the
compiled browser bundles are shipped; the build toolchain and node_modules
tree are not part of the released image. Components include, among others:
| Component | License |
|---|---|
| React and React DOM | MIT |
| TanStack Query | MIT |
| Apache ECharts | Apache-2.0 |
| ZRender (ECharts rendering engine) | BSD-3-Clause |
| lucide-react (icons) | ISC |
| Geist and Geist Mono (self-hosted fonts) | OFL-1.1 |
| Tailwind CSS (styles compiled into the shipped CSS) | MIT |
| Vite (build tool used to produce the bundles) | MIT |
The notices for the bundled fonts and icons are served with the application at
/ui/licenses/geist-OFL-1.1.txt and /ui/licenses/lucide-ISC.txt.
The generated inventory contains every external entry in the root npm lock, including build and development entries as a deliberate superset of the two compiled SPAs. It preserves each lock entry's exact licence string, integrity, resolved source, development flag, and optional flag. First-party workspace links are excluded.
forge-robotics
The robot-vault-processor image includes forge-robotics 0.2.0 (MIT) and
its declared runtime dependency closure, installed from publisher-built wheels
that are vendored into the build:
| Package | Version | License |
|---|---|---|
| forge-robotics | 0.2.0 | MIT |
| typer | 0.27.1 | MIT |
| rich | 15.0.0 | MIT |
| markdown-it-py | 4.2.0 | MIT |
| mdurl | 0.1.2 | MIT |
| Pygments | 2.20.0 | BSD-2-Clause |
| shellingham | 1.5.4 | ISC |
| annotated-doc | 0.0.5 | MIT |
| PyYAML | 6.0.3 | MIT |
The table reproduces the declarations and exact wheel checksums in the committed vendor manifest; it does not add a licence classification.
Keycloak 26.7.1
The 0.9.7 appliance runs the publisher's unmodified
quay.io/keycloak/keycloak:26.7.1 container image, pinned to the digest in the
signed release manifest. Keycloak is licensed under the Apache License,
Version 2.0 (Apache-2.0). Copyright remains with the Keycloak authors and
other contributors.
The license, complete corresponding source, and dependency notices for the exact version used by this appliance are available from the publisher:
- License: https://github.com/keycloak/keycloak/blob/26.7.1/LICENSE.txt
- Source release: https://github.com/keycloak/keycloak/releases/download/26.7.1/keycloak-26.7.1.tar.gz
- Source repository/tag: https://github.com/keycloak/keycloak/tree/26.7.1
- Third-party license and source notices: https://github.com/keycloak/keycloak/releases/download/26.7.1/third-party-notice-keycloak.html
The Apache-2.0 terms govern Keycloak itself. Components listed in Keycloak's third-party notice remain under their respective licenses.
Separately distributed container images
A Robot Vault deployment runs several third-party container images alongside the Robot Vault images. These are pulled unmodified from their publishers' official distributions at deployment time; Ingotron does not build derived images from them. Each remains subject to its publisher's terms. The final release diligence set records their exact pinned image SBOMs and source/notice evidence separately from the first-party source dependency inventory.
| Image | Component | License |
|---|---|---|
postgres:16.4-alpine |
PostgreSQL, on an Alpine Linux base | PostgreSQL License; the Alpine base packages under their own terms |
minio/minio |
MinIO object storage server | GNU Affero General Public License v3, per MinIO's published terms |
minio/mc |
MinIO Client (mc) |
GNU Affero General Public License v3, per MinIO's published terms |
redis:7-alpine |
Redis, on an Alpine Linux base | Redis's published license terms for the tagged release; the Alpine base packages under their own terms |
prom/prometheus (optional monitoring profile) |
Prometheus | Apache-2.0 |
quay.io/keycloak/keycloak:26.7.1 |
Keycloak identity provider | Apache-2.0; dependency terms in the publisher's notice linked above |
Source code for these components is published by their respective projects: PostgreSQL at https://www.postgresql.org/, MinIO at https://github.com/minio, Redis at https://github.com/redis/redis, and Prometheus at https://github.com/prometheus/prometheus. Exact Keycloak source and notices are linked in Keycloak 26.7.1.
Requesting further information
THIRD_PARTY_INVENTORY.json in the appliance bundle is the complete
source-authority listing for Rust, npm, and Python described above. For the
per-image SBOMs, other licence information about Robot Vault, or source code of
the LGPL-licensed components described above, contact Ingotron at
hello@ingotron.com or through your usual Ingotron point of contact. The
upstream source locations are also listed in this document.