router

package
v1.13.7 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 11, 2026 License: AGPL-3.0 Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

Functions

This section is empty.

Types

type APIV1Router

type APIV1Router struct {
	*echo.Group
}

func NewAPIV1Router

func NewAPIV1Router(srv api.Server,
	thirdPartyIntegration shared.IntegrationAggregate,
	oryAdmin shared.AdminClient,
	systemController *controllers.SystemController,
	adminController *controllers.AdminController,
	integrationController *controllers.IntegrationController,
	assetController *controllers.AssetController,
	intotoController *controllers.InToToController,
	csafController *controllers.CSAFController,
	scanController *controllers.ScanController,
	dependencyVulnController *controllers.DependencyVulnController,
	orgRepository shared.OrganizationRepository,
	projectRepository shared.ProjectRepository,
	assetRepository shared.AssetRepository,
	assetVersionRepository shared.AssetVersionRepository,
	artifactRepository shared.ArtifactRepository,
) APIV1Router

type APIV2Router added in v1.6.0

type APIV2Router struct {
	*echo.Group
}

func NewAPIV2Router added in v1.6.0

func NewAPIV2Router(
	srv api.Server,
	oryAdmin shared.AdminClient,
	adminClient shared.PublicClient,
	patService shared.PersonalAccessTokenService,
	externalEntityProviderService shared.ExternalEntityProviderService,
	thirdPartyIntegration shared.IntegrationAggregate,
	scanController *controllers.ScanController,
	assetRepository shared.AssetRepository,
	projectRepository shared.ProjectRepository,
	assetVersionRepository shared.AssetVersionRepository,
	casbinRBACProvider shared.RBACProvider,
	orgService shared.OrgService,
	configService shared.ConfigService,
	gitlabOauth2Integrations map[string]*gitlabint.GitlabOauth2Config,
) APIV2Router

type AdminRouter added in v1.6.1

type AdminRouter struct {
	*echo.Group
}

func NewAdminRouter added in v1.6.1

func NewAdminRouter(apiV1Router APIV1Router, adminController *controllers.AdminController, patService shared.PersonalAccessTokenService) AdminRouter

type AdvisoryRouter added in v1.10.0

type AdvisoryRouter struct {
	*echo.Group
}

func NewAdvisoryRouter added in v1.10.0

func NewAdvisoryRouter(
	assetVersionGroup AssetVersionRouter,
	advisoryController *controllers.AdvisoryController,
	assetRepository shared.AssetRepository,
) AdvisoryRouter

type ArtifactRouter

type ArtifactRouter struct {
	*echo.Group
}

func NewArtifactRouter

func NewArtifactRouter(
	assetVersionGroup AssetVersionRouter,
	artifactController *controllers.ArtifactController,
	assetController *controllers.AssetController,
	externalReferenceController *controllers.ExternalReferenceController,
	artifactRepository shared.ArtifactRepository,
	assetRepository shared.AssetRepository,
) ArtifactRouter

type AssetRouter

type AssetRouter struct {
	*echo.Group
}

func NewAssetRouter

func NewAssetRouter(
	projectGroup ProjectRouter,
	assetController *controllers.AssetController,
	dependencyProxyController *dependencyfirewall.DependencyProxyController,
	assetVersionController *controllers.AssetVersionController,
	complianceController *controllers.ComplianceController,
	statisticsController *controllers.StatisticsController,
	componentController *controllers.ComponentController,
	intotoController *controllers.InToToController,
	integrationController *controllers.IntegrationController,
	scanController *controllers.ScanController,
	assetRepository shared.AssetRepository,
	patController *controllers.PatController,
) AssetRouter

type AssetVersionRouter

type AssetVersionRouter struct {
	*echo.Group
}

func NewAssetVersionRouter

func NewAssetVersionRouter(
	assetGroup AssetRouter,
	assetVersionController *controllers.AssetVersionController,
	firstPartyVulnController *controllers.FirstPartyVulnController,
	complianceController *controllers.ComplianceController,
	componentController *controllers.ComponentController,
	statisticsController *controllers.StatisticsController,
	attestationController *controllers.AttestationController,
	intotoController *controllers.InToToController,
	vulnEventController *controllers.VulnEventController,
	artifactController *controllers.ArtifactController,
	externalReferenceController *controllers.ExternalReferenceController,
	assetVersionRepository shared.AssetVersionRepository,
	assetRepository shared.AssetRepository,
	vulnEventRepository shared.VulnEventRepository,
) AssetVersionRouter

type ComplianceComponentRouter added in v1.10.0

type ComplianceComponentRouter struct {
	Group *echo.Group
}

ComplianceComponentRouter exposes the global catalog of compliance components (an instance-wide catalog, not scoped to any org/project/asset - components are seeded from OSCAL component-definitions and shared across all tenants).

func NewComplianceComponentRouter added in v1.10.0

func NewComplianceComponentRouter(apiV1Router APIV1Router, complianceComponentController *controllers.ComplianceComponentController) ComplianceComponentRouter

type ComplianceComponentStatementRouter added in v1.10.0

type ComplianceComponentStatementRouter struct {
	*echo.Group
}

ComplianceComponentStatementRouter exposes CRUD for statements: a specific posture's per-component claim about implementation status. Postures are scoped to an org/project/asset/asset-version, so this is mounted alongside compliance-postures at the asset-version level.

func NewComplianceComponentStatementRouter added in v1.10.0

func NewComplianceComponentStatementRouter(
	assetVersionGroup AssetVersionRouter,
	complianceComponentController *controllers.ComplianceComponentController,
) ComplianceComponentStatementRouter

type CompliancePostureRouter added in v1.10.0

type CompliancePostureRouter struct {
	*echo.Group
}

func NewCompliancePostureRouter added in v1.10.0

func NewCompliancePostureRouter(
	assetVersionGroup AssetVersionRouter,
	compliancePostureController *controllers.CompliancePostureController,
) CompliancePostureRouter

type DependencyProxyRouter

type DependencyProxyRouter struct {
	*echo.Group
}

type DependencyVulnRouter

type DependencyVulnRouter struct {
	*echo.Group
}

func NewDependencyVulnRouter

func NewDependencyVulnRouter(
	assetVersionGroup AssetVersionRouter,
	dependencyVulnController *controllers.DependencyVulnController,
	vulnEventController *controllers.VulnEventController,

) DependencyVulnRouter

type ExternalReferenceRouter

type ExternalReferenceRouter struct {
	*echo.Group
}

func NewExternalReferenceRouter

func NewExternalReferenceRouter(
	assetRouter AssetRouter,
	externalReferenceController *controllers.ExternalReferenceController,
	assetRepository shared.AssetRepository,
) ExternalReferenceRouter

type FirstPartyVulnRouter

type FirstPartyVulnRouter struct {
	*echo.Group
}

func NewFirstPartyVulnRouter

func NewFirstPartyVulnRouter(
	assetVersionGroup AssetVersionRouter,
	firstPartyVulnController *controllers.FirstPartyVulnController,
	vulnEventController *controllers.VulnEventController,
) FirstPartyVulnRouter

type LicenseRiskRouter

type LicenseRiskRouter struct {
	*echo.Group
}

func NewLicenseRiskRouter

func NewLicenseRiskRouter(
	assetVersionGroup AssetVersionRouter,
	licenseRiskController *controllers.LicenseRiskController,
) LicenseRiskRouter

type OCIRegistryRouter added in v1.3.0

type OCIRegistryRouter struct {
	*echo.Group
}

OCIRegistryRouter exposes the OCI Distribution Spec v2 API at the root /v2/ path so that standard Docker clients can pull images without any special configuration.

Unauthenticated (no custom firewall rules applied):

docker pull <host>/docker.io/library/nginx:latest

Secret-scoped (custom rules and MinReleaseAge enforced):

docker pull <host>/<secret>/docker.io/library/nginx:latest

Docker resolves these as registry=<host> and sends:

GET /v2/                                                       (version check)
GET /v2/docker.io/library/nginx/manifests/latest               (unauthenticated)
GET /v2/<secret>/docker.io/library/nginx/manifests/latest      (secret-scoped)

Routing note: to avoid ambiguity, no-secret routes cover 1- and 2-segment image names while secret routes cover 2- and 3-segment image names (shifted by one). In practice this means all real Docker Hub and ghcr.io images (e.g. library/nginx, org/repo) work in both modes.

func NewOCIRegistryRouter added in v1.3.0

func NewOCIRegistryRouter(srv api.Server, ociController *dependencyfirewall.OCIDependencyProxyController) OCIRegistryRouter

type OrgRouter

type OrgRouter struct {
	*echo.Group
}

func NewOrgRouter

func NewOrgRouter(
	sessionGroup SessionRouter,
	configService shared.ConfigService,
	orgController *controllers.OrgController,
	projectController *controllers.ProjectController,
	dependencyProxyController *dependencyfirewall.DependencyProxyController,
	dependencyVulnController *controllers.DependencyVulnController,
	firstPartyVulnController *controllers.FirstPartyVulnController,
	compliancePostureController *controllers.CompliancePostureController,
	complianceComponentController *controllers.ComplianceComponentController,
	policyController *controllers.PolicyController,
	integrationController *controllers.IntegrationController,
	webhookIntegration *controllers.WebhookController,
	externalEntityProviderService shared.ExternalEntityProviderService,
	externalEntityProviderController *controllers.ExternalEntityProviderController,
	orgService shared.OrgService,
	gitlabOauth2Integrations map[string]*gitlabint.GitlabOauth2Config,
	casbinRBACProvider shared.RBACProvider,
	statisticsController *controllers.StatisticsController,
	patController *controllers.PatController,
	projectRepository shared.ProjectRepository,
	assetRepository shared.AssetRepository,
) OrgRouter

type ProjectRouter

type ProjectRouter struct {
	*echo.Group
}

func NewProjectRouter

func NewProjectRouter(
	organizationGroup OrgRouter,
	projectController *controllers.ProjectController,
	assetController *controllers.AssetController,
	dependencyProxyController *dependencyfirewall.DependencyProxyController,
	dependencyVulnController *controllers.DependencyVulnController,
	compliancePostureController *controllers.CompliancePostureController,
	complianceComponentController *controllers.ComplianceComponentController,
	complianceController *controllers.ComplianceController,
	policyController *controllers.PolicyController,
	releaseController *controllers.ReleaseController,
	statisticsController *controllers.StatisticsController,
	webhookIntegration *controllers.WebhookController,
	projectRepository shared.ProjectRepository,
	componentController *controllers.ComponentController,
	gitlabIntegrations map[string]*gitlabint.GitlabOauth2Config,
	patController *controllers.PatController,
) ProjectRouter

type Routers added in v1.12.5

type Routers struct {
	fx.In

	Admin                        AdminRouter
	APIV1                        APIV1Router
	APIV2                        APIV2Router
	Artifact                     ArtifactRouter
	Asset                        AssetRouter
	AssetVersion                 AssetVersionRouter
	CompliancePosture            CompliancePostureRouter
	ComplianceComponent          ComplianceComponentRouter
	ComplianceComponentStatement ComplianceComponentStatementRouter
	DependencyVuln               DependencyVulnRouter
	FirstPartyVuln               FirstPartyVulnRouter
	LicenseRisk                  LicenseRiskRouter
	Org                          OrgRouter
	Project                      ProjectRouter
	Session                      SessionRouter
	Share                        ShareRouter
	VulnDB                       VulnDBRouter
	DependencyProxy              DependencyProxyRouter
	OCIRegistry                  OCIRegistryRouter
	VEXRule                      VEXRuleRouter
	ExternalReference            ExternalReferenceRouter
	Advisory                     AdvisoryRouter
}

Routers lets a single fx.Invoke force construction of every router at once (route registration is a side effect of each NewXRouter constructor).

type SessionRouter

type SessionRouter struct {
	*echo.Group
}

func NewSessionRouter

func NewSessionRouter(
	apiV1Router APIV1Router,
	adminClient shared.PublicClient,
	configService shared.ConfigService,
	patService shared.PersonalAccessTokenService,
	externalEntityProviderService shared.ExternalEntityProviderService,
	externalEntityProviderController *controllers.ExternalEntityProviderController,
	integrationController *controllers.IntegrationController,
	orgController *controllers.OrgController,
	scanController *controllers.ScanController,
	attestationController *controllers.AttestationController,
	patController *controllers.PatController,
	assetRepository shared.AssetRepository,
	projectRepository shared.ProjectRepository,
	casbinRBACProvider shared.RBACProvider,
	orgService shared.OrgService,
	assetVersionRepository shared.AssetVersionRepository,
	patVerifier shared.PersonalAccessTokenService,
) SessionRouter

type ShareRouter

type ShareRouter struct {
	*echo.Group
}

func NewShareRouter

func NewShareRouter(apiV1Router APIV1Router,
	assetController *controllers.AssetController,
	orgRepository shared.OrganizationRepository,
	projectRepository shared.ProjectRepository,
	assetRepository shared.AssetRepository,
	assetVersionRepository shared.AssetVersionRepository,
	artifactRepository shared.ArtifactRepository,
	artifactController *controllers.ArtifactController,
) ShareRouter

type VEXRuleRouter

type VEXRuleRouter struct {
	*echo.Group
}

func NewVEXRuleRouter

func NewVEXRuleRouter(
	assetRouter AssetRouter,
	vexRuleController *controllers.VEXRuleController,
	vexRecommendationController *controllers.VexRuleRecommendationController,
) VEXRuleRouter

type VulnDBRouter

type VulnDBRouter struct {
	Group *echo.Group
}

func NewVulnDBRouter

func NewVulnDBRouter(apiV1Router APIV1Router, vulndbController *controllers.VulnDBController) VulnDBRouter

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL