Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 7 additions & 7 deletions charts/suppline/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -252,36 +252,36 @@ imagePullSecrets: []
# these are then available in suppline.yml via {{ env}}
registry:
enabled: true

# Image configuration
image:
repository: registry
tag: 2.8.3
pullPolicy: IfNotPresent

# Service configuration
service:
type: ClusterIP
port: 5000

# Persistence for registry data
persistence:
enabled: true
accessMode: ReadWriteOnce
size: 10Gi
storageClass: ""

# Registry credentials
# If not provided, username defaults to "suppline" and password is auto-generated
# credentials:
# username: "" # Leave empty for default "suppline"
# password: "" # Leave empty for auto-generated password

# Registry secrets
# htpasswd will be automatically generated from credentials
# secrets:
# haSharedSecret: "" # Optional: shared secret for registry security

# Resources
resources:
requests:
Expand All @@ -290,7 +290,7 @@ registry:
limits:
memory: "512Mi"
cpu: "500m"

# Security context
securityContext:
enabled: true
Expand Down
47 changes: 6 additions & 41 deletions internal/mcp/tools.go
Original file line number Diff line number Diff line change
Expand Up @@ -120,15 +120,7 @@ func registerReadOnlyTools(srv *mcpsdk.Server, c *Client, logger *slog.Logger) {
Description: "List image scans with optional filters. Combine policy_status='failed' and in_use_mode='in_use' to find policy failures for images currently deployed to runtime.",
Annotations: &mcpsdk.ToolAnnotations{ReadOnlyHint: true},
}, func(ctx context.Context, _ *mcpsdk.CallToolRequest, in ListScansInput) (*mcpsdk.CallToolResult, any, error) {
raw, err := c.ListScans(ctx, ListScansParams{
Repository: in.Repository,
PolicyStatus: in.PolicyStatus,
InUseMode: in.InUseMode,
MaxAge: in.MaxAge,
SortBy: in.SortBy,
Limit: in.Limit,
Offset: in.Offset,
})
raw, err := c.ListScans(ctx, ListScansParams(in))
return wrapResult(logger, "list_scans", raw, err)
})

Expand Down Expand Up @@ -158,12 +150,7 @@ func registerReadOnlyTools(srv *mcpsdk.Server, c *Client, logger *slog.Logger) {
Description: "List configured VEX statements, grouped by CVE with affected repositories. Set expired=true to find expired statements, expiring_soon=true for the next 7 days.",
Annotations: &mcpsdk.ToolAnnotations{ReadOnlyHint: true},
}, func(ctx context.Context, _ *mcpsdk.CallToolRequest, in ListVEXInput) (*mcpsdk.CallToolResult, any, error) {
raw, err := c.ListVEX(ctx, ListVEXParams{
CVEID: in.CVEID,
Repository: in.Repository,
ExpiringSoon: in.ExpiringSoon,
Expired: in.Expired,
})
raw, err := c.ListVEX(ctx, ListVEXParams(in))
return wrapResult(logger, "list_vex_statements", raw, err)
})

Expand All @@ -183,18 +170,7 @@ func registerReadOnlyTools(srv *mcpsdk.Server, c *Client, logger *slog.Logger) {
Description: "Search vulnerabilities across all latest scans, grouped by CVE with affected image counts.",
Annotations: &mcpsdk.ToolAnnotations{ReadOnlyHint: true},
}, func(ctx context.Context, _ *mcpsdk.CallToolRequest, in QueryVulnerabilitiesInput) (*mcpsdk.CallToolResult, any, error) {
raw, err := c.QueryVulnerabilities(ctx, QueryVulnerabilitiesParams{
CVEID: in.CVEID,
Severity: in.Severity,
PackageName: in.PackageName,
Repository: in.Repository,
SortBy: in.SortBy,
SortDir: in.SortDir,
Limit: in.Limit,
Offset: in.Offset,
IncludeDigests: in.IncludeDigests,
MaxDigests: in.MaxDigests,
})
raw, err := c.QueryVulnerabilities(ctx, QueryVulnerabilitiesParams(in))
return wrapResult(logger, "query_vulnerabilities", raw, err)
})

Expand Down Expand Up @@ -224,15 +200,7 @@ func registerReadOnlyTools(srv *mcpsdk.Server, c *Client, logger *slog.Logger) {
Description: "List mirrored repositories with aggregated vulnerability and policy status.",
Annotations: &mcpsdk.ToolAnnotations{ReadOnlyHint: true},
}, func(ctx context.Context, _ *mcpsdk.CallToolRequest, in ListRepositoriesInput) (*mcpsdk.CallToolResult, any, error) {
raw, err := c.ListRepositories(ctx, ListRepositoriesParams{
Search: in.Search,
PolicyStatus: in.PolicyStatus,
InUseMode: in.InUseMode,
MaxAge: in.MaxAge,
SortBy: in.SortBy,
Limit: in.Limit,
Offset: in.Offset,
})
raw, err := c.ListRepositories(ctx, ListRepositoriesParams(in))
return wrapResult(logger, "list_repositories", raw, err)
})

Expand Down Expand Up @@ -298,10 +266,7 @@ func registerWriteTools(srv *mcpsdk.Server, c *Client, logger *slog.Logger) {
IdempotentHint: false,
},
}, func(ctx context.Context, _ *mcpsdk.CallToolRequest, in TriggerRescanInput) (*mcpsdk.CallToolResult, any, error) {
raw, err := c.TriggerScan(ctx, TriggerScanRequest{
Digest: in.Digest,
Repository: in.Repository,
})
raw, err := c.TriggerScan(ctx, TriggerScanRequest(in))
return wrapResult(logger, "trigger_rescan", raw, err)
})

Expand All @@ -314,7 +279,7 @@ func registerWriteTools(srv *mcpsdk.Server, c *Client, logger *slog.Logger) {
IdempotentHint: false,
},
}, func(ctx context.Context, _ *mcpsdk.CallToolRequest, in ReevaluatePolicyInput) (*mcpsdk.CallToolResult, any, error) {
raw, err := c.ReevaluatePolicy(ctx, ReevaluatePolicyRequest{Repository: in.Repository})
raw, err := c.ReevaluatePolicy(ctx, ReevaluatePolicyRequest(in))
return wrapResult(logger, "reevaluate_policy", raw, err)
})
}
Expand Down
Loading