Skip to content

Doc-1996: Schema Registry Contexts#1658

Draft
Feediver1 wants to merge 10 commits intomainfrom
Feediver1-patch-7
Draft

Doc-1996: Schema Registry Contexts#1658
Feediver1 wants to merge 10 commits intomainfrom
Feediver1-patch-7

Conversation

@Feediver1
Copy link
Copy Markdown
Contributor

Resolves https://redpandadata.atlassian.net/browse/DOC-1996

Description

Review deadline:

Page previews

Checks

  • [x ] New feature
  • Content gap
  • Support Follow-up
  • Small fix (typos, links, copyedits, etc)

@Feediver1 Feediver1 requested a review from a team as a code owner April 6, 2026 20:25
@netlify
Copy link
Copy Markdown

netlify bot commented Apr 6, 2026

Deploy Preview for redpanda-docs-preview ready!

Name Link
🔨 Latest commit d0c1357
🔍 Latest deploy log https://app.netlify.com/projects/redpanda-docs-preview/deploys/69d95d5693dec6000830916d
😎 Deploy Preview https://deploy-preview-1658--redpanda-docs-preview.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Apr 6, 2026

Important

Review skipped

Auto incremental reviews are disabled on this repository.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 712efe19-4c12-4764-867c-475303ea049c

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

A new documentation page for Schema Registry contexts was added to the Redpanda documentation. The page explains contexts as isolated namespaces for organizing schemas and subjects, including qualified subject syntax, fallback resolution order for configuration settings (subject → context → global → built-in defaults), schema reference resolution, enablement via cluster properties with version-specific defaults, configuration at context and subject scopes, HTTP endpoints, rpk command usage patterns, ACL behavior with resource types and prefix grants, updated metrics with context labels, upgrade considerations when enabling qualified subjects, and troubleshooting guidance.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~5 minutes

Suggested reviewers

  • sago2k8
  • andresaristizabal
  • r-vasquez
  • micheleRP
  • JakeSCahill
🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and specifically identifies the main change: adding Schema Registry Contexts documentation, matching the PR's primary objective.
Description check ✅ Passed The description follows the template structure with JIRA ticket reference and feature checkbox selected, though the review deadline and page preview link are not provided.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch Feediver1-patch-7

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🧹 Nitpick comments (1)
modules/manage/pages/schema-reg/schema-reg-contexts.adoc (1)

374-383: Use auto-title xrefs instead of hard-coded link text

Prefer xref:...[] with empty brackets so link labels stay in sync with target page titles and reduce maintenance drift.

Based on learnings: “AsciiDoc linking: prefer using xref links with empty brackets (e.g., xref:section/target.adoc[]) … Avoid hard-coding link text.”

Also applies to: 572-581

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@modules/manage/pages/schema-reg/schema-reg-contexts.adoc` around lines 374 -
383, Replace each hard-coded xref label in the listed links (e.g.,
xref:reference:rpk/rpk-registry/rpk-registry-schema-create.adoc[rpk registry
schema create],
xref:reference:rpk/rpk-registry/rpk-registry-schema-list.adoc[rpk registry
schema list], xref:reference:rpk/rpk-registry/rpk-registry-schema-get.adoc[rpk
registry schema get],
xref:reference:rpk/rpk-registry/rpk-registry-schema-check-compatibility.adoc[rpk
registry schema check-compatibility],
xref:reference:rpk/rpk-registry/rpk-registry-compatibility-level-get.adoc[rpk
registry compatibility-level get],
xref:reference:rpk/rpk-registry/rpk-registry-compatibility-level-set.adoc[rpk
registry compatibility-level set],
xref:reference:rpk/rpk-registry/rpk-registry-mode-get.adoc[rpk registry mode
get], xref:reference:rpk/rpk-registry/rpk-registry-mode-set.adoc[rpk registry
mode set], xref:reference:rpk/rpk-registry/rpk-registry-subject-delete.adoc[rpk
registry subject delete],
xref:reference:rpk/rpk-registry/rpk-registry-subject-list.adoc[rpk registry
subject list]) to use empty-bracket auto-title xrefs (e.g.,
xref:reference:rpk/rpk-registry/rpk-registry-schema-create.adoc[]) so the link
labels derive from the target page titles; apply the same change to the other
similar block referenced in the comment (lines 572-581).
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@modules/manage/pages/schema-reg/schema-reg-contexts.adoc`:
- Line 1: The page "Schema Registry Contexts"
(modules/manage/pages/schema-reg/schema-reg-contexts.adoc) is not linked in the
Site nav; update the navigation by adding a new entry under the existing "Schema
Registry" tree in modules/ROOT/nav.adoc that points to this page (use the same
title "Schema Registry Contexts" or a consistent label) so the page appears in
the sidebar; ensure the new nav item is placed within the Schema Registry
section block and follows the surrounding nav entry formatting and ordering.
- Around line 41-49: The docs disagree about the default for
schema_registry_enable_qualified_subjects (26.1 false vs 26.2 true) — update the
schema-reg-contexts.adoc text and the cluster-properties reference so they
consistently show versioned defaults or explicitly state the version scope;
specifically, change the paragraph that mentions "defaults to false in 26.1 and
true in 26.2" to match the authoritative source (cluster-properties) or add a
clear version note indicating the default per version, and apply the same
clarification to the duplicate mention around lines 303–305 so both places
consistently reference schema_registry_enable_qualified_subjects with the same
versioned guidance.

---

Nitpick comments:
In `@modules/manage/pages/schema-reg/schema-reg-contexts.adoc`:
- Around line 374-383: Replace each hard-coded xref label in the listed links
(e.g., xref:reference:rpk/rpk-registry/rpk-registry-schema-create.adoc[rpk
registry schema create],
xref:reference:rpk/rpk-registry/rpk-registry-schema-list.adoc[rpk registry
schema list], xref:reference:rpk/rpk-registry/rpk-registry-schema-get.adoc[rpk
registry schema get],
xref:reference:rpk/rpk-registry/rpk-registry-schema-check-compatibility.adoc[rpk
registry schema check-compatibility],
xref:reference:rpk/rpk-registry/rpk-registry-compatibility-level-get.adoc[rpk
registry compatibility-level get],
xref:reference:rpk/rpk-registry/rpk-registry-compatibility-level-set.adoc[rpk
registry compatibility-level set],
xref:reference:rpk/rpk-registry/rpk-registry-mode-get.adoc[rpk registry mode
get], xref:reference:rpk/rpk-registry/rpk-registry-mode-set.adoc[rpk registry
mode set], xref:reference:rpk/rpk-registry/rpk-registry-subject-delete.adoc[rpk
registry subject delete],
xref:reference:rpk/rpk-registry/rpk-registry-subject-list.adoc[rpk registry
subject list]) to use empty-bracket auto-title xrefs (e.g.,
xref:reference:rpk/rpk-registry/rpk-registry-schema-create.adoc[]) so the link
labels derive from the target page titles; apply the same change to the other
similar block referenced in the comment (lines 572-581).
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: c449cefb-0206-4296-8e68-0242ce9e07b5

📥 Commits

Reviewing files that changed from the base of the PR and between c4f9842 and 3c19d16.

📒 Files selected for processing (1)
  • modules/manage/pages/schema-reg/schema-reg-contexts.adoc

@Feediver1 Feediver1 marked this pull request as draft April 6, 2026 20:44
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: Joyce Fee <102751339+Feediver1@users.noreply.github.com>
Co-authored-by: Joyce Fee <102751339+Feediver1@users.noreply.github.com>
Co-authored-by: Joyce Fee <102751339+Feediver1@users.noreply.github.com>
Co-authored-by: Joyce Fee <102751339+Feediver1@users.noreply.github.com>

*Cause*: This is a known limitation of the `referencedby` endpoint. It returns bare schema IDs with no context metadata. When references span contexts, the returned IDs are ambiguous.

*Resolution*: There is no workaround in 26.1. To identify which schema an ID belongs to, try resolving the ID against each relevant context using `GET /schemas/ids/{id}?subject=:<context>:<subject>`.
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
*Resolution*: There is no workaround in 26.1. To identify which schema an ID belongs to, try resolving the ID against each relevant context using `GET /schemas/ids/{id}?subject=:<context>:<subject>`.
*Resolution*: There is no workaround. To identify which schema an ID belongs to, try resolving the ID against each relevant context using `GET /schemas/ids/{id}?subject=:<context>:<subject>`.

Comment on lines +366 to +368
| Default (26.1) | `false`
| Default (26.2) | `true`
| Removed in | 26.3 (always enabled)
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
| Default (26.1) | `false`
| Default (26.2) | `true`
| Removed in | 26.3 (always enabled)
| Default (v26.1) | `false`


If affected subjects are found, rename them before enabling the property, or plan to re-register them under the reinterpreted context structure after enabling.

In 26.2, if you need additional time to migrate, you can temporarily set `schema_registry_enable_qualified_subjects` to `false` to restore literal behavior while you complete the migration. This option is removed in 26.3, after which contexts are always enabled.
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
In 26.2, if you need additional time to migrate, you can temporarily set `schema_registry_enable_qualified_subjects` to `false` to restore literal behavior while you complete the migration. This option is removed in 26.3, after which contexts are always enabled.

Co-authored-by: Joyce Fee <102751339+Feediver1@users.noreply.github.com>

Schema Registry contexts are namespaces that isolate schemas, subjects, and configuration from one another within a single Schema Registry instance.
Each context maintains its own schema ID counter, mode settings, and compatibility settings.
Unqualified subjects continue to work unchanged in the implicit default context.
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Unqualified subjects continue to work unchanged in the implicit default context.
Existing schemas will simply continue to work: unqualified subjects remain in the implicit default context

Feediver1 and others added 2 commits April 10, 2026 11:02
Co-authored-by: Joyce Fee <102751339+Feediver1@users.noreply.github.com>
Add // tag::single-source[] and // end::single-source[] to
schema-reg-contexts.adoc so cloud-docs can include the body content
via the established single-sourcing pattern.

Update local-antora-playbook.yml to reference the cloud-docs PR branch
for Netlify preview. Must revert to 'main' before merge.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Each context maintains its own schema ID counter, mode settings, and compatibility settings.
Unqualified subjects continue to work unchanged in the implicit default context.

Schema Registry contexts is compatible with the Confluent Schema Registry Contexts API and requires no enterprise license.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Schema Registry contexts is compatible with the Confluent Schema Registry Contexts API and requires no enterprise license.
Schema Registry contexts is compatible with the Confluent Schema Registry Contexts API.

Removing since we don't note things that don't require an enterprise license. Plus it's cleaner for single sourcing into Cloud

Before using Schema Registry contexts, ensure that:

* You are running Redpanda v26.1 or later.
* The `schema_registry_enable_qualified_subjects` cluster configuration property is set to `true`.
Copy link
Copy Markdown
Contributor

@micheleRP micheleRP Apr 10, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this (schema_registry_enable_qualified_subjects) should be conditionalized out for Cloud and replaced with the Note about this property you have later in the file!

----
endif::env-cloud[]

== rpk commands
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this heading isn't rendering properly


For the full metrics reference, see xref:reference:public-metrics-reference.adoc[].

== Upgrade considerations
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this section should probably be conditionalized out for Cloud

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.

2 participants