Skip to content

Conversation

@Feediver1
Copy link
Contributor

@Feediver1 Feediver1 commented Jul 22, 2025

Description

This pull request introduces Schema Registry Authorization, a new feature in Redpanda version 25.2, which provides fine-grained access control for Schema Registry operations using ACLs. The changes include updates to documentation, new configuration options, and examples for managing Schema Registry ACLs. Below is a summary of the most important changes grouped by theme.

Schema Registry Authorization Feature

  • Added a new page schema-reg-authorization.adoc detailing Schema Registry Authorization, including its functionality, supported operations, ACL resource types (REGISTRY and SUBJECT), and examples for managing ACLs.
  • Updated schema-reg-api.adoc to include instructions and examples for managing Schema Registry ACLs, including creating ACLs for specific roles and subjects.

Documentation Updates

  • Updated navigation in nav.adoc to include a link to the new Schema Registry Authorization page.
  • Enhanced the acl.adoc file to document the new ACL resource types (REGISTRY and SUBJECT) and their associated operations, such as DESCRIBE_CONFIGS and ALTER_CONFIGS. [1] [2]

Release Notes and Licensing

  • Added release notes in redpanda.adoc announcing Schema Registry Authorization as a new enterprise feature, including its benefits and usage.
  • Updated the licensing overview in overview.adoc to include Schema Registry Authorization as an enterprise feature with details on its capabilities.

These changes collectively introduce and document the new Schema Registry Authorization feature, enabling users to secure and manage access to Schema Registry resources effectively.

Resolves https://redpandadata.atlassian.net/browse/
Review deadline:

Page previews

What's New in Redpanda

Licensing/Redpanda enterprise features

Schema Registry Authorization

ACL resources

schema_registry_enable_authorization cluster property

Manage Schema Registry ACLs (Schema Registry API doc)

Checks

  • 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 July 22, 2025 21:31
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jul 22, 2025

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

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.

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

✨ Finishing Touches
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch DOC-1196

🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Explain this complex logic.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai generate unit tests to generate unit tests for this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@netlify
Copy link

netlify bot commented Jul 22, 2025

Deploy Preview for redpanda-docs-preview ready!

Name Link
🔨 Latest commit fdbeb93
🔍 Latest deploy log https://app.netlify.com/projects/redpanda-docs-preview/deploys/688a3e1d4b342d0008ef1ea1
😎 Deploy Preview https://deploy-preview-1224--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.

@Feediver1 Feediver1 marked this pull request as draft July 22, 2025 21:34
@Feediver1 Feediver1 changed the title Doc 1196 Doc 1196: Document Feature - Schema Registry Authorization Jul 25, 2025
@Feediver1 Feediver1 marked this pull request as ready for review July 25, 2025 19:35
Copy link
Contributor

@treevon treevon left a comment

Choose a reason for hiding this comment

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

Looks good, only change that needs to happen is the license expiration behavior. Right now it just describes what SR AuthZ does rather than the operations that are prohibited without a valid license.

=== schema_registry_enable_authorization

Enables ACL-based authorization for Schema Registry requests. When `true`, Schema Registry
uses ACL-based authorization instead of the default (`false`) `public/user/superuser` authorization model. Requires authentication to be enabled using the `schema_registry_api.authn_method`.
Copy link
Member

Choose a reason for hiding this comment

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

Might be worth linking to the broker property schema_registry_api.authn_method.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

once our automation adds that property, I will link to it.

| `/security/acls`
| `GET`
| `describe`
| `cluster_action`

Choose a reason for hiding this comment

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

@Feediver1 similarly here, I don't think 'cluster_action' is the true resource name within redpanda. IIUC the resource is 'CLUSTER' and the action 'DESCRIBE'.

But I guess rpk uses a flag called --cluster_action @r-vasquez ?? @treevon .

Copy link
Contributor

Choose a reason for hiding this comment

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

rpk has --cluster, AFAIU cluster_action is a valid kafka API operation. But I thought we wouldn't support this in schema registry.

@BenPope I see this in the RFC but I also see other thread where we mention:

CLUSTER_ACTION, CREATE, IDEMPOTENT_WRITE are supported operations on the kafka api but don't apply to the SR "subject" and "registry" resources.

So maybe this is something that I don't entirely understand, sorry

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@BenPope I only have 20 min before I have to merge this. I'm going with cluster as the resource here. We can revise later if this is wrong.

Copy link
Member

Choose a reason for hiding this comment

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

rpk names the resource --cluster for creatting and CLUSTER when reporting

cluster works well.

====
endif::[]

You can use ACLs to control access to Schema Registry resources. You can define fine-grained access on a global level, for example, to allow a principal to read all schemas, or on a per-subject basis; for example, to read and write to only the schemas of a specific subject.
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
You can use ACLs to control access to Schema Registry resources. You can define fine-grained access on a global level, for example, to allow a principal to read all schemas, or on a per-subject basis; for example, to read and write to only the schemas of a specific subject.
You can use ACLs to control access to Schema Registry resources. You can define fine-grained access on a global level, for example, to allow a principal to read all schemas, or on a per-subject basis, for example, to read and write to only the schemas of a specific subject.

or you could make it into 2 bullets?

@Feediver1 Feediver1 requested a review from micheleRP July 30, 2025 15:13
@Feediver1 Feediver1 requested a review from micheleRP July 30, 2025 15:47
Copy link
Contributor

@micheleRP micheleRP left a comment

Choose a reason for hiding this comment

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

LGTM!

@Feediver1 Feediver1 merged commit 5804945 into beta Jul 30, 2025
7 checks passed
@Feediver1 Feediver1 deleted the DOC-1196 branch July 30, 2025 16:01
paulohtb6 pushed a commit that referenced this pull request Jul 30, 2025
Co-authored-by: kbatuigas <36839689+kbatuigas@users.noreply.github.com>
Co-authored-by: Ben Pope <BenPope@users.noreply.github.com>
Co-authored-by: Michele Cyran <michele@redpanda.com>
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.

9 participants