Skip to content

Split PingCastle into Enterprise, Pro, and Community products - #1704

Open
JoeDibley wants to merge 2 commits into
devfrom
pingcastle-product-split
Open

JoeDibley wants to merge 2 commits into
devfrom
pingcastle-product-split

Conversation

@JoeDibley

@JoeDibley JoeDibley commented Oct 14, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • Replaces the edition-cut pingcastle product with three products: PingCastle Enterprise, Pro, and Community. Each has 4.0 docs in the standard zones (Getting Started, Requirements, Install, Migration, Configuration, Admin, Integrations, Troubleshooting) and 3.5 as a flat version.
  • Adds a nested ITDR > PingCastle navbar flyout (src/theme/NavbarItem/NestedDropdown) and a navbarGroup field in products.js.
  • Pro pages are now reachable. Pro 4.0 is unreleased, so its Getting Started page carries a pre-release note.
  • Enterprise and Pro link to the shared PingCastle.exe docs in Community instead of duplicating them.
  • Redirects for all old /docs/pingcastle/... URLs (4.0, 3.5, KB); the bare root goes to Community 4.0.
  • The single KB article moved to Enterprise and Pro reads it via kbSource. CODEOWNERS and product briefs updated.

Test plan

  • DOCS_PRODUCT=<each new product> npm run build
  • Full npm run build: no broken links or MDX errors
  • Built site: version roots, sample redirects, navbar group
  • Visually check the navbar flyout (hover, click, keyboard, mobile)
  • Vale/Dale on new pages; review of the Pro pre-release note and KB placement

Generated with AI

Co-Authored-By: Claude Code ai@netwrix.com

Closes #1705

Replace the edition-cut pingcastle product with three products, each with
4.0 docs organized into the standard documentation zones and 3.5 as a flat
version. Add a nested ITDR > PingCastle navbar flyout, redirects from the
old URLs, per-edition KB, and updated CODEOWNERS and product briefs. Pro
pages are now reachable (4.0 marked pre-release). Enterprise and Pro link
to the shared PingCastle.exe docs in Community.

Generated with AI

Co-Authored-By: Claude Code <ai@netwrix.com>
@github-actions

Copy link
Copy Markdown
Contributor

Auto-Fix Summary

4 issues fixed, 6 skipped across 97 files

Category Fixes
CopulaAvoidance (rewrite) 4
Skipped (needs manual review) Reason
docs/pingcastleenterprise/4.0/admin/dashboard.md:155 — Netwrix.OxfordComma False positive: 'expired or unused objects' is a single list item; the series already has an Oxford comma before 'and other legacy artifacts'
docs/pingcastleenterprise/4.0/configuration/settings/email.md:46 — Netwrix.TypeVsEnter False positive: 'type' is a noun ('credential type'), not an instruction to type text
docs/pingcastleenterprise/4.0/configuration/settings/entra-scanner.md:15 — Netwrix.OxfordComma False positive: 'request and client timeouts' is a single list item; the series already has an Oxford comma
docs/pingcastleenterprise/4.0/integrations/scim.md:29 — Netwrix.OxfordComma False positive: the comma ends a dependent clause ('...stays valid indefinitely, revoke and regenerate'); not a series
docs/pingcastleenterprise/4.0/troubleshooting/index.md:178 — Netwrix.OxfordComma False positive: the comma ends an 'If' clause; 'Enterprise and CloudAPI' is a two-item subject, not a series
docs/pingcastlepro/4.0/admin/index.md:13 — Netwrix.OxfordComma False positive: 'authentication and user management' is a single linked item (page title); the series already has an Oxford comma

Ask @claude on this PR if you'd like an explanation of any fix.

@jth-nw
jth-nw deployed to development October 14, 2026 22:58 — with GitHub Actions Active
@github-actions

Copy link
Copy Markdown
Contributor

Code Review

I found no blocking issues in the code and config changes. I left the doc content alone. GitHub's diff API caps at 300 files, so I reviewed the non-doc files from the local checkout of the PR head.

What I checked

  • src/config/products.js: the three new products are set up correctly and each sidebar file exists. hasKBContent now lists pingcastleenterprise and pingcastlepro. Leaving pingcastlecommunity out is correct, since docs/kb/pingcastlecommunity doesn't exist.
  • KB copy pipeline: copy-kb-to-versions.mjs reads the per-version kbSource override first (config.versionSources?.[version] ?? config.source). Pro 3.5 and 4.0 will get the Enterprise KB even though there's no docs/kb/pingcastlepro.
  • Redirects (pingcastle-split.js): every target points to a real file. That includes the category-index cases (install/install.md, requirements/index.md, settings/index.md, admin/index.md, troubleshooting/index.md), the slug: / pages in the 3.5 folders, and the moved KB article. Each redirect is tagged with its product, so single-product builds only emit the ones whose target exists. No from path collides with a live route, because docs/pingcastle/ is gone.
  • Stale references: nothing in docs/ still links to /docs/pingcastle/, so the move won't throw broken-link errors. The only hits are fixtures in script tests. The 'pingcastle' entries in CommunityHighlights/CommunityShowcase and .github/label-codeowners.json are community and label names, not product IDs, so they're fine.
  • CODEOWNERS: all three new paths are covered.

Worth confirming once build-and-deploy finishes (it was still pending when I reviewed)

  1. Navbar config validation: generateNavbarDropdowns now puts a type: 'custom-nestedDropdown' item inside a dropdown's items. Docusaurus checks dropdown sub-items against a stricter schema than top-level navbar items. I couldn't confirm offline that 3.10 accepts custom-* types there. If it doesn't, the build fails at config validation with "Bad navbar item type". A passing build settles it.

Minor (non-blocking)

  • .dropdown__menu:has(.submenu) { overflow: visible; max-height: none; } removes the scroll limit on the whole ITDR dropdown. On short viewports, a long category list can now run past the bottom of the screen.
  • The group item has no to, so the parent dropdown's active-item check never matches the nested PingCastle links. The ITDR dropdown won't show as active on PingCastle pages. This is cosmetic only.
  • In single-product builds (DOCS_PRODUCT=pingcastleenterprise), the /docs/kb/pingcastle/... redirect is emitted even if the standalone KB plugin isn't loaded. At worst it points to a page that doesn't exist in that local build, and it doesn't affect production.

@hilram7 hilram7 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Tested all 3 pingcastles and full product build - no errors. KB placement and overall design looks good to me.

This branch was successfully deployed

1 active deployment
development — a9d29bb9 Deployed Oct 14, 2026 by jth-nw via build-and-deploy #4538
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.

KB review: Split PingCastle into Enterprise, Pro, and Community products (PR #1704)

3 participants