Commit 8fb99a2
Restructure Attack Discovery docs (structural changes only, no content rewrites) (#7448)
<!--
Thank you for contributing to the Elastic Docs! 🎉
Use this template to help us efficiently review your contribution.
-->
## Summary
<!--
Describe what your PR changes or improves.
If your PR fixes an issue, link it here. If your PR does not fix an
issue, describe the reason you are making the change.
-->
Fixes elastic/docs-content-internal#1493
The current `attack-discovery.md` page is a single file covering RBAC,
setup, manual runs, scheduling, and saved-discovery management. That's
manageable today because nothing has to compete for space in it. 9.5
adds substantial new content (the skill-based architecture, context
enrichment, and other new flyout elements) that has no clean home in
that structure without making an already-overloaded page worse.
Restructuring now, before any 9.5 content is written, is the only point
where this move is risk-free to existing content. If it happens after
9.5 ships instead, the same restructuring work still has to happen,
except now it also has to migrate the new 9.5 content alongside the old.
This PR is scoped as **structural only, no content rewrites**, so it
only requires a lightweight review. The 9.5 content itself will be
reviewed separately, by whoever has the subject-matter context, without
that review being tangled up in structural decisions at the same time.
### How this helps with future-proofing the AD docs
There are future plans to deprecate and or remove the Attack Discovery
page in the security application. When that happens, the corresponding
docs will need to be flagged as deprecated. Today, that content is mixed
into a single page shared with unrelated tasks, so flagging it would
mean disentangling what to keep, move, or deprecate within a shared
page. With this restructure, the content already lives in pages that map
directly to that surface, so deprecation notices can be applied
precisely, without that disentangling step first.
### Note on diff size
Several files outside `attack-discovery/` show up in this diff
(ai-features.md, agent-builder pages, workflow pages, etc.). Those are
incidental nav/redirect updates from the folder move, not content
changes.
## Improvements
- **Findability**: Each page answers one question, so readers land on
exactly the content they need instead of scanning a long page.
- **Reviewability**: Future changes touch one small, purpose-built page
instead of one large shared one, making diffs and reviews easier to
scope.
- **Scalability**: New 9.5+ content, or notes about deprecated/removed
functionality, now has an obvious, dedicated home instead of competing
for space in a single page. New content can be cleanly added to logical
sections or pages now too. For example, with this restructure:
- The [dedicated hub for triggering
AD](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/7448/solutions/security/ai/attack-discovery/run-attack-discovery)
can gain additional child pages for running AD from Workflows or Agent
Builder chat (tracked in
elastic/docs-content-internal#1448), alongside
the existing Attacks page and Attack Discovery page children.
- The ["Configure alert retrieval"
section](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/7448/solutions/security/ai/attack-discovery/run-from-attacks-page#attacks-page-configure-alert-retrieval)
on the Run AD from the Attack page provides a clear spot to drop in 9.5
docs for the new skill based architecture, context enrichment, and other
elements in the new AD flyout (tracked in
elastic/docs-content-internal#1448).
- **Consistency**: The new TOC mirrors the overview → subtopic structure
used across the rest of the docs, instead of being a one-off layout.
## Before → After
**Before**: One monolithic page plus two loosely attached siblings:
````
security/ai/
├── attack-discovery.md # Overview + RBAC + manual runs + scheduling, all in one page
├── attacks-page.md
└── triage-attack-discovery-findings.md
````
**After**: Dedicated pages for individual tasks, each flows naturally:
````
security/ai/attack-discovery/
├── attack-discovery.md # Overview only
├── grant-access.md # How to grant access to Attack Discovery (AD)
├── run-attack-discovery.md # Where to trigger AD, by page
│ ├── run-from-attacks-page.md # Trigger AD from the Attacks page (schedules only) (1)
│ └── run-from-attack-discovery-page.md # Trigger AD from the Attack Discovery page (settings, manual runs, schedules) (2)
├── triage-attack-discovery-findings.md # What to do with discoveries
└── manage-saved-discoveries.md # Where to manage saved discoveries, by page
├── manage-discoveries-from-attacks-page.md # Manage via the Attacks page (1)
└── manage-discoveries-from-attack-discovery-page.md # Manage via the Attack Discovery page (2)
````
(1) Page is applicable to users who are on 9.4+/Serverless and have
enabled the "Enable alerts and attacks alignment" advanced setting.
(2) Page is applicable to users who are on 9.4+/Serverless or earlier
and are using the default setup/UI for Attack Discovery. It is **not**
for users who haven't enabled the "Enable alerts and attacks alignment"
advanced setting.
This same "pick your page" pattern now appears twice, once for running
Attack Discovery and once for managing what it found, so the two
questions are answered consistently instead of two different ways.
## Previews
[Attack
Discovery](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/7448/solutions/security/ai/attack-discovery/attack-discovery)
- [Grant feature
access](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/7448/solutions/security/ai/attack-discovery/grant-access)
- [Run Attack
Discovery](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/7448/solutions/security/ai/attack-discovery/run-attack-discovery)
- [Attacks
page](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/7448/solutions/security/ai/attack-discovery/run-from-attacks-page)
- [Attack Discovery
page](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/7448/solutions/security/ai/attack-discovery/run-from-attack-discovery-page)
- [Triage Attack Discovery
findings](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/7448/solutions/security/ai/attack-discovery/triage-attack-discovery-findings)
- [Manage saved
discoveries](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/7448/solutions/security/ai/attack-discovery/manage-saved-discoveries)
- [Attacks
page](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/7448/solutions/security/ai/attack-discovery/manage-discoveries-from-attacks-page)
- [Attack Discovery
page](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/7448/solutions/security/ai/attack-discovery/manage-discoveries-from-attack-discovery-page)
## Generative AI disclosure
<!--
To help us ensure compliance with the Elastic open source and
documentation guidelines, please answer the following:
-->
1. Did you use a generative AI (GenAI) tool to assist in creating this
contribution?
- [x] Yes - Cursor + Claude
- [ ] No
<!--
2. If you answered "Yes" to the previous question, please specify the
tool(s) and model(s) used (e.g., Google Gemini, OpenAI ChatGPT-4, etc.).
Tool(s) and model(s) used:
-->
---------
Co-authored-by: Brandon Morelli <bmorelli25@gmail.com>1 parent a2cf393 commit 8fb99a2
32 files changed
Lines changed: 556 additions & 400 deletions
File tree
- deploy-manage
- deploy/elastic-cloud
- explore-analyze
- ai-features
- agent-builder/tools
- llm-guides
- elastic-inference
- workflows/use-cases/security/automate-security-operations
- get-started/_snippets
- solutions
- security
- ai
- attack-discovery
- ease
- get-started
- mcp-app
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
36 | 36 | | |
37 | 37 | | |
38 | 38 | | |
39 | | - | |
| 39 | + | |
40 | 40 | | |
41 | 41 | | |
42 | 42 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
46 | 46 | | |
47 | 47 | | |
48 | 48 | | |
49 | | - | |
| 49 | + | |
50 | 50 | | |
51 | 51 | | |
52 | 52 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
144 | 144 | | |
145 | 145 | | |
146 | 146 | | |
147 | | - | |
| 147 | + | |
148 | 148 | | |
149 | 149 | | |
150 | 150 | | |
| |||
Lines changed: 1 addition & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
335 | 335 | | |
336 | 336 | | |
337 | 337 | | |
338 | | - | |
| 338 | + | |
339 | 339 | | |
340 | 340 | | |
341 | 341 | | |
| |||
Lines changed: 1 addition & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
219 | 219 | | |
220 | 220 | | |
221 | 221 | | |
222 | | - | |
| 222 | + | |
223 | 223 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
194 | 194 | | |
195 | 195 | | |
196 | 196 | | |
197 | | - | |
| 197 | + | |
198 | 198 | | |
199 | 199 | | |
200 | 200 | | |
| |||
Lines changed: 1 addition & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
18 | 18 | | |
19 | 19 | | |
20 | 20 | | |
21 | | - | |
| 21 | + | |
22 | 22 | | |
23 | 23 | | |
24 | 24 | | |
| |||
Lines changed: 5 additions & 5 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
15 | 15 | | |
16 | 16 | | |
17 | 17 | | |
18 | | - | |
| 18 | + | |
19 | 19 | | |
20 | 20 | | |
21 | 21 | | |
| |||
24 | 24 | | |
25 | 25 | | |
26 | 26 | | |
27 | | - | |
| 27 | + | |
28 | 28 | | |
29 | 29 | | |
30 | 30 | | |
| |||
378 | 378 | | |
379 | 379 | | |
380 | 380 | | |
381 | | - | |
382 | | - | |
383 | | - | |
| 381 | + | |
| 382 | + | |
| 383 | + | |
384 | 384 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
46 | 46 | | |
47 | 47 | | |
48 | 48 | | |
49 | | - | |
| 49 | + | |
50 | 50 | | |
51 | 51 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1026 | 1026 | | |
1027 | 1027 | | |
1028 | 1028 | | |
1029 | | - | |
| 1029 | + | |
| 1030 | + | |
| 1031 | + | |
| 1032 | + | |
| 1033 | + | |
| 1034 | + | |
| 1035 | + | |
| 1036 | + | |
| 1037 | + | |
| 1038 | + | |
| 1039 | + | |
| 1040 | + | |
| 1041 | + | |
| 1042 | + | |
| 1043 | + | |
| 1044 | + | |
| 1045 | + | |
| 1046 | + | |
| 1047 | + | |
| 1048 | + | |
| 1049 | + | |
| 1050 | + | |
| 1051 | + | |
| 1052 | + | |
| 1053 | + | |
| 1054 | + | |
| 1055 | + | |
| 1056 | + | |
| 1057 | + | |
| 1058 | + | |
| 1059 | + | |
| 1060 | + | |
| 1061 | + | |
| 1062 | + | |
| 1063 | + | |
| 1064 | + | |
| 1065 | + | |
0 commit comments