rest

package
v1.2.0 Latest Latest
Warning

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

Go to latest
Published: Aug 1, 2025 License: MIT Imports: 33 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetTestTokens

func GetTestTokens() map[string]string

GetTestTokens returns a map of test tokens for development/testing

Types

type AnalyzePackageRequest

type AnalyzePackageRequest struct {
	Ecosystem string `json:"ecosystem" binding:"required"`
	Name      string `json:"name" binding:"required"`
	Version   string `json:"version,omitempty"`
	Options   struct {
		IncludeML           bool `json:"include_ml,omitempty"`
		IncludeVulns        bool `json:"include_vulnerabilities,omitempty"`
		IncludeDependencies bool `json:"include_dependencies,omitempty"`
	} `json:"options,omitempty"`
}

AnalyzePackageRequest represents a package analysis request

type BatchAnalyzeRequest

type BatchAnalyzeRequest struct {
	Packages []AnalyzePackageRequest `json:"packages" binding:"required"`
	Options  struct {
		Parallel            bool `json:"parallel,omitempty"`
		IncludeML           bool `json:"include_ml,omitempty"`
		IncludeVulns        bool `json:"include_vulnerabilities,omitempty"`
		IncludeDependencies bool `json:"include_dependencies,omitempty"`
	} `json:"options,omitempty"`
}

BatchAnalyzeRequest represents a batch analysis request

type BatchVulnerabilityScanRequest

type BatchVulnerabilityScanRequest struct {
	Packages []AnalyzePackageRequest `json:"packages" binding:"required"`
}

BatchVulnerabilityScanRequest represents a batch vulnerability scan request

type ConfigureConnectorRequest

type ConfigureConnectorRequest struct {
	Config repository.PlatformConfig `json:"config"`
}

ConfigureConnectorRequest represents a connector configuration request

type CreateScheduleRequest

type CreateScheduleRequest struct {
	Name        string                      `json:"name"`
	Description string                      `json:"description"`
	Schedule    string                      `json:"schedule"`
	Targets     []orchestrator.ScanTarget   `json:"targets"`
	Output      []orchestrator.OutputConfig `json:"output"`
	Policies    []orchestrator.PolicyConfig `json:"policies"`
	Enabled     bool                        `json:"enabled"`
}

CreateScheduleRequest represents a schedule creation request

type DiscoverRepositoriesRequest

type DiscoverRepositoriesRequest struct {
	Platforms map[string]*repository.PlatformConfig `json:"platforms"`
	Filter    *repository.RepositoryFilter          `json:"filter"`
}

DiscoverRepositoriesRequest represents a repository discovery request

type DiscoverRepositoriesResponse

type DiscoverRepositoriesResponse struct {
	Repositories []*repository.Repository `json:"repositories"`
	Count        int                      `json:"count"`
	Platforms    []string                 `json:"platforms"`
	Duration     string                   `json:"duration"`
}

DiscoverRepositoriesResponse represents a repository discovery response

type EnterpriseHandler

type EnterpriseHandler struct {
	// contains filtered or unexported fields
}

EnterpriseHandler handles enterprise repository scanning endpoints

func NewEnterpriseHandler

func NewEnterpriseHandler(repoManager *repository.Manager, scheduler *orchestrator.ScanScheduler) *EnterpriseHandler

NewEnterpriseHandler creates a new enterprise handler

func (*EnterpriseHandler) CheckConnectorHealth

func (h *EnterpriseHandler) CheckConnectorHealth(c *gin.Context)

CheckConnectorHealth checks the health of a platform connector

func (*EnterpriseHandler) ConfigureConnector

func (h *EnterpriseHandler) ConfigureConnector(c *gin.Context)

ConfigureConnector configures a platform connector

func (*EnterpriseHandler) CreateSchedule

func (h *EnterpriseHandler) CreateSchedule(c *gin.Context)

CreateSchedule creates a new scan schedule

func (*EnterpriseHandler) DeleteSchedule

func (h *EnterpriseHandler) DeleteSchedule(c *gin.Context)

DeleteSchedule deletes a scan schedule

func (*EnterpriseHandler) DiscoverRepositories

func (h *EnterpriseHandler) DiscoverRepositories(c *gin.Context)

DiscoverRepositories discovers repositories across platforms

func (*EnterpriseHandler) ExportResults

func (h *EnterpriseHandler) ExportResults(c *gin.Context)

ExportResults exports scan results in various formats

func (*EnterpriseHandler) GetDashboard

func (h *EnterpriseHandler) GetDashboard(c *gin.Context)

GetDashboard returns executive dashboard data

func (*EnterpriseHandler) GetRepository

func (h *EnterpriseHandler) GetRepository(c *gin.Context)

GetRepository returns repository information

func (*EnterpriseHandler) GetSARIFReport

func (h *EnterpriseHandler) GetSARIFReport(c *gin.Context)

GetSARIFReport returns SARIF format report

func (*EnterpriseHandler) GetScanResults

func (h *EnterpriseHandler) GetScanResults(c *gin.Context)

GetScanResults returns the results of a scan

func (*EnterpriseHandler) GetScanStatus

func (h *EnterpriseHandler) GetScanStatus(c *gin.Context)

GetScanStatus returns the status of a scan

func (*EnterpriseHandler) ListConnectors

func (h *EnterpriseHandler) ListConnectors(c *gin.Context)

ListConnectors lists all configured connectors

func (*EnterpriseHandler) ListRepositories

func (h *EnterpriseHandler) ListRepositories(c *gin.Context)

ListRepositories lists repositories with optional filtering

func (*EnterpriseHandler) ListSchedules

func (h *EnterpriseHandler) ListSchedules(c *gin.Context)

ListSchedules lists all scan schedules

func (*EnterpriseHandler) RegisterRoutes

func (h *EnterpriseHandler) RegisterRoutes(router *gin.Engine)

RegisterRoutes registers enterprise API routes

func (*EnterpriseHandler) ScanBulkRepositories

func (h *EnterpriseHandler) ScanBulkRepositories(c *gin.Context)

ScanBulkRepositories scans multiple repositories

func (*EnterpriseHandler) ScanOrganization

func (h *EnterpriseHandler) ScanOrganization(c *gin.Context)

ScanOrganization scans all repositories in an organization

func (*EnterpriseHandler) ScanSingleRepository

func (h *EnterpriseHandler) ScanSingleRepository(c *gin.Context)

ScanSingleRepository scans a single repository

func (*EnterpriseHandler) TriggerSchedule

func (h *EnterpriseHandler) TriggerSchedule(c *gin.Context)

TriggerSchedule manually triggers a scheduled scan

func (*EnterpriseHandler) UpdateSchedule

func (h *EnterpriseHandler) UpdateSchedule(c *gin.Context)

UpdateSchedule updates an existing schedule

type EnterpriseHandlers

type EnterpriseHandlers struct {
	// contains filtered or unexported fields
}

EnterpriseHandlers provides HTTP handlers for enterprise features

func NewEnterpriseHandlers

func NewEnterpriseHandlers(policyManager *auth.EnterprisePolicyManager, rbacEngine *auth.RBACEngine, authMiddleware *auth.AuthorizationMiddleware, logger Logger) *EnterpriseHandlers

NewEnterpriseHandlers creates new enterprise handlers

func (*EnterpriseHandlers) ApproveViolation

func (eh *EnterpriseHandlers) ApproveViolation(c *gin.Context)

ApproveViolation handles POST /api/v1/enterprise/approvals/violations/{id}/approve

func (*EnterpriseHandlers) CheckUserPermission

func (eh *EnterpriseHandlers) CheckUserPermission(c *gin.Context)

CheckUserPermission handles POST /api/v1/enterprise/rbac/users/{userId}/check-permission

func (*EnterpriseHandlers) CreatePolicy

func (eh *EnterpriseHandlers) CreatePolicy(c *gin.Context)

CreatePolicy handles POST /api/v1/enterprise/policies

func (*EnterpriseHandlers) CreatePolicyFromTemplate

func (eh *EnterpriseHandlers) CreatePolicyFromTemplate(c *gin.Context)

CreatePolicyFromTemplate handles POST /api/v1/enterprise/policy-templates/{id}/create-policy

func (*EnterpriseHandlers) CreateRole

func (eh *EnterpriseHandlers) CreateRole(c *gin.Context)

CreateRole handles POST /api/v1/enterprise/rbac/roles

func (*EnterpriseHandlers) DeletePolicy

func (eh *EnterpriseHandlers) DeletePolicy(c *gin.Context)

DeletePolicy handles DELETE /api/v1/enterprise/policies/{id}

func (*EnterpriseHandlers) DeleteRole

func (eh *EnterpriseHandlers) DeleteRole(c *gin.Context)

DeleteRole handles DELETE /api/v1/enterprise/rbac/roles/{id}

func (*EnterpriseHandlers) EvaluateAndEnforce

func (eh *EnterpriseHandlers) EvaluateAndEnforce(c *gin.Context)

EvaluateAndEnforce handles POST /api/v1/enterprise/enforcement/evaluate

func (*EnterpriseHandlers) EvaluatePolicy

func (eh *EnterpriseHandlers) EvaluatePolicy(c *gin.Context)

EvaluatePolicy handles POST /api/v1/enterprise/policies/{id}/evaluate

func (*EnterpriseHandlers) GetEnforcementSettings

func (eh *EnterpriseHandlers) GetEnforcementSettings(c *gin.Context)

GetEnforcementSettings handles GET /api/v1/enterprise/enforcement/settings

func (*EnterpriseHandlers) GetPolicy

func (eh *EnterpriseHandlers) GetPolicy(c *gin.Context)

GetPolicy handles GET /api/v1/enterprise/policies/{id}

func (*EnterpriseHandlers) GetPolicyTemplate

func (eh *EnterpriseHandlers) GetPolicyTemplate(c *gin.Context)

GetPolicyTemplate handles GET /api/v1/enterprise/policy-templates/{id}

func (*EnterpriseHandlers) GetRole

func (eh *EnterpriseHandlers) GetRole(c *gin.Context)

GetRole handles GET /api/v1/enterprise/rbac/roles/{id}

func (*EnterpriseHandlers) GetUserPermissions

func (eh *EnterpriseHandlers) GetUserPermissions(c *gin.Context)

GetUserPermissions handles GET /api/v1/enterprise/rbac/users/{userId}/permissions

func (*EnterpriseHandlers) GetViolation

func (eh *EnterpriseHandlers) GetViolation(c *gin.Context)

GetViolation handles GET /api/v1/enterprise/approvals/violations/{id}

func (*EnterpriseHandlers) ListPolicies

func (eh *EnterpriseHandlers) ListPolicies(c *gin.Context)

ListPolicies handles GET /api/v1/enterprise/policies

func (*EnterpriseHandlers) ListPolicyTemplates

func (eh *EnterpriseHandlers) ListPolicyTemplates(c *gin.Context)

ListPolicyTemplates handles GET /api/v1/enterprise/policy-templates

func (*EnterpriseHandlers) ListRoles

func (eh *EnterpriseHandlers) ListRoles(c *gin.Context)

ListRoles handles GET /api/v1/enterprise/rbac/roles

func (*EnterpriseHandlers) ListViolations

func (eh *EnterpriseHandlers) ListViolations(c *gin.Context)

ListViolations handles GET /api/v1/enterprise/approvals/violations

func (*EnterpriseHandlers) RegisterRoutes

func (eh *EnterpriseHandlers) RegisterRoutes(router *gin.RouterGroup)

RegisterRoutes registers enterprise API routes

func (*EnterpriseHandlers) RejectViolation

func (eh *EnterpriseHandlers) RejectViolation(c *gin.Context)

RejectViolation handles POST /api/v1/enterprise/approvals/violations/{id}/reject

func (*EnterpriseHandlers) UpdateEnforcementSettings

func (eh *EnterpriseHandlers) UpdateEnforcementSettings(c *gin.Context)

UpdateEnforcementSettings handles PUT /api/v1/enterprise/enforcement/settings

func (*EnterpriseHandlers) UpdatePolicy

func (eh *EnterpriseHandlers) UpdatePolicy(c *gin.Context)

UpdatePolicy handles PUT /api/v1/enterprise/policies/{id}

func (*EnterpriseHandlers) UpdateRole

func (eh *EnterpriseHandlers) UpdateRole(c *gin.Context)

UpdateRole handles PUT /api/v1/enterprise/rbac/roles/{id}

type JWTClaims

type JWTClaims struct {
	Subject   string `json:"sub"`
	Name      string `json:"name"`
	Role      string `json:"role"`
	IssuedAt  int64  `json:"iat"`
	ExpiresAt int64  `json:"exp"`
	Issuer    string `json:"iss"`
}

JWTClaims represents the claims in a JWT token

type JWTHeader

type JWTHeader struct {
	Algorithm string `json:"alg"`
	Type      string `json:"typ"`
}

JWTHeader represents the header of a JWT token

type JWTValidator

type JWTValidator struct {
	// contains filtered or unexported fields
}

JWTValidator provides JWT token validation functionality

func NewJWTValidator

func NewJWTValidator(secretKey, issuer string) *JWTValidator

NewJWTValidator creates a new JWT validator

func (*JWTValidator) GenerateToken

func (v *JWTValidator) GenerateToken(subject, name, role string, expirationHours int) (string, error)

GenerateToken generates a new JWT token for the given claims

func (*JWTValidator) ValidateToken

func (v *JWTValidator) ValidateToken(tokenString string) (*JWTClaims, error)

ValidateToken validates a JWT token and returns the claims

type Logger

type Logger interface {
	Info(msg string, fields ...interface{})
	Warn(msg string, fields ...interface{})
	Error(msg string, fields ...interface{})
	Debug(msg string, fields ...interface{})
}

Logger interface for handlers

type MLPredictionRequest

type MLPredictionRequest struct {
	Package  types.Package `json:"package" binding:"required"`
	Features []float64     `json:"features,omitempty"`
}

MLPredictionRequest represents an ML prediction request

type RateLimiter

type RateLimiter struct {
	// contains filtered or unexported fields
}

RateLimiter represents a rate limiter for API requests

func NewRateLimiter

func NewRateLimiter(requestsPerSecond int, burstSize int) *RateLimiter

NewRateLimiter creates a new rate limiter

func (*RateLimiter) Allow

func (rl *RateLimiter) Allow(key string) bool

Allow checks if a request is allowed for the given key

type ScanBulkRepositoriesRequest

type ScanBulkRepositoriesRequest struct {
	Repositories []ScanSingleRepositoryRequest `json:"repositories"`
	Options      repository.ScanOptions        `json:"default_options"`
}

ScanBulkRepositoriesRequest represents a bulk repository scan request

type ScanOrganizationRequest

type ScanOrganizationRequest struct {
	Platform     string                       `json:"platform"`
	Organization string                       `json:"organization"`
	Filter       *repository.RepositoryFilter `json:"filter"`
	Options      repository.ScanOptions       `json:"options"`
}

ScanOrganizationRequest represents an organization scan request

type ScanSingleRepositoryRequest

type ScanSingleRepositoryRequest struct {
	Platform   string                 `json:"platform"`
	Owner      string                 `json:"owner"`
	Repository string                 `json:"repository"`
	Branch     string                 `json:"branch,omitempty"`
	Options    repository.ScanOptions `json:"options"`
}

ScanSingleRepositoryRequest represents a single repository scan request

type Server

type Server struct {
	// contains filtered or unexported fields
}

Server represents the REST API server

func NewServer

func NewServer(cfg config.RESTAPIConfig, mlPipeline *ml.MLPipeline, analyzer *analyzer.Analyzer) *Server

NewServer creates a new REST API server

func NewServerWithEnterprise

func NewServerWithEnterprise(cfg config.RESTAPIConfig, mlPipeline *ml.MLPipeline, analyzer *analyzer.Analyzer, enterpriseHandlers *EnterpriseHandlers) *Server

NewServerWithEnterprise creates a new REST API server with optional enterprise features

func (*Server) IsRunning

func (s *Server) IsRunning() bool

IsRunning returns whether the server is running

func (*Server) Start

func (s *Server) Start(ctx context.Context) error

Start starts the REST API server

func (*Server) Stop

func (s *Server) Stop(ctx context.Context) error

Stop stops the REST API server

type SupplyChainAPI

type SupplyChainAPI struct {
	// contains filtered or unexported fields
}

SupplyChainAPI handles supply chain security endpoints

func NewSupplyChainAPI

func NewSupplyChainAPI(scanner *scanner.Scanner, cfg *config.Config, logger *logger.Logger) *SupplyChainAPI

NewSupplyChainAPI creates a new supply chain API handler

func (*SupplyChainAPI) RegisterRoutes

func (sc *SupplyChainAPI) RegisterRoutes(router *gin.RouterGroup)

RegisterRoutes registers supply chain API routes

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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