From aa10d962fd5cbd30ebc83297f6971d98a9c348c7 Mon Sep 17 00:00:00 2001 From: Nastasha Solomon Date: Wed, 4 Nov 2026 14:31:04 -0500 Subject: [PATCH] Point 8.x prebuilt rule pages to the 9.x prebuilt rules reference The "latest documentation" banner on the 8.x Security prebuilt rule reference and downloadable rule update pages sent readers to /docs. Map both hub pages to /docs/reference/security/prebuilt-rules. Versioned rule pages (prebuilt-rule----.html) now use the rule's existing mapping when it has one, and otherwise fall back to the prebuilt rules reference instead of /docs. Co-Authored-By: Claude Opus 5.5 --- resources/asciidoctor/lib/chunker/url_to_v3.rb | 6 ++++++ resources/asciidoctor/lib/chunker/v3-mapping.json | 2 ++ 2 files changed, 8 insertions(+) diff --git a/resources/asciidoctor/lib/chunker/url_to_v3.rb b/resources/asciidoctor/lib/chunker/url_to_v3.rb index 018758c2c67f0..e3d8fd63d1d9e 100644 --- a/resources/asciidoctor/lib/chunker/url_to_v3.rb +++ b/resources/asciidoctor/lib/chunker/url_to_v3.rb @@ -3,6 +3,10 @@ module Chunker # Add a warning to the page with a link to docs v3 class UrlToV3 + # Versioned rule pages, like prebuilt-rule-8-19-14-.html + PREBUILT_RULE = %r{\A/en/security/\*/prebuilt-rule-\d+-\d+-\d+-(.+)\z} + PREBUILT_RULES_HUB = '/docs/reference/security/prebuilt-rules' + attr_reader :url def initialize(doc) @@ -16,6 +20,8 @@ def initialize(doc) actual_url = get_actual_url(outdir, current_url) new_url = if m.key?(actual_url) m[actual_url] + elsif (rule = actual_url[PREBUILT_RULE, 1]) + m.fetch("/en/security/*/#{rule}", PREBUILT_RULES_HUB) else '/docs' end diff --git a/resources/asciidoctor/lib/chunker/v3-mapping.json b/resources/asciidoctor/lib/chunker/v3-mapping.json index e7f47cd8b0a78..e305d1c971c52 100644 --- a/resources/asciidoctor/lib/chunker/v3-mapping.json +++ b/resources/asciidoctor/lib/chunker/v3-mapping.json @@ -12097,7 +12097,9 @@ "/en/security/*/powershell-suspicious-script-with-screenshot-capabilities.html": "/docs/reference/security/prebuilt-rules/rules/windows/collection_posh_screen_grabber", "/en/security/*/prebuilt-ml-jobs.html": "/docs/reference/data-analysis/machine-learning/ootb-ml-jobs-siem", "/en/security/*/prebuilt-rules-api.html": "/docs/api/doc/kibana/operation/operation-installprebuiltrulesandtimelines", + "/en/security/*/prebuilt-rules-downloadable-updates.html": "/docs/reference/security/prebuilt-rules", "/en/security/*/prebuilt-rules-management.html": "/docs/solutions/security/detect-and-alert/install-manage-elastic-prebuilt-rules", + "/en/security/*/prebuilt-rules.html": "/docs/reference/security/prebuilt-rules", "/en/security/*/printer-user-lp-shell-execution.html": "/docs/reference/security/prebuilt-rules/rules/linux/execution_cupsd_foomatic_rip_lp_user_execution", "/en/security/*/private-key-searching-activity.html": "/docs/reference/security/prebuilt-rules/rules/linux/discovery_private_key_password_searching_activity", "/en/security/*/privilege-escalation-via-cap-chown-cap-fowner-capabilities.html": "/docs/reference/security/prebuilt-rules/rules/linux/privilege_escalation_suspicious_chown_fowner_elevation",