Generate the licensing feature tables from the enterprise features registry - #1895
Generate the licensing feature tables from the enterprise features registry#1895JakeSCahill wants to merge 3 commits into
Conversation
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
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 |
…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.
7b22180 to
e4cb56e
Compare
… into sweep/docs-1895
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>
|
Pushed a dependency fix here (this branch is also #1896's base, so it helps both).
PR CI didn't catch it because the workflows run This does not unblock the PR, and I'm leaving it in draft. 5.7.0 contains neither
For the record, the content itself checks out: the rpk feature-name mapping partial's 13 names match the 🤖 Generated with Claude Code |
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 infoprints 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).licensing/overview.adocbecomeenterprise_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).enterprise:inline macro is registered in the playbook withenterprise-validate: warn— anyenterprise:target missing from the registry logs a build warning with the file path and suggestions. Flip toerroronce we're confident.licensing/check-status/rpk.adoc: a generated table mapping the internal names printed byrpk cluster license info(cloud_storage,shadow_linking, ...) to the documented feature names — including the one-to-manycloud_storage→ Tiered Storage / Remote Read Replicas / Topic Recovery / WCR mapping, which existed nowhere before. Regenerate withdoc-tools validate enterprise-features --write-mapping.validate-enterprise-features.yml: weekly cron + PRs touching the registry or licensing pages. A newlicense_required_featureenum value in core fails the check until the registry gets an entry with its approved external name. (--skip-connectuntil 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).