Sync excluded field to MCP and CLI

Add excluded boolean to the MCP CookiePattern schema and
UpdateCookiePatternInput. Expose it in CLI cookie-pattern
view, list, and update commands.

Signed-off-by: Émile Ré <emile@getprobo.com>
This commit is contained in:
Émile Ré
2026-05-01 16:48:55 +04:00
parent 3ed61c6084
commit dd1d0ebffb
6 changed files with 29 additions and 2 deletions

View File

@@ -37,6 +37,7 @@ query($id: ID!, $first: Int, $after: CursorKey) {
matchType
displayName
source
excluded
}
}
pageInfo {
@@ -55,6 +56,7 @@ type cookiePattern struct {
MatchType string `json:"matchType"`
DisplayName string `json:"displayName"`
Source string `json:"source"`
Excluded bool `json:"excluded"`
}
func NewCmdList(f *cmdutil.Factory) *cobra.Command {
@@ -133,10 +135,14 @@ func NewCmdList(f *cmdutil.Factory) *cobra.Command {
rows := make([][]string, 0, len(patterns))
for _, p := range patterns {
rows = append(rows, []string{p.ID, p.Pattern, p.MatchType, p.DisplayName, p.Source})
excluded := ""
if p.Excluded {
excluded = "yes"
}
rows = append(rows, []string{p.ID, p.Pattern, p.MatchType, p.DisplayName, p.Source, excluded})
}
t := cmdutil.NewTable("ID", "PATTERN", "MATCH TYPE", "DISPLAY NAME", "SOURCE").Rows(rows...)
t := cmdutil.NewTable("ID", "PATTERN", "MATCH TYPE", "DISPLAY NAME", "SOURCE", "EXCLUDED").Rows(rows...)
_, _ = fmt.Fprintln(f.IOStreams.Out, t)
if totalCount > len(patterns) {

View File

@@ -51,6 +51,7 @@ func NewCmdUpdate(f *cmdutil.Factory) *cobra.Command {
flagDisplayName string
flagDescription string
flagMaxAge int
flagExcluded bool
)
cmd := &cobra.Command{
@@ -87,6 +88,9 @@ func NewCmdUpdate(f *cmdutil.Factory) *cobra.Command {
if cmd.Flags().Changed("max-age-seconds") {
input["maxAgeSeconds"] = flagMaxAge
}
if cmd.Flags().Changed("excluded") {
input["excluded"] = flagExcluded
}
if len(input) == 1 {
return fmt.Errorf("at least one field must be specified for update")
@@ -112,6 +116,7 @@ func NewCmdUpdate(f *cmdutil.Factory) *cobra.Command {
cmd.Flags().StringVar(&flagDisplayName, "display-name", "", "Display name")
cmd.Flags().StringVar(&flagDescription, "description", "", "Description")
cmd.Flags().IntVar(&flagMaxAge, "max-age-seconds", 0, "Maximum age in seconds")
cmd.Flags().BoolVar(&flagExcluded, "excluded", false, "Exclude pattern from consent banner")
return cmd
}

View File

@@ -36,6 +36,7 @@ query($id: ID!) {
maxAgeSeconds
description
source
excluded
createdAt
updatedAt
}
@@ -53,6 +54,7 @@ type viewResponse struct {
MaxAgeSeconds *int `json:"maxAgeSeconds"`
Description *string `json:"description"`
Source string `json:"source"`
Excluded bool `json:"excluded"`
CreatedAt string `json:"createdAt"`
UpdatedAt string `json:"updatedAt"`
} `json:"node"`
@@ -117,6 +119,7 @@ func NewCmdView(f *cmdutil.Factory) *cobra.Command {
_, _ = fmt.Fprintf(out, "%s%s\n", label.Render("Pattern:"), v.Pattern)
_, _ = fmt.Fprintf(out, "%s%s\n", label.Render("Match Type:"), v.MatchType)
_, _ = fmt.Fprintf(out, "%s%s\n", label.Render("Source:"), v.Source)
_, _ = fmt.Fprintf(out, "%s%v\n", label.Render("Excluded:"), v.Excluded)
if v.MaxAgeSeconds != nil {
_, _ = fmt.Fprintf(out, "%s%d\n", label.Render("Max Age (seconds):"), *v.MaxAgeSeconds)
}

View File

@@ -5093,6 +5093,9 @@ func (r *Resolver) UpdateCookiePatternTool(ctx context.Context, req *mcp.CallToo
if v := UnwrapOmittable(input.Description); v != nil && *v != nil {
updateReq.Description = *v
}
if v := UnwrapOmittable(input.Excluded); v != nil && *v != nil {
updateReq.Excluded = *v
}
pattern, err := r.cookieBanner.UpdateCookiePattern(ctx, scope, updateReq)
if err != nil {
return nil, types.UpdateCookiePatternOutput{}, fmt.Errorf("cannot update cookie pattern: %w", err)

View File

@@ -9320,6 +9320,7 @@ components:
- display_name
- description
- source
- excluded
- created_at
- updated_at
properties:
@@ -9357,6 +9358,9 @@ components:
type: string
enum: [SCRIPT, PRE_EXISTING]
description: How the pattern was discovered
excluded:
type: boolean
description: Whether this pattern is excluded from the consent banner
created_at:
type: string
format: date-time
@@ -9889,6 +9893,11 @@ components:
- string
- "null"
go.probo.inc/mcpgen/omittable: true
excluded:
type:
- boolean
- "null"
go.probo.inc/mcpgen/omittable: true
UpdateCookiePatternOutput:
type: object

View File

@@ -31,6 +31,7 @@ func NewCookiePattern(p *coredata.CookiePattern) *CookiePattern {
MaxAgeSeconds: p.MaxAgeSeconds,
Description: p.Description,
Source: CookiePatternSource(p.Source),
Excluded: p.Excluded,
CreatedAt: p.CreatedAt,
UpdatedAt: p.UpdatedAt,
}