Skip to content

feat(DOC-1942): document delete_topic_enable enterprise feature#1610

Open
mfernest wants to merge 4 commits intomainfrom
fix/doc-1942-delete-topic-enable
Open

feat(DOC-1942): document delete_topic_enable enterprise feature#1610
mfernest wants to merge 4 commits intomainfrom
fix/doc-1942-delete-topic-enable

Conversation

@mfernest
Copy link
Contributor

Summary

  • Documents new enterprise cluster property delete_topic_enable (in dev branch, targeting next major Redpanda release)
  • Adds property override with description and related_topics links so it renders correctly when property docs are next regenerated
  • Adds Topic Deletion Control to the enterprise features table in the licensing overview
  • Includes auto-docs regeneration for v25.3.10 (34 new cloud_topics topic properties, schema_registry_avro_use_named_references version note)

About delete_topic_enable:

  • Boolean cluster property, defaults to true (backward compatible)
  • Setting to false prevents ALL topic deletion via the Kafka DeleteTopics API, including for superusers
  • Rejections use error code 73 (TOPIC_DELETION_DISABLED)
  • Setting to false requires an enterprise license
  • Works independently of kafka_nodelete_topics (which protects specific topics)
  • Engineering PR: CORE-15436 delete topic enable redpanda#29365

Test plan

  • Build passes locally
  • Verify enterprise features table renders correctly at /get-started/licensing/overview
  • Verify property override description appears when property docs are regenerated for next release

🤖 Generated with Claude Code

mfernest and others added 2 commits March 16, 2026 17:28
Updates property partials and JSON for v25.3.10:
- Adds "Introduced in v25.3.10" note to schema_registry_avro_use_named_references
- Adds 34 new cloud_topics topic properties
- Updates property-overrides.json with new property stubs
- Cleans up old diff JSON files

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Adds documentation for the new `delete_topic_enable` cluster property
(available in dev, targeting next major release):

- Adds property override with description and related_topics
- Adds Topic Deletion Control entry to the enterprise features table
  in the licensing overview

The property defaults to `true` (backward compatible). Setting it to
`false` prevents all topic deletion via the Kafka DeleteTopics API,
including for superusers, and requires an enterprise license.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@mfernest mfernest requested a review from a team as a code owner March 17, 2026 00:28
@netlify
Copy link

netlify bot commented Mar 17, 2026

Deploy Preview for redpanda-docs-preview ready!

Name Link
🔨 Latest commit c75278a
🔍 Latest deploy log https://app.netlify.com/projects/redpanda-docs-preview/deploys/69b8b675090fcd00077b8973
😎 Deploy Preview https://deploy-preview-1610--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
Contributor

coderabbitai bot commented Mar 17, 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: 0cd88132-77f0-4134-9e60-77a610ea8987

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

This PR updates Redpanda documentation for the v25.3.10 release by adding extensive new configuration properties. Changes include: adding 40+ new property overrides to the property-overrides.json file; removing two historical changelog files (v25.3.1-to-v25.3.3 and v25.3.9-to-v25.3.10); adding "Topic Deletion Control" to the enterprise features documentation; extending the v25.3.10 properties reference file with 481 new lines of property definitions; adding a version note to cluster properties documentation; and significantly expanding topic properties documentation with ~1,095 new lines covering cloud storage, cloud topics reconciliation, schema registry, and storage mode configurations.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

Suggested reviewers

  • paulohtb6
  • WillemKauf
  • micheleRP
🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately describes the main change: documenting the delete_topic_enable enterprise feature.
Description check ✅ Passed The description provides clear context about the delete_topic_enable property, its behavior, and includes commit history, but lacks some required template sections like Jira ticket link and page previews.
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 fix/doc-1942-delete-topic-enable
📝 Coding Plan
  • Generate coding plan for human review comments

Warning

Review ran into problems

🔥 Problems

Git: Failed to clone repository. Please run the @coderabbitai full review command to re-trigger a full review. If the issue persists, set path_filters to include or exclude specific files.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

Copy link
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: 4

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (2)
modules/reference/partials/properties/topic-properties.adoc (2)

1122-1155: ⚠️ Potential issue | 🟠 Major

delete_topic_enable metadata is inconsistent with the PR’s stated behavior.

At Line 1133 and Line 1143, this property is documented as string with default null, but the PR objective describes a boolean cluster property with default true. It’s also appearing under topic properties, which conflicts with the “cluster property” scope.

Please correct this in the property source/overrides and regenerate docs so the rendered reference matches product behavior.

Based on learnings, "Never directly edit files in /modules/reference/partials/properties/ - they are auto-generated and will be overwritten" and "Update /docs-data/property-overrides.json to make changes to property documentation - this is the file that drives auto-generation of property reference pages".

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

In `@modules/reference/partials/properties/topic-properties.adoc` around lines
1122 - 1155, The metadata for delete_topic_enable is wrong in the generated
partials: update the property override for "delete_topic_enable" in
docs-data/property-overrides.json to mark its type as boolean, default true,
scope as cluster (not topic), nullable as No (and any restore-related flags as
appropriate), then regenerate the reference docs so the auto-generated file in
modules/reference/partials/properties reflects the correct boolean cluster
property and default value; look for the "delete_topic_enable" entry in
property-overrides.json and change its "type", "default", and "scope"/"category"
fields accordingly before running the docs generation.

2609-2612: ⚠️ Potential issue | 🟡 Minor

Self-referential alias text is incorrect.

Line 2611 says redpanda.value.subject.name.strategy is an alias for itself, which is not meaningful. Please replace with the correct alias target (or remove the alias sentence).

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

In `@modules/reference/partials/properties/topic-properties.adoc` around lines
2609 - 2612, The doc currently states that redpanda.value.subject.name.strategy
is a compatibility alias for itself; change the alias sentence so it refers to
the other setting instead — update the sentence under the
redpanda.value.subject.name.strategy section to say it is a compatibility alias
for confluent.value.subject.name.strategy (or remove the alias sentence entirely
if that mapping is incorrect), ensuring the symbols
redpanda.value.subject.name.strategy and confluent.value.subject.name.strategy
are used to identify the correct settings.
🤖 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/reference/attachments/redpanda-properties-v25.3.10.json`:
- Around line 5375-5389: The entry for the configuration key
default_redpanda_storage_mode is incorrectly marked as a topic property; update
its metadata (the object for "default_redpanda_storage_mode") to set
"is_topic_property": false (and remove any other topic-only flags if present) so
the cluster-side default remains a cluster property; apply the same change to
the other duplicate occurrence referenced (the entry at the other location for
default_redpanda_storage_mode).
- Around line 5477-5491: The property entry for delete_topic_enable is
incorrectly defined as a topic-scoped string placeholder; update
docs-data/property-overrides.json to make delete_topic_enable a cluster-level
boolean with "type": "boolean", "config_scope": "cluster", "default": true, an
appropriate descriptive "description" (replacing the generic placeholder), and
ensure "is_topic_property": false so the generated JSON
(redpanda-properties-*.json) picks up the correct metadata and appears on the
cluster property reference page instead of the topic page.
- Around line 3280-3311: The two properties
cloud_topics_disable_level_zero_gc_for_tests and
cloud_topics_disable_metastore_flush_loop_for_tests are test-only hooks but are
marked visibility: "user"; update their visibility to an internal/hidden value
(e.g., "internal" or "hidden") so they are not shown in user-facing docs,
leaving all other fields intact and ensuring both entries reflect the non-public
visibility.
- Around line 7556-7570: The listed properties (internal_rpc_request_timeout_ms,
oidc_group_claim_path,
partition_autobalancing_node_autodecommission_timeout_sec,
schema_registry_enable_qualified_subjects) are incorrectly marked as topic
properties; update each property's JSON object to use the correct
service/cluster scope (replace config_scope: "topic" with the appropriate
service-level value used elsewhere in this file, e.g., "broker" or "cluster")
and set is_topic_property: false; apply the same fix for the other occurrences
referenced (around lines 10276-10290, 10554-10568, 12958-12972) so these
settings are classified as service/cluster-level rather than topic-level in
generated docs.

---

Outside diff comments:
In `@modules/reference/partials/properties/topic-properties.adoc`:
- Around line 1122-1155: The metadata for delete_topic_enable is wrong in the
generated partials: update the property override for "delete_topic_enable" in
docs-data/property-overrides.json to mark its type as boolean, default true,
scope as cluster (not topic), nullable as No (and any restore-related flags as
appropriate), then regenerate the reference docs so the auto-generated file in
modules/reference/partials/properties reflects the correct boolean cluster
property and default value; look for the "delete_topic_enable" entry in
property-overrides.json and change its "type", "default", and "scope"/"category"
fields accordingly before running the docs generation.
- Around line 2609-2612: The doc currently states that
redpanda.value.subject.name.strategy is a compatibility alias for itself; change
the alias sentence so it refers to the other setting instead — update the
sentence under the redpanda.value.subject.name.strategy section to say it is a
compatibility alias for confluent.value.subject.name.strategy (or remove the
alias sentence entirely if that mapping is incorrect), ensuring the symbols
redpanda.value.subject.name.strategy and confluent.value.subject.name.strategy
are used to identify the correct settings.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: f69e91f4-b258-45fd-a3a2-665957ef3522

📥 Commits

Reviewing files that changed from the base of the PR and between fe8a357 and 080c801.

📒 Files selected for processing (7)
  • docs-data/property-overrides.json
  • docs-data/redpanda-property-changes-v25.3.1-to-v25.3.3.json
  • docs-data/redpanda-property-changes-v25.3.9-to-v25.3.10.json
  • modules/get-started/pages/licensing/overview.adoc
  • modules/reference/attachments/redpanda-properties-v25.3.10.json
  • modules/reference/partials/properties/cluster-properties.adoc
  • modules/reference/partials/properties/topic-properties.adoc
💤 Files with no reviewable changes (2)
  • docs-data/redpanda-property-changes-v25.3.1-to-v25.3.3.json
  • docs-data/redpanda-property-changes-v25.3.9-to-v25.3.10.json

Comment on lines +3280 to +3311
"cloud_topics_disable_level_zero_gc_for_tests": {
"cloud_byoc_only": false,
"cloud_editable": false,
"cloud_readonly": false,
"cloud_supported": false,
"config_scope": "topic",
"default": null,
"defined_in": "override",
"description": "Configuration property: cloud_topics_disable_level_zero_gc_for_tests",
"is_deprecated": false,
"is_topic_property": true,
"name": "cloud_topics_disable_level_zero_gc_for_tests",
"type": "string",
"version": "dev",
"visibility": "user"
},
"cloud_topics_disable_metastore_flush_loop_for_tests": {
"cloud_byoc_only": false,
"cloud_editable": false,
"cloud_readonly": false,
"cloud_supported": false,
"config_scope": "topic",
"default": null,
"defined_in": "override",
"description": "Configuration property: cloud_topics_disable_metastore_flush_loop_for_tests",
"is_deprecated": false,
"is_topic_property": true,
"name": "cloud_topics_disable_metastore_flush_loop_for_tests",
"type": "string",
"version": "dev",
"visibility": "user"
},
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Keep the _for_tests switches out of user-facing docs.

The _for_tests suffix reads as internal-only, but both entries are marked visibility: "user". If these render, the public reference will advertise unsupported test hooks.

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

In `@modules/reference/attachments/redpanda-properties-v25.3.10.json` around lines
3280 - 3311, The two properties cloud_topics_disable_level_zero_gc_for_tests and
cloud_topics_disable_metastore_flush_loop_for_tests are test-only hooks but are
marked visibility: "user"; update their visibility to an internal/hidden value
(e.g., "internal" or "hidden") so they are not shown in user-facing docs,
leaving all other fields intact and ensuring both entries reflect the non-public
visibility.

Comment on lines +5375 to +5389
"default_redpanda_storage_mode": {
"cloud_byoc_only": false,
"cloud_editable": true,
"cloud_readonly": false,
"cloud_supported": true,
"config_scope": "topic",
"default": null,
"defined_in": "override",
"description": "Configuration property: default_redpanda_storage_mode",
"is_deprecated": false,
"is_topic_property": true,
"name": "default_redpanda_storage_mode",
"type": "string",
"version": "dev",
"visibility": "user"
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

Don't classify default_redpanda_storage_mode as another topic property.

redpanda.storage.mode is the topic-level knob. If default_redpanda_storage_mode is also emitted with is_topic_property: true, the cluster-side default loses its separate cluster-property entry.

Also applies to: 11849-11863

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

In `@modules/reference/attachments/redpanda-properties-v25.3.10.json` around lines
5375 - 5389, The entry for the configuration key default_redpanda_storage_mode
is incorrectly marked as a topic property; update its metadata (the object for
"default_redpanda_storage_mode") to set "is_topic_property": false (and remove
any other topic-only flags if present) so the cluster-side default remains a
cluster property; apply the same change to the other duplicate occurrence
referenced (the entry at the other location for default_redpanda_storage_mode).

Comment on lines +5477 to +5491
"delete_topic_enable": {
"cloud_byoc_only": false,
"cloud_editable": false,
"cloud_readonly": false,
"cloud_supported": false,
"config_scope": "topic",
"default": null,
"defined_in": "override",
"description": "Configuration property: delete_topic_enable",
"is_deprecated": false,
"is_topic_property": true,
"name": "delete_topic_enable",
"type": "string",
"version": "dev",
"visibility": "user"
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

delete_topic_enable is still generated as a placeholder topic property.

The PR objectives describe this as a boolean cluster property with default true, but this entry is topic-scoped with type: "string", default: null, and only the generic placeholder description. That will publish the feature on the wrong reference page with the wrong metadata. This likely needs to be corrected in docs-data/property-overrides.json before regenerating the attachment. Based on learnings, update /docs-data/property-overrides.json to make changes to property documentation - this is the file that drives auto-generation of property reference pages.

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

In `@modules/reference/attachments/redpanda-properties-v25.3.10.json` around lines
5477 - 5491, The property entry for delete_topic_enable is incorrectly defined
as a topic-scoped string placeholder; update docs-data/property-overrides.json
to make delete_topic_enable a cluster-level boolean with "type": "boolean",
"config_scope": "cluster", "default": true, an appropriate descriptive
"description" (replacing the generic placeholder), and ensure
"is_topic_property": false so the generated JSON (redpanda-properties-*.json)
picks up the correct metadata and appears on the cluster property reference page
instead of the topic page.

Comment on lines +7556 to +7570
"internal_rpc_request_timeout_ms": {
"cloud_byoc_only": false,
"cloud_editable": false,
"cloud_readonly": false,
"cloud_supported": false,
"config_scope": "topic",
"default": null,
"defined_in": "override",
"description": "Configuration property: internal_rpc_request_timeout_ms",
"is_deprecated": false,
"is_topic_property": true,
"name": "internal_rpc_request_timeout_ms",
"type": "string",
"version": "dev",
"visibility": "user"
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

These service-level settings are also mis-scoped as topic properties.

internal_rpc_request_timeout_ms, oidc_group_claim_path, partition_autobalancing_node_autodecommission_timeout_sec, and schema_registry_enable_qualified_subjects are cluster/service settings, but each stub here sets config_scope: "topic" and is_topic_property: true. That will classify them as topic properties in the generated docs.

Also applies to: 10276-10290, 10554-10568, 12958-12972

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

In `@modules/reference/attachments/redpanda-properties-v25.3.10.json` around lines
7556 - 7570, The listed properties (internal_rpc_request_timeout_ms,
oidc_group_claim_path,
partition_autobalancing_node_autodecommission_timeout_sec,
schema_registry_enable_qualified_subjects) are incorrectly marked as topic
properties; update each property's JSON object to use the correct
service/cluster scope (replace config_scope: "topic" with the appropriate
service-level value used elsewhere in this file, e.g., "broker" or "cluster")
and set is_topic_property: false; apply the same fix for the other occurrences
referenced (around lines 10276-10290, 10554-10568, 12958-12972) so these
settings are classified as service/cluster-level rather than topic-level in
generated docs.

mfernest and others added 2 commits March 16, 2026 17:50
…overview

- Change "Redpanda enterprise features" heading to "Redpanda Enterprise
  Edition features" for consistency with product naming on the page
- Fix Leader Pinning xref pointing to wrong anchor (Kerberos auth);
  now correctly links to develop:produce-data/leader-pinning.adoc

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…lt true

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@mfernest
Copy link
Contributor Author

@coderabbitai The delete_topic_enable property does not appear in topic-properties.adoc on this branch. Line 1122 in that file is delete.retention.ms, a different property.

delete_topic_enable is correctly placed in cluster-properties.adoc only (line 4137), typed as boolean with default true, via the override in docs-data/property-overrides.json. This comment appears to be a false positive.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Mar 17, 2026

Tip

For best results, initiate chat on the files or code changes.

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Verify the claim about delete_topic_enable placement
echo "=== Searching for delete_topic_enable in topic-properties.adoc ==="
rg -n "delete_topic_enable" modules/reference/partials/properties/topic-properties.adoc || echo "NOT FOUND in topic-properties.adoc"

echo ""
echo "=== Searching for delete_topic_enable in cluster-properties.adoc ==="
rg -n "delete_topic_enable" modules/reference/partials/properties/cluster-properties.adoc || echo "NOT FOUND in cluster-properties.adoc"

echo ""
echo "=== Line 1122 in topic-properties.adoc ==="
sed -n '1120,1125p' modules/reference/partials/properties/topic-properties.adoc

echo ""
echo "=== Line 4135-4140 in cluster-properties.adoc ==="
sed -n '4135,4140p' modules/reference/partials/properties/cluster-properties.adoc

echo ""
echo "=== delete_topic_enable in property-overrides.json ==="
rg -n "delete_topic_enable" docs-data/property-overrides.json

Length of output: 679


@mfernest You are correct — I've verified this directly in the codebase. delete_topic_enable does not appear in topic-properties.adoc (line 1122 there is delete.retention.ms), and it is correctly defined at line 4137 in cluster-properties.adoc as a cluster-scoped boolean property. The override in docs-data/property-overrides.json (line 796) is also properly applied. My earlier comment was a false positive — apologies for the noise.


✏️ Learnings added
Learnt from: mfernest
URL: https://github.com/redpanda-data/docs/pull/1610

Timestamp: 2026-03-17T18:36:27.877Z
Learning: In the redpanda-data/docs repository, the `delete_topic_enable` property is a cluster-scoped boolean property (default: true) documented only in `modules/reference/partials/properties/cluster-properties.adoc` (line 4137). It does NOT appear in `modules/reference/partials/properties/topic-properties.adoc`. Its description override is in `docs-data/property-overrides.json` at line 796.

Note: Learnings are effective only in the context of similar code segments. To apply general coding guidelines, please configure review instructions. You can manage existing learnings in the app.


🧠 Learnings used
Learnt from: CR
Repo: redpanda-data/docs PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-11-25T09:42:15.235Z
Learning: Applies to docs-data/property-overrides.json : Remove duplicate links from related_topics lists in property overrides to keep them clean

Learnt from: CR
Repo: redpanda-data/docs PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-11-25T09:42:15.235Z
Learning: Applies to docs-data/property-overrides.json : In property descriptions, never add enterprise license includes or markers like `include::reference:partial$enterprise-licensed-property.adoc[]`

@mfernest mfernest requested a review from dotnwat March 18, 2026 17:10
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.

1 participant