SDK for Creating & Verifying TAIBOMs
Download the TAIBOM SDK
Download the SDK here!
Prerequisites
Docker is required to generate SBOMS & Vulnerability reports
Overview
This SDK provides a command-line interface (CLI) for creating, documenting, signing, and verifying Trusted-AI BOM (TAIBOM) Verifiable Credentials (VCs). It enables the generation of identities, data claims, software bills of materials (SBOMs), and various TAIBOM types for AI systems.
Features:
- Identity creation with keypair generation.
- Generation and signing of data, code, system, datapack, and configuration TAIBOMs.
- SBOM generation and signing for code repositories.
- Validation of TAIBOM claims against their associated hashes.
Installation
To use this SDK, ensure the following dependencies are installed:
- Node.js: Version 14 or higher.
Install the SDK as a global CLI:
npm install -g path/to/your/sdk
CLI Usage
Below are the available commands and their respective options:
General Information
taibom --help
Display the help menu with all commands and options.
Version Information
taibom --version
Show the SDK version.
Commands
1. Generate Identity
Generate an identity with a keypair.
taibom generate-identity <name> <email> <role>
Arguments:
<name>
: The name of the person.<email>
: Email address (validated for proper format).<role>
: The role or designation of the person.
2. Generate Data TAIBOM
Generate a TAIBOM for a specific dataset.
taibom data-taibom <identity_email> <data_directory> [--weights]
Arguments:
<identity_email>
: Email address of the identity signing the TAIBOM.<data_directory>
: Directory containing the data.
Options:
--weights
: Specify if the data directory contains AI weights.
3. Generate SBOM
Generate and sign a Software Bill of Materials (SBOM) for a code repository.
taibom generate-sbom <identity_email> <code_directory> [--cpp]
Arguments:
<identity_email>
: Email address of the identity signing the SBOM.<code_directory>
: Directory containing the code.
Options:
--cpp
: Generate an SBOM for C/C++ code (optional).
4. Generate Code TAIBOM
Create a TAIBOM for a specific version of code.
taibom code-taibom <identity_email> <code_directory> <version> [--sbomTaibom <path>] [--name <code_name>]
Arguments:
<identity_email>
: Email address of the identity signing the TAIBOM.<code_directory>
: Directory containing the code.<version>
: Version number of the code.
Options:
--sbomTaibom <path>
: Reference to an SBOM TAIBOM (optional).--name <code_name>
: Name of the code or package (optional).
5. Generate AI System TAIBOM
Generate a TAIBOM for an AI system.
taibom system-taibom <identity_email> <code_taibom> <data_taibom> [--name <system_name>] [--inferencing]
Arguments:
<identity_email>
: Email address of the identity signing the TAIBOM.<code_taibom>
: Path to the code TAIBOM claim.<data_taibom>
: Path to the data TAIBOM claim.
Options:
--name <system_name>
: Name of the system (optional).--inferencing
: Label the system as "Inferencing" instead of "Training".
6. Generate Datapack TAIBOM
Create a TAIBOM for a dataset pack consisting of multiple datasets.
taibom datapack-taibom <identity_email> <name> <data_taiboms...>
Arguments:
<identity_email>
: Email address of the identity signing the TAIBOM.<name>
: Name of the dataset pack.<data_taiboms...>
: Space-separated paths to data TAIBOM claims.
7. Generate Config TAIBOM
Create a TAIBOM for the configuration of an AI system.
taibom config-taibom <identity_email> <ai_system_taibom> <data_taibom> [--name <config_name>]
Arguments:
<identity_email>
: Email address of the identity signing the TAIBOM.<ai_system_taibom>
: Path to the AI system TAIBOM.<data_taibom>
: Path to the data TAIBOM for the configuration.
Options:
--name <config_name>
: Name of the configuration (optional).
8. Validate Data TAIBOM
Validate the integrity of a data TAIBOM.
taibom validate-data <data_taibom>
Arguments:
<data_taibom>
: Path to the TAIBOM data claim.
9. Validate Code TAIBOM
Validate the integrity of a code TAIBOM.
taibom validate-code <code_taibom>
Arguments:
<code_taibom>
: Path to the TAIBOM code claim.
Examples
Generate Identity
taibom generate-identity "Alice" "alice@example.com" "Data Scientist"
Create Data TAIBOM
taibom data-taibom alice@example.com ./data/dataset --weights
Validate Code TAIBOM
taibom validate-code ./claims/code-taibom.json