Ingotron Robot Vault 0.9.7
Source LICENSE · notices · source inventory
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.1
  • SVT-AV1-LICENSE.md — the SVT-AV1 BSD-3-Clause-Clear license
  • SVT-AV1-PATENTS.md — the Alliance for Open Media Patent License 1.0, verbatim
  • dav1d-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:

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:


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:

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:

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.

    ↑↓ move ↵ open esc close