Skip to content

Generate the licensing feature tables from the enterprise features registry - #1895

Draft
JakeSCahill wants to merge 3 commits into
DOC-887-shared-component-folderfrom
DOC-887-registry-adoption
Draft

Generate the licensing feature tables from the enterprise features registry#1895
JakeSCahill wants to merge 3 commits into
DOC-887-shared-component-folderfrom
DOC-887-registry-adoption

Conversation

@JakeSCahill

@JakeSCahill JakeSCahill commented Aug 8, 2026

Copy link
Copy Markdown
Contributor

In plain English

The four enterprise-feature tables on the licensing page were maintained by hand, which is how they drifted from reality. This PR replaces them with tables generated from the enterprise features registry -- same content today, but future edits happen in one reviewed file and the page can't disagree with it. It also turns on validation for enterprise mentions in prose (unknown feature names now warn at build time), adds a table translating the internal names that rpk cluster license info prints into the documented feature names (a mapping that existed nowhere), and wires up a weekly CI check against Redpanda's source so a newly shipped license gate can't go undocumented silently.

Description

Part of the enterprise-marking governance work for DOC-887. Stacked on #1892 (the registry) — draft until #1892 merges and docs-extensions-and-macros 5.5.0 publishes (redpanda-data/docs-extensions-and-macros#253; this branch bumps the dependency to ^5.5.0).

  • The four hand-maintained tables in licensing/overview.adoc become enterprise_features::<scope>[] block macro calls, rendered from the canonical registry. The [[redpanda-enterprise-features]] anchor and its in-page crossrefs keep working (the macro re-emits block anchors).
  • The enterprise: inline macro is registered in the playbook with enterprise-validate: warn — any enterprise: target missing from the registry logs a build warning with the file path and suggestions. Flip to error once we're confident.
  • New section on licensing/check-status/rpk.adoc: a generated table mapping the internal names printed by rpk cluster license info (cloud_storage, shadow_linking, ...) to the documented feature names — including the one-to-many cloud_storage → Tiered Storage / Remote Read Replicas / Topic Recovery / WCR mapping, which existed nowhere before. Regenerate with doc-tools validate enterprise-features --write-mapping.
  • New workflow validate-enterprise-features.yml: weekly cron + PRs touching the registry or licensing pages. A new license_required_feature enum value in core fails the check until the registry gets an entry with its approved external name. (--skip-connect until rp-connect-docs#485 removes the stale list.)

Validation

Full local Antora build against a 5.5.0 tarball: exit 0, all four generated tables render with titles/anchors/crossrefs/beta badge/gating-property annotations, the rpk mapping table renders, and zero unknown-feature warnings across the whole site.

Notes for review

Two intentional content deviations from the old hand tables (also noted on #1892): the Connect-scope FIPS row is renamed "FIPS compliance for Redpanda Connect" (name collision with the Redpanda-scope entry), and rows now sort alphabetically within each table (the two Operator rows swap order).

@coderabbitai

coderabbitai Bot commented Aug 8, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Draft detected.

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 Plus

Run ID: 1b5f9bca-eee6-4322-bc52-a77818b487dd

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

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.

…res registry

The four hand-maintained tables in licensing/overview.adoc become
enterprise_features block macro calls that render from the canonical
registry (shared/modules/ROOT/partials/enterprise-features.yml), so the
tables can never drift from the registry. The enterprise inline macro is
registered with enterprise-validate: warn, reporting any enterprise:
target that is missing from the registry.

The rpk license check-status page gains a generated table mapping the
internal names printed by rpk cluster license info (such as
cloud_storage) to the documented feature names.

A weekly and PR-triggered workflow runs doc-tools validate
enterprise-features against redpanda core so a new license-gated
feature in core fails CI until the registry gets an entry with its
approved external name.
JakeSCahill and others added 2 commits August 9, 2026 08:08
package.json pinned ^5.5.0, but no 5.4.x, 5.5.x or 5.6.x was ever
published: npm went 5.3.7 -> 5.7.0. The range therefore silently resolved
to 5.7.0, while package-lock.json still recorded 5.3.5, which does not
satisfy it. `npm ci` failed:

  npm error Invalid: lock file's @redpanda-data/docs-extensions-and-macros@5.3.5
  does not satisfy @redpanda-data/docs-extensions-and-macros@5.7.0

CI passed only because the workflows use `npm install`; the scheduled
update-property-docs and update-rpk-docs jobs use `npm ci` and would fail.

Pinned to ^5.7.0, the real published floor, and refreshed the lockfile.
`npm ci --dry-run` now succeeds.

This does NOT make the branch buildable on its own: 5.7.0 contains neither
macros/enterprise nor the `validate enterprise-features` command, so the
pin still needs raising to whichever release ships them.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@JakeSCahill

Copy link
Copy Markdown
Contributor Author

Pushed a dependency fix here (this branch is also #1896's base, so it helps both).

^5.5.0 pinned a version that never existed. npm's published history for the extensions package is 5.3.0–5.3.7, then straight to 5.7.0 — no 5.4.x, 5.5.x or 5.6.x. So the range silently resolved to 5.7.0 while package-lock.json still recorded 5.3.5, and npm ci failed:

npm error Invalid: lock file's @redpanda-data/docs-extensions-and-macros@5.3.5
does not satisfy @redpanda-data/docs-extensions-and-macros@5.7.0

PR CI didn't catch it because the workflows run npm install; the scheduled update-property-docs and update-rpk-docs jobs use npm ci and would have failed. Now pinned to ^5.7.0 with a refreshed lockfile, and npm ci --dry-run passes.

This does not unblock the PR, and I'm leaving it in draft. 5.7.0 contains neither macros/enterprise nor the validate enterprise-features command — I unpacked the tarball to confirm — which is why the validate check is red. Still needed, in order:

  1. d-e-a-m Clarify that we do not support autoscalers #249 (enterprise macro) and UBB - Private Offers for Dedicated #251 (validate command) merge and publish. Their versions were stale at or below the published 5.7.0, so the publish step would have skipped them; they're now set to 5.12.0 and a re-bump above whatever lands last.
  2. Raise this pin again to that release and refresh the lockfile.
  3. Merge the base PR Move the shared component to a folder on main and add the enterprise features registry #1892 (still awaiting review), and land docs-site#205 so the generated tables render on the live site.

For the record, the content itself checks out: the rpk feature-name mapping partial's 13 names match the license_required_feature enum in the Redpanda source exactly.

🤖 Generated with Claude Code

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