diff --git a/docs/content/navigation/PRO__global_search.md b/docs/content/navigation/PRO__global_search.md index a7b0adb2981..5698d0e0325 100644 --- a/docs/content/navigation/PRO__global_search.md +++ b/docs/content/navigation/PRO__global_search.md @@ -1,18 +1,20 @@ --- title: "Global Search" -description: "Search across Findings, Assets, and related objects from the DefectDojo Pro topbar" +description: "Search across Findings, Assets, related objects, and every menu destination from one dialog in DefectDojo Pro" audience: pro weight: 3 --- -DefectDojo Pro includes a **global search** that looks across your Findings and related objects from a single box in the topbar. It is backed by native Postgres full-text search with fuzzy, typo-tolerant matching, so you can find an object without remembering its exact wording. +DefectDojo Pro includes a **global search** that looks across your Findings and related objects. It is backed by native Postgres full-text search with fuzzy, typo-tolerant matching, so you can find an object without remembering its exact wording. -Global search finds your **data**: findings, assets, engagements, and the other records listed below. To find a **page** (a menu destination such as a settings screen or a list view), use the menu search instead: press **Cmd+K** or **Ctrl+K**, or the magnifying-glass control in the top-right corner of the sidebar. See [The Sidebar Menu](/navigation/pro__sidebar/). +As of DefectDojo Pro 3.3.100, data search and menu search share one dialog. **Data Results** are your records: findings, assets, engagements, and the other types listed below. **Navigation Results** are pages: every menu destination your account can reach, searchable by label, position and related vocabulary. See [The Sidebar Menu](/navigation/pro__sidebar/) for how navigation results rank and what they cover. + +![The Global Search dialog with data and navigation results](images/global_search_dialog.png) ## Running a search -- **Topbar search box** — click the **Search** box in the top navigation and start typing. As you type, a dropdown previews the top matches **grouped by object type**, with a count next to each type and a **See all *N* results** link at the bottom. -- **Full results page** — press **Enter**, or click **See all *N* results**, to open the full results page. This is a single, sortable, filterable table of every match across all object types. +- **Open the dialog**: select the **Search** field at the top of the sidebar, press **Cmd+K** (Mac) or **Ctrl+K**, or (with the sidebar collapsed) the magnifying glass under the logo. Start typing: the top data matches appear first, each chipped with its object type, with the menu destinations that match beneath them. +- **Full results page**: select **See all *N* results** under the data results to open the full results page. This is a single, sortable, filterable table of every match across all object types. Results are always **scoped to what you are authorized to view** — global search never surfaces objects you would not otherwise have access to. (Finding Templates are the one exception: like elsewhere in DefectDojo, they are visible to any signed-in user.) @@ -72,4 +74,4 @@ On the full results page, the columns can be filtered and sorted independently o - The full results page is **paginated** (25 rows per page by default). - Each object type contributes up to a **maximum number of matches** per search — **100** by default. When more matches exist than are shown, the results are flagged as truncated; narrow your query to see the most relevant hits. -- The topbar dropdown shows a smaller preview (the top few matches per type) with the total counts, so **See all *N* results** always reflects the true totals. +- The dialog shows a smaller preview (the top few matches) with the total count, so **See all *N* results** always reflects the true totals. diff --git a/docs/content/navigation/PRO__menu_badges.md b/docs/content/navigation/PRO__menu_badges.md index 997c2d81624..44d9c45c216 100644 --- a/docs/content/navigation/PRO__menu_badges.md +++ b/docs/content/navigation/PRO__menu_badges.md @@ -1,6 +1,6 @@ --- title: "Menu Badges" -description: "What the SOON, NEW, BETA, LEGACY and DEPRECATED tags in the DefectDojo Pro sidebar mean, and what each one asks you to do" +description: "What the SOON, NEW, BETA, LOCKED, LEGACY and DEPRECATED tags in the DefectDojo Pro sidebar mean, and what each one asks you to do" weight: 7 audience: pro --- @@ -11,10 +11,13 @@ Entries in the DefectDojo Pro sidebar can carry a small coloured tag. Each one a | --- | --- | --- | --- | | `SOON` | Gold | Announced, not released yet | Nothing. The entry does not open a page | | `NEW` | Green | Recently released | Nothing — it is there so you notice the feature | -| `BETA` | Orange | Working, still being finished; behaviour may change between releases | Try it, and expect rough edges | +| `BETA` | Brand-colored | Working, still being finished; behaviour may change between releases | Try it, and expect rough edges | +| `LOCKED` | Grey | Not included in your license | Selecting the entry explains what unlocks it | | `LEGACY` | Red | Superseded by a newer feature, with no announced removal date | Prefer the replacement for new work | | `DEPRECATED` | Red | Scheduled for removal in a named release | Migrate before that release | +Two badges carry a small icon on their corner so they stay recognizable at a glance: `NEW` a flame, `BETA` a seedling. `LOCKED` carries a padlock inside the pill. When the sidebar is [collapsed to its icon rail](/navigation/pro__sidebar/#collapsing-the-sidebar), those icons are what remains: they shrink to small marks on the row's icon, in the badge's colour, and hovering the row names the page and its badge together. + ## SOON marks a capability that has not shipped A `SOON` entry is the only one that does not open a page. It is greyed out, and selecting it explains that the capability is on the way rather than navigating anywhere. @@ -59,7 +62,7 @@ Both are removed in **3.5.0**, along with the API-based (pull) parsers they exis ![DEPRECATED badges under Settings > Configuration](images/menu_badge_deprecated.png) -Where a label and its badge do not fit side by side in the sidebar, the badge wraps onto its own line beneath the label rather than being truncated. +A label and its badge always share one line in the sidebar. Where the pair genuinely does not fit, it is the label that gives way (an ellipsis), never the badge dropping onto its own line; the full name still surfaces through the collapsed rail's tooltips and on the page itself. ## Related diff --git a/docs/content/navigation/PRO__sidebar.md b/docs/content/navigation/PRO__sidebar.md index ab0f2f04475..1dc82848a00 100644 --- a/docs/content/navigation/PRO__sidebar.md +++ b/docs/content/navigation/PRO__sidebar.md @@ -1,13 +1,15 @@ --- title: "The Sidebar Menu" -description: "How the DefectDojo Pro sidebar is organized, how to search it, the All Settings directory page, and how to switch between the current and previous layouts" +description: "How the DefectDojo Pro sidebar is organized, how to search it, pinning pages, collapsing it to an icon rail, the All Settings directory page, and how to switch between the current and previous layouts" weight: 6 audience: pro aliases: - /navigation/pro__settings_menu/ --- -The DefectDojo Pro sidebar groups every page in the product into five sections, ordered by how the product is used rather than by how its data is structured. The views you open to find work come first; the record catalogs you drill into sit behind them. This layout is the default on every instance from DefectDojo Pro 3.2.200 onwards. An administrator can switch back to the previous layout at any time (see [Switching layouts](#switching-layouts)). +The DefectDojo Pro sidebar is the application shell: as of DefectDojo Pro 3.3.100 it runs the full height of the window and carries the brand, the search field, the menu, and (at the bottom) your account, alerts and the light/dark switch. There is no separate top bar on desktop; on phones and small windows the sidebar becomes a drawer behind a top-bar menu button. + +The menu groups every page in the product into five sections, ordered by how the product is used rather than by how its data is structured. The views you open to find work come first; the record catalogs you drill into sit behind them. This layout is the default on every instance from DefectDojo Pro 3.2.200 onwards. An administrator can switch back to the previous layout at any time (see [Switching layouts](#switching-layouts)). Either way, **every page keeps the same URL**. Bookmarks, saved links and anything in your own runbooks continue to work regardless of which layout is active. @@ -23,11 +25,16 @@ Either way, **every page keeps the same URL**. Bookmarks, saved links and anythi You only ever see the entries your account has permission to open, and a group disappears entirely when none of its pages are available to you. -## Searching the menu +## Searching + +The **Search** field at the top of the sidebar, and **Cmd+K** (Mac) or **Ctrl+K** anywhere, open one **Global Search** dialog with two kinds of results: -Press **Cmd+K** (Mac) or **Ctrl+K**, or select the small magnifying-glass control pinned in the top-right corner of the sidebar, to open **Search Navigation Options**: a search over every menu destination your account can currently reach. The control shows the shortcut for your platform, so it reads `Ctrl K` on Windows and Linux, and the whole control is clickable. It stays in the corner as the menu scrolls. +- **Data Results**: your records (findings, assets, engagements and the rest), through the same engine as the full results page. **See all results** at the bottom opens that page. See [Global Search](/navigation/pro__global_search/). +- **Navigation Results**: every menu destination your account can currently reach. -Results match more than the entry's label. Each destination is also searchable by its position in the menu and by related vocabulary, so `finding` surfaces **Findings > All** even though the entry itself is labelled "All", and `sso` surfaces the authorization providers. Each result shows where the entry lives in the menu and a one line description of the page. +Navigation results match more than the entry's label. Each destination is also searchable by its position in the menu and by related vocabulary, so `finding` surfaces **Findings > All** even though the entry itself is labelled "All", and `sso` surfaces the authorization providers. Each result shows where the entry lives in the menu and a one line description of the page. + +Before you type anything, the dialog offers your **recent destinations**: the last few menu pages you visited (excluding the one you are on), one **Enter** away. Recents are remembered per browser. Move through results with the arrow keys, open one with **Enter**, and close the search with **Escape**. Entries that open in the Classic UI are marked and open in a new tab. The search only ever lists pages you could also reach through the sidebar: permissions, feature flags, and license entitlements apply to it identically, and it follows whichever menu layout is active. @@ -38,6 +45,34 @@ Three conventions run through the whole menu: - **A feature occupies one entry, not one per screen.** PSIRT's nine pages, the Triage Engine's four and the record catalogs all sit behind a single entry each, instead of spreading across the menu. - **An entry is not repeated inside itself.** Where a group already names the thing, its entries do not name it again: **Findings** holds Active, Mitigated and All rather than "All Findings", and **Attack Surface** holds Endpoints and Hosts rather than "All Endpoints". +## Pinned pages + +![The Pinned section at the top of the sidebar](images/sidebar_pinned_pages.png) + +Hover any page row (in the sidebar, in a collapsed-rail flyout, or in a Global Search result) and a pin appears at its end; on touch screens the pin always shows. Pinning a page adds it to a **Pinned** section at the very top of the menu, which exists only while you have pins. A pinned row is the real menu entry, so its badge, its permissions, and the active highlight all keep working, and a page you lose access to simply stops appearing without losing its pin. The pin stands upright on rows that are pinned; select it again to unpin. + +Pins are stored per user on the server, so they survive a browser reset and follow you across machines. When the **Restrict Layout Customization** switch is on (see [UI Defaults](#ui-defaults)), pins count as layout customization: only superusers can change them, and everyone else sees their existing pins read-only. + +## Your preferences follow you + +The shape you give the shell is stored per user on the server, not just in the browser: pinned pages, folded sections, whether the rail is collapsed, and the light/dark choice (which is shared with the Classic UI, so the two interfaces always agree). Clearing your browser or signing in on a new machine brings it all back on the next sign-in. On the first sign-in after upgrading to this version, whatever shape this browser already had is imported automatically, so nothing resets. + +## Collapsing the sidebar + +The chevron beside the logo, or **Cmd+B** (Mac) / **Ctrl+B**, collapses the sidebar to a slim icon rail and back. Your choice is remembered across reloads. On desktop windows narrower than 1200px the rail starts collapsed to leave room for content; widening the window brings your stored preference back. (Cmd+B is ignored while you are typing in an editor, where it means bold.) + +![The collapsed rail with a section flyout open](images/sidebar_rail_flyout.png) + +While collapsed: + +- Rows show only their icon. Hovering a page shows its name (and its badge, if it carries one) as a tooltip. +- Hovering or selecting a **section** opens its entries in a flyout panel beside the rail. The panel is fully keyboard-driven: selecting a section moves focus into it, the arrow keys walk the entries, **Enter** opens one, and **Escape** closes the panel and puts focus back where it was. +- The icon of the section holding your **current page** stays highlighted, and the flyout marks the exact row, so you never lose your place. +- Badges shrink to small marks on the row icon: the `NEW` flame, the `BETA` seedling, and a padlock for license-locked entries. See [Menu Badges](/navigation/pro__menu_badges/). +- The magnifying glass under the logo keeps a mouse path to [Global Search](#searching); the keyboard shortcut works as always. + +The rail also follows your page as you navigate: opening a page that lives inside a menu group opens that group (expanded) or lights its section (collapsed), including when you arrive from a bookmark or a link. + ## Sensei + AI The AI capabilities sit together in their own section rather than being spread through the dashboards. @@ -112,7 +147,7 @@ The last category, **Elsewhere in the app**, lists pages that configure DefectDo The **UI Defaults** group collects the settings that control how much of the interface each person can tailor: - **[Form Configuration](/navigation/pro__form_configuration/)**: choose which fields the create and edit forms show and require, and whether the Optional Fields panel starts expanded. -- **Layout Defaults**: the **Restrict Layout Customization** switch, plus the global defaults designated for dashboards, [page layouts](/navigation/pro__page_layouts/), and table views. With the switch on, only superusers can create or change dashboards, page layouts, and table views; everyone else is shown the designated defaults, or the built-in defaults when none are chosen. Personal layouts saved earlier are kept and reappear if the switch is turned back off. You choose each default from a dropdown of the layouts an administrator has shared, or designate one in context (a shared dashboard's Manage dialog, a view page's layout menu, or a table's Views menu). +- **Layout Defaults**: the **Restrict Layout Customization** switch, plus the global defaults designated for dashboards, [page layouts](/navigation/pro__page_layouts/), and table views. With the switch on, only superusers can create or change dashboards, page layouts, table views, and [pinned sidebar pages](#pinned-pages); everyone else is shown the designated defaults, or the built-in defaults when none are chosen. Personal layouts saved earlier are kept and reappear if the switch is turned back off. You choose each default from a dropdown of the layouts an administrator has shared, or designate one in context (a shared dashboard's Manage dialog, a view page's layout menu, or a table's Views menu). ## What moved diff --git a/docs/content/navigation/images/global_search_dialog.png b/docs/content/navigation/images/global_search_dialog.png new file mode 100644 index 00000000000..27bd5192dd2 Binary files /dev/null and b/docs/content/navigation/images/global_search_dialog.png differ diff --git a/docs/content/navigation/images/sidebar_pinned_pages.png b/docs/content/navigation/images/sidebar_pinned_pages.png new file mode 100644 index 00000000000..61e0d9b52bd Binary files /dev/null and b/docs/content/navigation/images/sidebar_pinned_pages.png differ diff --git a/docs/content/navigation/images/sidebar_rail_flyout.png b/docs/content/navigation/images/sidebar_rail_flyout.png new file mode 100644 index 00000000000..47a68b4997c Binary files /dev/null and b/docs/content/navigation/images/sidebar_rail_flyout.png differ