Documentation
¶
Overview ¶
Package psql provides utility functions for working with Postgre in the context of a knowledge database.
Index ¶
- func BatchUpdateOsv(db *bun.DB, osvItems []knowledge.OSVItem) error
- func GetOsvByID(db *bun.DB, osvId string) (*knowledge.OSVItem, error)
- func UpdateCWE(db *bun.DB, cwes []knowledge.CWEEntry) error
- func UpdateEPSS(db *bun.DB, epssScores []knowledge.EPSS) error
- func UpdateLicenses(db *bun.DB, licenses []knowledge.License) error
- func UpdateNvd(db *bun.DB, nvd []knowledge.NVDItem) error
- func UpdateOsv(db *bun.DB, osv knowledge.OSVItem) error
- func UpdatePackage(db *bun.DB, pack knowledge.Package) error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func BatchUpdateOsv ¶
BatchUpdateOsv performs efficient batch upsert operations for multiple OSV records. This is significantly more efficient than individual updates when processing many records.
func GetOsvByID ¶
GetOsvByID retrieves an OSV record by its OSV ID.
func UpdateCWE ¶
UpdateCWE updates the CWE (Common Weakness Enumeration) entries in the graph database. It takes a graph driver and a slice of CWEEntry structs as input. For each CWEEntry in the slice, it tries to update the corresponding document in the "CWE" vertex collection. If the document exists and is successfully updated, it generates a changelog and creates a new document in the "REVISIONS" vertex collection. If the document doesn't exist, it creates a new document in the "CWE" vertex collection. Returns an error if any operation fails.
func UpdateEPSS ¶
UpdateCWE updates the CWE (Common Weakness Enumeration) entries in the graph database. It takes a graph driver and a slice of CWEEntry structs as input. For each CWEEntry in the slice, it tries to update the corresponding document in the "CWE" vertex collection. If the document exists and is successfully updated, it generates a changelog and creates a new document in the "REVISIONS" vertex collection. If the document doesn't exist, it creates a new document in the "CWE" vertex collection. Returns an error if any operation fails.
func UpdateOsv ¶
UpdateOsv updates or inserts an OSV document using an efficient upsert operation. This replaces the inefficient check-then-act pattern with a single atomic operation.
func UpdatePackage ¶
UpdatePackage updates a package in the specified graph with the given package information. It takes the graph, package details, and language as input parameters. If the package key is empty, it returns an error. If the package already exists in the graph, it updates the package and creates a revision document with the changelog. If the package doesn't exist, it creates a new package document. It also updates the versions of the package and creates edge documents to link the package with its versions. Returns an error if any operation fails.
Types ¶
This section is empty.