Docs
SBOM imports
Supported manifest and SBOM formats and where to upload them.
Supported formats
Audito's importer auto-detects the file format from the filename and contents. Supported formats today:
package.json— npm manifest. We extract thedependencies,devDependencies,peerDependencies, andoptionalDependenciesblocks.package-lock.json— npm v2 / v3 lockfile. Lockfiles win over the manifest when both are uploaded because they carry resolved versions.requirements.txt— pip requirements with version pins.pyproject.toml— PEP 621 / Poetry / uv project manifests.- CycloneDX JSON — generic SBOM input. Useful when your build system produces SBOMs for compliance.
- conda environment files — resolved through Repology to PyPI / debian / alpine where possible; entries that don't map to a scannable ecosystem are reported in warnings.
Files larger than the configured cap are rejected with a clear error message.
Where to import
Two surfaces both flow through the same parser, so behavior is identical:
- Inside an existing library — open the library detail page, click
Import dependencies. The dialog parses the file, lists every entry it
found, flags rows that conflict with what's already in the library, and
lets you opt to skip conflicts or overwrite. On commit the new rows insert,
the changed rows update, and a single
dependency.bulk_importedaudit event is recorded for the batch. - As a brand-new library —
/dashboard/libraries → New library → Upload. Audito creates the library with the rightsource_kindfor the format you uploaded (e.g.package_json,requirements_txt,pyproject_toml,otherfor CycloneDX) and inserts every parsed dependency in one go.
Conflict handling
The import dialog highlights rows whose (ecosystem, package_name) pair
already exists in the library. By default, conflicts are skipped — your
existing row keeps its version_spec, resolved_version, and notes. Toggle
"overwrite conflicts" if you'd rather the import update them in place.
Within a single batch, duplicate (ecosystem, package_name) rows are
de-duplicated automatically — common when a manifest and lockfile shadow the
same package.
What happens after commit
If at least one row was inserted or updated, Audito triggers a library scan in the background (the same scan that runs on manual library creation). You don't need to refresh — the activity feed and findings inbox start updating once the scan finishes.
Exports
Outbound SBOM export isn't part of the current product. Audito today is an inbound SBOM consumer; if you need to round-trip CycloneDX out to another tool, file an issue on the repo with your use case.