fix(DOC-1959): correct election_timeout_ms type/default; exclude raft_election_timeout_ms#1611
fix(DOC-1959): correct election_timeout_ms type/default; exclude raft_election_timeout_ms#1611
Conversation
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>
…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>
…_election_timeout_ms The property docs were showing two issues: 1. election_timeout_ms had type 'string' and default 'null' — fixed via property-overrides.json to show correct type 'integer' and default 1500 2. raft_election_timeout_ms appeared as a separate cluster property — this is the C++ variable name, not the user-facing config key; marked exclude_from_docs so it no longer appears in the reference The correct user-facing property is election_timeout_ms with a default of 1500 milliseconds. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
✅ Deploy Preview for redpanda-docs-preview ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
|
Important Review skippedAuto incremental reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
📝 WalkthroughWalkthroughThis pull request updates Redpanda's configuration property documentation across multiple files. It adds approximately 60+ new property entries (covering cloud storage, cloud topics, coprocessor, Raft, Kafka quota, transaction, and authentication subsystems) to property override and reference metadata files, with version tagging (v25.3.10 or dev). Two version-specific property-change snapshot files are deleted. Licensing documentation is expanded with guidance on trial license extension and a new Topic Deletion Control (delete_topic_enable) feature. Configuration property documentation in cluster and topic property files is reorganized and extended, including a type change for raft_election_timeout_ms from string to integer and numerous new topic-level and cluster-level property definitions. Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Possibly related PRs
Suggested reviewers
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
modules/reference/partials/properties/topic-properties.adoc (1)
1122-1154:⚠️ Potential issue | 🔴 CriticalThe type for
delete_topic_enableshould beboolean, notstring.The property description states "When set to
false, all topic deletion requests are rejected," which uses boolean semantics. Enable/disable flags should be typed as boolean rather than string to accurately represent their purpose and usage.🤖 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 - 1154, Update the documentation for the configuration property named delete_topic_enable: change its Type from `string` to `boolean`, ensure the default/null/nullable lines remain consistent with a boolean flag (e.g., `null` or `false` as appropriate), and update any surrounding prose that assumes string semantics (for example the line "When set to `false`, all topic deletion requests are rejected") so it clearly references boolean values; locate the delete_topic_enable section and adjust the Type field and any examples or related references (e.g., restore behavior notes) to reflect a boolean typed flag.
🧹 Nitpick comments (3)
modules/get-started/pages/licensing/overview.adoc (1)
139-139: Consider using empty brackets for the xref.The xref could use empty brackets to automatically pull the title from the target document, which is more maintainable.
♻️ Proposed refactor
-| xref:develop:produce-data/leader-pinning.adoc[Leader Pinning] +| xref:develop:produce-data/leader-pinning.adoc[]Based on learnings: "AsciiDoc linking: prefer using xref links with empty brackets (e.g., xref:section/target.adoc[]) because the title is pulled from the referenced document automatically."
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@modules/get-started/pages/licensing/overview.adoc` at line 139, Update the xref to use empty brackets so the target document's title is pulled automatically: replace the current xref reference `xref:develop:produce-data/leader-pinning.adoc[Leader Pinning]` with `xref:develop:produce-data/leader-pinning.adoc[]` in the licensing overview page to improve maintainability.modules/reference/attachments/redpanda-properties-v25.3.10.json (2)
5486-5505: Consider using"type": "boolean"fordelete_topic_enable.The description states "When set to
false, all topic deletion requests are rejected...", indicating this is a boolean property. However,"type": "string"is specified. If the override system requires string types, this is fine; otherwise, consider changing to"type": "boolean"for accuracy.Suggested change if boolean type is supported
"name": "delete_topic_enable", "related_topics": [ "xref:reference:properties/cluster-properties.adoc#kafka_nodelete_topics[`kafka_nodelete_topics`]", "xref:get-started:licensing/index.adoc[enterprise license]" ], - "type": "string", + "type": "boolean", "version": "dev",🤖 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 5486 - 5505, The schema for the property delete_topic_enable is declared with "type": "string" but the description and semantics indicate a boolean; update the property definition for delete_topic_enable to use "type": "boolean" (or the equivalent boolean/schema representation your override system expects), ensuring any default/null handling and validation logic for the override system are adjusted accordingly (e.g., change "default": null if booleans require true/false defaults or adapt parsing code that reads delete_topic_enable).
2688-2703: Placeholder descriptions need enrichment before GA release.Multiple new properties (e.g.,
cloud_storage_prefetch_segments_max,cloud_topics_compaction_interval_ms, etc.) have placeholder descriptions like "Configuration property: {name}". Since these are marked as"version": "dev", please ensure meaningful descriptions are added before these properties reach GA to provide useful documentation for users.🤖 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 2688 - 2703, Several properties (e.g., cloud_storage_prefetch_segments_max, cloud_topics_compaction_interval_ms) currently have placeholder descriptions like "Configuration property: {name}"; update each property entry (look for name fields such as "cloud_storage_prefetch_segments_max" and "cloud_topics_compaction_interval_ms") to replace the placeholder description with a concise, meaningful explanation of the setting, its accepted values/type, default/behavior, and any scope or impact (topic vs cluster) so the JSON doc is informative before GA; ensure description text matches the "type", "is_topic_property", and "visibility" metadata for each property.
🤖 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 10310-10325: The three properties currently marked with
"config_scope": "topic" need to be changed to cluster-level: update
"oidc_group_claim_path",
"partition_autobalancing_node_autodecommission_timeout_sec", and
"internal_rpc_request_timeout_ms" so their "config_scope" value is "cluster"
(matching the other OIDC and partition_autobalancing entries and RPC timeout
properties); keep their other fields (name, version, visibility, etc.) unchanged
and ensure the change is applied to the JSON entries for the properties named
oidc_group_claim_path,
partition_autobalancing_node_autodecommission_timeout_sec, and
internal_rpc_request_timeout_ms.
---
Outside diff comments:
In `@modules/reference/partials/properties/topic-properties.adoc`:
- Around line 1122-1154: Update the documentation for the configuration property
named delete_topic_enable: change its Type from `string` to `boolean`, ensure
the default/null/nullable lines remain consistent with a boolean flag (e.g.,
`null` or `false` as appropriate), and update any surrounding prose that assumes
string semantics (for example the line "When set to `false`, all topic deletion
requests are rejected") so it clearly references boolean values; locate the
delete_topic_enable section and adjust the Type field and any examples or
related references (e.g., restore behavior notes) to reflect a boolean typed
flag.
---
Nitpick comments:
In `@modules/get-started/pages/licensing/overview.adoc`:
- Line 139: Update the xref to use empty brackets so the target document's title
is pulled automatically: replace the current xref reference
`xref:develop:produce-data/leader-pinning.adoc[Leader Pinning]` with
`xref:develop:produce-data/leader-pinning.adoc[]` in the licensing overview page
to improve maintainability.
In `@modules/reference/attachments/redpanda-properties-v25.3.10.json`:
- Around line 5486-5505: The schema for the property delete_topic_enable is
declared with "type": "string" but the description and semantics indicate a
boolean; update the property definition for delete_topic_enable to use "type":
"boolean" (or the equivalent boolean/schema representation your override system
expects), ensuring any default/null handling and validation logic for the
override system are adjusted accordingly (e.g., change "default": null if
booleans require true/false defaults or adapt parsing code that reads
delete_topic_enable).
- Around line 2688-2703: Several properties (e.g.,
cloud_storage_prefetch_segments_max, cloud_topics_compaction_interval_ms)
currently have placeholder descriptions like "Configuration property: {name}";
update each property entry (look for name fields such as
"cloud_storage_prefetch_segments_max" and "cloud_topics_compaction_interval_ms")
to replace the placeholder description with a concise, meaningful explanation of
the setting, its accepted values/type, default/behavior, and any scope or impact
(topic vs cluster) so the JSON doc is informative before GA; ensure description
text matches the "type", "is_topic_property", and "visibility" metadata for each
property.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: d361af3a-4321-4381-9790-0efefba3e055
📒 Files selected for processing (7)
docs-data/property-overrides.jsondocs-data/redpanda-property-changes-v25.3.1-to-v25.3.3.jsondocs-data/redpanda-property-changes-v25.3.9-to-v25.3.10.jsonmodules/get-started/pages/licensing/overview.adocmodules/reference/attachments/redpanda-properties-v25.3.10.jsonmodules/reference/partials/properties/cluster-properties.adocmodules/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
| "oidc_group_claim_path": { | ||
| "cloud_byoc_only": false, | ||
| "cloud_editable": false, | ||
| "cloud_readonly": false, | ||
| "cloud_supported": false, | ||
| "config_scope": "topic", | ||
| "default": null, | ||
| "defined_in": "override", | ||
| "description": "Configuration property: oidc_group_claim_path", | ||
| "is_deprecated": false, | ||
| "is_topic_property": true, | ||
| "name": "oidc_group_claim_path", | ||
| "type": "string", | ||
| "version": "dev", | ||
| "visibility": "user" | ||
| }, |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Check if there are other similar OIDC properties and their config_scope
rg -n '"oidc_' modules/reference/attachments/redpanda-properties-v25.3.10.json | head -20
# Check the config_scope of other partition_autobalancing properties for consistency
rg -n '"partition_autobalancing_' modules/reference/attachments/redpanda-properties-v25.3.10.json | head -30Repository: redpanda-data/docs
Length of output: 2001
🏁 Script executed:
#!/bin/bash
# Extract full OIDC properties with their config_scope
rg -A 13 '"oidc_clock_skew_tolerance": {' modules/reference/attachments/redpanda-properties-v25.3.10.json | grep -E '(oidc_|config_scope|is_topic_property)' | head -30
echo "---"
# Extract sample partition_autobalancing properties with their config_scope
rg -A 13 '"partition_autobalancing_concurrent_moves": {' modules/reference/attachments/redpanda-properties-v25.3.10.json | grep -E '(partition_autobalancing|config_scope|is_topic_property)' | head -20Repository: redpanda-data/docs
Length of output: 360
🏁 Script executed:
#!/bin/bash
# Extract OIDC properties around line 10272-10390 to see config_scope values
sed -n '10272,10390p' modules/reference/attachments/redpanda-properties-v25.3.10.json | grep -E '"config_scope"|"is_topic_property"|"name"|oidc_'
echo "=== partition_autobalancing properties ==="
# Extract partition properties around line 10472-10530 to see config_scope values
sed -n '10472,10530p' modules/reference/attachments/redpanda-properties-v25.3.10.json | grep -E '"config_scope"|"is_topic_property"|"name"|partition_autobalancing_'Repository: redpanda-data/docs
Length of output: 1730
🏁 Script executed:
#!/bin/bash
# Check nested_group_behavior
sed -n '10130,10145p' modules/reference/attachments/redpanda-properties-v25.3.10.json | grep -E '"config_scope"|"is_topic_property"|"name"'
echo "==="
# Check internal_rpc_request_timeout_ms
sed -n '7574,7589p' modules/reference/attachments/redpanda-properties-v25.3.10.json | grep -E '"config_scope"|"is_topic_property"|"name"'
echo "==="
# Check partition_autobalancing_node_autodecommission_timeout_sec
sed -n '10588,10603p' modules/reference/attachments/redpanda-properties-v25.3.10.json | grep -E '"config_scope"|"is_topic_property"|"name"'Repository: redpanda-data/docs
Length of output: 478
Fix config_scope for properties incorrectly marked as topic-level.
The following properties are marked as "config_scope": "topic" but should be cluster-level:
oidc_group_claim_path: All other OIDC properties (oidc_clock_skew_tolerance,oidc_discovery_url,oidc_keys_refresh_interval,oidc_principal_mapping,oidc_token_audience) are correctly set to"config_scope": "cluster". This property should match.partition_autobalancing_node_autodecommission_timeout_sec: All otherpartition_autobalancing_*properties are correctly set to"config_scope": "cluster". This property should match.internal_rpc_request_timeout_ms: RPC timeout configuration is cluster-level, not topic-level.
These properties are marked as "dev" version but have inconsistent or incorrect config_scope values that should be corrected before these properties go GA.
🤖 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
10310 - 10325, The three properties currently marked with "config_scope":
"topic" need to be changed to cluster-level: update "oidc_group_claim_path",
"partition_autobalancing_node_autodecommission_timeout_sec", and
"internal_rpc_request_timeout_ms" so their "config_scope" value is "cluster"
(matching the other OIDC and partition_autobalancing entries and RPC timeout
properties); keep their other fields (name, version, visibility, etc.) unchanged
and ensure the change is applied to the JSON entries for the properties named
oidc_group_claim_path,
partition_autobalancing_node_autodecommission_timeout_sec, and
internal_rpc_request_timeout_ms.
…ions section Rewrites the opening of the "Partition leadership elections" section in architecture.adoc: - Clarifies the distinction between heartbeat interval (150ms) and election timeout (1500ms) - Removes the term definition (was defined after its first use) - Adds inline definition of "term" on first use - Links election_timeout_ms cluster property with default value Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
@coderabbitai Same note as PR #1610: |
|
Tip For best results, initiate chat on the files or code changes. 🧩 Analysis chain🏁 Script executed: Length of output: 361
And again at Line 1126: It is also present in So the review comment is not a false positive — the property currently exists in both files on this branch. If |
|
@dotnwat — gentle nudge on this one when you have a chance. Corrects the |
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
micheleRP
left a comment
There was a problem hiding this comment.
Review Summary
What this PR actually fixes (DOC-1959)
The core fix is valuable: election_timeout_ms was showing the wrong type (string instead of integer) and wrong default (null instead of 1500). This was escalated from Support as P2. The fix is in property-overrides.json:
"election_timeout_ms": {
"type": "integer",
"default": 1500,
...
}And correctly excludes the internal C++ variable raft_election_timeout_ms from docs:
"raft_election_timeout_ms": {
"exclude_from_docs": true,
"config_scope": "cluster"
}Both of these are in property-overrides.json — the correct mechanism. They will survive automation regeneration.
Property automation impact
Same pattern as PRs #1607 and #1610. Files that should be removed:
| File | Reason |
|---|---|
modules/reference/partials/properties/cluster-properties.adoc (+238) |
Auto-generated, will be overwritten |
modules/reference/partials/properties/topic-properties.adoc (+1095/-43) |
Auto-generated, will be overwritten |
modules/reference/attachments/redpanda-properties-v25.3.10.json (+574/-41) |
Auto-generated, will be overwritten |
docs-data/redpanda-property-changes-v25.3.1-to-v25.3.3.json (deleted) |
Generated artifact |
docs-data/redpanda-property-changes-v25.3.9-to-v25.3.10.json (deleted) |
Generated artifact |
These generated files contain 31 instances of *Introduced in dev* that would appear in published docs.
Files that should stay
| File | Content |
|---|---|
docs-data/property-overrides.json |
The election_timeout_ms type/default fix + raft_election_timeout_ms exclusion — the core fix |
modules/get-started/pages/architecture.adoc |
Improved Raft election description with xref to election_timeout_ms |
modules/get-started/pages/licensing/overview.adoc |
Heading fix + Leader Pinning xref fix |
Major overlap with PRs #1607 and #1610
This PR shares 7 files with PR #1610 and 4 files with PR #1607. The licensing/overview.adoc changes are identical to #1610 (same heading fix, same Leader Pinning xref fix). The property-overrides.json changes share the same bulk automation additions (v25.3.10 version tags, dev properties) across all three PRs.
It looks like all three PRs ran the property automation independently and each bundled the shared generated output alongside their unique manual changes. If the generated files are removed from all three PRs, the conflicts collapse to just property-overrides.json (which would merge cleanly since each PR adds different property entries) and licensing/overview.adoc (duplicated between #1610 and #1611 — one should own these changes).
Style review of manual content
architecture.adoc change — good improvement:
- Replaced vague "over a period of time (default = 1.5 seconds)" with an explicit xref to
election_timeout_ms(default: 1500 milliseconds) - Changed "A term is an arbitrary period of time that starts when a leader election is triggered" to the parenthetical "(an election cycle)" — more concise
- Changed "periodic heartbeat" to "heartbeat every 150 milliseconds" — more specific
licensing/overview.adoc — identical to PR #1610. Only one PR should include these changes.
Recommendation
- Remove the 5 generated files — they add ~1900 lines of unreviewable content with "Introduced in dev" artifacts
- Remove
licensing/overview.adoc— it's already in PR #1610. Having it in both will cause merge conflicts - Keep
property-overrides.json(the election_timeout_ms fix + raft exclusion) andarchitecture.adoc(the Raft description improvement) - Strip the bulk automation additions from
property-overrides.json(the v25.3.10 version tags, dev properties) — these are shared across all three PRs and should be handled in a single dedicated automation PR
Remove property partials and JSON attachments included by the auto-docs regen commit. Only property-overrides.json and content pages belong here. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Review: Claude feedback incorporation checkChecking whether the 4 recommendations from the Claude (micheleRP) review have been addressed. 1. Remove the 5 generated files — ✅ DoneCommit 2. Remove
|
| Recommendation | Status |
|---|---|
| Remove 5 generated files | ✅ Done |
Remove licensing/overview.adoc (duplicate of #1610) |
❌ Not done |
Keep property-overrides.json + architecture.adoc |
✅ Done |
Strip bulk automation version tags from property-overrides.json |
❌ Not done |
Note: The CodeRabbit feedback about config_scope issues and delete_topic_enable type is no longer relevant — those findings were in the generated files that have since been removed.
Summary
Fixes two issues with the
election_timeout_mscluster property reference (escalated from Support, P2):election_timeout_mswas showing typestringand defaultnull— fixed via property-overrides.json to correctly show typeintegerand default1500(1500 milliseconds)raft_election_timeout_mswas appearing as a separate cluster property — this is the internal C++ variable name, not the user-facing config key; markedexclude_from_docsso it no longer appears in the referenceThe correct user-facing property is
election_timeout_mswith a default of 1500 milliseconds.Test plan
election_timeout_msshows typeintegerand default1500at/reference/properties/cluster-properties#election_timeout_msraft_election_timeout_msno longer appears on the cluster properties page🤖 Generated with Claude Code