Bills of Materials
A bill of materials (BOM) lists all equipment required to implement an installation. Each BOM is composed of multiple line items, where each line item records the quantity of a particular type and variant of equipment.
BOMs are typically generated from a set of scope rules which filter objects already modeled in NetBox (racks, devices, modules, and cables). Running generate resolves these rules, snapshots the matched objects as assets, and rolls them up into line items grouped by type and variant.
Once a BOM has been approved, it can be fulfilled through one or more purchase orders.
Fields
Name
A unique name for the BOM.
Status
The BOM's lifecycle status. One of:
- Draft (default)
- Approved
- Ordered
- Fulfilled
- Cancelled
Permitted status transitions are controlled by status transition rules.
Last Generated
The timestamp at which the BOM was most recently generated from its scope rules. This field is set automatically and is not directly editable.
Current
Indicates whether the BOM reflects the current state of its scope rules. This flag is cleared automatically when a scope rule is added, modified, or removed, and is restored when the BOM is regenerated. A BOM which is not current must remain in draft status until regenerated.
Archived
Indicates whether the BOM has been archived. Archiving preserves a BOM for future reference without disturbing its status or other attributes. Archived BOMs are hidden from the BOM list view by default; set the Archived list filter to Yes to view them. A BOM can be archived or unarchived with the Archive / Unarchive button on its detail page, through bulk editing, or via the edit form, import, and REST API. The REST API returns archived objects by default and accepts ?archived=true / ?archived=false to filter them.
While a BOM is archived it is read-only in the UI: it cannot be edited, generated, or have its status changed, and its scope rules and line items cannot be added, modified, or deleted. Unarchive the BOM to resume editing. The BOM can still be deleted while archived.
Generation
Generating a BOM is permitted only while it is in draft status. The generation process:
- Deletes all existing assets and auto-generated line items associated with the BOM. Manually-created line items are preserved.
- Evaluates every enabled scope rule against its target model's native filterset to collect matching racks, devices, modules, and cables. Untyped cables and untyped racks are skipped, as they cannot be resolved to a unique line item.
- Creates an asset for each matched instance.
- Groups the matched objects by type and variant attributes and creates one line item per unique combination, with the quantity set to the number of matched objects.
- Records the time of generation and marks the BOM as current.
In the web UI, generation is triggered with the Generate button on a draft BOM. The same operation is available via the REST API by sending a POST request to /api/plugins/asset-lifecycle/boms/<id>/generate/. The request requires permission to change the BOM and returns the updated BOM on success; it responds with 400 if the BOM is not in draft status or has no enabled scope rules.
Assets
An asset is a junction between a BOM and an individual NetBox object (a rack, device, module, or cable) gathered by the BOM's scope rules. The set of assets ...
BOM Line Items
A BOM line item represents a unique item on a BOM and the quantity required. Each line item references a specific type - a rack type, device type, module typ...