diff --git a/site/faq/faq-inventory.qmd b/site/faq/faq-inventory.qmd index 81e411ec56..bbc2743e67 100644 --- a/site/faq/faq-inventory.qmd +++ b/site/faq/faq-inventory.qmd @@ -41,20 +41,21 @@ By default, the [{{< fa hand >}} Customer Admin]{.bubble} role has sufficient pe ## Can the {{< var vm.product >}} inventory be customized? - Yes, information that is displayed on the inventory is configurable.[^4] -- You can also search, filter, and sort records (such as models) to narrow down results.[^5] -- Fields that appear on records can also be customized.[^6] +- You can also search, filter, and sort records (such as models) to narrow down results,[^5] and group the table view into collapsible sections by field.[^6] +- Administrators can save inventory filters as named, reusable segments and publish them for the entire organization.[^7] +- Fields that appear on records can also be customized.[^8] {{< include _faq-document-updates.qmd >}} ## Can I archive or delete records within {{< var vm.product >}}? -Yes, records (such as models) can be archived within the {{< var validmind.platform >}} inventory to keep your inventory accurate and up to date with your organization’s current resources.[^7] +Yes, records (such as models) can be archived within the {{< var validmind.platform >}} inventory to keep your inventory accurate and up to date with your organization’s current resources.[^9] By default, the [{{< fa hand >}} Customer Admin]{.bubble} role has sufficient permissions to archive and delete records. ## Can I track interdependencies within the inventory? -- Yes, the {{< var validmind.platform >}} allows you to connect two or more records (models) together in your inventory.[^8] +- Yes, the {{< var validmind.platform >}} allows you to connect two or more records (models) together in your inventory.[^10] - You can note both upstream and downstream records. By default, the [{{< fa code >}} Developer]{.bubble} role has sufficient permissions to edit record interdependencies. @@ -83,8 +84,12 @@ By default, the [{{< fa code >}} Developer]{.bubble} role has sufficient permiss [^5]: [Working with the inventory](/guide/inventory/working-with-the-inventory.qmd#search-filter-and-sort-records) -[^6]: [Customize record overview page](/guide/inventory/customize-record-overview-page.qmd) +[^6]: [Working with the inventory](/guide/inventory/working-with-the-inventory.qmd#group-records) -[^7]: [Archive and delete records](/guide/inventory/archive-delete-records.qmd) +[^7]: [Manage inventory segments](/guide/inventory/manage-inventory-segments.qmd) -[^8]: [Configure record interdependencies](/guide/inventory/configure-record-interdependencies.qmd) \ No newline at end of file +[^8]: [Customize record overview page](/guide/inventory/customize-record-overview-page.qmd) + +[^9]: [Archive and delete records](/guide/inventory/archive-delete-records.qmd) + +[^10]: [Configure record interdependencies](/guide/inventory/configure-record-interdependencies.qmd) \ No newline at end of file diff --git a/site/guide/_sidebar.yaml b/site/guide/_sidebar.yaml index a01456f144..b6efc80bb4 100644 --- a/site/guide/_sidebar.yaml +++ b/site/guide/_sidebar.yaml @@ -88,6 +88,7 @@ website: contents: - guide/inventory/manage-inventory-record-types.qmd - guide/inventory/manage-inventory-fields.qmd + - guide/inventory/manage-inventory-segments.qmd - guide/inventory/record-intake.qmd - text: "Working with the inventory" file: guide/inventory/working-with-the-inventory.qmd diff --git a/site/guide/inventory/customize-inventory-layout.qmd b/site/guide/inventory/customize-inventory-layout.qmd index 0a5bc8ec8f..89d7a824ce 100644 --- a/site/guide/inventory/customize-inventory-layout.qmd +++ b/site/guide/inventory/customize-inventory-layout.qmd @@ -39,6 +39,7 @@ In the left sidebar, click **{{< fa cubes >}} Inventory**: #### Table view - To display the inventory in table view, click **{{< fa table >}} Display Table**. - Columns on the table view can be customized.[^2] +- Records on the table view can also be grouped into collapsible sections by field.[^3] ::: @@ -48,7 +49,7 @@ In the left sidebar, click **{{< fa cubes >}} Inventory**: Changes are automatically saved to your account and do not affect other users. ::: -In addition to sorting and filtering the inventory,[^3] you can add or remove columns and customize the order the columns appear on your table view:[^4] +In addition to sorting, filtering, and grouping the inventory,[^4] you can add or remove columns and customize the order the columns appear on your table view:[^5] 1. In the left sidebar, click **{{< fa cubes >}} Inventory**. @@ -56,13 +57,13 @@ In addition to sorting and filtering the inventory,[^3] you can add or remove co - Search for a column name in the list to narrow down results. - Toggle visibility for each item and drag each option to change the order. - - Available columns are determined by your inventory fields.[^5] + - Available columns are determined by your inventory fields.[^6] -Once customized, you can save views for later application for each type of record in your inventory.[^6] +Once customized, you can save views for later application for each type of record in your inventory.[^7] ### Manage custom inventory views -You can save custom table configurations as a view to reapply at any time: +You can save custom table configurations — including your columns, filters, sorting, and grouping — as a view to reapply at any time: #### Manage personal inventory views @@ -79,10 +80,12 @@ You can save custom table configurations as a view to reapply at any time: [^2]: [Customize table view](#customize-table-view) -[^3]: [Working with the inventory](working-with-the-inventory.qmd#search-filter-and-sort-records) +[^3]: [Working with the inventory](working-with-the-inventory.qmd#group-records) -[^4]: [Swap between views](#swap-between-views) +[^4]: [Working with the inventory](working-with-the-inventory.qmd#search-filter-and-sort-records) -[^5]: [Manage inventory fields](manage-inventory-fields.qmd) +[^5]: [Swap between views](#swap-between-views) -[^6]: [Manage custom inventory views](#manage-custom-inventory-views) +[^6]: [Manage inventory fields](manage-inventory-fields.qmd) + +[^7]: [Manage custom inventory views](#manage-custom-inventory-views) diff --git a/site/guide/inventory/manage-inventory-segments.qmd b/site/guide/inventory/manage-inventory-segments.qmd new file mode 100644 index 0000000000..fb03576f83 --- /dev/null +++ b/site/guide/inventory/manage-inventory-segments.qmd @@ -0,0 +1,181 @@ +--- +# Copyright © 2023-2026 ValidMind Inc. All rights reserved. +# Refer to the LICENSE file in the root of this repository for details. +# SPDX-License-Identifier: AGPL-3.0 AND ValidMind Commercial +title: "Manage inventory segments" +date: last-modified +includes: + inventory: true +--- + +Save a set of inventory filters as a named, reusable segment that spans every inventory record type, then publish the segment so everyone in your organization can filter the inventory with it. + +::: {.attn} + +## Prerequisites + +- [x] {{< var link.login >}} +- [x] There are records registered in the inventory.[^1] +- [x] You are a [{{< fa hand >}} Customer Admin]{.bubble} or assigned another role with sufficient permissions to perform the tasks in this guide.[^2] + +::: + +## Key concepts + +*Inventory segments* are named, reusable filters over your inventory records: + +- A segment spans every inventory record type in your organization. Record types added later are automatically in scope, so a segment never needs to be updated when your inventory grows. +- Matching records are evaluated live — a segment always reflects the current state of your inventory, and users only see the matching records they have permission to view. +- A segment starts as a personal [Draft]{.bubble}. Publishing it makes it available to your entire organization. + +::: {.callout title="Note that segments differ from saved views and grouping."} +- **Segments** — Named filters managed by administrators in the organization settings, reusable by everyone once published. +- **Saved views** — Personal or shared table configurations that capture the columns, filters, sorting, and grouping applied to a listing.[^3] +- **Grouping** — A listing layout option that organizes a table view into collapsible sections by field.[^4] +::: + +## Add segments + +::: {.callout} +By default, only the [{{< fa hand >}} Customer Admin]{.bubble} role can add segments. To let other roles add segments, grant the Add Inventory Segment permission to those roles.[^5] +::: + +1. In the left sidebar, click **{{< fa gear >}} Settings**. + +2. Under {{< fa cube >}} Inventory, select **Inventory Segments**. + +3. Click **{{< fa plus >}} Add Segment**. + +4. On the Add New Segment dialog that opens, enter the **Segment Name** and an optional **Description**. + +5. Click **Add Segment**. + + The detail page for your new segment opens, where you define the segment conditions. + +### Define segment conditions + +1. On your segment's detail page, click **{{< fa filter >}} Filter**. + +2. On the Edit Segment Conditions dialog that opens, enter the conditions that records must match to belong to the segment: + + - Inventory Record Type is available as a condition, so you can scope a segment to specific record types. + - A segment cannot reference another segment, so Segment is not offered as a condition field here. + +::: {.callout-button .pl4 .nt2} +::: {.callout collapse="true" appearance="minimal"} +### How do I create effective filters? + +{{< include /guide/shared/_work-with-filters.qmd >}} +::: +::: + +3. Click **Apply Filters**. + + Your conditions appear as chips next to Filtered by, and the list of matching records updates live along with the matching record count. + +4. In the page header, click **Save Changes** to save the conditions to the segment, or **Cancel** to discard your edits. + +::: {.callout-important title="Saving conditions to a published segment changes its results for everyone."} +A published segment is evaluated live wherever it is used, including inventory filters and analytics datasets. When you save condition changes to a published segment, confirm the change by clicking **Yes, Save Changes**. +::: + +## Publish segments + +Publishing makes a segment available to everyone in your organization. You can continue editing a segment after it is published. + +1. In the left sidebar, click **{{< fa gear >}} Settings**. + +2. Under {{< fa cube >}} Inventory, select **Inventory Segments**. + +3. On the actions menu for your segment, click **Publish Segment**. + +4. Click **Publish Segment** to confirm. + +Each segment shows one of the following statuses: + +| Status | Description | +|--------|-------------| +| [Draft]{.bubble} | Personal to you — visible only to you and not yet offered where segments are used. | +| [Published]{.bubble} | Available to everyone in your organization. | +| [Archived]{.bubble} | Permanently retired — an archived segment cannot be edited, published, or restored. | + +: Segment statuses {.hover} + +::: {.callout title="Note that your organization starts with an example segment."} +Every organization includes an All Inventory Records segment managed by {{< var vm.product >}}. This example segment cannot be edited or unpublished, but it can be deleted. +::: + +## Edit segments + +To rename a segment or update its description: + +1. In the left sidebar, click **{{< fa gear >}} Settings**. + +2. Under {{< fa cube >}} Inventory, select **Inventory Segments**. + +3. On the actions menu for your segment, click **Edit Segment**. + +4. Update the **Segment Name** or **Description**, then click **Save Changes**. + +To edit the conditions of a segment, open the segment and update its filters.[^6] + +## Unpublish, archive, or delete segments + +::: {.callout-important} +Archiving and deletion of segments are permanent. +::: + +1. In the left sidebar, click **{{< fa gear >}} Settings**. + +2. Under {{< fa cube >}} Inventory, select **Inventory Segments**. + +3. On the actions menu for your segment, click one of: + + - **Unpublish Segment** — Returns the segment to a personal draft. The segment is no longer offered where segments are used. Click **Yes, Unpublish Segment** to confirm. + - **Archive Segment** — Permanently retires the segment. An archived segment cannot be edited, published, or restored. Click **Yes, Archive Segment** to confirm. + - [**Delete Segment**]{.red} — Permanently deletes the segment. The inventory records it matched are not affected. Click **Yes, Delete Segment** to confirm. + +## Apply segments as inventory filters + +Once a segment is published, anyone in your organization can filter the inventory by it: + +1. In the left sidebar, click **{{< fa cubes >}} Inventory**. + +2. Click **{{< fa filter >}} Filter**. + +3. Click **{{< fa plus >}} Add Rule**, then select **Segment** from the field selector. + +4. Select the segment to filter by. + + You can combine a segment rule with other rules, such as an Inventory Record Type condition, to narrow down results further.[^7] + +5. Click **Apply Filters**. + +## Use segments in analytics + +Published segments are also available as datasets for visualization widgets on your analytics pages, listed under Inventory Segments in the dataset selector.[^8] + +## What's next + +- [Working with the inventory](working-with-the-inventory.qmd) +- [Customize inventory layout](customize-inventory-layout.qmd) +- [Working with analytics](/guide/reporting/working-with-analytics.qmd) + + + + +[^1]: [Register records in the inventory](register-records-in-inventory.qmd) + +[^2]: [Manage permissions](/guide/configuration/manage-permissions.qmd) + +[^3]: [Customize inventory layout](customize-inventory-layout.qmd#manage-custom-inventory-views) + +[^4]: [Working with the inventory](working-with-the-inventory.qmd#group-records) + +[^5]: [Manage permissions](/guide/configuration/manage-permissions.qmd) + +[^6]: [Define segment conditions](#define-segment-conditions) + +[^7]: [Working with the inventory](working-with-the-inventory.qmd#search-filter-and-sort-records) + +[^8]: [Working with analytics](/guide/reporting/working-with-analytics.qmd) diff --git a/site/guide/inventory/setting-up-the-inventory.qmd b/site/guide/inventory/setting-up-the-inventory.qmd index a46f196244..7779346224 100644 --- a/site/guide/inventory/setting-up-the-inventory.qmd +++ b/site/guide/inventory/setting-up-the-inventory.qmd @@ -14,6 +14,7 @@ listing: contents: - manage-inventory-record-types.qmd - manage-inventory-fields.qmd + - manage-inventory-segments.qmd - record-intake.qmd --- diff --git a/site/guide/inventory/working-with-the-inventory.qmd b/site/guide/inventory/working-with-the-inventory.qmd index 97885f1318..664dcf22de 100644 --- a/site/guide/inventory/working-with-the-inventory.qmd +++ b/site/guide/inventory/working-with-the-inventory.qmd @@ -46,8 +46,9 @@ Use the {{< var vm.product >}} inventory to track comprehensive details for all - **{{< fa magnifying-glass >}} Search** — Search for records using keywords in the record name. - **{{< fa filter >}} Filter** — Filter records using different criteria. - **{{< fa arrow-up-wide-short >}} Sort** — Reorder the list using different criteria in ascending or descending order. + - **{{< fa layer-group >}} Group By** — Organize the table view into collapsible sections by field.[^3] -::: {.callout-button .pl4 .nt4} +::: {.callout-button .pl4 .nt2} ::: {.callout collapse="true" appearance="minimal"} ### How do I create effective filters? @@ -55,12 +56,43 @@ Use the {{< var vm.product >}} inventory to track comprehensive details for all ::: ::: -Changes are automatically saved and affect only your account. +Changes are automatically saved and affect only your account. To reapply a combination of columns, filters, sorting, and grouping later on, save it as a view.[^4] -::: {.callout title="Note that searching, filtering, and sorting of fields stack."} +::: {.callout title="Note that searching, filtering, sorting, and grouping of fields stack."} For example, if you first search by keyword for `ValidMind` without clearing that search, any additional filtering and sorting applied will only apply to the results returned by the previous criteria. ::: +::: {.callout} +Published inventory segments — named, reusable filters managed by your organization's administrators — can also be applied as filter rules. When adding a filter rule, select Segment from the field selector, then select the segment to filter by.[^5] +::: + +## Group records + +Group records to organize the table view into collapsible sections based on the value of a single field, with a record count for each section: + +1. In the left sidebar, click **{{< fa cubes >}} Inventory**. + +2. Select the type of `{Record}` you want to view by clicking on **{Record} Inventory**.[^6] + +3. Click **{{< fa layer-group >}} Group By**. To use this feature, make sure you're in table view.[^7] + +4. Select the field to group by: + + - Fields are organized by inventory field group.[^8] Search for a field name in the list to narrow down results. + - Grouping is limited to one field at a time — selecting another field replaces the current grouping. + +Once grouped, the applied field appears as a Grouped by chip alongside your active filters, and you can work with the grouped listing: + +- Click on a group header to expand or collapse that section. +- Click **Expand All** or **Collapse All** to toggle every section at once. +- To remove grouping, click **{{< fa layer-group >}} Group By** and select **Clear grouping**, or clear the Grouped by chip. + +Grouping is included when you save a view, so you can reapply the same grouped layout later or share it with your organization.[^9] + +::: {.callout title="Grouping isn't available for every view."} +If the grouped field can no longer be grouped by — for example, because the field was deleted — the listing displays ungrouped until you select a different field. +::: + ## Using the {{< var vm.product >}} inventory :::{#working-with-the-inventory} @@ -76,4 +108,18 @@ For example, if you first search by keyword for `ValidMind` without clearing tha [^1]: [Register records in the inventory](register-records-in-inventory.qmd) -[^2]: [Manage inventory record types](manage-inventory-record-types.qmd) \ No newline at end of file +[^2]: [Manage inventory record types](manage-inventory-record-types.qmd) + +[^3]: [Group records](#group-records) + +[^4]: [Customize inventory layout](customize-inventory-layout.qmd#manage-custom-inventory-views) + +[^5]: [Manage inventory segments](manage-inventory-segments.qmd#apply-segments-as-inventory-filters) + +[^6]: [Manage inventory record types](manage-inventory-record-types.qmd) + +[^7]: [Customize inventory layout](customize-inventory-layout.qmd#swap-between-views) + +[^8]: [Manage inventory fields](manage-inventory-fields.qmd#add-inventory-field-groups) + +[^9]: [Customize inventory layout](customize-inventory-layout.qmd#manage-custom-inventory-views) \ No newline at end of file diff --git a/site/guide/reporting/_create-a-visualization.qmd b/site/guide/reporting/_create-a-visualization.qmd index 06a060acc7..c28cd7c75f 100644 --- a/site/guide/reporting/_create-a-visualization.qmd +++ b/site/guide/reporting/_create-a-visualization.qmd @@ -26,6 +26,7 @@ a. Select a **Dataset**: - **Artifact^[[Working with artifacts](/guide/validation/working-with-artifacts.qmd)] - {Type}** — Logged artifacts scoped to only the specific artifact `{Type}`.^[[Manage artifact types](/guide/validation/manage-artifact-types.qmd)] - **Inventory Record - {Type}**^[[Working with the inventory](/guide/inventory/working-with-the-inventory.qmd)] — Logged records scoped to only the specific record `{Type}`.^[[Manage inventory record types](/guide/inventory/manage-inventory-record-types.qmd)] - **Inventory Record Stage Durations** — Data on the duration inventory records spend in each stage.^[[Manage record stages](/guide/workflows/manage-record-stages.qmd)] + - **Inventory Segments - {Segment}** — Inventory records matching a published segment.^[[Manage inventory segments](/guide/inventory/manage-inventory-segments.qmd)] a. Select the visualization configuration options to apply to the dataset.^[[Visualization configuration options](/guide/reporting/manage-custom-reports.qmd#visualization-configuration-options)] @@ -49,6 +50,7 @@ a. Select a **Dataset**: - **[Artifact](/guide/validation/working-with-artifacts.qmd){target="_blank"} - {Type}** — Logged artifacts scoped to only the specific [artifact `{Type}`](/guide/validation/manage-artifact-types.qmd){target="_blank"}. - **[Inventory Record](/guide/inventory/working-with-the-inventory.qmd){target="_blank"} - {Type}** — Logged records scoped to only the specific [record `{Type}`](/guide/inventory/manage-inventory-record-types.qmd){target="_blank"}. - **Inventory Record Stage Durations** — Data on the duration inventory records spend in [each stage](/guide/workflows/manage-record-stages.qmd){target="_blank"}. + - **[Inventory Segments](/guide/inventory/manage-inventory-segments.qmd){target="_blank"} - {Segment}** — Inventory records matching a published segment. a. Select the [visualization configuration options](/guide/reporting/manage-custom-reports.qmd#visualization-configuration-options){target="_blank"} to apply to the dataset. diff --git a/site/guide/shared/_work-with-filters.qmd b/site/guide/shared/_work-with-filters.qmd index 893c54118f..72d58cf76d 100644 --- a/site/guide/shared/_work-with-filters.qmd +++ b/site/guide/shared/_work-with-filters.qmd @@ -45,6 +45,7 @@ Value editor - **[record information]{.smallcaps}** — One of the inventory record fields always created by {{< var vm.product >}}, such as the Business Unit. - **[stakeholders]{.smallcaps}** — Record Owner, Record Developer, or Record Validator, or custom stakeholders if applicable. - **[record fields]{.smallcaps}** — One of the organization-specific inventory record fields you added for your own use, by field group. +- **[segment]{.smallcaps}** — A published [inventory segment](/guide/inventory/manage-inventory-segments.qmd): a named, reusable filter managed by your organization's administrators. Available on the inventory only. :::: @@ -80,6 +81,7 @@ Inventory - **[record information]{.smallcaps}** — One of the inventory record fields always created by {{< var vm.product >}}, such as the Business Unit. - **[stakeholders]{.smallcaps}** — Record Owner, Record Developer, or Record Validator, or custom stakeholders if applicable. - **[record fields]{.smallcaps}** — One of the organization-specific inventory record fields you added for your own use, by field group. +- **[segment]{.smallcaps}** — A published inventory segment: a named, reusable filter managed by your organization's administrators. Available on the inventory only.^[[Manage inventory segments](/guide/inventory/manage-inventory-segments.qmd)] ::: ::: {.column width="50%" .pl4 .pr3} diff --git a/site/guide/shared/manage-views/_personal-table-views.qmd b/site/guide/shared/manage-views/_personal-table-views.qmd index f911ec1e57..5e3acf1401 100644 --- a/site/guide/shared/manage-views/_personal-table-views.qmd +++ b/site/guide/shared/manage-views/_personal-table-views.qmd @@ -14,14 +14,14 @@ SPDX-License-Identifier: AGPL-3.0 AND ValidMind Commercial --> :::: {.content-visible when-format="html" when-meta="includes.inventory"} 1. Select the type of `{Record}` you want to save a view for by clicking on **{Record} Inventory**, then customize the table view.^[[Customize table view](/guide/inventory/customize-inventory-layout.qmd#customize-table-view)] - You can also apply filters or sorting before saving your view to include them in the view.^[[Working with the inventory](/guide/inventory/working-with-the-inventory.qmd)] + You can also apply filters, sorting, or grouping before saving your view to include them in the view.^[[Working with the inventory](/guide/inventory/working-with-the-inventory.qmd)] :::: :::: {.content-visible when-format="html" when-meta="includes.artifacts"} 1. First, customize an artifact layout.^[[Customize artifact layouts by type](/guide/validation/customize-artifact-layouts.qmd#customize-artifact-layouts-by-type)] - You can also apply filters or sorting before saving your view to include them in the view.^[[View and filter artifacts](/guide/validation/view-filter-artifacts.qmd#filter-and-sort-artifacts)] + You can also apply filters, sorting, or grouping before saving your view to include them in the view.^[[View and filter artifacts](/guide/validation/view-filter-artifacts.qmd#filter-and-sort-artifacts)] :::: diff --git a/site/guide/validation/customize-artifact-layouts.qmd b/site/guide/validation/customize-artifact-layouts.qmd index fa6cab2ccf..d448f9706f 100644 --- a/site/guide/validation/customize-artifact-layouts.qmd +++ b/site/guide/validation/customize-artifact-layouts.qmd @@ -68,7 +68,7 @@ Once customized, you can save a view for later application.[^7] ## Manage custom artifact views -You can save custom artifact configurations as a view to reapply at any time for each artifact type: +You can save custom artifact configurations — including your columns, filters, sorting, and grouping[^8] — as a view to reapply at any time for each artifact type: ### Manage personal artifact views @@ -93,4 +93,6 @@ You can save custom artifact configurations as a view to reapply at any time for [^6]: [Manage artifact fields](manage-artifact-fields.qmd) -[^7]: [Manage custom artifact views](#manage-custom-artifact-views) \ No newline at end of file +[^7]: [Manage custom artifact views](#manage-custom-artifact-views) + +[^8]: [View and filter artifacts](view-filter-artifacts.qmd#group-artifacts) \ No newline at end of file diff --git a/site/guide/validation/view-filter-artifacts.qmd b/site/guide/validation/view-filter-artifacts.qmd index b5675c9e6b..860d09d96e 100644 --- a/site/guide/validation/view-filter-artifacts.qmd +++ b/site/guide/validation/view-filter-artifacts.qmd @@ -138,6 +138,31 @@ Changes are automatically saved to your account and do not affect other users. ::: +## Group artifacts + +Group artifacts to organize the table view into collapsible sections based on the value of a single field, with an artifact count for each section: + +1. In the left sidebar, click **{{< fa triangle-exclamation >}} Validation Issues** for a list of validation issues across all records, or click **{{< fa border-all >}} Artifacts** and select an artifact type[^9] for a list of other artifact types. + +2. Click **{{< fa layer-group >}} Group By**. + +3. Select the field to group by: + + - Search for a field name in the list to narrow down results. + - Grouping is limited to one field at a time — selecting another field replaces the current grouping. + +Once grouped, the applied field appears as a Grouped by chip alongside your active filters, and you can work with the grouped listing: + +- Click on a group header to expand or collapse that section. +- Click **Expand All** or **Collapse All** to toggle every section at once. +- To remove grouping, click **{{< fa layer-group >}} Group By** and select **Clear grouping**, or clear the Grouped by chip. + +Grouping is included when you save a view, so you can reapply the same grouped layout later or share it with your organization.[^10] + +::: {.callout title="Grouping isn't available for every view."} +If the grouped field can no longer be grouped by — for example, because the field was deleted — the listing displays ungrouped until you select a different field. +::: + [^1]: [Manage artifact types](/guide/validation/manage-artifact-types.qmd) @@ -155,3 +180,7 @@ Changes are automatically saved to your account and do not affect other users. [^7]: [Manage artifact types](/guide/validation/manage-artifact-types.qmd) [^8]: [Manage artifact types](/guide/validation/manage-artifact-types.qmd) + +[^9]: [Manage artifact types](/guide/validation/manage-artifact-types.qmd) + +[^10]: [Manage custom artifact views](customize-artifact-layouts.qmd#manage-custom-artifact-views) diff --git a/site/llm/chatbot-product-map-frontend-snapshot.json b/site/llm/chatbot-product-map-frontend-snapshot.json index b1609bea51..3df47b9c1d 100644 --- a/site/llm/chatbot-product-map-frontend-snapshot.json +++ b/site/llm/chatbot-product-map-frontend-snapshot.json @@ -1,6 +1,6 @@ { "version": 1, - "generated_at": "2026-06-09T21:25:44.848926+00:00", + "generated_at": "2026-08-27T00:43:25.609194+00:00", "settings": [ { "path": "/settings/profile", @@ -9,14 +9,14 @@ "primary_docs": [] }, { - "path": "/settings/theme-customization", - "label": "Theme Customization", - "group": "Your Account", + "path": "/settings/organization", + "label": "Organization", + "group": "Organization", "primary_docs": [] }, { - "path": "/settings/organization", - "label": "Organization", + "path": "/settings/usage", + "label": "Usage", "group": "Organization", "primary_docs": [] }, @@ -95,6 +95,48 @@ "group": "Integrations", "primary_docs": [] }, + { + "path": "/settings/inventory-model-custom-fields", + "label": "Model Inventory Fields", + "group": "Model Inventory", + "primary_docs": [] + }, + { + "path": "/settings/statuses", + "label": "Model Stages", + "group": "Model Inventory", + "primary_docs": [] + }, + { + "path": "/settings/primary-record-types", + "label": "Inventory Record Types", + "group": "Model Inventory", + "primary_docs": [] + }, + { + "path": "/settings/primary-record-types/fields", + "label": "Inventory Record Fields", + "group": "Model Inventory", + "primary_docs": [] + }, + { + "path": "/settings/primary-record-type-stages", + "label": "Inventory Record Stages", + "group": "Model Inventory", + "primary_docs": [] + }, + { + "path": "/settings/stakeholders", + "label": "Model Stakeholder Types", + "group": "Model Inventory", + "primary_docs": [] + }, + { + "path": "/settings/segments", + "label": "Inventory Segments", + "group": "Model Inventory", + "primary_docs": [] + }, { "path": "/settings/finding-types", "label": "Artifact Types", @@ -131,6 +173,12 @@ "group": "Governance", "primary_docs": [] }, + { + "path": "/settings/risk-tier-stages", + "label": "Risk Tier Stages", + "group": "Governance", + "primary_docs": [] + }, { "path": "/settings/workflows", "label": "Workflows", @@ -188,14 +236,20 @@ "primary_docs": [] }, { - "path": "/attestations", - "label": "Attestations", + "path": "/artifacts", + "label": "Artifacts", "group": "Main navigation", "primary_docs": [] }, { - "path": "/artifacts", - "label": "Artifacts", + "path": "/activity", + "label": "Activity", + "group": "Main navigation", + "primary_docs": [] + }, + { + "path": "/attestations", + "label": "Attestations", "group": "Main navigation", "primary_docs": [] }, @@ -206,8 +260,50 @@ "primary_docs": [] }, { - "path": "/activity", - "label": "Activity", + "path": "/agent-authority/invocations", + "label": "Agent Authority", + "group": "Main navigation", + "primary_docs": [] + }, + { + "path": "/risk-intelligence", + "label": "Risk Intelligence", + "group": "Main navigation", + "primary_docs": [] + }, + { + "path": "/agent-authority/invocations", + "label": "Invocations", + "group": "Main navigation", + "primary_docs": [] + }, + { + "path": "/agent-authority/agents", + "label": "Agents", + "group": "Main navigation", + "primary_docs": [] + }, + { + "path": "/agent-authority/servers", + "label": "Servers", + "group": "Main navigation", + "primary_docs": [] + }, + { + "path": "/agent-authority/rules", + "label": "Rules", + "group": "Main navigation", + "primary_docs": [] + }, + { + "path": "/agent-authority/charters", + "label": "Charters", + "group": "Main navigation", + "primary_docs": [] + }, + { + "path": "/agent-authority/settings", + "label": "Settings", "group": "Main navigation", "primary_docs": [] }, diff --git a/site/llm/chatbot-product-map.md b/site/llm/chatbot-product-map.md index e446098f0c..c3274b8f14 100644 --- a/site/llm/chatbot-product-map.md +++ b/site/llm/chatbot-product-map.md @@ -174,18 +174,18 @@ **Docs (related):** -- `/guide/risk-tiering/manage-risk-tier-templates.html` - - Sections: Prerequisites; Access risk tier templates; Create a template; Select a tier calculation method; Define risk tier levels; Publish a template; Create a new version; Duplicate a template -- `/guide/templates/customize-document-checker.html` - - Sections: Prerequisites; Manage regulations and policies; Manage assessments; Default assessments provided by } cannot be edited, only cloned.; Add or clone assessments; Add or edit assessment questions; Add assessment questions; Edit assessment questions -- `/guide/templates/customize-document-templates.html` - - Sections: Prerequisites; Edit template outlines; Configure assessment options[^4]; Edit YAML templates; Template schema; Troubleshooting YAML templates; Add text blocks to templates; Add text blocks via template outlines -- `/guide/templates/manage-document-templates.html` - - Sections: Prerequisites; View document templates; Create document templates; Edit document template outlines; Swap document templates; View currently applied templates; Swap between templates; Duplicate document templates -- `/guide/templates/manage-document-types.html` - - Sections: Prerequisites; Add document types; Edit or delete document types; Development, Validation, and Monitoring document types are stock types and cannot be deleted. -- `/guide/templates/manage-documents.html` - - Sections: Prerequisites; Add record documents; How do I get the best results when converting PDFs into editable documents?; How can I trust that the conversion is accurate?; Troubleshooting; My PDF conversion is stuck. What can I do?; Edit record documents; Delete record documents +- `/guide/validation/customize-artifact-layouts.html` + - Sections: Prerequisites; Customize artifact layouts by type; Manage custom artifact views; Manage personal artifact views; Manage organization artifact views +- `/guide/validation/working-with-artifacts.html` + - Sections: Key concepts; Work with artifacts; What's next +- `/guide/validation/manage-artifact-types.html` + - Sections: Can I create custom artifact types?; Prerequisites; Manage artifact type statuses; Archive and delete artifact types +- `/guide/validation/view-filter-artifacts.html` + - Sections: Prerequisites; View artifacts; View all artifacts; View record-specific artifacts; Filter and sort artifacts; Filter all validation issues; How do I create effective filters?; Filter all other artifacts +- `/guide/validation/update-artifacts.html` + - Sections: Prerequisites; Edit fields on artifacts; Comment on artifacts; View artifact activity; View individual field activity; Track artifact resolution; Delete artifacts +- `/guide/validation/log-artifacts.html` + - Sections: Prerequisites; Add artifacts on documentation; Add artifacts on validation reports; Autogenerate validation issues; Manually add artifacts #### `/settings/finding-severities` — Artifact Severities @@ -196,18 +196,18 @@ **Docs (related):** -- `/guide/risk-tiering/manage-risk-tier-templates.html` - - Sections: Prerequisites; Access risk tier templates; Create a template; Select a tier calculation method; Define risk tier levels; Publish a template; Create a new version; Duplicate a template -- `/guide/templates/customize-document-checker.html` - - Sections: Prerequisites; Manage regulations and policies; Manage assessments; Default assessments provided by } cannot be edited, only cloned.; Add or clone assessments; Add or edit assessment questions; Add assessment questions; Edit assessment questions -- `/guide/templates/customize-document-templates.html` - - Sections: Prerequisites; Edit template outlines; Configure assessment options[^4]; Edit YAML templates; Template schema; Troubleshooting YAML templates; Add text blocks to templates; Add text blocks via template outlines -- `/guide/templates/manage-document-templates.html` - - Sections: Prerequisites; View document templates; Create document templates; Edit document template outlines; Swap document templates; View currently applied templates; Swap between templates; Duplicate document templates -- `/guide/templates/manage-document-types.html` - - Sections: Prerequisites; Add document types; Edit or delete document types; Development, Validation, and Monitoring document types are stock types and cannot be deleted. -- `/guide/templates/manage-documents.html` - - Sections: Prerequisites; Add record documents; How do I get the best results when converting PDFs into editable documents?; How can I trust that the conversion is accurate?; Troubleshooting; My PDF conversion is stuck. What can I do?; Edit record documents; Delete record documents +- `/guide/validation/customize-artifact-layouts.html` + - Sections: Prerequisites; Customize artifact layouts by type; Manage custom artifact views; Manage personal artifact views; Manage organization artifact views +- `/guide/validation/working-with-artifacts.html` + - Sections: Key concepts; Work with artifacts; What's next +- `/guide/validation/manage-artifact-types.html` + - Sections: Can I create custom artifact types?; Prerequisites; Manage artifact type statuses; Archive and delete artifact types +- `/guide/validation/view-filter-artifacts.html` + - Sections: Prerequisites; View artifacts; View all artifacts; View record-specific artifacts; Filter and sort artifacts; Filter all validation issues; How do I create effective filters?; Filter all other artifacts +- `/guide/validation/update-artifacts.html` + - Sections: Prerequisites; Edit fields on artifacts; Comment on artifacts; View artifact activity; View individual field activity; Track artifact resolution; Delete artifacts +- `/guide/validation/log-artifacts.html` + - Sections: Prerequisites; Add artifacts on documentation; Add artifacts on validation reports; Autogenerate validation issues; Manually add artifacts #### `/settings/finding-types` — Artifact Types @@ -218,18 +218,18 @@ **Docs (related):** -- `/guide/risk-tiering/manage-risk-tier-templates.html` - - Sections: Prerequisites; Access risk tier templates; Create a template; Select a tier calculation method; Define risk tier levels; Publish a template; Create a new version; Duplicate a template -- `/guide/templates/customize-document-checker.html` - - Sections: Prerequisites; Manage regulations and policies; Manage assessments; Default assessments provided by } cannot be edited, only cloned.; Add or clone assessments; Add or edit assessment questions; Add assessment questions; Edit assessment questions -- `/guide/templates/customize-document-templates.html` - - Sections: Prerequisites; Edit template outlines; Configure assessment options[^4]; Edit YAML templates; Template schema; Troubleshooting YAML templates; Add text blocks to templates; Add text blocks via template outlines -- `/guide/templates/manage-document-templates.html` - - Sections: Prerequisites; View document templates; Create document templates; Edit document template outlines; Swap document templates; View currently applied templates; Swap between templates; Duplicate document templates -- `/guide/templates/manage-document-types.html` - - Sections: Prerequisites; Add document types; Edit or delete document types; Development, Validation, and Monitoring document types are stock types and cannot be deleted. -- `/guide/templates/manage-documents.html` - - Sections: Prerequisites; Add record documents; How do I get the best results when converting PDFs into editable documents?; How can I trust that the conversion is accurate?; Troubleshooting; My PDF conversion is stuck. What can I do?; Edit record documents; Delete record documents +- `/guide/validation/customize-artifact-layouts.html` + - Sections: Prerequisites; Customize artifact layouts by type; Manage custom artifact views; Manage personal artifact views; Manage organization artifact views +- `/guide/validation/working-with-artifacts.html` + - Sections: Key concepts; Work with artifacts; What's next +- `/guide/validation/manage-artifact-types.html` + - Sections: Can I create custom artifact types?; Prerequisites; Manage artifact type statuses; Archive and delete artifact types +- `/guide/validation/view-filter-artifacts.html` + - Sections: Prerequisites; View artifacts; View all artifacts; View record-specific artifacts; Filter and sort artifacts; Filter all validation issues; How do I create effective filters?; Filter all other artifacts +- `/guide/validation/update-artifacts.html` + - Sections: Prerequisites; Edit fields on artifacts; Comment on artifacts; View artifact activity; View individual field activity; Track artifact resolution; Delete artifacts +- `/guide/validation/log-artifacts.html` + - Sections: Prerequisites; Add artifacts on documentation; Add artifacts on validation reports; Autogenerate validation issues; Manually add artifacts ### Users & Access @@ -242,10 +242,10 @@ **Docs (related):** -- `/guide/configuration/manage-users.html` - - Sections: Prerequisites; View and search for users; Manage user invitations; Invite new users; Monitor user invitations; Manage user roles; Disable users - `/guide/configuration/managing-users.html` - Sections: Key concepts; Key terms; Default roles; User management; What's next +- `/guide/configuration/manage-users.html` + - Sections: Prerequisites; View and search for users; Manage user invitations; Invite new users; Monitor user invitations; Manage user roles; Disable users ### Integrations @@ -253,8 +253,6 @@ **Docs (related):** -- `/faq/faq-integrations.html` - - Sections: Which languages, libraries, and environments do you support?; Currently, we support **Python }** and the most popular AI/ML and data science libraries.; What test ingestion or modeling techniques are supported?; What large language model (LLM) features are offered?; What deployment options are supported by }?; What third-party integrations are supported by }?; Learn more - `/guide/configuration/configure-aws-privatelink.html` - Sections: Prerequisites; VPC service information; Steps; What's next - `/guide/configuration/configure-azure-private-link.html` @@ -265,6 +263,8 @@ - Sections: Prerequisites; Step 1: Register an application in Entra ID; Step 2: Configure the claims Entra ID sends to ValidMind; Step 3: Send ValidMind your application details; Step 4: Map Entra groups to ValidMind roles; Step 5: Test sign-in; Why no client secret?; What's next - `/guide/configuration/configuring-private-connectivity.html` - Sections: What's next +- `/guide/configuration/customize-your-dashboard.html` + - Sections: Prerequisites; Manage dashboards; Add dashboards; Edit or remove dashboards; Share a dashboard with your organization; Manage widgets; Arrange widgets; Add widgets - *No direct help link in frontend; related docs inferred from keywords.* @@ -272,8 +272,6 @@ **Docs (related):** -- `/faq/faq-integrations.html` - - Sections: Which languages, libraries, and environments do you support?; Currently, we support **Python }** and the most popular AI/ML and data science libraries.; What test ingestion or modeling techniques are supported?; What large language model (LLM) features are offered?; What deployment options are supported by }?; What third-party integrations are supported by }?; Learn more - `/guide/configuration/configure-aws-privatelink.html` - Sections: Prerequisites; VPC service information; Steps; What's next - `/guide/configuration/configure-azure-private-link.html` @@ -284,6 +282,8 @@ - Sections: Prerequisites; Step 1: Register an application in Entra ID; Step 2: Configure the claims Entra ID sends to ValidMind; Step 3: Send ValidMind your application details; Step 4: Map Entra groups to ValidMind roles; Step 5: Test sign-in; Why no client secret?; What's next - `/guide/configuration/configuring-private-connectivity.html` - Sections: What's next +- `/guide/configuration/customize-your-dashboard.html` + - Sections: Prerequisites; Manage dashboards; Add dashboards; Edit or remove dashboards; Share a dashboard with your organization; Manage widgets; Arrange widgets; Add widgets - *No direct help link in frontend; related docs inferred from keywords.* @@ -291,8 +291,6 @@ **Docs (related):** -- `/faq/faq-integrations.html` - - Sections: Which languages, libraries, and environments do you support?; Currently, we support **Python }** and the most popular AI/ML and data science libraries.; What test ingestion or modeling techniques are supported?; What large language model (LLM) features are offered?; What deployment options are supported by }?; What third-party integrations are supported by }?; Learn more - `/guide/configuration/configure-aws-privatelink.html` - Sections: Prerequisites; VPC service information; Steps; What's next - `/guide/configuration/configure-azure-private-link.html` @@ -303,6 +301,29 @@ - Sections: Prerequisites; Step 1: Register an application in Entra ID; Step 2: Configure the claims Entra ID sends to ValidMind; Step 3: Send ValidMind your application details; Step 4: Map Entra groups to ValidMind roles; Step 5: Test sign-in; Why no client secret?; What's next - `/guide/configuration/configuring-private-connectivity.html` - Sections: What's next +- `/guide/configuration/customize-your-dashboard.html` + - Sections: Prerequisites; Manage dashboards; Add dashboards; Edit or remove dashboards; Share a dashboard with your organization; Manage widgets; Arrange widgets; Add widgets + +- *No direct help link in frontend; related docs inferred from keywords.* + +### Model Inventory + +#### `/settings/inventory-model-custom-fields` — Model Inventory Fields + +**Docs (related):** + +- `/faq/faq-inventory.html` + - Sections: How do I register records with }?; Can submitters register records before the final inventory type is known?; Are registration questionnaires customizable?; Can the } inventory be customized?; Can I archive or delete records within }?; Can I track interdependencies within the inventory?; Learn more +- `/guide/inventory/archive-delete-records.html` + - Sections: By default, only the Customer Admin role[^1] can access archived records.; Prerequisites; Change record stages; Instead of manually modifying your records' stages,[^4] we recommend manipulating stages via customized workflows.[^5]; Delete records; Record deletion is also permanent and cannot be undone. +- `/guide/inventory/configure-record-interdependencies.html` + - Sections: Prerequisites; View interdependencies; Edit interdependencies +- `/guide/inventory/customize-inventory-layout.html` + - Sections: Prerequisites; Swap between views; Customize table view; Manage custom inventory views +- `/guide/inventory/customize-record-overview-page.html` + - Sections: Prerequisites; Organize, show, or hide record fields; Highlight inventory record fields; Manage record field layouts; Manage personal record field layouts; Manage organization record field layouts +- `/guide/inventory/edit-inventory-fields.html` + - Sections: Prerequisites; Edit fields on individual records; Manage inventory record stakeholders; Insert field variables into a Long Text field; Manage attachments on records; Edit fields in bulk for multiple records - *No direct help link in frontend; related docs inferred from keywords.* @@ -337,20 +358,73 @@ **Docs (related):** -- `/guide/configuration/manage-users.html` - - Sections: Prerequisites; View and search for users; Manage user invitations; Invite new users; Monitor user invitations; Manage user roles; Disable users - `/guide/configuration/managing-users.html` - Sections: Key concepts; Key terms; Default roles; User management; What's next +- `/guide/configuration/manage-users.html` + - Sections: Prerequisites; View and search for users; Manage user invitations; Invite new users; Monitor user invitations; Manage user roles; Disable users -### Main navigation +### Model Inventory -#### `/settings/primary-record-type-stages` — /settings/primary-record-type-stages +#### `/settings/primary-record-type-stages` — Inventory Record Stages **Docs (primary):** - `/guide/workflows/manage-model-stages.html` - Note: no matching `.qmd` source found +**Docs (related):** + +- `/faq/faq-inventory.html` + - Sections: How do I register records with }?; Can submitters register records before the final inventory type is known?; Are registration questionnaires customizable?; Can the } inventory be customized?; Can I archive or delete records within }?; Can I track interdependencies within the inventory?; Learn more +- `/guide/inventory/archive-delete-records.html` + - Sections: By default, only the Customer Admin role[^1] can access archived records.; Prerequisites; Change record stages; Instead of manually modifying your records' stages,[^4] we recommend manipulating stages via customized workflows.[^5]; Delete records; Record deletion is also permanent and cannot be undone. +- `/guide/inventory/configure-record-interdependencies.html` + - Sections: Prerequisites; View interdependencies; Edit interdependencies +- `/guide/inventory/customize-inventory-layout.html` + - Sections: Prerequisites; Swap between views; Customize table view; Manage custom inventory views +- `/guide/inventory/customize-record-overview-page.html` + - Sections: Prerequisites; Organize, show, or hide record fields; Highlight inventory record fields; Manage record field layouts; Manage personal record field layouts; Manage organization record field layouts +- `/guide/inventory/edit-inventory-fields.html` + - Sections: Prerequisites; Edit fields on individual records; Manage inventory record stakeholders; Insert field variables into a Long Text field; Manage attachments on records; Edit fields in bulk for multiple records + +#### `/settings/primary-record-types` — Inventory Record Types + +**Docs (related):** + +- `/faq/faq-inventory.html` + - Sections: How do I register records with }?; Can submitters register records before the final inventory type is known?; Are registration questionnaires customizable?; Can the } inventory be customized?; Can I archive or delete records within }?; Can I track interdependencies within the inventory?; Learn more +- `/guide/inventory/archive-delete-records.html` + - Sections: By default, only the Customer Admin role[^1] can access archived records.; Prerequisites; Change record stages; Instead of manually modifying your records' stages,[^4] we recommend manipulating stages via customized workflows.[^5]; Delete records; Record deletion is also permanent and cannot be undone. +- `/guide/inventory/configure-record-interdependencies.html` + - Sections: Prerequisites; View interdependencies; Edit interdependencies +- `/guide/inventory/customize-inventory-layout.html` + - Sections: Prerequisites; Swap between views; Customize table view; Manage custom inventory views +- `/guide/inventory/customize-record-overview-page.html` + - Sections: Prerequisites; Organize, show, or hide record fields; Highlight inventory record fields; Manage record field layouts; Manage personal record field layouts; Manage organization record field layouts +- `/guide/inventory/edit-inventory-fields.html` + - Sections: Prerequisites; Edit fields on individual records; Manage inventory record stakeholders; Insert field variables into a Long Text field; Manage attachments on records; Edit fields in bulk for multiple records + +- *No direct help link in frontend; related docs inferred from keywords.* + +#### `/settings/primary-record-types/fields` — Inventory Record Fields + +**Docs (related):** + +- `/faq/faq-inventory.html` + - Sections: How do I register records with }?; Can submitters register records before the final inventory type is known?; Are registration questionnaires customizable?; Can the } inventory be customized?; Can I archive or delete records within }?; Can I track interdependencies within the inventory?; Learn more +- `/guide/inventory/archive-delete-records.html` + - Sections: By default, only the Customer Admin role[^1] can access archived records.; Prerequisites; Change record stages; Instead of manually modifying your records' stages,[^4] we recommend manipulating stages via customized workflows.[^5]; Delete records; Record deletion is also permanent and cannot be undone. +- `/guide/inventory/configure-record-interdependencies.html` + - Sections: Prerequisites; View interdependencies; Edit interdependencies +- `/guide/inventory/customize-inventory-layout.html` + - Sections: Prerequisites; Swap between views; Customize table view; Manage custom inventory views +- `/guide/inventory/customize-record-overview-page.html` + - Sections: Prerequisites; Organize, show, or hide record fields; Highlight inventory record fields; Manage record field layouts; Manage personal record field layouts; Manage organization record field layouts +- `/guide/inventory/edit-inventory-fields.html` + - Sections: Prerequisites; Edit fields on individual records; Manage inventory record stakeholders; Insert field variables into a Long Text field; Manage attachments on records; Edit fields in bulk for multiple records + +- *No direct help link in frontend; related docs inferred from keywords.* + ### Your Account #### `/settings/profile` — Profile @@ -362,9 +436,9 @@ **Docs (related):** +- `/guide/configuration/personalizing-validmind.html` - `/guide/configuration/manage-your-profile.html` - Sections: Prerequisites; Access your profile; Onboarding; User Interface Preferences; Terms; Localization; Access Keys; To revoke and regenerate keys, click **Revoke & Regenerate Keys**. -- `/guide/configuration/personalizing-validmind.html` ### Main navigation @@ -388,6 +462,10 @@ - `/guide/model-validation/manage-validation-guidelines.html` - Note: no matching `.qmd` source found +#### `/settings/risk-tier-stages` — Risk Tier Stages + +- *No direct help link; content may be covered under scattered guide sections.* + #### `/settings/risk-tier-templates` — Risk Tier Templates **Docs (related):** @@ -423,22 +501,71 @@ - `/guide/configuration/manage-users.html` - Sections: Prerequisites; View and search for users; Manage user invitations; Invite new users; Monitor user invitations; Manage user roles; Disable users -### Main navigation +### Model Inventory + +#### `/settings/segments` — Inventory Segments + +**Docs (related):** + +- `/guide/inventory/manage-inventory-segments.html` + - Sections: Prerequisites; Key concepts; Add segments; Define segment conditions; How do I create effective filters?; Publish segments; Edit segments; Unpublish, archive, or delete segments +- `/faq/faq-inventory.html` + - Sections: How do I register records with }?; Can submitters register records before the final inventory type is known?; Are registration questionnaires customizable?; Can the } inventory be customized?; Can I archive or delete records within }?; Can I track interdependencies within the inventory?; Learn more +- `/guide/inventory/archive-delete-records.html` + - Sections: By default, only the Customer Admin role[^1] can access archived records.; Prerequisites; Change record stages; Instead of manually modifying your records' stages,[^4] we recommend manipulating stages via customized workflows.[^5]; Delete records; Record deletion is also permanent and cannot be undone. +- `/guide/inventory/configure-record-interdependencies.html` + - Sections: Prerequisites; View interdependencies; Edit interdependencies +- `/guide/inventory/customize-inventory-layout.html` + - Sections: Prerequisites; Swap between views; Customize table view; Manage custom inventory views +- `/guide/inventory/customize-record-overview-page.html` + - Sections: Prerequisites; Organize, show, or hide record fields; Highlight inventory record fields; Manage record field layouts; Manage personal record field layouts; Manage organization record field layouts + +- *No direct help link in frontend; related docs inferred from keywords.* -#### `/settings/stakeholders` — /settings/stakeholders +#### `/settings/stakeholders` — Model Stakeholder Types **Docs (primary):** - `/guide/configuration/manage-model-stakeholder-types.html` - Note: no matching `.qmd` source found -#### `/settings/statuses` — /settings/statuses +**Docs (related):** + +- `/faq/faq-inventory.html` + - Sections: How do I register records with }?; Can submitters register records before the final inventory type is known?; Are registration questionnaires customizable?; Can the } inventory be customized?; Can I archive or delete records within }?; Can I track interdependencies within the inventory?; Learn more +- `/guide/inventory/archive-delete-records.html` + - Sections: By default, only the Customer Admin role[^1] can access archived records.; Prerequisites; Change record stages; Instead of manually modifying your records' stages,[^4] we recommend manipulating stages via customized workflows.[^5]; Delete records; Record deletion is also permanent and cannot be undone. +- `/guide/inventory/configure-record-interdependencies.html` + - Sections: Prerequisites; View interdependencies; Edit interdependencies +- `/guide/inventory/customize-inventory-layout.html` + - Sections: Prerequisites; Swap between views; Customize table view; Manage custom inventory views +- `/guide/inventory/customize-record-overview-page.html` + - Sections: Prerequisites; Organize, show, or hide record fields; Highlight inventory record fields; Manage record field layouts; Manage personal record field layouts; Manage organization record field layouts +- `/guide/inventory/edit-inventory-fields.html` + - Sections: Prerequisites; Edit fields on individual records; Manage inventory record stakeholders; Insert field variables into a Long Text field; Manage attachments on records; Edit fields in bulk for multiple records + +#### `/settings/statuses` — Model Stages **Docs (primary):** - `/guide/workflows/manage-model-stages.html` - Note: no matching `.qmd` source found +**Docs (related):** + +- `/faq/faq-inventory.html` + - Sections: How do I register records with }?; Can submitters register records before the final inventory type is known?; Are registration questionnaires customizable?; Can the } inventory be customized?; Can I archive or delete records within }?; Can I track interdependencies within the inventory?; Learn more +- `/guide/inventory/archive-delete-records.html` + - Sections: By default, only the Customer Admin role[^1] can access archived records.; Prerequisites; Change record stages; Instead of manually modifying your records' stages,[^4] we recommend manipulating stages via customized workflows.[^5]; Delete records; Record deletion is also permanent and cannot be undone. +- `/guide/inventory/configure-record-interdependencies.html` + - Sections: Prerequisites; View interdependencies; Edit interdependencies +- `/guide/inventory/customize-inventory-layout.html` + - Sections: Prerequisites; Swap between views; Customize table view; Manage custom inventory views +- `/guide/inventory/customize-record-overview-page.html` + - Sections: Prerequisites; Organize, show, or hide record fields; Highlight inventory record fields; Manage record field layouts; Manage personal record field layouts; Manage organization record field layouts +- `/guide/inventory/edit-inventory-fields.html` + - Sections: Prerequisites; Edit fields on individual records; Manage inventory record stakeholders; Insert field variables into a Long Text field; Manage attachments on records; Edit fields in bulk for multiple records + ### Documents #### `/settings/templates` — Templates @@ -463,11 +590,16 @@ - `/guide/templates/manage-text-block-library.html` - Sections: Prerequisites; Add text blocks; Add existing text blocks to library; Duplicate text blocks; Edit text blocks; Delete text blocks -### Your Account +### Organization -#### `/settings/theme-customization` — Theme Customization +#### `/settings/usage` — Usage -- *No direct help link; content may be covered under scattered guide sections.* +**Docs (related):** + +- `/guide/configuration/managing-your-organization.html` + - Sections: Prerequisites; Switch between organizations; Change names of organizations; Manage your organization; What's next + +- *No direct help link in frontend; related docs inferred from keywords.* ### Users & Access @@ -534,19 +666,41 @@ - `/guide/reporting/tracking-organization-activity.html` - Sections: What's next -- `/guide/reporting/view-record-activity.html` - - Sections: What is tracked on record activity?; Prerequisites; View record activity; Organization-wide Record Activity; Activity for a specific record; View individual field activity; Filter record activity; Organization-wide filters - `/guide/reporting/view-settings-activity.html` - Sections: What is tracked on settings activity?; Prerequisites; View settings activity +- `/guide/reporting/view-record-activity.html` + - Sections: What is tracked on record activity?; Prerequisites; View record activity; Organization-wide Record Activity; Activity for a specific record; View individual field activity; Filter record activity; Organization-wide filters - *No direct help link in frontend; related docs inferred from keywords.* +#### `/agent-authority/agents` — Agents + +- *No direct help link; content may be covered under scattered guide sections.* + +#### `/agent-authority/charters` — Charters + +- *No direct help link; content may be covered under scattered guide sections.* + +#### `/agent-authority/invocations` — Agent Authority + +- *No direct help link; content may be covered under scattered guide sections.* + +#### `/agent-authority/rules` — Rules + +- *No direct help link; content may be covered under scattered guide sections.* + +#### `/agent-authority/servers` — Servers + +- *No direct help link; content may be covered under scattered guide sections.* + +#### `/agent-authority/settings` — Settings + +- *No direct help link; content may be covered under scattered guide sections.* + #### `/analytics` — sidebar.analytics **Docs (related):** -- `/faq/faq-reporting.html` - - Sections: What analytic features are offered by }?; How can I export platform data on a schedule to cloud storage?; Learn more - `/guide/monitoring/enable-monitoring.html` - Sections: Prerequisites; Steps; 1. Get monitoring code snippet; 2. Select monitoring template; 3. Run code snippet; A template must already be applied to your selected document to populate monitoring test results in the }.; What's next - `/guide/monitoring/ongoing-monitoring.html` @@ -557,6 +711,8 @@ - Sections: Prerequisites; Use a custom function; Set the `passed` parameter; Output examples; Alert notifications - `/guide/monitoring/work-with-metrics-over-time.html` - Sections: **Log metrics over time }**; Prerequisites; Add metrics over time; Add integration metrics; Use the global time range; View metric over time metadata +- `/faq/faq-reporting.html` + - Sections: What analytic features are offered by }?; How can I export platform data on a schedule to cloud storage?; Learn more - *No direct help link in frontend; related docs inferred from keywords.* @@ -564,18 +720,18 @@ **Docs (related):** -- `/guide/risk-tiering/manage-risk-tier-templates.html` - - Sections: Prerequisites; Access risk tier templates; Create a template; Select a tier calculation method; Define risk tier levels; Publish a template; Create a new version; Duplicate a template -- `/guide/templates/customize-document-checker.html` - - Sections: Prerequisites; Manage regulations and policies; Manage assessments; Default assessments provided by } cannot be edited, only cloned.; Add or clone assessments; Add or edit assessment questions; Add assessment questions; Edit assessment questions -- `/guide/templates/customize-document-templates.html` - - Sections: Prerequisites; Edit template outlines; Configure assessment options[^4]; Edit YAML templates; Template schema; Troubleshooting YAML templates; Add text blocks to templates; Add text blocks via template outlines -- `/guide/templates/manage-document-templates.html` - - Sections: Prerequisites; View document templates; Create document templates; Edit document template outlines; Swap document templates; View currently applied templates; Swap between templates; Duplicate document templates -- `/guide/templates/manage-document-types.html` - - Sections: Prerequisites; Add document types; Edit or delete document types; Development, Validation, and Monitoring document types are stock types and cannot be deleted. -- `/guide/templates/manage-documents.html` - - Sections: Prerequisites; Add record documents; How do I get the best results when converting PDFs into editable documents?; How can I trust that the conversion is accurate?; Troubleshooting; My PDF conversion is stuck. What can I do?; Edit record documents; Delete record documents +- `/guide/validation/customize-artifact-layouts.html` + - Sections: Prerequisites; Customize artifact layouts by type; Manage custom artifact views; Manage personal artifact views; Manage organization artifact views +- `/guide/validation/working-with-artifacts.html` + - Sections: Key concepts; Work with artifacts; What's next +- `/guide/validation/manage-artifact-types.html` + - Sections: Can I create custom artifact types?; Prerequisites; Manage artifact type statuses; Archive and delete artifact types +- `/guide/validation/view-filter-artifacts.html` + - Sections: Prerequisites; View artifacts; View all artifacts; View record-specific artifacts; Filter and sort artifacts; Filter all validation issues; How do I create effective filters?; Filter all other artifacts +- `/guide/validation/update-artifacts.html` + - Sections: Prerequisites; Edit fields on artifacts; Comment on artifacts; View artifact activity; View individual field activity; Track artifact resolution; Delete artifacts +- `/guide/validation/log-artifacts.html` + - Sections: Prerequisites; Add artifacts on documentation; Add artifacts on validation reports; Autogenerate validation issues; Manually add artifacts - *No direct help link in frontend; related docs inferred from keywords.* @@ -603,14 +759,25 @@ **Docs (related):** - `/guide/configuration/customize-your-dashboard.html` - - Sections: Prerequisites; Manage dashboards; Add dashboards; Edit or remove dashboards; Manage widgets; Arrange widgets; Add widgets; Remove widgets + - Sections: Prerequisites; Manage dashboards; Add dashboards; Edit or remove dashboards; Share a dashboard with your organization; Manage widgets; Arrange widgets; Add widgets - *No direct help link in frontend; related docs inferred from keywords.* -#### `/validation-issues` — Validation Issues +#### `/risk-intelligence` — Risk Intelligence - *No direct help link; content may be covered under scattered guide sections.* +#### `/validation-issues` — Validation Issues + +**Docs (related):** + +- `/guide/validation/customize-artifact-layouts.html` + - Sections: Prerequisites; Customize artifact layouts by type; Manage custom artifact views; Manage personal artifact views; Manage organization artifact views +- `/guide/validation/view-filter-artifacts.html` + - Sections: Prerequisites; View artifacts; View all artifacts; View record-specific artifacts; Filter and sort artifacts; Filter all validation issues; How do I create effective filters?; Filter all other artifacts + +- *No direct help link in frontend; related docs inferred from keywords.* + #### `/workflows` — Workflows **Docs (related):** diff --git a/site/scripts/generate_chatbot_product_map.py b/site/scripts/generate_chatbot_product_map.py index b0b7f9e959..c85dba307b 100644 --- a/site/scripts/generate_chatbot_product_map.py +++ b/site/scripts/generate_chatbot_product_map.py @@ -61,6 +61,18 @@ r']*\btitle="([^"]+)"[^>]*\bpath="([^"]+)"', ) +# SettingLink whose title comes from the copy dictionary: title={copy('some.key')} +SETTING_LINK_COPY_PATTERN = re.compile( + r"]*\btitle=\{copy\('([^']+)'\)\}[^>]*\bpath=\"([^\"]+)\"", +) + +SETTING_GROUP_TITLE_COPY_PATTERN = re.compile( + r"]*\btitle=\{copy\('([^']+)'\)\}", +) + +# 'some.key': 'value' entries in src/copy/base.en.ts (values may span lines). +COPY_ENTRY_PATTERN = re.compile(r"'([\w.]+)':\s*'((?:[^'\\]|\\.)*)'", re.S) + ATTR_PATTERN = re.compile(r'(\w+)=["{`]([^"`}]+)["`}]') HEADING_PATTERN = re.compile(r"^(#{2,3})\s+(.+)$", re.MULTILINE) @@ -100,8 +112,20 @@ "templates": ["templates", "model-documentation"], "document": ["templates", "model-documentation"], "inventory": ["inventory", "model-inventory"], + "segment": ["inventory/manage-inventory-segments"], "finding": ["model-validation", "findings"], - "artifact": ["model-validation", "templates"], + "artifact": [ + "validation/working-with-artifacts", + "validation/view-filter-artifacts", + "validation/customize-artifact-layouts", + "validation/manage-artifact-types", + "validation/log-artifacts", + "validation/update-artifacts", + ], + "validation issues": [ + "validation/view-filter-artifacts", + "validation/customize-artifact-layouts", + ], "attestation": ["attestation"], "regulation": ["templates/customize-virtual-document-validator", "model-validation"], "risk": ["model-validation/manage-validation-guidelines"], @@ -201,19 +225,36 @@ def resolve_doc_path(path: str) -> str: return DOC_PATH_ALIASES.get(path, path) +def load_copy_dictionary(frontend_root: Path) -> dict[str, str]: + """Parse the frontend copy dictionary so copy('key') titles resolve to labels.""" + copy_file = frontend_root / "src/copy/base.en.ts" + if not copy_file.is_file(): + return {} + text = copy_file.read_text(encoding="utf-8") + return { + m.group(1): m.group(2).replace("\\'", "'") + for m in COPY_ENTRY_PATTERN.finditer(text) + } + + def parse_settings_index(frontend_root: Path) -> list[ProductRoute]: settings_file = frontend_root / "src/pages/Settings/index.tsx" if not settings_file.is_file(): return [] content = settings_file.read_text(encoding="utf-8") + copy_dictionary = load_copy_dictionary(frontend_root) routes: list[ProductRoute] = [] seen_paths: set[str] = set() group_positions = [ (m.start(), m.group(1)) for m in SETTING_GROUP_TITLE_PATTERN.finditer(content) + ] + [ + (m.start(), copy_dictionary.get(m.group(1).strip(), m.group(1).strip())) + for m in SETTING_GROUP_TITLE_COPY_PATTERN.finditer(content) ] + group_positions.sort(key=lambda item: item[0]) def group_for_position(pos: int) -> str | None: title = None @@ -224,8 +265,15 @@ def group_for_position(pos: int) -> str | None: break return title - for link_match in SETTING_LINK_PATTERN.finditer(content): - title = link_match.group(1).strip() + link_matches = [ + (m, m.group(1).strip()) for m in SETTING_LINK_PATTERN.finditer(content) + ] + [ + (m, copy_dictionary.get(m.group(1).strip(), m.group(1).strip())) + for m in SETTING_LINK_COPY_PATTERN.finditer(content) + ] + link_matches.sort(key=lambda item: item[0].start()) + + for link_match, title in link_matches: path = link_match.group(2).strip() if not path.startswith("/settings") or path in seen_paths: continue @@ -356,15 +404,18 @@ def suggest_related_docs(route: ProductRoute, all_doc_paths: list[str]) -> list[ segments.update(doc_segments) primary_paths = {d.path for d in route.primary_docs} - related: list[DocRef] = [] + related: list[tuple[int, DocRef]] = [] for doc_path in all_doc_paths: if doc_path in primary_paths or not is_user_facing_doc(doc_path): continue inner = doc_path.lower() - if any(seg in inner for seg in segments): - related.append(DocRef(path=doc_path)) - related.sort(key=lambda r: r.path) - return related[:6] + # A doc matched by a longer, more specific keyword segment outranks one + # matched only by a broad segment, so it survives the cap below. + best = max((len(seg) for seg in segments if seg in inner), default=0) + if best: + related.append((best, DocRef(path=doc_path))) + related.sort(key=lambda item: (-item[0], item[1].path)) + return [ref for _, ref in related[:6]] DEFAULT_SNAPSHOT_NAME = "chatbot-product-map-frontend-snapshot.json" diff --git a/site/scripts/test_generate_chatbot_product_map.py b/site/scripts/test_generate_chatbot_product_map.py index 60e48dfb07..97f93ffda9 100644 --- a/site/scripts/test_generate_chatbot_product_map.py +++ b/site/scripts/test_generate_chatbot_product_map.py @@ -64,6 +64,54 @@ def test_suggest_related_docs_sorted_and_stable(self) -> None: self.assertEqual(first, second) self.assertEqual([r.path for r in first], sorted(r.path for r in first)) + def test_suggest_related_docs_ranks_specific_matches_first(self) -> None: + route = gen.ProductRoute( + path="/settings/segments", + label="Inventory Segments", + group="Model Inventory", + ) + all_paths = [ + "/guide/inventory/archive-delete-records.html", + "/guide/inventory/manage-inventory-segments.html", + "/faq/faq-inventory.html", + ] + related = gen.suggest_related_docs(route, all_paths) + self.assertEqual( + related[0].path, "/guide/inventory/manage-inventory-segments.html" + ) + + def test_parse_settings_index_resolves_copy_titles(self) -> None: + import tempfile + + with tempfile.TemporaryDirectory() as tmp: + root = Path(tmp) + (root / "src/pages/Settings").mkdir(parents=True) + (root / "src/copy").mkdir(parents=True) + (root / "src/copy/base.en.ts").write_text( + "export const base = {\n" + " 'segments.navLabel': 'Inventory Segments',\n" + " 'settings.inventorySectionTitle':\n" + " 'Model Inventory',\n" + "};\n", + encoding="utf-8", + ) + (root / "src/pages/Settings/index.tsx").write_text( + "\n" + " \n" + "\n", + encoding="utf-8", + ) + routes = gen.parse_settings_index(root) + self.assertEqual(len(routes), 1) + self.assertEqual(routes[0].path, "/settings/segments") + self.assertEqual(routes[0].label, "Inventory Segments") + self.assertEqual(routes[0].group, "Model Inventory") + def test_file_to_route_hint_settings_index(self) -> None: self.assertEqual( gen.file_to_route_hint(Path("src/pages/Settings/index.tsx")),