doc/development/sec/sbom_dependency_graph_ingestion_overview.md
The process starts after all SBoM::Occurrence models have been ingested because we ingest them in slices and it would be tricky to process that in slices as well.
All work happens in a background worker which will be added in a subsequent MR so that we do not increase the time it takes to ingest an SBoM report. This means that there will be a delay between when the SBoM report is ingested and before the dependency graph is updated.
All record pertaining to dependency graphs are stored in sbom_graph_paths database table and has foreign keys to sbom_occurrences as well as projects for easier filtering.
[!note] This feature is a work in progress so this document can get out of date
Sbom::Occurrence because (name, version) pair is not precise enough when working with monorepos.Sbom::Occurrence#ancestors will contain entries.Sbom::Occurrence#ancestors will contain an {}.Sbom::Occurrence for a given dependency version, for example in monorepos. These Sbom::Occurrence rows should have a different input_file_path and source_id (however we will not use source_id when building the dependency tree to avoid SQL JOIN).