Versions in this module Expand all Collapse all v1 v1.0.0 Feb 20, 2026 Changes in this version + const PolicyChange + var V = validator.New() + func BootstrapOrg(rbac AccessControl, userID string, userRole Role) error + func FetchMembersOfOrganization(ctx Context) ([]dtos.UserDTO, error) + func GetArtifact(ctx Context) models.Artifact + func GetArtifactName(ctx Context) (string, error) + func GetAsset(ctx Context) models.Asset + func GetAssetSlug(ctx Context) (string, error) + func GetAssetVersion(ctx Context) models.AssetVersion + func GetAssetVersionSlug(ctx Context) (string, error) + func GetBadgeSVG(label string, values []BadgeValues) string + func GetEventID(ctx Context) (string, error) + func GetOrg(c Context) models.Org + func GetOrgSlug(ctx Context) (string, error) + func GetParam(ctx Context, param string) string + func GetProject(ctx Context) models.Project + func GetProjectSlug(ctx Context) (string, error) + func GetRepositoryID(asset *models.Asset) (string, error) + func GetURLDecodedParam(ctx Context, param string) (string, error) + func GetVulnID(ctx Context) (string, dtos.VulnType, error) + func HasOrganization(c Context) bool + func HasProject(c Context) bool + func IdentityEmail(traits any) string + func IdentityName(traits any) string + func InitLogger() + func IsPublicRequest(ctx Context) bool + func LoadConfig() error + func MaybeGetArtifact(ctx Context) (models.Artifact, error) + func MaybeGetAssetVersion(ctx Context) (models.AssetVersion, error) + func Ptr[T any](t T) *T + func SanitizeParam(s string) string + func SetArtifact(ctx Context, artifact models.Artifact) + func SetAsset(ctx Context, asset models.Asset) + func SetAssetSlug(ctx Context, assetSlug string) + func SetAssetVersion(ctx Context, assetVersion models.AssetVersion) + func SetAuthAdminClient(ctx Context, i AdminClient) + func SetEventID(ctx Context, eventID string) + func SetIsPublicRequest(ctx Context) + func SetOrg(c Context, org models.Org) + func SetOrgSlug(ctx Context, orgSlug string) + func SetProject(ctx Context, project models.Project) + func SetProjectSlug(ctx Context, projectSlug string) + func SetRBAC(ctx Context, rbac AccessControl) + func SetSession(ctx Context, session AuthSession) + func SetThirdPartyIntegration(ctx Context, i IntegrationAggregate) + type AccessControl interface + AllowRole func(role Role, object Object, action []Action) error + AllowRoleInAsset func(asset string, role Role, object Object, action []Action) error + AllowRoleInProject func(project string, role Role, object Object, action []Action) error + GetAllAssetsForUser func(user string) ([]string, error) + GetAllMembersOfAsset func(projectID string) ([]string, error) + GetAllMembersOfOrganization func() ([]string, error) + GetAllMembersOfProject func(projectID string) ([]string, error) + GetAllProjectsForUser func(user string) ([]string, error) + GetAllRoles func(user string) []string + GetAssetRole func(user string, asset string) (Role, error) + GetDomainRole func(user string) (Role, error) + GetExternalEntityProviderID func() *string + GetOwnerOfOrganization func() (string, error) + GetProjectRole func(user string, project string) (Role, error) + GrantRole func(subject string, role Role) error + GrantRoleInAsset func(subject string, role Role, asset string) error + GrantRoleInProject func(subject string, role Role, project string) error + HasAccess func(subject string) (bool, error) + InheritAssetRole func(roleWhichGetsPermissions, roleWhichProvidesPermissions Role, asset string) error + InheritProjectRole func(roleWhichGetsPermissions, roleWhichProvidesPermissions Role, project string) error + InheritProjectRolesAcrossProjects func(roleWhichGetsPermissions, roleWhichProvidesPermissions ProjectRole) error + InheritRole func(roleWhichGetsPermissions, roleWhichProvidesPermissions Role) error + IsAllowed func(subject string, object Object, action Action) (bool, error) + IsAllowedInAsset func(asset *models.Asset, user string, object Object, action Action) (bool, error) + IsAllowedInProject func(project *models.Project, user string, object Object, action Action) (bool, error) + LinkDomainAndProjectRole func(domainRoleWhichGetsPermission, projectRoleWhichProvidesPermissions Role, ...) error + LinkProjectAndAssetRole func(projectRoleWhichGetsPermission, assetRoleWhichProvidesPermissions Role, ...) error + RevokeAllRolesInAssetForUser func(user string, asset string) error + RevokeAllRolesInProjectForUser func(user string, project string) error + RevokeRole func(subject string, role Role) error + RevokeRoleInAsset func(subject string, role Role, asset string) error + RevokeRoleInProject func(subject string, role Role, project string) error + func GetRBAC(ctx Context) AccessControl + type Action string + const ActionCreate + const ActionDelete + const ActionRead + const ActionUpdate + type AdminClient interface + GetIdentity func(ctx context.Context, userID string) (client.Identity, error) + GetIdentityWithCredentials func(ctx context.Context, userID string) (client.Identity, error) + ListUser func(client client.IdentityAPIListIdentitiesRequest) ([]client.Identity, error) + func GetAuthAdminClient(ctx Context) AdminClient + type AdminClientImplementation struct + func NewAdminClient(client *client.APIClient) AdminClientImplementation + func (a AdminClientImplementation) GetIdentity(ctx context.Context, userID string) (client.Identity, error) + func (a AdminClientImplementation) GetIdentityWithCredentials(ctx context.Context, userID string) (client.Identity, error) + func (a AdminClientImplementation) ListUser(request client.IdentityAPIListIdentitiesRequest) ([]client.Identity, error) + type AffectedComponentRepository interface + CreateAffectedComponentsUsingUnnest func(tx DB, components []models.AffectedComponent) error + DeleteAll func(tx DB, ecosystem string) error + GetAllAffectedComponentsID func() ([]string, error) + Save func(tx DB, affectedComponent *models.AffectedComponent) error + SaveBatch func(tx DB, affectedPkgs []models.AffectedComponent) error + type ArtifactObject struct + ArtifactName string + type ArtifactRepository interface + DeleteArtifact func(tx DB, assetID uuid.UUID, assetVersionName string, artifactName string) error + GetAllArtifactAffectedByDependencyVuln func(tx DB, vulnID string) ([]models.Artifact, error) + GetByAssetIDAndAssetVersionName func(assetID uuid.UUID, assetVersionName string) ([]models.Artifact, error) + GetByAssetVersions func(assetID uuid.UUID, assetVersionNames []string) ([]models.Artifact, error) + ReadArtifact func(name string, assetVersionName string, assetID uuid.UUID) (models.Artifact, error) + type ArtifactRiskHistoryRepository interface + GetRiskHistory func(artifactName *string, assetVersionName string, assetID uuid.UUID, ...) ([]models.ArtifactRiskHistory, error) + GetRiskHistoryByRelease func(releaseID uuid.UUID, start, end time.Time) ([]models.ArtifactRiskHistory, error) + UpdateRiskAggregation func(assetRisk *models.ArtifactRiskHistory) error + type ArtifactService interface + DeleteArtifact func(assetID uuid.UUID, assetVersionName string, artifactName string) error + GetArtifactsByAssetIDAndAssetVersionName func(assetID uuid.UUID, assetVersionName string) ([]models.Artifact, error) + ReadArtifact func(name string, assetVersionName string, assetID uuid.UUID) (models.Artifact, error) + SaveArtifact func(artifact *models.Artifact) error + type AssetObject struct + AvailabilityRequirement string + CVSSAutomaticTicketThreshold *float64 + ConfidentialityRequirement string + Description string + EnableTicketRange bool + ExternalEntityID *string + ExternalEntityProviderID *string + ID uuid.UUID + IntegrityRequirement string + LastContainerScan *time.Time + LastDastScan *time.Time + LastIacScan *time.Time + LastSastScan *time.Time + LastScaScan *time.Time + LastSecretScan *time.Time + Name string + ProjectID uuid.UUID + ReachableFromInternet bool + RepositoryID *string + RepositoryName *string + RiskAutomaticTicketThreshold *float64 + SigningPubKey *string + Slug string + func ToAssetObject(a models.Asset) AssetObject + type AssetRepository interface + Delete func(tx DB, id uuid.UUID) error + FindAssetByExternalProviderID func(externalEntityProviderID string, externalEntityID string) (*models.Asset, error) + FindByName func(name string) (models.Asset, error) + GetAllAssetsFromDB func() ([]models.Asset, error) + GetAllowedAssetsByProjectID func(allowedAssetIDs []string, projectID uuid.UUID) ([]models.Asset, error) + GetAssetIDBySlug func(projectID uuid.UUID, slug string) (uuid.UUID, error) + GetAssetsWithVulnSharingEnabled func(orgID uuid.UUID) ([]models.Asset, error) + GetByOrgID func(organizationID uuid.UUID) ([]models.Asset, error) + GetByProjectID func(projectID uuid.UUID) ([]models.Asset, error) + GetFQNByID func(id uuid.UUID) (string, error) + ReadBySlug func(projectID uuid.UUID, slug string) (models.Asset, error) + ReadBySlugUnscoped func(projectID uuid.UUID, slug string) (models.Asset, error) + ReadWithAssetVersions func(assetID uuid.UUID) (models.Asset, error) + Update func(tx DB, asset *models.Asset) error + type AssetService interface + BootstrapAsset func(rbac AccessControl, asset *models.Asset) error + CreateAsset func(rbac AccessControl, currentUserID string, asset models.Asset) (*models.Asset, error) + GetCVSSBadgeSVG func(results []models.ArtifactRiskHistory) string + UpdateAssetRequirements func(asset models.Asset, responsible string, justification string) error + type AssetVersionObject struct + AssetID uuid.UUID + DefaultBranch bool + Metadata map[string]any + Name string + SigningPubKey *string + Slug string + Type string + func ToAssetVersionObject(av models.AssetVersion) AssetVersionObject + type AssetVersionRepository interface + All func() ([]models.AssetVersion, error) + Begin func() DB + Delete func(tx DB, assetVersion *models.AssetVersion) error + DeleteOldAssetVersions func(day int) (int64, error) + DeleteOldAssetVersionsOfAsset func(assetID uuid.UUID, day int) (int64, error) + FindOrCreate func(assetVersionName string, assetID uuid.UUID, tag bool, ...) (models.AssetVersion, error) + GetAllTagsAndDefaultBranchForAsset func(tx DB, assetID uuid.UUID) ([]models.AssetVersion, error) + GetAssetVersionsByAssetID func(tx DB, assetID uuid.UUID) ([]models.AssetVersion, error) + GetAssetVersionsByAssetIDWithArtifacts func(tx DB, assetID uuid.UUID) ([]models.AssetVersion, error) + GetDB func(DB) DB + GetDefaultAssetVersion func(assetID uuid.UUID) (models.AssetVersion, error) + GetDefaultAssetVersionsByProjectID func(projectID uuid.UUID) ([]models.AssetVersion, error) + GetDefaultAssetVersionsByProjectIDs func(projectIDs []uuid.UUID) ([]models.AssetVersion, error) + Read func(assetVersionName string, assetID uuid.UUID) (models.AssetVersion, error) + ReadBySlug func(assetID uuid.UUID, slug string) (models.AssetVersion, error) + Save func(tx DB, assetVersion *models.AssetVersion) error + UpdateAssetDefaultBranch func(assetID uuid.UUID, defaultBranch string) error + type AssetVersionService interface + BuildOpenVeX func(asset models.Asset, assetVersion models.AssetVersion, organizationSlug string, ...) vex.VEX + BuildVeX func(frontendURL string, orgName string, orgSlug string, projectSlug string, ...) *normalize.SBOMGraph + GetAssetVersionsByAssetID func(assetID uuid.UUID) ([]models.AssetVersion, error) + LoadFullSBOMGraph func(assetVersion models.AssetVersion) (*normalize.SBOMGraph, error) + UpdateSBOM func(tx DB, org models.Org, project models.Project, asset models.Asset, ...) (*normalize.SBOMGraph, error) + type AttestationRepository interface + GetByAssetID func(assetID uuid.UUID) ([]models.Attestation, error) + GetByAssetVersionAndAssetID func(assetID uuid.UUID, assetVersion string) ([]models.Attestation, error) + type AuthSession interface + GetScopes func() []string + GetUserID func() string + func GetSession(ctx Context) AuthSession + type BadgeValues struct + Color string + Key string + Value int + type CSAFService interface + GetVexFromCsafProvider func(purl packageurl.PackageURL, domain string) (*cyclonedx.BOM, error) + type CVERelationshipRepository interface + FilterOutRelationsWithInvalidTargetCVE func(tx DB) error + GetAllRelationsForCVE func(tx DB, targetCVEID string) ([]models.CVERelationship, error) + GetAllRelationshipsForCVEBatch func(tx DB, sourceCVEIDs []string) ([]models.CVERelationship, error) + GetRelationshipsByTargetCVEBatch func(tx DB, targetCVEIDs []string) ([]models.CVERelationship, error) + type ComponentProjectRepository interface + FindAllOutdatedProjects func() ([]models.ComponentProject, error) + type ComponentRepository interface + CreateComponents func(tx DB, components []models.ComponentDependency) error + FetchInformationSources func(artifact *models.Artifact) ([]models.ComponentDependency, error) + FindByPurl func(tx DB, purl string) (models.Component, error) + HandleStateDiff func(tx DB, assetVersion models.AssetVersion, wholeAssetGraph *normalize.SBOMGraph, ...) error + LoadComponents func(tx DB, assetVersionName string, assetID uuid.UUID) ([]models.ComponentDependency, error) + LoadComponentsWithProject func(tx DB, overwrittenLicenses []models.LicenseRisk, assetVersionName string, ...) (Paged[models.ComponentDependency], error) + RemoveInformationSources func(artifact *models.Artifact, rootNodePurls []string) error + SaveBatch func(tx DB, components []models.Component) error + SearchComponentOccurrencesByProject func(tx DB, projectIDs []uuid.UUID, pageInfo PageInfo, search string) (Paged[models.ComponentOccurrence], error) + type ComponentService interface + FetchInformationSources func(artifact *models.Artifact) ([]models.ComponentDependency, error) + GetAndSaveLicenseInformation func(tx DB, assetVersion models.AssetVersion, artifactName *string, ...) ([]models.Component, error) + GetLicense func(component models.Component) (models.Component, error) + RefreshComponentProjectInformation func(project models.ComponentProject) + RemoveInformationSources func(artifact *models.Artifact, rootNodePurls []string) error + type ConfigRepository interface + GetDB func(tx DB) DB + Save func(tx DB, config *models.Config) error + type ConfigService interface + GetJSONConfig func(key string, v any) error + SetJSONConfig func(key string, v any) error + type Context = echo.Context + type CveRepository interface + CreateCVEAffectedComponentsEntries func(tx DB, cve *models.CVE, components []models.AffectedComponent) error + CreateCVEWithConflictHandling func(tx DB, cve *models.CVE) error + FindAllListPaged func(tx DB, pageInfo PageInfo, filter []FilterQuery, sort []SortQuery) (Paged[models.CVE], error) + FindByID func(id string) (models.CVE, error) + FindCVE func(tx DB, id string) (models.CVE, error) + FindCVEs func(tx DB, ids []string) ([]models.CVE, error) + GetAllCVEsID func() ([]string, error) + GetLastModDate func() (time.Time, error) + Save func(tx DB, cve *models.CVE) error + SaveCveAffectedComponents func(tx DB, cveID string, affectedComponentHashes []string) error + UpdateCISAKEVBatch func(tx DB, batch []models.CVE) error + UpdateEpssBatch func(tx DB, batch []models.CVE) error + type CweRepository interface + GetAllCWEsID func() ([]string, error) + SaveBatch func(tx DB, cwes []models.CWE) error + type DB = *gorm.DB + type DaemonRunner interface + RunAssetPipeline func(forceAll bool) + RunDaemonPipelineForAsset func(assetID uuid.UUID) error + Start func() + UpdateFixedVersions func() error + UpdateOpenSourceInsightInformation func() error + UpdateVulnDB func() error + type DependencyVulnRepository interface + ApplyAndSave func(tx DB, dependencyVuln *models.DependencyVuln, vulnEvent *models.VulnEvent) error + FindByCVEAndComponentPurl func(tx DB, assetID uuid.UUID, cveID string, componentPurl string) ([]models.DependencyVuln, error) + GetAllByAssetIDAndState func(tx DB, assetID uuid.UUID, state dtos.VulnState, ...) ([]models.DependencyVuln, error) + GetAllOpenVulnsByAssetVersionNameAndAssetID func(tx DB, artifactName *string, assetVersionName string, assetID uuid.UUID) ([]models.DependencyVuln, error) + GetAllVulnsByArtifact func(tx DB, artifact models.Artifact) ([]models.DependencyVuln, error) + GetAllVulnsByAssetID func(tx DB, assetID uuid.UUID) ([]models.DependencyVuln, error) + GetAllVulnsByAssetIDWithTicketIDs func(tx DB, assetID uuid.UUID) ([]models.DependencyVuln, error) + GetAllVulnsForTagsAndDefaultBranchInAsset func(tx DB, assetID uuid.UUID, excludedStates []dtos.VulnState) ([]models.DependencyVuln, error) + GetByAssetID func(tx DB, assetID uuid.UUID) ([]models.DependencyVuln, error) + GetByAssetVersionPaged func(tx DB, assetVersionName string, assetID uuid.UUID, pageInfo PageInfo, ...) (Paged[models.DependencyVuln], map[string]int, error) + GetDefaultDependencyVulnsByOrgIDPaged func(tx DB, userAllowedProjectIds []string, pageInfo PageInfo, search string, ...) (Paged[models.DependencyVuln], error) + GetDefaultDependencyVulnsByProjectIDPaged func(tx DB, projectID uuid.UUID, pageInfo PageInfo, search string, ...) (Paged[models.DependencyVuln], error) + GetDependencyVulnByCVEIDAndAssetID func(tx DB, cveID string, assetID uuid.UUID) ([]models.DependencyVuln, error) + GetDependencyVulnsByAssetVersion func(tx DB, assetVersionName string, assetID uuid.UUID, artifactName *string) ([]models.DependencyVuln, error) + GetDependencyVulnsByAssetVersionPagedAndFlat func(tx DB, assetVersionName string, assetVersionID uuid.UUID, pageInfo PageInfo, ...) (Paged[models.DependencyVuln], error) + GetDependencyVulnsByDefaultAssetVersion func(tx DB, assetID uuid.UUID, artifactName *string) ([]models.DependencyVuln, error) + GetDependencyVulnsByOtherAssetVersions func(tx DB, assetVersionName string, assetID uuid.UUID) ([]models.DependencyVuln, error) + GetDependencyVulnsByPurl func(tx DB, purls []string) ([]models.DependencyVuln, error) + GetHintsInOrganizationForVuln func(tx DB, orgID uuid.UUID, pURL string, cveID string) (dtos.DependencyVulnHints, error) + ListByAssetAndAssetVersion func(assetVersionName string, assetID uuid.UUID) ([]models.DependencyVuln, error) + ListUnfixedByAssetAndAssetVersion func(tx DB, assetVersionName string, assetID uuid.UUID, artifactName *string) ([]models.DependencyVuln, error) + type DependencyVulnService interface + CreateVulnEventAndApply func(tx DB, assetID uuid.UUID, userID string, dependencyVuln *models.DependencyVuln, ...) (models.VulnEvent, error) + RecalculateRawRiskAssessment func(tx DB, userID string, dependencyVulns []models.DependencyVuln, ...) ([]models.DependencyVuln, error) + SyncAllIssues func(org models.Org, project models.Project, asset models.Asset, ...) error + SyncIssues func(org models.Org, project models.Project, asset models.Asset, ...) error + UserDetectedDependencyVulnInAnotherArtifact func(tx DB, vulnerabilities []models.DependencyVuln, artifactName string) error + UserDetectedDependencyVulns func(tx DB, artifactName string, dependencyVulns []models.DependencyVuln, ...) error + UserDetectedExistingVulnOnDifferentBranch func(tx DB, artifactName string, ...) error + UserDidNotDetectDependencyVulnInArtifactAnymore func(tx DB, vulnerabilities []models.DependencyVuln, artifactName string) error + UserFixedDependencyVulns func(tx DB, userID string, dependencyVulns []models.DependencyVuln, ...) error + type DependencyVulnsDetectedEvent struct + Artifact ArtifactObject + Asset AssetObject + AssetVersion AssetVersionObject + Org OrgObject + Project ProjectObject + Vulns any + type Environmental struct + AvailabilityRequirements string + ConfidentialityRequirements string + IntegrityRequirements string + func GetEnvironmental(ctx Context) Environmental + func GetEnvironmentalFromAsset(m models.Asset) Environmental + func SanitizeEnv(env Environmental) Environmental + type ExploitRepository interface + GetAllExploitsID func() ([]string, error) + SaveBatch func(tx DB, exploits []models.Exploit) error + type ExternalEntityProviderService interface + RefreshExternalEntityProviderProjects func(ctx Context, org models.Org, user string) error + SyncOrgs func(c Context) ([]*models.Org, error) + TriggerOrgSync func(c Context) error + TriggerSync func(c echo.Context) error + type ExternalEntitySlug string + func FromStringToExternalEntitySlug(s string) (ExternalEntitySlug, error) + func (e ExternalEntitySlug) IsValid() bool + func (e ExternalEntitySlug) ProviderID() string + func (e ExternalEntitySlug) SameAs(slug string) bool + func (e ExternalEntitySlug) Slug() string + func (e ExternalEntitySlug) String() string + type ExternalReferenceRepository interface + FindByAssetVersion func(tx DB, assetID uuid.UUID, assetVersionName string) ([]models.ExternalReference, error) + type ExternalUserRepository interface + FindByOrgID func(tx DB, orgID uuid.UUID) ([]models.ExternalUser, error) + GetDB func(tx DB) DB + Save func(db DB, user *models.ExternalUser) error + type FilterQuery struct + Field string + FieldValue any + Operator string + func GetFilterQuery(ctx Context) []FilterQuery + func (f FilterQuery) SQL() string + func (f FilterQuery) Value() any + type FirstPartyVulnRepository interface + ApplyAndSave func(tx DB, dependencyVuln *models.FirstPartyVuln, vulnEvent *models.VulnEvent) error + Begin func() DB + GetByAssetID func(tx DB, assetID uuid.UUID) ([]models.FirstPartyVuln, error) + GetByAssetVersion func(tx DB, assetVersionName string, assetID uuid.UUID) ([]models.FirstPartyVuln, error) + GetByAssetVersionPaged func(tx DB, assetVersionName string, assetID uuid.UUID, pageInfo PageInfo, ...) (Paged[models.FirstPartyVuln], map[string]int, error) + GetDefaultFirstPartyVulnsByOrgIDPaged func(tx DB, userAllowedProjectIds []string, pageInfo PageInfo, search string, ...) (Paged[models.FirstPartyVuln], error) + GetDefaultFirstPartyVulnsByProjectIDPaged func(tx DB, projectID uuid.UUID, pageInfo PageInfo, search string, ...) (Paged[models.FirstPartyVuln], error) + GetFirstPartyVulnsByOtherAssetVersions func(tx DB, assetVersionName string, assetID uuid.UUID, scannerID string) ([]models.FirstPartyVuln, error) + ListByScanner func(assetVersionName string, assetID uuid.UUID, scannerID string) ([]models.FirstPartyVuln, error) + ListUnfixedByAssetAndAssetVersionAndScanner func(assetVersionName string, assetID uuid.UUID, scannerID string) ([]models.FirstPartyVuln, error) + Save func(tx DB, vuln *models.FirstPartyVuln) error + SaveBatch func(tx DB, vulns []models.FirstPartyVuln) error + Transaction func(txFunc func(DB) error) error + type FirstPartyVulnService interface + SyncAllIssues func(org models.Org, project models.Project, asset models.Asset, ...) error + SyncIssues func(org models.Org, project models.Project, asset models.Asset, ...) error + UpdateFirstPartyVulnState func(tx DB, userID string, firstPartyVuln *models.FirstPartyVuln, statusType string, ...) (models.VulnEvent, error) + UserDetectedExistingFirstPartyVulnOnDifferentBranch func(tx DB, scannerID string, ...) error + UserDetectedFirstPartyVulns func(tx DB, userID string, scannerID string, ...) error + UserFixedFirstPartyVulns func(tx DB, userID string, firstPartyVulns []models.FirstPartyVuln) error + type FirstPartyVulnsDetectedEvent struct + Asset AssetObject + AssetVersion AssetVersionObject + Org OrgObject + Project ProjectObject + Vulns any + type GitLabOauth2TokenRepository interface + CreateIfNotExists func(tokens []*models.GitLabOauth2Token) error + Delete func(tx DB, tokens []models.GitLabOauth2Token) error + DeleteByUserIDAndProviderID func(userID string, providerID string) error + FindByUserID func(userID string) ([]models.GitLabOauth2Token, error) + FindByUserIDAndProviderID func(userID string, providerID string) (*models.GitLabOauth2Token, error) + Save func(tx DB, model ...*models.GitLabOauth2Token) error + type GithubAppInstallationRepository interface + Delete func(tx DB, installationID int) error + FindByOrganizationID func(orgID uuid.UUID) ([]models.GithubAppInstallation, error) + Read func(installationID int) (models.GithubAppInstallation, error) + Save func(tx DB, model *models.GithubAppInstallation) error + type GithubClientFacade interface + CreateIssue func(ctx context.Context, owner string, repo string, issue *github.IssueRequest) (*github.Issue, *github.Response, error) + CreateIssueComment func(ctx context.Context, owner string, repo string, number int, ...) (*github.IssueComment, *github.Response, error) + EditIssue func(ctx context.Context, owner string, repo string, number int, ...) (*github.Issue, *github.Response, error) + EditIssueLabel func(ctx context.Context, owner string, repo string, name string, ...) (*github.Label, *github.Response, error) + IsCollaboratorInRepository func(ctx context.Context, owner string, repoID string, userID int64, ...) (bool, error) + type GitlabClientFacade interface + AddProjectHook func(ctx context.Context, projectID int, opt *gitlab.AddProjectHookOptions) (*gitlab.ProjectHook, *gitlab.Response, error) + CreateIssue func(ctx context.Context, pid int, opt *gitlab.CreateIssueOptions) (*gitlab.Issue, *gitlab.Response, error) + CreateIssueComment func(ctx context.Context, pid int, issue int, opt *gitlab.CreateIssueNoteOptions) (*gitlab.Note, *gitlab.Response, error) + CreateMergeRequest func(ctx context.Context, project string, opt *gitlab.CreateMergeRequestOptions) (*gitlab.MergeRequest, *gitlab.Response, error) + CreateNewLabel func(ctx context.Context, projectID int, label *gitlab.CreateLabelOptions) (*gitlab.Label, *gitlab.Response, error) + CreateVariable func(ctx context.Context, projectID int, opt *gitlab.CreateProjectVariableOptions) (*gitlab.ProjectVariable, *gitlab.Response, error) + DeleteProjectHook func(ctx context.Context, projectID int, hookID int) (*gitlab.Response, error) + EditIssue func(ctx context.Context, pid int, issue int, opt *gitlab.UpdateIssueOptions) (*gitlab.Issue, *gitlab.Response, error) + EditIssueLabel func(ctx context.Context, pid int, issue int, labels []*gitlab.CreateLabelOptions) (*gitlab.Response, error) + FetchGroupAvatarBase64 func(groupID int) (string, error) + FetchProjectAvatarBase64 func(projectID int) (string, error) + GetClientID func() string + GetGroup func(ctx context.Context, groupID int) (*gitlab.Group, *gitlab.Response, error) + GetMemberInGroup func(ctx context.Context, userID int, groupID int) (*gitlab.GroupMember, *gitlab.Response, error) + GetMemberInProject func(ctx context.Context, userID int, projectID int) (*gitlab.ProjectMember, *gitlab.Response, error) + GetProject func(ctx context.Context, projectID int) (*gitlab.Project, *gitlab.Response, error) + GetProjectIssues func(projectID int, opt *gitlab.ListProjectIssuesOptions) ([]*gitlab.Issue, *gitlab.Response, error) + GetVersion func(ctx context.Context) (*gitlab.Version, *gitlab.Response, error) + InviteReporter func(ctx context.Context, projectID int, userID int) (*gitlab.ProjectMember, *gitlab.Response, error) + IsProjectMember func(ctx context.Context, projectID int, userID int, ...) (bool, error) + ListGroups func(ctx context.Context, opt *gitlab.ListGroupsOptions) ([]*gitlab.Group, *gitlab.Response, error) + ListLabels func(ctx context.Context, projectID int, opt *gitlab.ListLabelsOptions) ([]*gitlab.Label, *gitlab.Response, error) + ListProjectHooks func(ctx context.Context, projectID int, options *gitlab.ListProjectHooksOptions) ([]*gitlab.ProjectHook, *gitlab.Response, error) + ListProjects func(ctx context.Context, opt *gitlab.ListProjectsOptions) ([]*gitlab.Project, *gitlab.Response, error) + ListProjectsInGroup func(ctx context.Context, groupID int, opt *gitlab.ListGroupProjectsOptions) ([]*gitlab.Project, *gitlab.Response, error) + ListVariables func(ctx context.Context, projectID int, ...) ([]*gitlab.ProjectVariable, *gitlab.Response, error) + RemoveVariable func(ctx context.Context, projectID int, key string) (*gitlab.Response, error) + UpdateLabel func(ctx context.Context, projectID int, labelID int, ...) (*gitlab.Label, *gitlab.Response, error) + UpdateVariable func(ctx context.Context, projectID int, key string, ...) (*gitlab.ProjectVariable, *gitlab.Response, error) + Whoami func(ctx context.Context) (*gitlab.User, *gitlab.Response, error) + type GitlabClientFactory interface + FromAccessToken func(accessToken string, baseURL string) (GitlabClientFacade, error) + FromIntegration func(integration models.GitLabIntegration) (GitlabClientFacade, error) + FromIntegrationUUID func(id uuid.UUID) (GitlabClientFacade, error) + FromOauth2Token func(token models.GitLabOauth2Token, enableClientCache bool) (GitlabClientFacade, error) + type GitlabIntegrationRepository interface + Delete func(tx DB, id uuid.UUID) error + FindByOrganizationID func(orgID uuid.UUID) ([]models.GitLabIntegration, error) + Read func(id uuid.UUID) (models.GitLabIntegration, error) + Save func(tx DB, model *models.GitLabIntegration) error + type InTotoLinkRepository interface + FindByAssetAndSupplyChainID func(assetID uuid.UUID, supplyChainID string) ([]models.InTotoLink, error) + FindBySupplyChainID func(supplyChainID string) ([]models.InTotoLink, error) + Save func(tx DB, model *models.InTotoLink) error + type InTotoVerifierService interface + HexPublicKeyToInTotoKey func(hexPubKey string) (toto.Key, error) + VerifySupplyChain func(supplyChainID string) (bool, error) + VerifySupplyChainByDigestOnly func(digest string) (bool, error) + VerifySupplyChainWithOutputDigest func(supplyChainID string, digest string) (bool, error) + type IntegrationAggregate interface + GetIntegration func(id IntegrationID) ThirdPartyIntegration + GetUsers func(org models.Org) []dtos.UserDTO + func GetThirdPartyIntegration(ctx Context) IntegrationAggregate + type IntegrationID string + const AggregateID + const GitHubIntegrationID + const GitLabIntegrationID + const JiraIntegrationID + const WebhookIntegrationID + type InvitationRepository interface + Delete func(tx DB, id uuid.UUID) error + FindByCode func(code string) (models.Invitation, error) + Save func(tx DB, invitation *models.Invitation) error + type JiraIntegrationRepository interface + Delete func(tx DB, id uuid.UUID) error + FindByOrganizationID func(orgID uuid.UUID) ([]models.JiraIntegration, error) + GetClientByIntegrationID func(integrationID uuid.UUID) (models.JiraIntegration, error) + Read func(id uuid.UUID) (models.JiraIntegration, error) + Save func(tx DB, model *models.JiraIntegration) error + type LeaderElector interface + IsLeader func() bool + type LicenseRiskRepository interface + ApplyAndSave func(tx DB, licenseRisk *models.LicenseRisk, vulnEvent *models.VulnEvent) error + DeleteByComponentPurl func(assetID uuid.UUID, assetVersionName string, purl packageurl.PackageURL) error + GetAllLicenseRisksForAssetVersion func(assetID uuid.UUID, assetVersionName string) ([]models.LicenseRisk, error) + GetAllLicenseRisksForAssetVersionPaged func(tx DB, assetID uuid.UUID, assetVersionName string, pageInfo PageInfo, ...) (Paged[models.LicenseRisk], error) + GetAllOverwrittenLicensesForAssetVersion func(assetID uuid.UUID, assetVersionName string) ([]models.LicenseRisk, error) + GetByAssetID func(tx DB, assetID uuid.UUID) ([]models.LicenseRisk, error) + GetLicenseRisksByOtherAssetVersions func(tx DB, assetVersionName string, assetID uuid.UUID) ([]models.LicenseRisk, error) + ListByArtifactName func(assetVersionName string, assetID uuid.UUID, scannerID string) ([]models.LicenseRisk, error) + MaybeGetLicenseOverwriteForComponent func(assetID uuid.UUID, assetVersionName string, pURL packageurl.PackageURL) (models.LicenseRisk, error) + type LicenseRiskService interface + FindLicenseRisksInComponents func(assetVersion models.AssetVersion, components []models.Component, ...) error + MakeFinalLicenseDecision func(vulnID, finalLicense, justification, userID string) error + UpdateLicenseRiskState func(tx DB, userID string, licenseRisk *models.LicenseRisk, statusType string, ...) (models.VulnEvent, error) + type MaliciousPackageChecker interface + DownloadAndProcessDB func() error + IsMalicious func(ecosystem, packageName, version string) (bool, *dtos.OSV) + type ManualMitigateEvent struct + Ctx Context + Justification string + type MiddlewareFunc = echo.MiddlewareFunc + type Object string + const ObjectAsset + const ObjectOrganization + const ObjectProject + const ObjectUser + type OpenSourceInsightService interface + GetProject func(ctx context.Context, projectID string) (dtos.OpenSourceInsightsProjectResponse, error) + GetVersion func(ctx context.Context, ecosystem, packageName, version string) (dtos.OpenSourceInsightsVersionResponse, error) + type OrgObject struct + ContactPhoneNumber *string + Country *string + CriticalInfrastructure bool + Description string + ExternalEntityProviderID *string + Grundschutz bool + ID uuid.UUID + ISO27001 bool + Industry *string + IsPublic bool + Language string + NIST bool + Name string + NumberOfEmployees *int + Slug string + func ToOrgObject(o models.Org) OrgObject + type OrgService interface + CreateOrganization func(ctx Context, organization *models.Org) error + ReadBySlug func(slug string) (*models.Org, error) + type OrganizationRepository interface + ContentTree func(orgID uuid.UUID, projects []string) []any + GetOrgByID func(id uuid.UUID) (models.Org, error) + GetOrgsWithVulnSharingAssets func() ([]models.Org, error) + ReadBySlug func(slug string) (models.Org, error) + Update func(tx DB, organization *models.Org) error + type PageInfo struct + Page int + PageSize int + func GetPageInfo(ctx Context) PageInfo + func (p PageInfo) ApplyOnDB(db DB) DB + type Paged struct + Data []T + Total int64 + func NewPaged[T any](pageInfo PageInfo, total int64, data []T) Paged[T] + func (p Paged[T]) Map(f func(T) any) Paged[any] + type PersonalAccessTokenRepository interface + DeleteByFingerprint func(fingerprint string) error + FindByUserIDs func(userID []uuid.UUID) ([]models.PAT, error) + GetByFingerprint func(fingerprint string) (models.PAT, error) + ListByUserID func(userID string) ([]models.PAT, error) + MarkAsLastUsedNow func(fingerprint string) error + type PersonalAccessTokenService interface + RevokeByPrivateKey func(privKey string) error + ToModel func(request dtos.PatCreateRequest, userID string) models.PAT + VerifyRequestSignature func(req *http.Request) (string, string, error) + type PolicyRepository interface + FindByOrganizationID func(organizationID uuid.UUID) ([]models.Policy, error) + FindByProjectID func(projectID uuid.UUID) ([]models.Policy, error) + FindCommunityManagedPolicies func() ([]models.Policy, error) + type ProjectObject struct + Description string + ExternalEntityID *string + ExternalEntityProviderID *string + ID uuid.UUID + IsPublic bool + Name string + Parent *ProjectObject + ParentID *uuid.UUID + RepositoryID *string + RepositoryName *string + Slug string + Type string + func ToProjectObject(p models.Project) ProjectObject + type ProjectRepository interface + Activate func(tx DB, projectID uuid.UUID) error + Create func(tx DB, project *models.Project) error + Delete func(tx DB, projectID uuid.UUID) error + DisablePolicyForProject func(tx DB, projectID uuid.UUID, policyID uuid.UUID) error + EnableCommunityManagedPolicies func(tx DB, projectID uuid.UUID) error + EnablePolicyForProject func(tx DB, projectID uuid.UUID, policyID uuid.UUID) error + GetByOrgID func(organizationID uuid.UUID) ([]models.Project, error) + GetDirectChildProjects func(projectID uuid.UUID) ([]models.Project, error) + GetProjectByAssetID func(assetID uuid.UUID) (models.Project, error) + List func(idSlice []uuid.UUID, parentID *uuid.UUID, organizationID uuid.UUID) ([]models.Project, error) + ListPaged func(projectIDs []uuid.UUID, parentID *uuid.UUID, orgID uuid.UUID, ...) (Paged[models.Project], error) + ListSubProjectsAndAssets func(allowedAssetIDs []string, allowedProjectIDs []uuid.UUID, parentID *uuid.UUID, ...) (Paged[dtos.ProjectAssetDTO], error) + Read func(projectID uuid.UUID) (models.Project, error) + ReadBySlug func(organizationID uuid.UUID, slug string) (models.Project, error) + ReadBySlugUnscoped func(organizationID uuid.UUID, slug string) (models.Project, error) + RecursivelyGetChildProjects func(projectID uuid.UUID) ([]models.Project, error) + Update func(tx DB, project *models.Project) error + Upsert func(projects *[]*models.Project, conflictingColumns []clause.Column, ...) error + UpsertSplit func(tx DB, externalProviderID string, projects []*models.Project) ([]*models.Project, []*models.Project, error) + type ProjectRiskHistoryRepository interface + GetRiskHistory func(projectID uuid.UUID, start, end time.Time) ([]models.ProjectRiskHistory, error) + UpdateRiskAggregation func(projectRisk *models.ProjectRiskHistory) error + type ProjectRole struct + Project string + Role Role + type ProjectService interface + BootstrapProject func(rbac AccessControl, project *models.Project) error + CreateProject func(ctx Context, project *models.Project) error + GetDirectChildProjects func(projectID uuid.UUID) ([]models.Project, error) + ListAllowedProjects func(ctx Context) ([]models.Project, error) + ListAllowedProjectsPaged func(c Context) (Paged[models.Project], error) + ListAllowedSubProjectsAndAssetsPaged func(c Context) (Paged[dtos.ProjectAssetDTO], error) + ListProjectsByOrganizationID func(organizationID uuid.UUID) ([]models.Project, error) + ReadBySlug func(ctx Context, organizationID uuid.UUID, slug string) (models.Project, error) + RecursivelyGetChildProjects func(projectID uuid.UUID) ([]models.Project, error) + type PubSubBroker interface + Publish func(ctx context.Context, message PubSubMessage) error + Subscribe func(topic PubSubChannel) (<-chan map[string]any, error) + type PubSubChannel string + type PubSubMessage interface + GetChannel func() PubSubChannel + GetPayload func() map[string]any + type PublicClient interface + GetIdentityFromCookie func(ctx context.Context, cookie string) (client.Identity, error) + type PublicClientImplementation struct + func NewPublicClient(client *client.APIClient) PublicClientImplementation + func (a PublicClientImplementation) GetIdentityFromCookie(ctx context.Context, cookie string) (client.Identity, error) + type RBACMiddleware = func(obj Object, act Action) echo.MiddlewareFunc + type RBACProvider interface + DomainsOfUser func(user string) ([]string, error) + GetDomainRBAC func(domain string) AccessControl + type ReleaseRepository interface + CreateReleaseItem func(tx DB, item *models.ReleaseItem) error + DeleteReleaseItem func(tx DB, id uuid.UUID) error + GetByProjectID func(projectID uuid.UUID) ([]models.Release, error) + GetByProjectIDPaged func(tx DB, projectID uuid.UUID, pageInfo PageInfo, search string, ...) (Paged[models.Release], error) + GetCandidateItemsForRelease func(projectID uuid.UUID, releaseID *uuid.UUID) ([]models.Artifact, []models.Release, error) + ReadRecursive func(id uuid.UUID) (models.Release, error) + ReadWithItems func(id uuid.UUID) (models.Release, error) + type ReleaseService interface + AddItem func(item *models.ReleaseItem) error + Create func(r *models.Release) error + Delete func(id uuid.UUID) error + ListByProject func(projectID uuid.UUID) ([]models.Release, error) + ListByProjectPaged func(projectID uuid.UUID, pageInfo PageInfo, search string, filter []FilterQuery, ...) (Paged[models.Release], error) + ListCandidates func(projectID uuid.UUID, releaseID *uuid.UUID) ([]models.Artifact, []models.Release, error) + Read func(id uuid.UUID) (models.Release, error) + ReadRecursive func(id uuid.UUID) (models.Release, error) + RemoveItem func(id uuid.UUID) error + Update func(r *models.Release) error + type Role string + const RoleAdmin + const RoleGuest + const RoleMember + const RoleOwner + const RoleUnknown + type SBOMCreatedEvent struct + Artifact ArtifactObject + Asset AssetObject + AssetVersion AssetVersionObject + Org OrgObject + Project ProjectObject + SBOM *cdx.BOM + type SBOMScanner interface + Scan func(bom *normalize.SBOMGraph) ([]models.VulnInPackage, error) + type ScanService interface + FetchSbomsFromUpstream func(artifactName string, ref string, upstreamURLs []string, ...) ([]*normalize.SBOMGraph, []string, []dtos.ExternalReferenceError) + FetchVexFromUpstream func(upstreamURLs []models.ExternalReference) ([]*normalize.VexReport, []models.ExternalReference, []models.ExternalReference) + HandleFirstPartyVulnResult func(org models.Org, project models.Project, asset models.Asset, ...) ([]models.FirstPartyVuln, []models.FirstPartyVuln, []models.FirstPartyVuln, ...) + HandleScanResult func(tx DB, org models.Org, project models.Project, asset models.Asset, ...) (opened []models.DependencyVuln, closed []models.DependencyVuln, ...) + RunArtifactSecurityLifecycle func(tx DB, org models.Org, project models.Project, asset models.Asset, ...) (*normalize.SBOMGraph, []*normalize.VexReport, []models.DependencyVuln, error) + ScanNormalizedSBOM func(tx DB, org models.Org, project models.Project, asset models.Asset, ...) ([]models.DependencyVuln, []models.DependencyVuln, []models.DependencyVuln, ...) + type ScannerType string + const ContainerScan + const ScaScanner + const TestScanner + const VexReport + type Server = *echo.Group + type SimpleMessage struct + Channel PubSubChannel + Payload map[string]any + func NewSimplePubSubMessage(channel PubSubChannel, payload map[string]any) *SimpleMessage + func (m SimpleMessage) GetChannel() PubSubChannel + func (m SimpleMessage) GetPayload() map[string]any + type SortQuery struct + Field string + Operator string + func GetSortQuery(ctx Context) []SortQuery + func (s SortQuery) GetField() string + func (s SortQuery) SQL() string + type StatisticsRepository interface + AverageFixingTime func(artifactNam *string, assetVersionName string, assetID uuid.UUID, ...) (time.Duration, error) + AverageFixingTimeByCvss func(artifactName *string, assetVersionName string, assetID uuid.UUID, ...) (time.Duration, error) + AverageFixingTimeByCvssForRelease func(releaseID uuid.UUID, cvssIntervalStart, cvssIntervalEnd float64) (time.Duration, error) + AverageFixingTimeForRelease func(releaseID uuid.UUID, riskIntervalStart, riskIntervalEnd float64) (time.Duration, error) + CVESWithKnownExploitsInAssetVersion func(assetVersion models.AssetVersion) ([]models.CVE, error) + TimeTravelDependencyVulnState func(artifactName *string, assetVersionName *string, assetID uuid.UUID, ...) ([]models.DependencyVuln, error) + type StatisticsService interface + GetArtifactRiskHistory func(artifactName *string, assetVersionName string, assetID uuid.UUID, ...) ([]models.ArtifactRiskHistory, error) + GetAverageFixingTime func(artifactName *string, assetVersionName string, assetID uuid.UUID, ...) (time.Duration, error) + GetAverageFixingTimeByCvss func(artifactName *string, assetVersionName string, assetID uuid.UUID, ...) (time.Duration, error) + GetAverageFixingTimeByCvssForRelease func(releaseID uuid.UUID, severity string) (time.Duration, error) + GetAverageFixingTimeForRelease func(releaseID uuid.UUID, severity string) (time.Duration, error) + GetComponentRisk func(artifactName *string, assetVersionName string, assetID uuid.UUID) (map[string]models.Distribution, error) + GetReleaseRiskHistory func(releaseID uuid.UUID, start time.Time, end time.Time) ([]models.ArtifactRiskHistory, error) + UpdateArtifactRiskAggregation func(artifact *models.Artifact, assetID uuid.UUID, begin time.Time, end time.Time) error + type SupplyChainRepository interface + FindByDigest func(digest string) ([]models.SupplyChain, error) + FindBySupplyChainID func(supplyChainID string) ([]models.SupplyChain, error) + PercentageOfVerifiedSupplyChains func(assetVersionName string, assetID uuid.UUID) (float64, error) + type ThirdPartyIntegration interface + CompareIssueStatesAndResolveDifferences func(asset models.Asset, vulnsWithTickets []models.DependencyVuln) error + CreateIssue func(ctx context.Context, asset models.Asset, assetVersionName string, ...) error + CreateLabels func(ctx context.Context, asset models.Asset) error + GetID func() IntegrationID + HandleEvent func(event any) error + HandleWebhook func(ctx Context) error + HasAccessToExternalEntityProvider func(ctx Context, externalEntityProviderID string) (bool, error) + ListGroups func(ctx context.Context, userID string, providerID string) ([]models.Project, []Role, error) + ListOrgs func(ctx Context) ([]models.Org, error) + ListProjects func(ctx context.Context, userID string, providerID string, groupID string) ([]models.Asset, []Role, error) + ListRepositories func(ctx Context) ([]dtos.GitRepository, error) + UpdateIssue func(ctx context.Context, asset models.Asset, assetVersionSlug string, ...) error + WantsToHandleWebhook func(ctx Context) bool + type VEXRuleRepository interface + Begin func() DB + Create func(db DB, rule *models.VEXRule) error + Delete func(db DB, rule models.VEXRule) error + DeleteBatch func(db DB, rules []models.VEXRule) error + DeleteByAssetVersion func(db DB, assetID uuid.UUID, assetVersionName string) error + FindByAssetAndVexSource func(db DB, assetID uuid.UUID, vexSource string) ([]models.VEXRule, error) + FindByAssetVersion func(db DB, assetID uuid.UUID, assetVersionName string) ([]models.VEXRule, error) + FindByAssetVersionAndCVE func(db DB, assetID uuid.UUID, assetVersionName string, cveID string) ([]models.VEXRule, error) + FindByAssetVersionPaged func(db DB, assetID uuid.UUID, assetVersionName string, pageInfo PageInfo, ...) (Paged[models.VEXRule], error) + FindByID func(db DB, id string) (models.VEXRule, error) + GetDB func(db DB) DB + Update func(db DB, rule *models.VEXRule) error + Upsert func(db DB, rule *models.VEXRule) error + UpsertBatch func(db DB, rules []models.VEXRule) error + type VEXRuleService interface + ApplyRulesToExisting func(tx DB, rules []models.VEXRule, vulns []models.DependencyVuln) ([]models.DependencyVuln, error) + ApplyRulesToExistingForce func(tx DB, rules []models.VEXRule, vulns []models.DependencyVuln) ([]models.DependencyVuln, error) + ApplyRulesToExistingVulns func(tx DB, rules []models.VEXRule) ([]models.DependencyVuln, error) + ApplyRulesToExistingVulnsForce func(tx DB, rules []models.VEXRule) ([]models.DependencyVuln, error) + Begin func() DB + CountMatchingVulns func(tx DB, rule models.VEXRule) (int, error) + CountMatchingVulnsForRules func(tx DB, rules []models.VEXRule) (map[string]int, error) + Create func(tx DB, rule *models.VEXRule) error + Delete func(tx DB, rule models.VEXRule) error + DeleteByAssetVersion func(tx DB, assetID uuid.UUID, assetVersionName string) error + FindByAssetVersion func(tx DB, assetID uuid.UUID, assetVersionName string) ([]models.VEXRule, error) + FindByAssetVersionAndCVE func(tx DB, assetID uuid.UUID, assetVersionName string, cveID string) ([]models.VEXRule, error) + FindByAssetVersionAndVulnID func(tx DB, assetID uuid.UUID, assetVersionName string, vulnID string) ([]models.VEXRule, error) + FindByAssetVersionPaged func(tx DB, assetID uuid.UUID, assetVersionName string, pageInfo PageInfo, ...) (Paged[models.VEXRule], error) + FindByID func(tx DB, id string) (models.VEXRule, error) + IngestVEX func(tx DB, asset models.Asset, assetVersion models.AssetVersion, ...) error + IngestVexes func(tx DB, asset models.Asset, assetVersion models.AssetVersion, ...) error + Update func(tx DB, rule *models.VEXRule) error + type Verifier interface + VerifyRequestSignature func(req *http.Request) (string, string, error) + type VulnDBImportService interface + CleanupOrphanedTables func() error + CreateTablesWithSuffix func(suffix string) error + ExportDiffs func(extraTableNameSuffix string) error + ImportFromDiff func(extraTableNameSuffix *string) error + type VulnEvent struct + Ctx Context + Event models.VulnEvent + type VulnEventRepository interface + DeleteEventByID func(tx DB, eventID string) error + GetLastEventBeforeTimestamp func(tx DB, vulnID string, time time.Time) (models.VulnEvent, error) + GetSecurityRelevantEventsForVulnIDs func(tx DB, vulnIDs []string) ([]models.VulnEvent, error) + HasAccessToEvent func(assetID uuid.UUID, eventID string) (bool, error) + ReadAssetEventsByVulnID func(vulnID string, vulnType dtos.VulnType) ([]models.VulnEventDetail, error) + ReadEventsByAssetIDAndAssetVersionName func(assetID uuid.UUID, assetVersionName string, pageInfo PageInfo, ...) (Paged[models.VulnEventDetail], error) + Save func(db DB, event *models.VulnEvent) error + SaveBatch func(db DB, events []models.VulnEvent) error + SaveBatchBestEffort func(db DB, events []models.VulnEvent) error + type VulnRepository interface + ApplyAndSave func(tx DB, dependencyVuln models.Vuln, vulnEvent *models.VulnEvent) error + FindByTicketID func(tx DB, ticketID string) (models.Vuln, error) + GetOrgFromVuln func(vuln models.Vuln) (models.Org, error) + Save func(db DB, vuln *models.Vuln) error + Transaction func(fn func(tx DB) error) error + type WebhookIntegrationRepository interface + Delete func(tx DB, id uuid.UUID) error + FindByOrgIDAndProjectID func(orgID uuid.UUID, projectID uuid.UUID) ([]models.WebhookIntegration, error) + GetClientByIntegrationID func(integrationID uuid.UUID) (models.WebhookIntegration, error) + GetProjectWebhooks func(orgID uuid.UUID, projectID uuid.UUID) ([]models.WebhookIntegration, error) + Read func(id uuid.UUID) (models.WebhookIntegration, error) + Save func(tx DB, model *models.WebhookIntegration) error v1.0.0-rc.18 Feb 17, 2026 v1.0.0-rc.17 Jan 19, 2026 v1.0.0-rc.16 Jan 13, 2026 v1.0.0-rc.15 Jan 8, 2026 v1.0.0-rc.14 Jan 4, 2026 v1.0.0-rc.13 Dec 30, 2025 v1.0.0-rc.12 Dec 23, 2025 v1.0.0-rc.11 Dec 19, 2025 v1.0.0-rc.10 Dec 15, 2025 v1.0.0-rc.9 Dec 14, 2025 v1.0.0-rc.8 Dec 14, 2025 v1.0.0-rc.7 Dec 14, 2025 v1.0.0-rc.6 Dec 12, 2025 v1.0.0-rc.5 Dec 9, 2025 v1.0.0-rc.4 Dec 4, 2025 v1.0.0-rc.3 Dec 4, 2025 v1.0.0-rc.2 Nov 24, 2025 v1.0.0-rc.1 Nov 20, 2025