Skip to content

fix(binding-mcp-schema-registry): support permanent delete for subject and schema version - #2536

Merged
jfallows merged 2 commits into
developfrom
claude/zilla-issue-2533-s95yfu
Sep 4, 2026
Merged

fix(binding-mcp-schema-registry): support permanent delete for subject and schema version#2536
jfallows merged 2 commits into
developfrom
claude/zilla-issue-2533-s95yfu

Conversation

@jfallows

@jfallows jfallows commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

Description

The bundled Karapace OpenAPI spec's delete_subject and delete_schema_version operations only declared their path parameters, so there was no way to pass Karapace's permanent=true query flag through the generated MCP tool schema to purge a soft-deleted subject or schema version — the kafka_sr__delete_subject/kafka_sr__delete_schema_version tools could only ever soft-delete, with no cleanup path.

Adds an optional permanent boolean query parameter to both operations in karapace-schema-registry.openapi.json. The existing OpenAPI-driven MCP tool generation (binding-mcp-openapi) picks this up automatically for both the tool's inputSchema and the outgoing HTTP request — no Java code changes were needed.

Per this repo's test-first discipline: new k3po .rpt script pairs (delete.subject.permanent, delete.schema.version.permanent) were written first for both the MCP and HTTP sides, with corresponding IT methods added to McpSchemaRegistryProxyIT, McpSchemaRegistryClientIT, McpServerIT, and HttpClientIT, and the tools/list expected inputSchema strings updated — confirmed failing against the current code before the OpenAPI change, and passing after.

Fixes #2533

Test plan

  • mvn verify -pl runtime/binding-mcp-schema-registry — full IT suite green (24 scenarios, including the 4 new permanent-delete ones)
  • mvn verify -pl specs/binding-mcp-schema-registry.spec — spec-level peer-to-peer verification (McpServerIT, HttpClientIT) green
  • mvn checkstyle:check / mvn license:check — clean

🤖 Generated with Claude Code

https://claude.ai/code/session_01Fr7pZUuTmie5mzpxdHvmW9


Generated by Claude Code

…t and schema version

The bundled Karapace OpenAPI spec's delete_subject and delete_schema_version
operations only declared their path parameters, so there was no way to pass
Karapace's permanent=true query flag through the generated MCP tool schema
to purge a soft-deleted subject or schema version.

Add an optional permanent boolean query parameter to both operations; the
existing OpenAPI-driven MCP tool generation picks it up automatically for
both the tool's inputSchema and the outgoing HTTP request.

Fixes #2533

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Fr7pZUuTmie5mzpxdHvmW9
@jfallows jfallows assigned jfallows and unassigned jfallows Sep 4, 2026

jfallows commented Sep 4, 2026

Copy link
Copy Markdown
Contributor Author

The testing (mcp.proxy) check is failing here (zilla-mcp-proxy-everything-1 container reports unhealthy, causing docker compose up -d --wait to abort with exit code 1: https://github.com/aklivity/zilla/actions/runs/33827260762/job/100888844137). This isn't caused by this PR's diff, which only touches binding-mcp-schema-registry's bundled OpenAPI spec and its own tests.

Confirmed on develop's own tip commit (d3c106134c2, the base this PR branches from): the same testing (mcp.proxy) job fails identically in develop's own build workflow run (https://github.com/aklivity/zilla/actions/runs/33811519466/job/100841705731), so the examples/mcp.proxy Compose stack is already broken on develop before this PR's change. I don't see an open fix for it yet (checked open PRs and recent issues), so there's nothing to port in. Re-running the failed job once to rule out a one-off flake; if it fails again it confirms the pre-existing breakage and this PR stays blocked on that, not on anything in this diff.


Generated by Claude Code

@jfallows
jfallows merged commit e7541dd into develop Sep 4, 2026
43 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

kafka_sr__delete_subject tool schema has no 'permanent' parameter, so a subject can only ever be soft-deleted

2 participants