Understanding ML-BOM in AI Catalog
Learn ML-BOM scope, fields, and editability for models in JFrog AI Catalog.
ML-BOM (Machine Learning Bill of Materials) is a standardized metadata record attached to models governed in JFrog AI Catalog. It gives ML engineers, platform teams, and compliance officers a single place to review model provenance, license, architecture, inputs and outputs, training context, and risk assessment. You can export that record as CycloneDX v1.7 or SPDX v3.0 JSON for audits.
The system auto-harvests available metadata from the model source (for example, AI Registry and AI Gateway details for external models, AI Catalog for package models, and JFrog ML job logs for custom models). You can enrich editable fields in the UI where your permissions allow.
- Where ML-BOM Appears
- ML-BOM Scope by Model Type
- ML-BOM Fields
- Field Editability by Model Type
- Auto-Harvested Metadata
Where ML-BOM Appears
In the JFrog Platform, ML-BOM appears on the ML-BOM tab in AI Catalog Registry. For navigation steps, see View, Edit, and Export ML-BOM.
ML-BOM Scope by Model Type
ML-BOM scope depends on the model type.
| Model type | Where to open ML-BOM | BOM scope |
|---|---|---|
| External models | Model page in Registry, with tabs Model info, Runtime, and ML-BOM | One ML-BOM per model |
| Model packages | Same as external models. Model page in Registry with ML-BOM tab | One ML-BOM per model |
| Custom models | Model Version page, with tabs Overview, Builds, and ML-BOM | One ML-BOM per model version |
| Custom model builds | Individual Build page, with tabs Logs, Code, Security, Deployments, and ML-BOM | Same ML-BOM as parent version (when build originates from a version) |
For custom model builds that originate from a version, the ML-BOM on the build page matches the ML-BOM on the parent version. You see the same metadata whether you open ML-BOM on the version or on a build created from that version.
Note: Package models follow the same per-model scope as external models.
ML-BOM Fields
Each ML-BOM exposes 13 standardized fields. The search field on the ML-BOM tab filters fields in the table.
| Field | Description |
|---|---|
| Model Name | Standardized slug or display name in the registry. |
| Model Version | Immutable version ID (SemVer or weights hash). |
| Supplier / Provider | Upstream vendor or organization behind the model. |
| Author | Identity that triggered the push or register event. |
| Unique ID (PURL) | Globally unique Package URL (PURL) to identify and fetch the model. |
| Release Date | ISO-8601 build or promotion timestamp. |
| License | Defined license of the model (for example, MIT or a provider terms-of-use string). |
| Model Architecture | Model structure and framework. |
| Parameters | Parameter count and hyperparameters. |
| Inputs / Outputs | I/O schema: tensor shapes and modalities. |
| Compute Resources | Hardware, training time, and FLOPS used for training. |
| Dataset Name / ID | Training data URI, description, or checksum. |
| Risk Assessment | Known biases, vulnerabilities, and guardrails. |
Example values from the UI:
- External model PURL:
pkg:generic/google/gemini-2.0-flash - Custom model PURL:
pkg:jfrog-ml/credit_risk_catboost@v005 - External MaaS models may show Parameters as
Undisclosed, Compute Resources asN/A (MaaS), and Dataset Name / ID asN/A (MaaS).
Field Editability by Model Type
Most fields are read-only because they are harvested from the registry, training job, or provider metadata. Editable fields vary by model type.
| Field | Custom models | Model packages | External models |
|---|---|---|---|
| Supplier / Provider | Editable | Read-only | Read-only |
| Author | Editable | Read-only | Read-only |
| License | Editable | Read-only | Read-only |
| Compute Resources | Editable when not auto-harvested | Read-only | N/A (MaaS) |
| Dataset Name / ID | Editable | Read-only | N/A (MaaS) |
| Risk Assessment | Editable | Editable | Editable |
| All other fields | Read-only | Read-only | Read-only |
On external and package models, Risk Assessment is typically the primary field users enrich manually. On custom models, you can also edit Supplier / Provider, Author, License, Compute Resources (when the value was not harvested from a training job), and Dataset Name / ID.
For step-by-step edit instructions, see View, Edit, and Export ML-BOM.
Auto-Harvested Metadata
ML-BOM data is populated automatically when a model is registered or a custom model version is created, with no required manual input for read-only fields.
| Model type | Primary harvest sources |
|---|---|
| Custom models | JFrog ML job logs and SDK-logged training context (architecture, parameters, dataset name/ID, release date, compute resources when available) |
| Model packages | AI Catalog metadata (including Hugging Face model card fields where available) |
| External models | AI Registry and AI Gateway endpoint details (provider, author, license, parameters, inputs/outputs) |
Frequently Asked Questions
This section provides answers to frequently asked questions about ML-BOM in AI Catalog.
FAQs
Q: Where do I find ML-BOM for a package model versus a custom model?
A: Package and external models expose ML-BOM on the model page in Registry (alongside Model info and Runtime). Custom models expose ML-BOM on each Version page and on individual Build pages. See ML-BOM Scope by Model Type.
Q: Is the ML-BOM on a build page different from the version ML-BOM?
A: For builds that originate from a version, the build ML-BOM matches the parent version's ML-BOM. See ML-BOM Scope by Model Type.
Q: Which ML-BOM fields can I edit?
A: It depends on model type. All model types allow editing Risk Assessment. Custom models also allow editing Supplier / Provider, Author, License, Compute Resources when that field was not auto-harvested, and Dataset Name / ID. See Field Editability by Model Type.
Q: What is the Unique ID (PURL) field?
A: PURL (Package URL) is a globally unique identifier for the model in the registry. Examples include pkg:generic/google/gemini-2.0-flash for an external model and pkg:jfrog-ml/credit_risk_catboost@v005 for a custom model version.
