From 7bae55168b18aec4859182a4b48d754c517ad186 Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Tue, 2 Jun 2026 12:51:56 -0700 Subject: [PATCH 01/35] Integrations: Core guides --- site/guide/_sidebar.yaml | 2 +- .../configure-analytics-exports.qmd | 6 +-- .../integrations/configure-connections.qmd | 28 +++++----- .../implement-custom-integrations.qmd | 16 +++--- ...l-models.qmd => link-external-records.qmd} | 53 +++++++------------ .../integrations/managing-integrations.qmd | 18 +++---- .../mcp/connect-ai-assistants-via-mcp.qmd | 26 ++++----- .../work-with-metrics-over-time.qmd | 2 +- 8 files changed, 69 insertions(+), 82 deletions(-) rename site/guide/integrations/{link-external-models.qmd => link-external-records.qmd} (56%) diff --git a/site/guide/_sidebar.yaml b/site/guide/_sidebar.yaml index ea6b1e5024..c2ec40712c 100644 --- a/site/guide/_sidebar.yaml +++ b/site/guide/_sidebar.yaml @@ -46,7 +46,7 @@ website: - guide/integrations/manage-secrets.qmd - guide/integrations/configure-connections.qmd - guide/integrations/implement-custom-integrations.qmd - - guide/integrations/link-external-models.qmd + - guide/integrations/link-external-records.qmd - guide/mcp/connect-ai-assistants-via-mcp.qmd - guide/integrations/configure-analytics-exports.qmd - file: guide/integrations/integrations-examples.qmd diff --git a/site/guide/integrations/configure-analytics-exports.qmd b/site/guide/integrations/configure-analytics-exports.qmd index 24ca319819..1950c723f8 100644 --- a/site/guide/integrations/configure-analytics-exports.qmd +++ b/site/guide/integrations/configure-analytics-exports.qmd @@ -7,7 +7,7 @@ date: last-modified --- -Configure scheduled exports of analytics datasets to cloud storage so that BI tools such as Tableau, Snowflake, and Looker can consume models, findings, workflow metrics, and activity events. +Configure scheduled exports of analytics datasets to cloud storage so that BI tools such as Tableau, Snowflake, and Looker can consume records (models), artifacts (findings), workflow metrics, and activity events. ::: {.attn} @@ -37,8 +37,8 @@ Configure scheduled exports of analytics datasets to cloud storage so that BI to - Custom artifact types[^3] - Custom inventory record types - ::: {.callout title="Model Activity exports"} - Model Activity exports audit events — comments, workflow status changes, and field updates on inventory records. Use this dataset for compliance reporting or audit trails. Model Activity respects the same export scope (organization, workspace, or selected models) and supports 30, 60, or 90-day window filtering. + ::: {.callout title="Record Activity exports"} + Record Activity exports audit events — comments, workflow status changes, and field updates on inventory records. Use this dataset for compliance reporting or audit trails. Record Activity respects the same export scope (organization, workspace, or selected records) and supports 30, 60, or 90-day window filtering. ::: ::: {.callout title="Custom types"} diff --git a/site/guide/integrations/configure-connections.qmd b/site/guide/integrations/configure-connections.qmd index 2bca5f107e..9794783c27 100644 --- a/site/guide/integrations/configure-connections.qmd +++ b/site/guide/integrations/configure-connections.qmd @@ -71,10 +71,10 @@ Required configuration details: : The primary region where your SageMaker model registry lives, for example `us-west-2`. **[aws access key id]{.smallcaps}** -: The secret generated by AWS IAM with permissions to read the model registry. +: The secret generated by AWS IAM with permissions to read the SageMaker model registry. **[aws secret access key]{.smallcaps}** -: The secret generated by AWS IAM with permissions to read the model registry. +: The secret generated by AWS IAM with permissions to read the SageMaker model registry. ### Amazon Bedrock @@ -108,7 +108,7 @@ Required configuration details: ### GitLab -Synchronize GitLab model registry with ValidMind model inventory for comprehensive model tracking. +Synchronize your GitLab model registry with the {{< var vm.product >}} inventory for comprehensive record tracking. Required configuration details: @@ -140,7 +140,7 @@ Required configuration details: A user-defined connection to a third-party system that implements the {{< var vm.product >}} reference API.[^4] -Use custom integrations to connect internal model registries, proprietary platforms, or any service that exposes data through a compatible API. +Use custom integrations to connect internal inventory registries, proprietary platforms, or any service that exposes data through a compatible API. Required configuration details: @@ -180,7 +180,7 @@ You can now [test the connection](#test-connections) to ensure it is working as ## View connection details -The connection detail page provides a dashboard-style view for managing a connection, its linked models, and metric sources. +The connection detail page provides a dashboard-style view for managing a connection, its linked records, and metric sources. 1. In the left sidebar, click **{{< fa gear >}} Settings**. @@ -191,7 +191,7 @@ The connection detail page provides a dashboard-style view for managing a connec The connection detail page displays: - **Connection status** — Shows whether the connection is operational, disabled, or experiencing issues. -- **Linked models** — Lists all {{< var vm.product >}} inventory records linked to resources in this integration. +- **Linked records** — Lists all {{< var vm.product >}} inventory records linked to resources in this integration. - **Monitoring** — For integrations that provide metrics (such as Amazon Bedrock), shows configured metric sources and their sync status. ## Monitor connection health @@ -215,9 +215,9 @@ Connections with errors or warnings display a status indicator, such as [{{< fa 3. Verify the external service is accessible. 4. Test the connection after making changes. -### View linked models +### View linked records -To see which models use a specific connection: +To see which records (models) use a specific connection: 1. In the left sidebar, click **{{< fa gear >}} Settings**. @@ -225,7 +225,7 @@ To see which models use a specific connection: 3. Click the connection to open its details page. -4. Review the linked models table, which shows the **VM Model** ({{< var vm.product >}} inventory record) and **External Name** (the linked external model) for each connection. +4. Review the linked records table, which shows the **VM Model** ({{< var vm.product >}} inventory record) and **External Name** (the linked external record) for each connection. ### View metric sources @@ -235,7 +235,7 @@ For connections that provide monitoring metrics, such as Amazon Bedrock: 2. Review the Metric Sources section to see available metrics. -3. These metrics can be added to monitoring documents for models linked to this connection.[^5] +3. These metrics can be added to monitoring documents for records linked to this connection.[^5] ## Edit connections @@ -283,7 +283,7 @@ If the test is successful, the message **{{< fa check-circle >}} Connection succ ## View monitoring data -Some integrations, such as Amazon Bedrock, can provide metrics that sync into {{< var vm.product >}} for use in monitoring documents. Metric sources define which external evaluations or metrics are available for a linked model. +Some integrations, such as Amazon Bedrock, can provide metrics that sync into {{< var vm.product >}} for use in monitoring documents. Metric sources define which external evaluations or metrics are available for a linked record. ### Access the Monitoring tab @@ -299,14 +299,14 @@ Some integrations, such as Amazon Bedrock, can provide metrics that sync into {{ ### How metric sources work -When a model in the {{< var vm.product >}} inventory is linked to an external resource, such as a Bedrock agent, available evaluations from that resource become metric sources. These metrics: +When a record in the {{< var vm.product >}} inventory is linked to an external resource, such as a Bedrock agent, available evaluations from that resource become metric sources. These metrics: - Sync automatically on a scheduled interval. - Appear in the **From Integration** tab when adding metrics over time to monitoring documents.[^5] - Support threshold configuration for alerting when values exceed acceptable limits. ::: {.callout title="Bedrock Agent Evaluations"} -For Amazon Bedrock connections, metric sources include agent evaluation results such as accuracy, helpfulness, and other assessment metrics. Link a model to a Bedrock agent to enable these metrics.[^6] +For Amazon Bedrock connections, metric sources include agent evaluation results such as accuracy, helpfulness, and other assessment metrics. Link a record to a Bedrock agent to enable these metrics.[^6] ::: @@ -321,4 +321,4 @@ For Amazon Bedrock connections, metric sources include agent evaluation results [^5]: [Work with metrics over time](/guide/monitoring/work-with-metrics-over-time.qmd#add-integration-metrics) -[^6]: [Link external models](link-external-models.qmd) +[^6]: [Link external records](link-external-records.qmd) diff --git a/site/guide/integrations/implement-custom-integrations.qmd b/site/guide/integrations/implement-custom-integrations.qmd index 48a764effd..9e536f3648 100644 --- a/site/guide/integrations/implement-custom-integrations.qmd +++ b/site/guide/integrations/implement-custom-integrations.qmd @@ -8,7 +8,7 @@ date: last-modified Connect {{< var vm.product >}} to third-party systems that aren't supported out of the box by building custom integrations using our reference API. -Custom integrations let you link resources, such as AI systems or models, from internal registries, proprietary platforms, or any service you control to the {{< var vm.product >}} model inventory. +Custom integrations let you link resources, such as AI systems or records such as models, from internal registries, proprietary platforms, or any service you control to the {{< var vm.product >}} inventory. ::: {.attn} @@ -29,7 +29,7 @@ To create a custom integration, you build a service that implements the referenc 1. Build a service that implements the required endpoints and connects to your data sources. 2. Deploy your service at a URL accessible to {{< var vm.product >}}. 3. Configure a custom integration in {{< var vm.product >}} that points to your service URL. -4. After implementation, your users can browse and link resources from your system to records in the model inventory. +4. After implementation, your users can browse and link resources from your system to records in the {{< var vm.product >}} inventory. Data flows bidirectionally — {{< var vm.product >}} reads your data and can write back metadata to enable linking. @@ -56,10 +56,10 @@ A reference implementation with sample code is available. Contact your ValidMind Your service must expose these endpoints at the `/api/v1` base path: **List models** -: `GET /models` — Returns all models from your system. Supports optional `?resource_type=` filter. +: `GET /models` — Returns all records from your system. Supports optional `?resource_type=` filter. **Get model** -: `GET /models/{id}` — Returns a specific model by its unique identifier. +: `GET /models/{id}` — Returns a specific record by its unique identifier. **Update model** (optional) : `PUT /models/{id}` — Accepts metadata updates from {{< var vm.product >}}, enabling bidirectional sync. @@ -101,7 +101,7 @@ Your models endpoint should return objects with these fields: ### Bidirectional sync -When linking resources, {{< var vm.product >}} can write metadata back to your system via `PUT` requests. This bidirectional sync enables you to store the {{< var vm.product >}} model identifier (`vm_cuid`) alongside your external records, creating a two-way link between systems. +When linking resources, {{< var vm.product >}} can write metadata back to your system via `PUT` requests. This bidirectional sync enables you to store the {{< var vm.product >}} record identifier (`vm_cuid`) alongside your external records, creating a two-way link between systems. ::: {.callout collapse="true" title="Code examples"} @@ -202,11 +202,11 @@ When linking resources, {{< var vm.product >}} can write metadata back to your s ### Link resources -After configuring your custom integration, link resources to models in the inventory: +After configuring your custom integration, link resources to records in the inventory: 1. In the left sidebar, click **{{< fa cubes >}} Inventory**. -2. Select a model by clicking on it. +2. Select a record or find your record by applying a filter or searching for it.[^3] 3. In the right sidebar, locate your custom integration connection. @@ -223,3 +223,5 @@ After configuring your custom integration, link resources to models in the inven [^1]: [Manage permissions](/guide/configuration/manage-permissions.qmd) [^2]: [Manage secrets](manage-secrets.qmd) + +[^3]: [Working with the inventory](/guide/inventory/working-with-the-inventory.qmd#search-filter-and-sort-records) diff --git a/site/guide/integrations/link-external-models.qmd b/site/guide/integrations/link-external-records.qmd similarity index 56% rename from site/guide/integrations/link-external-models.qmd rename to site/guide/integrations/link-external-records.qmd index 3c3aa16ee7..02789fb093 100644 --- a/site/guide/integrations/link-external-models.qmd +++ b/site/guide/integrations/link-external-records.qmd @@ -2,13 +2,14 @@ # 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: "Link external models" +title: "Link external records" date: last-modified aliases: - /guide/integrations/linking-external-models.html + - /guide/integrations/link-external-models.html --- -Link models in the {{< var vm.product >}} model inventory to external systems to keep model information synchronized. +Link records (models) tracked in {{< var vm.product >}} to external systems to keep your inventories synchronized. You can link, refresh, edit, and remove these connections as needed. @@ -17,35 +18,25 @@ You can link, refresh, edit, and remove these connections as needed. ## Prerequisites - [x] {{< var link.login >}} -- [x] The record you want to link external models for is registered in the inventory.[^1] +- [x] The record you want to link external records for is registered in the inventory.[^1] - [x] A connection is configured for the external system you want to link to.[^2] -- [x] You are assigned a role with sufficient permissions to manage model links, such as [{{< fa hand >}} Customer Admin]{.bubble}.[^3] +- [x] You are assigned a role with sufficient permissions to manage record links, such as [{{< fa hand >}} Customer Admin]{.bubble}.[^3] ::: -## Link models +## Link records 1. In the left sidebar, click **{{< fa cubes >}} Inventory**. -2. Select a model by clicking on it or find your model by applying a filter or searching for it.[^4] +2. Select a record or find your record by applying a filter or searching for it.[^4] -3. Scroll down until you locate the available connections for integrations in the right sidebar. - - For example, **MLflow** or **Amazon SageMaker**. - -::: {.column-margin} -![Connections for MLflow and AWS SageMaker](linking-models-available-connections.png){fig-alt="Screenshot of the available connections to link to, showing the required fields described in step 3." .screenshot} -::: - -::: {.column-margin} -![A linked AWS SageMaker model](integrations-examples-aws-sagemaker-linked-model.png){width=60% fig-alt="Screenshot of the model linked to AWS SageMaker, showing the required fields described in step 4." .screenshot} -::: +3. Scroll down until you locate the available connections for integrations in the right sidebar. 4. Hover over the connection. 5. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa link >}} Link Model**. -6. In the modal that opens, pick the external model from the [select model]{.smallcaps} dropdown. +6. In the modal that opens, pick the external record from the [select model]{.smallcaps} dropdown. 7. Optional: Click **Test Connection** to ensure the connection is working as expected. @@ -53,13 +44,13 @@ You can link, refresh, edit, and remove these connections as needed. 8. Click **Link Model**. -After linking, the message **Pending initial sync** displays. This means that the model is linked to the external system, but data hasn't been synchronized yet. If necessary, you can refresh the model data.[^5] +After linking, the message **Pending initial sync** displays. This means that the record is linked to the external system, but data hasn't been synchronized yet. If necessary, you can refresh the record data.[^5] -## Refresh model data +## Refresh record data 1. In the left sidebar, click **{{< fa cubes >}} Inventory**. -2. Select a model by clicking on it or find your model by applying a filter or searching for it.[^6] +2. Select a record or find your record by applying a filter or searching for it.[^4] 3. Scroll down until you locate the connection you want to edit in the right sidebar. For example, **Amazon SageMaker**. @@ -67,11 +58,11 @@ After linking, the message **Pending initial sync** displays. This means that th 5. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa sync >}} Refresh**. -## Edit model links +## Edit record links 1. In the left sidebar, click **{{< fa cubes >}} Inventory**. -2. Select a model by clicking on it or find your model by applying a filter or searching for it.[^6] +2. Select a record or find your record by applying a filter or searching for it.[^4] 3. Scroll down until you locate the connection you want to edit in the right sidebar. For example, **Amazon SageMaker**. @@ -79,15 +70,15 @@ After linking, the message **Pending initial sync** displays. This means that th 5. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa link >}} Edit Link**. -6. In the modal that opens, make your changes. For example, select a different model from the **[select model]{.smallcaps}** dropdown. +6. In the modal that opens, make your changes. For example, select a different record from the **[select model]{.smallcaps}** dropdown. -8. Click **Update Link** to save your changes. +7. Click **Update Link** to save your changes. -## Remove model links +## Remove record links 1. In the left sidebar, click **{{< fa cubes >}} Inventory**. -2. Select a model by clicking on it or find your model by applying a filter or searching for it.[^7] +2. Select a record or find your record by applying a filter or searching for it.[^4] 3. Scroll down until you locate the integration box (for example, **MLflow** or **Amazon SageMaker**) in the right sidebar. @@ -97,8 +88,6 @@ After linking, the message **Pending initial sync** displays. This means that th 6. Click **Yes, Unlink Integration** to confirm removal of the link. -The model is unlinked from the external system. - [^1]: [Register records in the inventory](/guide/inventory/register-records-in-inventory.qmd) @@ -109,8 +98,4 @@ The model is unlinked from the external system. [^4]: [Working with the inventory](/guide/inventory/working-with-the-inventory.qmd#search-filter-and-sort-records) -[^5]: [Refresh model data](#refresh-model-data) - -[^6]: [Configure connections](configure-connections.qmd) - -[^7]: [Working with the inventory](/guide/inventory/working-with-the-inventory.qmd#search-filter-and-sort-records) +[^5]: [Refresh record data](#refresh-record-data) diff --git a/site/guide/integrations/managing-integrations.qmd b/site/guide/integrations/managing-integrations.qmd index 4b251ae341..a72d853b8e 100644 --- a/site/guide/integrations/managing-integrations.qmd +++ b/site/guide/integrations/managing-integrations.qmd @@ -16,7 +16,7 @@ listing: - configure-connections.qmd - configure-analytics-exports.qmd - implement-custom-integrations.qmd - - link-external-models.qmd + - link-external-records.qmd - integrations-examples.qmd --- @@ -28,7 +28,7 @@ Integrations connect the {{< var validmind.platform >}} with external systems or graph TD A[ValidMind Platform] B[Analytics and reporting] - C[Model inventory] + C[Inventory] D[Workflows] E[Public REST API] F[Testing & documentation] @@ -70,9 +70,9 @@ Access built-in analytics and dashboards. Or, import analytics data into externa --- -### Model inventory +### Inventory -Link to models in external registries and development platforms and keep inventories synced with versions, inventory fields, and other metadata.[^2] +Link to records (such as models) in external registries and development platforms and keep inventories synced with versions, inventory fields, and other metadata.[^2] **Supported** @@ -132,13 +132,13 @@ Link to models in external registries and development platforms and keep invento ![Workflow integration example](simple-integrations-workflow.png){width=80% fig-alt="A workflow showing an automation sequence. A green start node runs an HTTP request that sends a POST to https://some.example.com/request. The workflow then moves to a webhook step that pauses until a webhook call is received. Once the webhook arrives, the flow continues to a red end node." .screenshot} ::: -Manage model lifecycles by configuring workflows to transition models through your organization’s custom model stages.[^3] +Manage record lifecycles by configuring workflows to transition records through your organization’s custom record stages.[^3] :::: {.flex .flex-wrap .justify-around} ::: {.w-50 .pr5} **From {{< var vm.product >}}** -Send HTTP requests to external services when a model reaches a specific state or to trigger updates in other systems. +Send HTTP requests to external services when a record reaches a specific stage or to trigger updates in other systems. ::: ::: {.w-50 .pl3 .pr3} @@ -159,7 +159,7 @@ Gain programmatic access to platform resources. The API supports integration wit :::: {.flex .flex-wrap .justify-around} ::: {.w-33-ns} -- Create models +- Create records (models) ::: ::: {.w-33-ns} @@ -167,7 +167,7 @@ Gain programmatic access to platform resources. The API supports integration wit ::: ::: {.w-33-ns} -- Manage model inventory +- Manage your inventory ::: :::: @@ -224,7 +224,7 @@ Link to tickets in external systems and keep them synchronized. Attach tickets t ### AI assistants -Connect AI assistants to {{< var vm.product >}} using the Model Context Protocol (MCP). Query and manage your model inventory through natural language conversations.[^7] +Connect AI assistants to {{< var vm.product >}} using the Model Context Protocol (MCP). Query and manage your inventory through natural language conversations.[^7] **Supported** diff --git a/site/guide/mcp/connect-ai-assistants-via-mcp.qmd b/site/guide/mcp/connect-ai-assistants-via-mcp.qmd index a2e66f0717..39b3f01112 100644 --- a/site/guide/mcp/connect-ai-assistants-via-mcp.qmd +++ b/site/guide/mcp/connect-ai-assistants-via-mcp.qmd @@ -6,7 +6,7 @@ title: "Connect AI assistants via MCP" date: last-modified --- -The {{< var vm.product >}} MCP (Model Context Protocol) server enables AI assistants to query and manage your model inventory through natural language, providing seamless access to models, artifacts, templates, and custom fields. +The {{< var vm.product >}} MCP (Model Context Protocol) server enables AI assistants to query and manage your inventory through natural language, providing seamless access to records (models), artifacts (findings), templates, and custom fields. ::: {.attn} @@ -61,21 +61,21 @@ Your AI assistant sends natural language queries through the MCP protocol. The { ### What can I do with {{< var vm.product >}} MCP? -The MCP server exposes tools for working with your model inventory: +The MCP server exposes tools for working with your {{< var vm.product >}} inventory: :::: {.flex .flex-wrap .justify-around} ::: {.w-50-ns .pr3} -**Model and artifact operations** +**Record (model) and artifact (finding) operations** -- List and get models +- List and get records - List and get artifacts - Filter by risk level, deployment region, or ownership **Custom field operations** -- List custom fields for models and artifacts +- List custom fields for records and artifacts - Update custom field values ::: @@ -95,8 +95,8 @@ The MCP server exposes tools for working with your model inventory: **Example queries you can ask:** -- "Show me all models that are high risk" -- "Find all the models I am an owner for" +- "Show me all model-type records that are high risk" +- "Find all the records I am an owner for" - "List my validation artifacts" - "What templates are available for credit risk models?" @@ -134,9 +134,9 @@ The MCP server exposes tools for working with your model inventory: 7. Try asking Cursor questions like: - - "What models do I own?" - - "Show me all tier 1 models" - - "Register a new model called Customer Churn" + - "What records do I own?" + - "Show me all tier 1 model-type records" + - "Register a new model-type record called Customer Churn" ### Claude Code @@ -160,9 +160,9 @@ The MCP server exposes tools for working with your model inventory: 4. Start Claude Code and try asking questions like: - - "What models do I own?" - - "Show me all tier 1 models" - - "Register a new model called Customer Churn" + - "What records do I own?" + - "Show me all tier 1 model-type records" + - "Register a new model-type record called Customer Churn" ::: diff --git a/site/guide/monitoring/work-with-metrics-over-time.qmd b/site/guide/monitoring/work-with-metrics-over-time.qmd index 09ba39ddc2..78801e96d6 100644 --- a/site/guide/monitoring/work-with-metrics-over-time.qmd +++ b/site/guide/monitoring/work-with-metrics-over-time.qmd @@ -162,6 +162,6 @@ After you have added metrics over time to your document, you can view the follow [^10]: [Working with documents](/guide/templates/working-with-documents.qmd) -[^11]: [Configure connections](/guide/integrations/configure-connections.qmd) and [Link external models](/guide/integrations/link-external-models.qmd) +[^11]: [Configure connections](/guide/integrations/configure-connections.qmd) and [Link external records](/guide/integrations/link-external-records.qmd) [^12]: [Working with the inventory](/guide/inventory/working-with-the-inventory.qmd#search-filter-and-sort-records) \ No newline at end of file From 24ec04a2c9dd078c23b98995aa5ac47749e23d98 Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Tue, 2 Jun 2026 13:42:04 -0700 Subject: [PATCH 02/35] Integrations: Jira example --- .../_workflow-example.qmd | 75 +++++++++++++++++++ .../create-jira-ticket.qmd | 61 ++------------- 2 files changed, 83 insertions(+), 53 deletions(-) create mode 100644 site/guide/integrations/integrations-examples/_workflow-example.qmd diff --git a/site/guide/integrations/integrations-examples/_workflow-example.qmd b/site/guide/integrations/integrations-examples/_workflow-example.qmd new file mode 100644 index 0000000000..8d1d5c8da1 --- /dev/null +++ b/site/guide/integrations/integrations-examples/_workflow-example.qmd @@ -0,0 +1,75 @@ + + +1. In the left sidebar, click **{{< fa gear >}} Settings**. + +2. Under {{< fa shield >}} Governance, select **Workflows**. + +3. Click **{{< fa plus >}} Add Workflow**:^[[Add new workflows](/guide/workflows/configure-workflows.qmd#add-new-workflows)] + +4. Under [workflow target]{.smallcaps} type, select **Inventory Record**. + +5. Enter a **[title]{.smallcaps}** and a **[description]{.smallcaps}** for the workflow. + +6. Select the **[record type]{.smallcaps}** this workflow applies to. + +7. Under **[workflow start]{.smallcaps}**, select when the workflow should be initiated. + +8. Under **[workflow expected duration]{.smallcaps}**, define the SLA for the workflow based on the start date in days, weeks, months, or years. + +9. Click **Save Draft** to save your blank workflow. + +10. Configure the rest of your workflow steps, then drag and drop an **{{< fa cloud-arrow-up >}} HTTP Request** step^[[Workflow step types](/guide/workflows/workflow-step-types.qmd#http-request)] onto the canvas and connect it to your workflow. + +11. Double-click the step to open the **Configure HTTP Request** modal. + +:::: {.content-visible when-format="html" when-meta="includes.jira"} +12. Configure the required fields for Jira,[^configure-jira] replacing the placeholder values with your own: + + - **[url]{.smallcaps}** — `https://yourcompany.atlassian.net/rest/api/3/issue` + - **[method]{.smallcaps}** — POST + - **[headers]{.smallcaps}** — Add: + - `Content-Type`: `application/json` + - `Authorization`: `Bearer {{Jira Personal Access Token}}` + + ::: {.callout-tip title="Use webhook secrets for credentials"} + Instead of entering credentials in plaintext, use a webhook secret: `Bearer {{secret:jira_pat}}`. See [Manage secrets](../manage-secrets.qmd#webhook-secrets). + ::: + + - **[body type]{.smallcaps}** — JSON + - **[body]{.smallcaps}** — Use the following JSON payload: + + ```json + { + "fields": { + "project": { + "key": "MODEL" + }, + "summary": "Model validation failed: {{Model Name}}", + "description": "The model [{{Model Name}}|{{Model URL}}] failed validation. Review artifacts in ValidMind.", + "issuetype": { + "name": "Bug" + } + } + } + ``` + +[^configure-jira]: + + ![Create a Jira issue](integrations-examples-http-request-open-jira-ticket.png){width=80% fig-alt="Screenshot of the HTTP request step configured to create a Jira ticket, showing the required fields described in step 12." .screenshot} + +:::: + +:::: {.content-visible when-format="html" unless-meta="includes.jira"} +12. Configure the required fields for ServiceNow, replacing the placeholder values with your own: + + +:::: + +13. Click **Update Step** to save your configuration. + +14. Configure and link any additional workflow steps, then save your workflow to apply your changes.^[[Configure workflows](/guide/workflows/configure-workflows.qmd#link-workflow-together)] + +15. Publish your workflow to make it available for use.^[[Configure workflows](/guide/workflows/configure-workflows.qmd#publish-workflow)] + diff --git a/site/guide/integrations/integrations-examples/create-jira-ticket.qmd b/site/guide/integrations/integrations-examples/create-jira-ticket.qmd index 975f31de73..1011a5699b 100644 --- a/site/guide/integrations/integrations-examples/create-jira-ticket.qmd +++ b/site/guide/integrations/integrations-examples/create-jira-ticket.qmd @@ -4,9 +4,11 @@ # SPDX-License-Identifier: AGPL-3.0 AND ValidMind Commercial title: "Create a Jira ticket" date: last-modified +includes: + jira: true --- -Create a Jira ticket when model validation requires attention using an HTTP request workflow step. +Create a Jira ticket when validation requires attention using an HTTP request workflow step. ::: {.attn} @@ -22,64 +24,17 @@ Create a Jira ticket when model validation requires attention using an HTTP requ ## Configure the workflow step -::: {.column-margin} -![Create a Jira issue](integrations-examples-http-request-open-jira-ticket.png){width=80% fig-alt="Screenshot of the HTTP request step configured to create a Jira ticket, showing the required fields described in step 4." .screenshot} -::: - -1. In the left sidebar, click **{{< fa gear >}} Settings**. - -2. Under {{< fa shield >}} Governance, select **Workflows**. - -3. Select the **Model Workflows** tab. - -4. Click on a workflow to modify or click **{{< fa plus >}} Add Model Workflow**[^4] to create a new workflow. - -5. From the **Workflow Steps** modal, drag and drop an **HTTP Request** step[^5] onto the canvas, then connect it to your workflow. - -6. Double-click the step to open the **Configure HTTP Request** modal. - -7. Configure the required fields, replacing the placeholder values with your own: - - - **[url]{.smallcaps}** — `https://yourcompany.atlassian.net/rest/api/3/issue` - - **[method]{.smallcaps}** — POST - - **[headers]{.smallcaps}** — Add: - - `Content-Type`: `application/json` - - `Authorization`: `Bearer {{Jira Personal Access Token}}` - - ::: {.callout-tip title="Use webhook secrets for credentials"} - Instead of entering credentials in plaintext, use a webhook secret: `Bearer {{secret:jira_pat}}`. See [Manage secrets](../manage-secrets.qmd#webhook-secrets). - ::: - - - **[body type]{.smallcaps}** — JSON - - **[body]{.smallcaps}** — Use the following JSON payload: - - ```json - { - "fields": { - "project": { - "key": "MODEL" - }, - "summary": "Model validation failed: {{Model Name}}", - "description": "The model [{{Model Name}}|{{Model URL}}] failed validation. Review artifacts in ValidMind.", - "issuetype": { - "name": "Bug" - } - } - } - ``` - -8. Click **Update Step** to save your configuration. +{{< include /guide/integrations/integrations-examples/_workflow-example.qmd >}} The HTTP request to create the Jira ticket is sent when the workflow executes the step. + -[^1]: [Manage permissions](../../configuration/manage-permissions.qmd) +[^1]: [Manage permissions](/guide/configuration/manage-permissions.qmd) -[^2]: [Introduction to workflows](../../workflows/introduction-to-workflows.qmd) +[^2]: [Setting up workflows](/guide/workflows/setting-up-workflows.qmd) -[^3]: [Manage secrets](../manage-secrets.qmd) +[^3]: [Manage secrets](/guide/integrations/manage-secrets.qmd) -[^4]: [Add new workflows](../../workflows/configure-workflows.qmd#add-new-workflows) -[^5]: [Workflow step types](../../workflows/workflow-step-types.qmd#http-request) From 03e6968cae31eac981d08c2fee0c10ea29318d2c Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Tue, 2 Jun 2026 13:49:05 -0700 Subject: [PATCH 03/35] Integrations: ServiceNow example --- .../_workflow-example.qmd | 35 +++++++++++-- .../create-jira-ticket.qmd | 2 +- .../create-servicenow-incident.qmd | 52 +++---------------- .../templates/_template-schema-generated.qmd | 8 +-- 4 files changed, 38 insertions(+), 59 deletions(-) diff --git a/site/guide/integrations/integrations-examples/_workflow-example.qmd b/site/guide/integrations/integrations-examples/_workflow-example.qmd index 8d1d5c8da1..1bea530771 100644 --- a/site/guide/integrations/integrations-examples/_workflow-example.qmd +++ b/site/guide/integrations/integrations-examples/_workflow-example.qmd @@ -33,8 +33,8 @@ SPDX-License-Identifier: AGPL-3.0 AND ValidMind Commercial --> - `Content-Type`: `application/json` - `Authorization`: `Bearer {{Jira Personal Access Token}}` - ::: {.callout-tip title="Use webhook secrets for credentials"} - Instead of entering credentials in plaintext, use a webhook secret: `Bearer {{secret:jira_pat}}`. See [Manage secrets](../manage-secrets.qmd#webhook-secrets). + ::: {.callout title="Use webhook secrets for credentials"} + Instead of entering credentials in plaintext, use a webhook secret: `Bearer {{secret:jira_pat}}`. To learn more, refer to [Manage secrets](../manage-secrets.qmd#webhook-secrets). ::: - **[body type]{.smallcaps}** — JSON @@ -62,14 +62,39 @@ SPDX-License-Identifier: AGPL-3.0 AND ValidMind Commercial --> :::: :::: {.content-visible when-format="html" unless-meta="includes.jira"} -12. Configure the required fields for ServiceNow, replacing the placeholder values with your own: +12. Configure the required fields for ServiceNow,[^configure-servicenow] replacing the placeholder values with your own: + - **[url]{.smallcaps}** — `https://yourinstance.service-now.com/api/now/table/incident` + - **[method]{.smallcaps}** — POST + - **[headers]{.smallcaps}** — Add: + - `Content-Type`: `application/json` + - `Authorization`: `Basic {{ServiceNow Credentials}}` + + ::: {.callout title="Use webhook secrets for credentials"} + Instead of entering credentials in plaintext, use a webhook secret: `Basic {{secret:servicenow_creds}}`. To learn more, refer to [Manage secrets](../manage-secrets.qmd#webhook-secrets). + ::: + + - **[body type]{.smallcaps}** — JSON + - **[body]{.smallcaps}** — Use the following JSON payload: + + ```json + { + "short_description": "Data drift issue detected: {{Model Name}}", + "description": "A potential issue has been identified for model {{Model Name}} (link: [{{Model URL}}]({{Model URL}})). Please review the ongoing monitoring documentation in ValidMind.", + "urgency": "2", + "category": "Model Risk" + } + ``` + +[^configure-servicenow]: + + ![Create a ServiceNow incident](integrations-examples-http-request-open-servicenow-incident.png){width=80% fig-alt="Screenshot of the HTTP request step configured to create a ServiceNow incident, showing the required fields described in step 12." .screenshot} :::: 13. Click **Update Step** to save your configuration. -14. Configure and link any additional workflow steps, then save your workflow to apply your changes.^[[Configure workflows](/guide/workflows/configure-workflows.qmd#link-workflow-together)] +14. Configure and link any additional workflow steps, save your workflow to apply your changes, then publish your workflow to make it available for use.^[[Configure workflows](/guide/workflows/configure-workflows.qmd#link-workflow-together)] + -15. Publish your workflow to make it available for use.^[[Configure workflows](/guide/workflows/configure-workflows.qmd#publish-workflow)] diff --git a/site/guide/integrations/integrations-examples/create-jira-ticket.qmd b/site/guide/integrations/integrations-examples/create-jira-ticket.qmd index 1011a5699b..777ca6ef95 100644 --- a/site/guide/integrations/integrations-examples/create-jira-ticket.qmd +++ b/site/guide/integrations/integrations-examples/create-jira-ticket.qmd @@ -22,7 +22,7 @@ Create a Jira ticket when validation requires attention using an HTTP request wo ::: -## Configure the workflow step +## Configure workflow step for Jira ticket creation {{< include /guide/integrations/integrations-examples/_workflow-example.qmd >}} diff --git a/site/guide/integrations/integrations-examples/create-servicenow-incident.qmd b/site/guide/integrations/integrations-examples/create-servicenow-incident.qmd index 7ecde2eadf..e8b193a122 100644 --- a/site/guide/integrations/integrations-examples/create-servicenow-incident.qmd +++ b/site/guide/integrations/integrations-examples/create-servicenow-incident.qmd @@ -20,58 +20,18 @@ Create a ServiceNow incident when a data drift issue is detected during ongoing ::: -## Configure the workflow step +## Configure workflow step for ServiceNow incident creation -1. In the left sidebar, click **{{< fa gear >}} Settings**. - -2. Under {{< fa shield >}} Governance, select **Workflows**. - -3. Select the **Model Workflows** tab. - -4. Click on a workflow to modify or click **{{< fa plus >}} Add Model Workflow**[^4] to create a new workflow. - -5. From the **Workflow Steps** modal, drag and drop an **HTTP Request** step[^5] onto the canvas, then connect it to your workflow. - -6. Double-click the step to open the **Configure HTTP Request** modal. - -7. Configure the required fields, replacing the placeholder values with your own: - - - **[url]{.smallcaps}** — `https://yourinstance.service-now.com/api/now/table/incident` - - **[method]{.smallcaps}** — POST - - **[headers]{.smallcaps}** — Add: - - `Content-Type`: `application/json` - - `Authorization`: `Basic {{ServiceNow Credentials}}` - - ::: {.callout-tip title="Use webhook secrets for credentials"} - Instead of entering credentials in plaintext, use a webhook secret: `Basic {{secret:servicenow_creds}}`. See [Manage secrets](../manage-secrets.qmd#webhook-secrets). - ::: - - - **[body type]{.smallcaps}** — JSON - - **[body]{.smallcaps}** — Use the following JSON payload: - - ```json - { - "short_description": "Data drift issue detected: {{Model Name}}", - "description": "A potential issue has been identified for model {{Model Name}} (link: [{{Model URL}}]({{Model URL}})). Please review the ongoing monitoring documentation in ValidMind.", - "urgency": "2", - "category": "Model Risk" - } - ``` - -::: {.column-margin} -![Create a ServiceNow incident](integrations-examples-http-request-open-servicenow-incident.png){width=80% fig-alt="Screenshot of the HTTP request step configured to create a ServiceNow incident, showing the required fields described in step 4." .screenshot} -::: +{{< include /guide/integrations/integrations-examples/_workflow-example.qmd >}} The HTTP request to create the ServiceNow incident is sent when the workflow executes the step. - -[^1]: [Manage permissions](../../configuration/manage-permissions.qmd) + -[^2]: [Introduction to workflows](../../workflows/introduction-to-workflows.qmd) +[^1]: [Manage permissions](/guide/configuration/manage-permissions.qmd) -[^3]: [Manage secrets](../manage-secrets.qmd) +[^2]: [Setting up workflows](/guide/workflows/setting-up-workflows.qmd) -[^4]: [Add new workflows](../../workflows/configure-workflows.qmd#add-new-workflows) +[^3]: [Manage secrets](/guide/integrations/manage-secrets.qmd) -[^5]: [Workflow step types](../../workflows/workflow-step-types.qmd#http-request) diff --git a/site/guide/templates/_template-schema-generated.qmd b/site/guide/templates/_template-schema-generated.qmd index 3256ea27cc..609111cf91 100644 --- a/site/guide/templates/_template-schema-generated.qmd +++ b/site/guide/templates/_template-schema-generated.qmd @@ -1,12 +1,6 @@ +SPDX-License-Identifier: AGPL-3.0 AND ValidMind Commercial --> ```{=html} From 3f0ce4a84eaa2d9008a3f77ffc3cf4e2d93aa50c Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Tue, 2 Jun 2026 13:54:34 -0700 Subject: [PATCH 04/35] save --- .../synchronize-aws-bedrock.qmd | 14 +++++----- .../synchronize-aws-sagemaker.qmd | 10 +++---- .../synchronize-gitlab.qmd | 10 +++---- .../synchronize-with-databricks.qmd | 27 +++++++++---------- .../use-webhooks-with-workflows.qmd | 4 +-- 5 files changed, 32 insertions(+), 33 deletions(-) diff --git a/site/guide/integrations/integrations-examples/synchronize-aws-bedrock.qmd b/site/guide/integrations/integrations-examples/synchronize-aws-bedrock.qmd index ef136a1d60..4b07275bc7 100644 --- a/site/guide/integrations/integrations-examples/synchronize-aws-bedrock.qmd +++ b/site/guide/integrations/integrations-examples/synchronize-aws-bedrock.qmd @@ -2,11 +2,11 @@ # 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: "Synchronize models with AWS Bedrock" +title: "Synchronize records with AWS Bedrock" date: last-modified --- -Link {{< var vm.product >}} models to foundation models and generative AI agents in Amazon Bedrock, supporting governance across your AI/ML ecosystem. +Link {{< var vm.product >}} records to foundation models and generative AI agents in Amazon Bedrock, supporting governance across your AI/ML ecosystem. ::: {.attn} @@ -24,7 +24,7 @@ AWS Bedrock exposes two primary integration surfaces: - **Application layer** — Bedrock primitives such as agents, flows, and knowledge bases that represent built generative AI applications and workflows. -## Configure the connection +## Configure Bedrock connection 1. In the left sidebar, click **{{< fa gear >}} Settings**. @@ -52,11 +52,11 @@ AWS Bedrock exposes two primary integration surfaces: If the test is successful, the message **{{< fa check-circle >}} Connection successful** displays. -## Link models from Bedrock +## Link records to Bedrock -Once the connection is configured, you can link {{< var vm.product >}} models to your Bedrock resources: +Once the connection is configured, you can link {{< var vm.product >}} records to your Bedrock resources: -::: {.callout title="Model dependencies"} +::: {.callout title="Record dependencies"} Bedrock agents, flows, and runtimes typically call foundation models (LLMs) under the hood. When you link these application-layer resources to {{< var vm.product >}}, consider also registering their underlying foundation models and creating dependency relationships between them. This builds a complete dependency graph showing how your AI applications relate to underlying models. Benefits include: @@ -68,7 +68,7 @@ This builds a complete dependency graph showing how your AI applications relate 1. In the left sidebar, click **{{< fa cubes >}} Inventory**. -2. Select a model by clicking on it or find your model by applying a filter or searching for it.[^2] +2. Select a record or find your record by applying a filter or searching for it.[^2] 3. Scroll down until you locate the **Amazon Bedrock** connection box in the right sidebar. diff --git a/site/guide/integrations/integrations-examples/synchronize-aws-sagemaker.qmd b/site/guide/integrations/integrations-examples/synchronize-aws-sagemaker.qmd index cc87f119f5..b09082bce0 100644 --- a/site/guide/integrations/integrations-examples/synchronize-aws-sagemaker.qmd +++ b/site/guide/integrations/integrations-examples/synchronize-aws-sagemaker.qmd @@ -2,11 +2,11 @@ # 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: "Synchronize models with AWS SageMaker" +title: "Synchronize records with AWS SageMaker" date: last-modified --- -Synchronize models registered in the {{< var vm.product >}} model inventory with AWS SageMaker models. +Synchronize records registered in the {{< var vm.product >}} inventory with Amazon Web Services (AWS) SageMaker models. ::: {.attn} @@ -18,7 +18,7 @@ Synchronize models registered in the {{< var vm.product >}} model inventory with ::: -## Configure the connection +## Configure AWS SageMaker connection ::: {.column-margin} ![Connect with AWS SageMaker](integrations-examples-aws-sagemaker.png){width=80% fig-alt="Screenshot of the AWS Sagemaker connection configured to synchronize models, showing the required fields described in step 5." .screenshot} @@ -55,11 +55,11 @@ Synchronize models registered in the {{< var vm.product >}} model inventory with If the test is successful, the message **{{< fa check-circle >}} Connection successful** displays. -## Link the models +## Link records to AWS SageMaker 1. In the left sidebar, click **{{< fa cubes >}} Inventory**. -2. Select a model by clicking on it or find your model by applying a filter or searching for it.[^2] +2. Select a record or find your record by applying a filter or searching for it.[^2] 3. Scroll down until you locate the **Amazon Sagemaker** connection box in the right sidebar. diff --git a/site/guide/integrations/integrations-examples/synchronize-gitlab.qmd b/site/guide/integrations/integrations-examples/synchronize-gitlab.qmd index c8a9095ee4..02482b0ea1 100644 --- a/site/guide/integrations/integrations-examples/synchronize-gitlab.qmd +++ b/site/guide/integrations/integrations-examples/synchronize-gitlab.qmd @@ -2,11 +2,11 @@ # 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: "Synchronize models with GitLab" +title: "Synchronize records with GitLab" date: last-modified --- -Synchronize GitLab model registry with ValidMind model inventory for comprehensive model tracking. +Synchronize your GitLab model registry with the {{< var vm.product >}} inventory for comprehensive tracking. ::: {.attn} @@ -19,7 +19,7 @@ Synchronize GitLab model registry with ValidMind model inventory for comprehensi ::: -## Configure the connection +## Configure GitLab connection ::: {.column-margin} ![Configure GitLab connection](integrations-examples-gitlab.png){width=80% fig-alt="Screenshot of the Configure GitLab dialog showing fields for integration name, description, project ID, GitLab instance URL, personal access token, and initial status." .screenshot} @@ -51,11 +51,11 @@ Synchronize GitLab model registry with ValidMind model inventory for comprehensi If the test is successful, the message **{{< fa check-circle >}} Connection successful** displays. -## Link the models +## Link records to GitLab 1. In the left sidebar, click **{{< fa cubes >}} Inventory**. -2. Select a model by clicking on it or find your model by applying a filter or searching for it.[^3] +2. Select a record or find your record by applying a filter or searching for it.[^3] 3. Scroll down until you locate the **GitLab** connection box in the right sidebar. diff --git a/site/guide/integrations/integrations-examples/synchronize-with-databricks.qmd b/site/guide/integrations/integrations-examples/synchronize-with-databricks.qmd index ec2c3eb2b4..6846597201 100644 --- a/site/guide/integrations/integrations-examples/synchronize-with-databricks.qmd +++ b/site/guide/integrations/integrations-examples/synchronize-with-databricks.qmd @@ -17,22 +17,10 @@ listing: description: "Install the {{< var validmind.developer >}}, load data from a Unity Catalog table via Spark, train a simple classification model, and run ValidMind tests to send results to the {{< var validmind.platform >}}." --- -Link {{< var vm.product >}} inventory records to models, datasets, and agents in Databricks Unity Catalog for governance across your ML ecosystem and bidirectional metadata synchronization. +Link {{< var vm.product >}} inventory records to models, datasets, and agents in Databricks Unity Catalog for governance across your ML ecosystem and bidirectional metadata synchronization. You can also run validation notebooks directly against Databricks-hosted data. -::: {.attn} - -## Prerequisites - -- [x] {{< var link.login >}} -- [x] You are a [{{< fa hand >}} Customer Admin]{.bubble} or assigned another role with sufficient permissions to configure connections.[^1] -- [x] A secret is configured for your Databricks Personal Access Token.[^2] -- [x] You have admin access to your Databricks workspace. - -::: - - ## How does the integration with Databricks work? Databricks Unity Catalog provides a unified governance solution for all data and AI assets across your Databricks workspaces. The integration exposes three Unity Catalog resource types: @@ -68,7 +56,18 @@ flowchart LR ``` -## Configure the connection +::: {.attn} + +## Prerequisites + +- [x] {{< var link.login >}} +- [x] You are a [{{< fa hand >}} Customer Admin]{.bubble} or assigned another role with sufficient permissions to configure connections.[^1] +- [x] A secret is configured for your Databricks Personal Access Token.[^2] +- [x] You have admin access to your Databricks workspace. + +::: + +## Configure Databricks connection ::: {.column-margin .pt6} ![Configure the Databricks connection](configure-databricks.png){width=80% fig-alt="Screenshot of the Configure Databricks connection dialog showing the required fields described in step 5." .screenshot} diff --git a/site/guide/integrations/integrations-examples/use-webhooks-with-workflows.qmd b/site/guide/integrations/integrations-examples/use-webhooks-with-workflows.qmd index ea216d903f..b25d0aedfa 100644 --- a/site/guide/integrations/integrations-examples/use-webhooks-with-workflows.qmd +++ b/site/guide/integrations/integrations-examples/use-webhooks-with-workflows.qmd @@ -56,7 +56,7 @@ Start a {{< var vm.product >}} workflow from an external system by sending a POS ### b. Start workflow from external system -Send a POST request to the webhook URL with a JSON payload that includes the `run_workflow` action for the target model CUID: +Send a POST request to the webhook URL with a JSON payload that includes the `run_workflow` action for the target record (model) CUID: ```bash curl -X POST https://api.prod.vm.validmind.ai/vm/api/v1/webhooks/xxxxxxxxxxxxxxxxxxxxxxxxx/xxxx -H 'Content-Type`: `application/json' -H 'x-api-key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' -H 'x-api-secret: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' --data '{ @@ -105,7 +105,7 @@ When the workflow reaches this step, it pauses and waits for the external system ### b. Trigger workflow to continue from external system -Send a POST request to the webhook URL with a JSON payload containing the `run_step` action for the model CUID: +Send a POST request to the webhook URL with a JSON payload containing the `run_step` action for the target record (model) CUID: ```bash curl -X POST https://api.prod.vm.validmind.ai/vm/api/v1/webhooks/xxxxxxxxxxxxxxxxxxxxxxxxx/xxxx -H 'Content-Type`: `application/json' -H 'x-api-key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' -H 'x-api-secret: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' --data '{ From c20c0bdb2e5585cc006ae6d6e39cc207f34d2239 Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Tue, 2 Jun 2026 14:09:39 -0700 Subject: [PATCH 05/35] Edit: ServiceNow example --- .../_add-workflow-example.qmd | 20 +++++++++ ....qmd => _configure-workflow-http-step.qmd} | 45 ++++++------------- .../_publish-workflow-example.qmd | 12 +++++ .../create-jira-ticket.qmd | 2 +- .../create-servicenow-incident.qmd | 16 ++++++- 5 files changed, 62 insertions(+), 33 deletions(-) create mode 100644 site/guide/integrations/integrations-examples/_add-workflow-example.qmd rename site/guide/integrations/integrations-examples/{_workflow-example.qmd => _configure-workflow-http-step.qmd} (53%) create mode 100644 site/guide/integrations/integrations-examples/_publish-workflow-example.qmd diff --git a/site/guide/integrations/integrations-examples/_add-workflow-example.qmd b/site/guide/integrations/integrations-examples/_add-workflow-example.qmd new file mode 100644 index 0000000000..555337590f --- /dev/null +++ b/site/guide/integrations/integrations-examples/_add-workflow-example.qmd @@ -0,0 +1,20 @@ + + +a. In the left sidebar, click **{{< fa gear >}} Settings**. + +b. Under {{< fa shield >}} Governance, select **Workflows**. + +c. Click **{{< fa plus >}} Add Workflow**:^[[Add new workflows](/guide/workflows/configure-workflows.qmd#add-new-workflows)] + + - Under [workflow target]{.smallcaps} type, select **Inventory Record**. + - Enter a **[title]{.smallcaps}** and a **[description]{.smallcaps}** for the workflow. + - Select the **[record type]{.smallcaps}** this workflow applies to. + - Under **[workflow start]{.smallcaps}**, select when the workflow should be initiated. + - Under **[workflow expected duration]{.smallcaps}**, define the SLA for the workflow based on the start date in days, weeks, months, or years. + +d. Click **Save Draft** to save your blank workflow. + + + diff --git a/site/guide/integrations/integrations-examples/_workflow-example.qmd b/site/guide/integrations/integrations-examples/_configure-workflow-http-step.qmd similarity index 53% rename from site/guide/integrations/integrations-examples/_workflow-example.qmd rename to site/guide/integrations/integrations-examples/_configure-workflow-http-step.qmd index 1bea530771..fff2884c46 100644 --- a/site/guide/integrations/integrations-examples/_workflow-example.qmd +++ b/site/guide/integrations/integrations-examples/_configure-workflow-http-step.qmd @@ -2,30 +2,12 @@ Refer to the LICENSE file in the root of this repository for details. SPDX-License-Identifier: AGPL-3.0 AND ValidMind Commercial --> -1. In the left sidebar, click **{{< fa gear >}} Settings**. +a. Configure the rest of your workflow steps, then drag and drop an **{{< fa cloud-arrow-up >}} HTTP Request** step^[[Workflow step types](/guide/workflows/workflow-step-types.qmd#http-request)] onto the canvas and connect it to your workflow. -2. Under {{< fa shield >}} Governance, select **Workflows**. - -3. Click **{{< fa plus >}} Add Workflow**:^[[Add new workflows](/guide/workflows/configure-workflows.qmd#add-new-workflows)] - -4. Under [workflow target]{.smallcaps} type, select **Inventory Record**. - -5. Enter a **[title]{.smallcaps}** and a **[description]{.smallcaps}** for the workflow. - -6. Select the **[record type]{.smallcaps}** this workflow applies to. - -7. Under **[workflow start]{.smallcaps}**, select when the workflow should be initiated. - -8. Under **[workflow expected duration]{.smallcaps}**, define the SLA for the workflow based on the start date in days, weeks, months, or years. - -9. Click **Save Draft** to save your blank workflow. - -10. Configure the rest of your workflow steps, then drag and drop an **{{< fa cloud-arrow-up >}} HTTP Request** step^[[Workflow step types](/guide/workflows/workflow-step-types.qmd#http-request)] onto the canvas and connect it to your workflow. - -11. Double-click the step to open the **Configure HTTP Request** modal. +b. Double-click the step to open the **Configure HTTP Request** modal. :::: {.content-visible when-format="html" when-meta="includes.jira"} -12. Configure the required fields for Jira,[^configure-jira] replacing the placeholder values with your own: +c. Configure the required fields for Jira,[^configure-jira] replacing the placeholder values with your own: - **[url]{.smallcaps}** — `https://yourcompany.atlassian.net/rest/api/3/issue` - **[method]{.smallcaps}** — POST @@ -33,9 +15,9 @@ SPDX-License-Identifier: AGPL-3.0 AND ValidMind Commercial --> - `Content-Type`: `application/json` - `Authorization`: `Bearer {{Jira Personal Access Token}}` - ::: {.callout title="Use webhook secrets for credentials"} - Instead of entering credentials in plaintext, use a webhook secret: `Bearer {{secret:jira_pat}}`. To learn more, refer to [Manage secrets](../manage-secrets.qmd#webhook-secrets). - ::: + ::: {.callout title="Use webhook secrets for credentials"} + Instead of entering credentials in plaintext, use a webhook secret: `Bearer {{secret:jira_pat}}`. To learn more, refer to [Manage secrets](../manage-secrets.qmd#webhook-secrets). + ::: - **[body type]{.smallcaps}** — JSON - **[body]{.smallcaps}** — Use the following JSON payload: @@ -55,6 +37,8 @@ SPDX-License-Identifier: AGPL-3.0 AND ValidMind Commercial --> } ``` +d. Click **Update Step** to save your configuration. + [^configure-jira]: ![Create a Jira issue](integrations-examples-http-request-open-jira-ticket.png){width=80% fig-alt="Screenshot of the HTTP request step configured to create a Jira ticket, showing the required fields described in step 12." .screenshot} @@ -62,7 +46,7 @@ SPDX-License-Identifier: AGPL-3.0 AND ValidMind Commercial --> :::: :::: {.content-visible when-format="html" unless-meta="includes.jira"} -12. Configure the required fields for ServiceNow,[^configure-servicenow] replacing the placeholder values with your own: +c. Configure the required fields for ServiceNow,[^configure-servicenow] replacing the placeholder values with your own: - **[url]{.smallcaps}** — `https://yourinstance.service-now.com/api/now/table/incident` - **[method]{.smallcaps}** — POST @@ -70,9 +54,9 @@ SPDX-License-Identifier: AGPL-3.0 AND ValidMind Commercial --> - `Content-Type`: `application/json` - `Authorization`: `Basic {{ServiceNow Credentials}}` - ::: {.callout title="Use webhook secrets for credentials"} - Instead of entering credentials in plaintext, use a webhook secret: `Basic {{secret:servicenow_creds}}`. To learn more, refer to [Manage secrets](../manage-secrets.qmd#webhook-secrets). - ::: + ::: {.callout title="Use webhook secrets for credentials"} + Instead of entering credentials in plaintext, use a webhook secret: `Basic {{secret:servicenow_creds}}`. To learn more, refer to [Manage secrets](../manage-secrets.qmd#webhook-secrets). + ::: - **[body type]{.smallcaps}** — JSON - **[body]{.smallcaps}** — Use the following JSON payload: @@ -86,15 +70,14 @@ SPDX-License-Identifier: AGPL-3.0 AND ValidMind Commercial --> } ``` +d. Click **Update Step** to save your configuration. + [^configure-servicenow]: ![Create a ServiceNow incident](integrations-examples-http-request-open-servicenow-incident.png){width=80% fig-alt="Screenshot of the HTTP request step configured to create a ServiceNow incident, showing the required fields described in step 12." .screenshot} :::: -13. Click **Update Step** to save your configuration. - -14. Configure and link any additional workflow steps, save your workflow to apply your changes, then publish your workflow to make it available for use.^[[Configure workflows](/guide/workflows/configure-workflows.qmd#link-workflow-together)] diff --git a/site/guide/integrations/integrations-examples/_publish-workflow-example.qmd b/site/guide/integrations/integrations-examples/_publish-workflow-example.qmd new file mode 100644 index 0000000000..f68e92f6ba --- /dev/null +++ b/site/guide/integrations/integrations-examples/_publish-workflow-example.qmd @@ -0,0 +1,12 @@ + + +a. Configure and link any additional workflow steps.^[[Configure workflows](/guide/workflows/configure-workflows.qmd#link-workflow-together)] + +b. Save your workflow to apply your changes. + +c. Publish your workflow to make it available for use. + + + diff --git a/site/guide/integrations/integrations-examples/create-jira-ticket.qmd b/site/guide/integrations/integrations-examples/create-jira-ticket.qmd index 777ca6ef95..90a24c4439 100644 --- a/site/guide/integrations/integrations-examples/create-jira-ticket.qmd +++ b/site/guide/integrations/integrations-examples/create-jira-ticket.qmd @@ -24,7 +24,7 @@ Create a Jira ticket when validation requires attention using an HTTP request wo ## Configure workflow step for Jira ticket creation -{{< include /guide/integrations/integrations-examples/_workflow-example.qmd >}} +{{< include /guide/integrations/integrations-examples/_add-workflow-example.qmd >}} The HTTP request to create the Jira ticket is sent when the workflow executes the step. diff --git a/site/guide/integrations/integrations-examples/create-servicenow-incident.qmd b/site/guide/integrations/integrations-examples/create-servicenow-incident.qmd index e8b193a122..09c2d92103 100644 --- a/site/guide/integrations/integrations-examples/create-servicenow-incident.qmd +++ b/site/guide/integrations/integrations-examples/create-servicenow-incident.qmd @@ -22,10 +22,24 @@ Create a ServiceNow incident when a data drift issue is detected during ongoing ## Configure workflow step for ServiceNow incident creation -{{< include /guide/integrations/integrations-examples/_workflow-example.qmd >}} +::: {.panel-tabset} + +### 1. Add Inventory Record workflow + +{{< include /guide/integrations/integrations-examples/_add-workflow-example.qmd >}} + +### 2. Configure workflow step + +{{< include /guide/integrations/integrations-examples/_configure-workflow-http-step.qmd >}} + +### 3. Publish workflow + +{{< include /guide/integrations/integrations-examples/_publish-workflow-example.qmd >}} The HTTP request to create the ServiceNow incident is sent when the workflow executes the step. +::: + From 741839aad2391e9a5a574fa83a9df98522536e49 Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Tue, 2 Jun 2026 14:10:47 -0700 Subject: [PATCH 06/35] Edit: JIRA example --- .../integrations-examples/create-jira-ticket.qmd | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/site/guide/integrations/integrations-examples/create-jira-ticket.qmd b/site/guide/integrations/integrations-examples/create-jira-ticket.qmd index 90a24c4439..423dfd5e6b 100644 --- a/site/guide/integrations/integrations-examples/create-jira-ticket.qmd +++ b/site/guide/integrations/integrations-examples/create-jira-ticket.qmd @@ -24,10 +24,24 @@ Create a Jira ticket when validation requires attention using an HTTP request wo ## Configure workflow step for Jira ticket creation +::: {.panel-tabset} + +### 1. Add Inventory Record workflow + {{< include /guide/integrations/integrations-examples/_add-workflow-example.qmd >}} +### 2. Configure workflow step + +{{< include /guide/integrations/integrations-examples/_configure-workflow-http-step.qmd >}} + +### 3. Publish workflow + +{{< include /guide/integrations/integrations-examples/_publish-workflow-example.qmd >}} + The HTTP request to create the Jira ticket is sent when the workflow executes the step. +::: + From 2fd85e6cd5a8e560363766168f9f6cc9f9f92a9b Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Tue, 2 Jun 2026 14:28:53 -0700 Subject: [PATCH 07/35] Edit: AWS Bedrock --- .../synchronize-aws-bedrock.qmd | 82 ++++++++++--------- 1 file changed, 45 insertions(+), 37 deletions(-) diff --git a/site/guide/integrations/integrations-examples/synchronize-aws-bedrock.qmd b/site/guide/integrations/integrations-examples/synchronize-aws-bedrock.qmd index 4b07275bc7..4b34b9f52f 100644 --- a/site/guide/integrations/integrations-examples/synchronize-aws-bedrock.qmd +++ b/site/guide/integrations/integrations-examples/synchronize-aws-bedrock.qmd @@ -8,6 +8,14 @@ date: last-modified Link {{< var vm.product >}} records to foundation models and generative AI agents in Amazon Bedrock, supporting governance across your AI/ML ecosystem. +### How does the integration with AWS Bedrock work? + +AWS Bedrock exposes two primary integration surfaces: + +- **Foundation model layer** — Access to AWS-hosted and custom foundation models through the Bedrock model catalog (Discover and Tune views). + +- **Application layer** — Bedrock primitives such as agents, flows, and knowledge bases that represent built generative AI applications and workflows. + ::: {.attn} ## Prerequisites @@ -18,23 +26,21 @@ Link {{< var vm.product >}} records to foundation models and generative AI agent ::: -AWS Bedrock exposes two primary integration surfaces: +## Sync {{< var vm.product >}} records with AWS Bedrock -- **Foundation model layer** — Access to AWS-hosted and custom foundation models through the Bedrock model catalog (Discover and Tune views). - -- **Application layer** — Bedrock primitives such as agents, flows, and knowledge bases that represent built generative AI applications and workflows. +::: {.panel-tabset} -## Configure Bedrock connection +### 1. Configure Bedrock connection -1. In the left sidebar, click **{{< fa gear >}} Settings**. +a. In the left sidebar, click **{{< fa gear >}} Settings**. -2. Under {{< fa puzzle-piece >}} Integrations, select **Connections**. +b. Under {{< fa puzzle-piece >}} Integrations, select **Connections**. -3. Click **{{< fa plus >}} Add Connection**. +c. Click **{{< fa plus >}} Add Connection**. -4. In the modal that opens, select **AWS Bedrock**. +d. In the modal that opens, select **AWS Bedrock**. -5. Complete: +e. Complete: - **[integration name]{.smallcaps}** — How other admins can identify the connection. - **[description]{.smallcaps}** (optional) — The intended usage or additional details. @@ -43,40 +49,30 @@ AWS Bedrock exposes two primary integration surfaces: - **[aws secret access key]{.smallcaps}** — The secret generated by AWS IAM with permissions to access Bedrock. - **[initial status]{.smallcaps}** — Set to `Operational` to enable immediately or `Disabled` if you plan to finish setup later. -6. Click **Save Integration**. +f. Click **Save Integration**. -7. Test the connection: +g. Test the connection: - a. Hover over the AWS Bedrock connection you just created. - b. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa circle-check >}} Test Connection**. + i. Hover over the AWS Bedrock connection you just created. + ii. When the **{{< fa ellipsis-vertical >}}** appears, click on it and select **{{< fa circle-check >}} Test Connection**. If the test is successful, the message **{{< fa check-circle >}} Connection successful** displays. -## Link records to Bedrock +### 2. Link records to Bedrock Once the connection is configured, you can link {{< var vm.product >}} records to your Bedrock resources: -::: {.callout title="Record dependencies"} -Bedrock agents, flows, and runtimes typically call foundation models (LLMs) under the hood. When you link these application-layer resources to {{< var vm.product >}}, consider also registering their underlying foundation models and creating dependency relationships between them. +a. In the left sidebar, click **{{< fa cubes >}} Inventory**. -This builds a complete dependency graph showing how your AI applications relate to underlying models. Benefits include: +b. Select a record or find your record by applying a filter or searching for it.[^2] -- **Impact analysis** — See which applications are affected if a foundation model is deprecated or has compliance issues. -- **Full audit trails** — Documentation and risk assessments capture the entire model stack, not just the top-level application. -- **Governance visibility** — Track model versions and changes across your AI ecosystem. -::: - -1. In the left sidebar, click **{{< fa cubes >}} Inventory**. - -2. Select a record or find your record by applying a filter or searching for it.[^2] - -3. Scroll down until you locate the **Amazon Bedrock** connection box in the right sidebar. +c. Scroll down until you locate the **Amazon Bedrock** connection box in the right sidebar. -4. Hover over the Amazon Bedrock box. +d. Hover over the Amazon Bedrock box. -5. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa link >}} Link Model**. +e. When the **{{< fa ellipsis-vertical >}}** appears, click on it and select **{{< fa link >}} Link Model**. -6. In the modal that opens, use the tabs to filter by resource type: +f. In the modal that opens, use the tabs to filter by resource type: - **All** — View all available Bedrock resources. - **Foundation Models** — AWS-hosted and custom foundation models from the Bedrock catalog. @@ -84,16 +80,28 @@ This builds a complete dependency graph showing how your AI applications relate - **Flows** — Prompt flows and orchestration workflows. - **AgentCore Runtimes** — Agent runtime environments. -7. Click **[select model]{.smallcaps}** to choose the specific Bedrock resource to link. +g. Click **[select model]{.smallcaps}** to choose the specific Bedrock resource to link. + +h. (Optional) Click **Test Connection** to ensure the connection is working as expected. + + If the test is successful, the message **{{< fa check-circle >}} Connection Test Successful** is displayed. + +i. Click **Link Model**. -8. Optional: Click **Test Connection** to ensure the connection is working as expected. +::: {.callout title="On record dependencies"} +Bedrock agents, flows, and runtimes typically call foundation models (LLMs) under the hood. When you link these application-layer resources to {{< var vm.product >}}, consider also registering their underlying foundation models and creating dependency relationships between them: [Configure record interdependencies](/guide/inventory/configure-record-interdependencies.qmd) - If the test is successful, the message **{{< fa check-circle >}} Connection Test Successful** displays. +This builds a complete dependency graph showing how your AI applications relate to underlying models. Benefits include: -9. Click **Link Model**. +- **Impact analysis** — See which applications are affected if a foundation model is deprecated or has compliance issues. +- **Full audit trails** — Documentation and risk assessments capture the entire model stack, not just the top-level application. +- **Governance visibility** — Track model versions and changes across your AI ecosystem. +::: + +::: -[^1]: [Manage permissions](../../configuration/manage-permissions.qmd) +[^1]: [Manage permissions](/guide/configuration/manage-permissions.qmd) -[^2]: [Working with the inventory](../../inventory/working-with-the-inventory.qmd#search-filter-and-sort-records) +[^2]: [Working with the inventory](/guide/inventory/working-with-the-inventory.qmd#search-filter-and-sort-records) From 38eabc7bb3e7d06feebb27a8a136913b0eca3cfb Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Tue, 2 Jun 2026 14:29:37 -0700 Subject: [PATCH 08/35] Edit... --- site/guide/attestation/_configure-attestations.qmd | 10 +++++----- site/guide/attestation/review-attestations.qmd | 2 +- .../configure-google-private-service-connect.qmd | 2 +- .../_configure-workflow-http-step.qmd | 4 ++-- site/guide/integrations/link-external-records.qmd | 2 +- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/site/guide/attestation/_configure-attestations.qmd b/site/guide/attestation/_configure-attestations.qmd index 9fe22985f3..d20f5ab1df 100644 --- a/site/guide/attestation/_configure-attestations.qmd +++ b/site/guide/attestation/_configure-attestations.qmd @@ -37,7 +37,7 @@ c. Set the **[start date]{.smallcaps}** for the attestation period. d. Set the **[end date]{.smallcaps}** when the attestation period ends. -e. Optional: Toggle **[email reminders]{.smallcaps}** to send reminders to Submitters, Reviewers, and Approvers: +e. (Optional) Toggle **[email reminders]{.smallcaps}** to send reminders to Submitters, Reviewers, and Approvers: - **[days before end]{.smallcaps}** — How many days before the end date to send the reminder. - **[subject]{.smallcaps}** — The email subject line. @@ -94,7 +94,7 @@ a. Under Inventory Scope, click **{{< fa plus >}} Add Rule** to add a filter con b. Click **Save**. -c. Optional: Click **View Records** to preview which records match your filter criteria. +c. (Optional) Click **View Records** to preview which records match your filter criteria. ::: {.embed-tip} ### How do I filter for groups? @@ -113,7 +113,7 @@ a. Under Relevant Attestation Fields, drag inventory record fields between colum - **Inventory Record Fields** — Available fields from the inventory - **Relevant Attestation Fields** — Selected fields to display in record snapshots -b. Optional: Reorder the fields to change how they display in the attestation. +b. (Optional) Reorder the fields to change how they display in the attestation. ### 5. Add questionnaire fields @@ -150,7 +150,7 @@ c. Click **Add Field**. d. Repeat to add additional fields as needed. -e. Optional: Reorder fields by dragging them to change the order in which they appear to submitters. +e. (Optional) Reorder fields by dragging them to change the order in which they appear to submitters. Questionnaire fields are available immediately for new attestation instances. Submitters see structured inputs for each field, and responses are collected consistently across all submissions. @@ -198,7 +198,7 @@ a. Under Relevant Attestation Fields, drag inventory record fields between colum - **Inventory Record Fields** — Available fields from the inventory - **Relevant Attestation Fields** — Selected fields to display in record snapshots -a. Optional: Reorder the fields to change how they display in the attestation. +a. (Optional) Reorder the fields to change how they display in the attestation. #### Add questionnaire fields diff --git a/site/guide/attestation/review-attestations.qmd b/site/guide/attestation/review-attestations.qmd index be23ac1952..967e87e496 100644 --- a/site/guide/attestation/review-attestations.qmd +++ b/site/guide/attestation/review-attestations.qmd @@ -37,7 +37,7 @@ As a reviewer, you assess the submitter's attestation, including ownership, usag - **Validation Issues** — Shows open validation issues at the time of the snapshot. - **Artifacts** — Shows artifacts (findings) captured in the snapshot. -4. Optional: Click **Activity** to review the attestation history: +4. (Optional) Click **Activity** to review the attestation history: - Who completed the different status changes. - When the attestation status changed. diff --git a/site/guide/configuration/configure-google-private-service-connect.qmd b/site/guide/configuration/configure-google-private-service-connect.qmd index 088d74bc01..e88c3d9703 100644 --- a/site/guide/configuration/configure-google-private-service-connect.qmd +++ b/site/guide/configuration/configure-google-private-service-connect.qmd @@ -77,7 +77,7 @@ Create a private subnet in a supported GCP region that can be used to expose {{< c. Configure the IP address range to ensure it includes at least a `/28` of usable private IP address space. d. Click **Create**. -2. Optional: Enable Private Google Access to provide access to Google APIs and services.[^2] +2. (Optional) Enable Private Google Access to provide access to Google APIs and services.[^2] 3. Provision two IP addresses in this subnet for later use: diff --git a/site/guide/integrations/integrations-examples/_configure-workflow-http-step.qmd b/site/guide/integrations/integrations-examples/_configure-workflow-http-step.qmd index fff2884c46..2f81865855 100644 --- a/site/guide/integrations/integrations-examples/_configure-workflow-http-step.qmd +++ b/site/guide/integrations/integrations-examples/_configure-workflow-http-step.qmd @@ -16,7 +16,7 @@ c. Configure the required fields for Jira,[^configure-jira] replacing the placeh - `Authorization`: `Bearer {{Jira Personal Access Token}}` ::: {.callout title="Use webhook secrets for credentials"} - Instead of entering credentials in plaintext, use a webhook secret: `Bearer {{secret:jira_pat}}`. To learn more, refer to [Manage secrets](../manage-secrets.qmd#webhook-secrets). + Instead of entering credentials in plaintext, use a webhook secret: `Bearer {{secret:jira_pat}}`. To learn more, refer to [Manage secrets](/guide/integrations/manage-secrets.qmd#webhook-secrets). ::: - **[body type]{.smallcaps}** — JSON @@ -55,7 +55,7 @@ c. Configure the required fields for ServiceNow,[^configure-servicenow] replacin - `Authorization`: `Basic {{ServiceNow Credentials}}` ::: {.callout title="Use webhook secrets for credentials"} - Instead of entering credentials in plaintext, use a webhook secret: `Basic {{secret:servicenow_creds}}`. To learn more, refer to [Manage secrets](../manage-secrets.qmd#webhook-secrets). + Instead of entering credentials in plaintext, use a webhook secret: `Basic {{secret:servicenow_creds}}`. To learn more, refer to [Manage secrets](/guide/integrations/manage-secrets.qmd#webhook-secrets). ::: - **[body type]{.smallcaps}** — JSON diff --git a/site/guide/integrations/link-external-records.qmd b/site/guide/integrations/link-external-records.qmd index 02789fb093..d445c7796f 100644 --- a/site/guide/integrations/link-external-records.qmd +++ b/site/guide/integrations/link-external-records.qmd @@ -38,7 +38,7 @@ You can link, refresh, edit, and remove these connections as needed. 6. In the modal that opens, pick the external record from the [select model]{.smallcaps} dropdown. -7. Optional: Click **Test Connection** to ensure the connection is working as expected. +7. (Optional) Click **Test Connection** to ensure the connection is working as expected. If the test is successful, the message **{{< fa check-circle >}} Connection Test Successful** displays. From a309bf4433431585328469a509bf4148a056393c Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Tue, 2 Jun 2026 14:36:10 -0700 Subject: [PATCH 09/35] Edit: AWS SageMaker --- .../synchronize-aws-bedrock.qmd | 2 +- .../synchronize-aws-sagemaker.qmd | 61 ++++++++++--------- 2 files changed, 33 insertions(+), 30 deletions(-) diff --git a/site/guide/integrations/integrations-examples/synchronize-aws-bedrock.qmd b/site/guide/integrations/integrations-examples/synchronize-aws-bedrock.qmd index 4b34b9f52f..26033dc148 100644 --- a/site/guide/integrations/integrations-examples/synchronize-aws-bedrock.qmd +++ b/site/guide/integrations/integrations-examples/synchronize-aws-bedrock.qmd @@ -6,7 +6,7 @@ title: "Synchronize records with AWS Bedrock" date: last-modified --- -Link {{< var vm.product >}} records to foundation models and generative AI agents in Amazon Bedrock, supporting governance across your AI/ML ecosystem. +Link {{< var vm.product >}} records to foundation models and generative AI agents in Amazon Web Services (AWS) Bedrock, supporting governance across your AI/ML ecosystem. ### How does the integration with AWS Bedrock work? diff --git a/site/guide/integrations/integrations-examples/synchronize-aws-sagemaker.qmd b/site/guide/integrations/integrations-examples/synchronize-aws-sagemaker.qmd index b09082bce0..cf4b2192e6 100644 --- a/site/guide/integrations/integrations-examples/synchronize-aws-sagemaker.qmd +++ b/site/guide/integrations/integrations-examples/synchronize-aws-sagemaker.qmd @@ -18,25 +18,21 @@ Synchronize records registered in the {{< var vm.product >}} inventory with Amaz ::: -## Configure AWS SageMaker connection +## Sync {{< var vm.product >}} records with AWS SageMaker -::: {.column-margin} -![Connect with AWS SageMaker](integrations-examples-aws-sagemaker.png){width=80% fig-alt="Screenshot of the AWS Sagemaker connection configured to synchronize models, showing the required fields described in step 5." .screenshot} -::: +::: {.panel-tabset} -::: {.column-margin} -![A linked AWS SageMaker model](integrations-examples-aws-sagemaker-linked-model.png){width=60% fig-alt="Screenshot of the model linked to AWS SageMaker, showing the required fields described in step 4." .screenshot} -::: +### 1. Configure AWS SageMaker connection -1. In the left sidebar, click **{{< fa gear >}} Settings**. +a. In the left sidebar, click **{{< fa gear >}} Settings**. -2. Under {{< fa puzzle-piece >}} Integrations, select **Connections**. +b. Under {{< fa puzzle-piece >}} Integrations, select **Connections**. -3. Click **{{< fa plus >}} Add Connection**. +c. Click **{{< fa plus >}} Add Connection**. -4. In the modal that opens, select **AWS Sagemaker**. +d. In the modal that opens, select **AWS Sagemaker**.[^2] -5. Complete: +e. Complete: - **[integration name]{.smallcaps}** — How other admins can identify the connection. - **[description]{.smallcaps}** (optional) — The intended usage or additional details. @@ -45,38 +41,45 @@ Synchronize records registered in the {{< var vm.product >}} inventory with Amaz - **[aws secret access key]{.smallcaps}** — The secret generated by AWS IAM with permissions to read the model registry. - **[initial status]{.smallcaps}** — Set to `Operational` to enable immediately or `Disabled` if you plan to finish setup later. -6. Click **Save Integration**. +f. Click **Save Integration**. -7. Test the connection: +g. Test the connection: - a. Hover over the AWS SageMaker connection you just created. - b. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa circle-check >}} Test Connection**. + i. Hover over the AWS SageMaker connection you just created. + ii. When the **{{< fa ellipsis-vertical >}}** appears, click on it and select **{{< fa circle-check >}} Test Connection**. - If the test is successful, the message **{{< fa check-circle >}} Connection successful** displays. + If the test is successful, the message **{{< fa check-circle >}} Connection successful** is displayed. -## Link records to AWS SageMaker +### 2. Link records to AWS SageMaker -1. In the left sidebar, click **{{< fa cubes >}} Inventory**. +a. In the left sidebar, click **{{< fa cubes >}} Inventory**. -2. Select a record or find your record by applying a filter or searching for it.[^2] +b. Select a record or find your record by applying a filter or searching for it.[^3] -3. Scroll down until you locate the **Amazon Sagemaker** connection box in the right sidebar. +c. Scroll down until you locate the **Amazon Sagemaker** connection box in the right sidebar. -4. Hover over the Amazon SageMaker box. +d. Hover over the Amazon SageMaker box. -5. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa link >}} Link Model**. +e. When the **{{< fa ellipsis-vertical >}}** appears, click on it and select **{{< fa link >}} Link Model**. -6. In the modal that opens, click the [select model]{.smallcaps} dropdown to pick the AWS SageMaker model to link. +f. In the modal that opens, click the [select model]{.smallcaps} dropdown to pick the AWS SageMaker model to link. -7. Optional: Click **Test Connection** to ensure the connection is working as expected. +g. (Optional) Click **Test Connection** to ensure the connection is working as expected. - If the test is successful, the message **{{< fa check-circle >}} Connection Test Successful** displays. + If the test is successful, the message **{{< fa check-circle >}} Connection Test Successful** is displayed. -8. Click **Link Model**. +h. Click **Link Model**. + +::: -[^1]: [Manage permissions](../../configuration/manage-permissions.qmd) +[^1]: [Manage permissions](/guide/configuration/manage-permissions.qmd) + +[^2]: + + ![Connect with AWS SageMaker](integrations-examples-aws-sagemaker.png){width=80% fig-alt="Screenshot of the AWS Sagemaker connection configured to synchronize models, showing the required fields described in step 5." .screenshot} + +[^3]: [Working with the inventory](/guide/inventory/working-with-the-inventory.qmd#search-filter-and-sort-records) -[^2]: [Working with the inventory](../../inventory/working-with-the-inventory.qmd#search-filter-and-sort-records) From 98a48f8df243d78e21b58d70b0be1ada55739766 Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Tue, 2 Jun 2026 14:39:09 -0700 Subject: [PATCH 10/35] Edit: GitLab --- .../synchronize-gitlab.qmd | 62 +++++++++++-------- 1 file changed, 35 insertions(+), 27 deletions(-) diff --git a/site/guide/integrations/integrations-examples/synchronize-gitlab.qmd b/site/guide/integrations/integrations-examples/synchronize-gitlab.qmd index 02482b0ea1..b4e18ebbd0 100644 --- a/site/guide/integrations/integrations-examples/synchronize-gitlab.qmd +++ b/site/guide/integrations/integrations-examples/synchronize-gitlab.qmd @@ -19,21 +19,21 @@ Synchronize your GitLab model registry with the {{< var vm.product >}} inventory ::: -## Configure GitLab connection +## Sync {{< var vm.product >}} records with GitLab -::: {.column-margin} -![Configure GitLab connection](integrations-examples-gitlab.png){width=80% fig-alt="Screenshot of the Configure GitLab dialog showing fields for integration name, description, project ID, GitLab instance URL, personal access token, and initial status." .screenshot} -::: +::: {.panel-tabset} + +### 1. Configure GitLab connection -1. In the left sidebar, click **{{< fa gear >}} Settings**. +a. In the left sidebar, click **{{< fa gear >}} Settings**. -2. Under {{< fa puzzle-piece >}} Integrations, select **Connections**. +b. Under {{< fa puzzle-piece >}} Integrations, select **Connections**. -3. Click **{{< fa plus >}} Add Connection**. +c. Click **{{< fa plus >}} Add Connection**. -4. In the modal that opens, select **GitLab**. +d. In the modal that opens, select **GitLab**.[^3] -5. Complete: +e. Complete: - **[integration name]{.smallcaps}** — How other admins can identify the connection. - **[description]{.smallcaps}** (optional) — The intended usage or additional details. @@ -42,39 +42,47 @@ Synchronize your GitLab model registry with the {{< var vm.product >}} inventory - **[personal access token]{.smallcaps}** — Select a secret containing your GitLab Personal Access Token with `api` or `read_api` scope. - **[initial status]{.smallcaps}** — Set to `Operational` to enable immediately or `Disabled` if you plan to finish setup later. -6. Click **Save Integration**. +f. Click **Save Integration**. + +g. Test the connection: + + i. Hover over the GitLab connection you just created. + ii. When the **{{< fa ellipsis-vertical >}}** appears, click on it and select **{{< fa circle-check >}} Test Connection**. -7. Test the connection: + If the test is successful, the message **{{< fa check-circle >}} Connection successful** is displayed. - a. Hover over the GitLab connection you just created. - b. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa circle-check >}} Test Connection**. +### 2. Link records to GitLab - If the test is successful, the message **{{< fa check-circle >}} Connection successful** displays. +a. In the left sidebar, click **{{< fa cubes >}} Inventory**. -## Link records to GitLab +b. Select a record or find your record by applying a filter or searching for it.[^4] -1. In the left sidebar, click **{{< fa cubes >}} Inventory**. +c. Scroll down until you locate the **GitLab** connection box in the right sidebar. -2. Select a record or find your record by applying a filter or searching for it.[^3] +d. Hover over the GitLab box. -3. Scroll down until you locate the **GitLab** connection box in the right sidebar. +e. When the **{{< fa ellipsis-vertical >}}** appears, click on it and select **{{< fa link >}} Link Model**. -4. Hover over the GitLab box. +f. In the modal that opens, click the [select model]{.smallcaps} dropdown to pick the GitLab model to link. -5. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa link >}} Link Model**. +g. (Optional) Click **Test Connection** to ensure the connection is working as expected. -6. In the modal that opens, click the [select model]{.smallcaps} dropdown to pick the GitLab model to link. + If the test is successful, the message **{{< fa check-circle >}} Connection Test Successful** is displayed. -7. Optional: Click **Test Connection** to ensure the connection is working as expected. +h. Click **Link Model**. - If the test is successful, the message **{{< fa check-circle >}} Connection Test Successful** displays. +::: -8. Click **Link Model**. -[^1]: [Manage permissions](../../configuration/manage-permissions.qmd) +[^1]: [Manage permissions](/guide/configuration/manage-permissions.qmd) + +[^2]: [Manage secrets](/guide/integrations/manage-secrets.qmd) + +[^3]: + + ![Configure GitLab connection](integrations-examples-gitlab.png){width=80% fig-alt="Screenshot of the Configure GitLab dialog showing fields for integration name, description, project ID, GitLab instance URL, personal access token, and initial status." .screenshot} -[^2]: [Manage secrets](../manage-secrets.qmd) -[^3]: [Working with the inventory](../../inventory/working-with-the-inventory.qmd#search-filter-and-sort-records) +[^4]: [Working with the inventory](/guide/inventory/working-with-the-inventory.qmd#search-filter-and-sort-records) From 19baa4b4561359903bbed3b321df23dae2130ec7 Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Tue, 2 Jun 2026 14:48:18 -0700 Subject: [PATCH 11/35] Edit: Databricks --- .../synchronize-with-databricks.qmd | 61 ++++++++++--------- 1 file changed, 33 insertions(+), 28 deletions(-) diff --git a/site/guide/integrations/integrations-examples/synchronize-with-databricks.qmd b/site/guide/integrations/integrations-examples/synchronize-with-databricks.qmd index 6846597201..376e0b7b9a 100644 --- a/site/guide/integrations/integrations-examples/synchronize-with-databricks.qmd +++ b/site/guide/integrations/integrations-examples/synchronize-with-databricks.qmd @@ -21,7 +21,7 @@ Link {{< var vm.product >}} inventory records to models, datasets, and agents in You can also run validation notebooks directly against Databricks-hosted data. -## How does the integration with Databricks work? +### How does the integration with Databricks work? Databricks Unity Catalog provides a unified governance solution for all data and AI assets across your Databricks workspaces. The integration exposes three Unity Catalog resource types: @@ -67,21 +67,21 @@ flowchart LR ::: -## Configure Databricks connection +## Sync {{< var vm.product >}} records with Databricks -::: {.column-margin .pt6} -![Configure the Databricks connection](configure-databricks.png){width=80% fig-alt="Screenshot of the Configure Databricks connection dialog showing the required fields described in step 5." .screenshot} -::: +::: {.panel-tabset} + +### 1. Configure Databricks connection -1. In the left sidebar, click **{{< fa gear >}} Settings**. +a. In the left sidebar, click **{{< fa gear >}} Settings**. -2. Under {{< fa puzzle-piece >}} Integrations, select **Connections**. +b. Under {{< fa puzzle-piece >}} Integrations, select **Connections**. -3. Click **{{< fa plus >}} Add Connection**. +c. Click **{{< fa plus >}} Add Connection**. -4. In the modal that opens, select **Databricks**. +d. In the modal that opens, select **Databricks**.[^3] -5. Complete: +e. Complete: - **[integration name]{.smallcaps}** — How other admins can identify the connection. - **[description]{.smallcaps}** (optional) — The intended usage or additional details. @@ -90,49 +90,54 @@ flowchart LR - **[personal access token]{.smallcaps}** — Select a secret containing your Databricks Personal Access Token. - **[initial status]{.smallcaps}** — Set to `Operational` to enable immediately or `Disabled` if you plan to finish setup later. -6. Click **Save Integration**. +f. Click **Save Integration**. -7. Test the connection: +g. Test the connection: - a. Hover over the Databricks connection you just created. - b. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa circle-check >}} Test Connection**. + i. Hover over the Databricks connection you just created. + ii. When the **{{< fa ellipsis-vertical >}}** appears, click on it and select **{{< fa circle-check >}} Test Connection**. - If the test is successful, the message **{{< fa check-circle >}} Connection successful** displays. + If the test is successful, the message **{{< fa check-circle >}} Connection successful** is displayed. -## Link records to Databricks +### 2. Link records to Databricks Once the connection is configured, you can link {{< var vm.product >}} inventory records to your Databricks Unity Catalog resources: -1. In the left sidebar, click **{{< fa cubes >}} Inventory**. +a. In the left sidebar, click **{{< fa cubes >}} Inventory**. -2. Select a record by clicking on it or find your record by applying a filter or searching for it.[^3] +b. Select a record by clicking on it or find your record by applying a filter or searching for it.[^4] -3. Scroll down until you locate the **Databricks** connection box in the right sidebar. +c. Scroll down until you locate the **Databricks** connection box in the right sidebar. -4. Hover over the Databricks box. +d. Hover over the Databricks box. -5. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa link >}} Link Model**. +e. When the **{{< fa ellipsis-vertical >}}** appears, click on it and select **{{< fa link >}} Link Model**. -6. In the modal that opens: +f. In the modal that opens: - **[select model]{.smallcaps}** — Choose the Databricks model to link from the dropdown. - **[sync frequency]{.smallcaps}** — Set how often ValidMind automatically syncs data from the external system. -7. Click **Link Model** to complete the link. - -8. Click **Link Model**. +g. Click **Link Model** to complete the link. After linking, metadata from the Unity Catalog resource syncs to {{< var vm.product >}}. You can use linked fields in custom calculated fields to surface Databricks metadata directly in your inventory views. +::: + ## What's next :::{#whats-next} ::: + -[^1]: [Manage permissions](../../configuration/manage-permissions.qmd) +[^1]: [Manage permissions](/guide/configuration/manage-permissions.qmd) + +[^2]: [Manage secrets](/guide/integrations/manage-secrets.qmd) + +[^3]: -[^2]: [Manage secrets](../manage-secrets.qmd) + ![Configure the Databricks connection](configure-databricks.png){width=80% fig-alt="Screenshot of the Configure Databricks connection dialog showing the required fields described in step 5." .screenshot} -[^3]: [Working with the inventory](../../inventory/working-with-the-inventory.qmd#search-filter-and-sort-records) +[^4]: [Working with the inventory](/guide/inventory/working-with-the-inventory.qmd#search-filter-and-sort-records) From 83a6d3d41129a0e64a98aee712ce8b950de3e1f1 Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Tue, 2 Jun 2026 14:52:15 -0700 Subject: [PATCH 12/35] Edit: Workflow webhooks --- .../use-webhooks-with-workflows.qmd | 36 +++++++++---------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/site/guide/integrations/integrations-examples/use-webhooks-with-workflows.qmd b/site/guide/integrations/integrations-examples/use-webhooks-with-workflows.qmd index b25d0aedfa..4cb07f1ce3 100644 --- a/site/guide/integrations/integrations-examples/use-webhooks-with-workflows.qmd +++ b/site/guide/integrations/integrations-examples/use-webhooks-with-workflows.qmd @@ -25,15 +25,15 @@ Start a {{< var vm.product >}} workflow from an external system by sending a POS ::: {.panel-tabset} -### a. Configure workflow in {{< var vm.product >}} +### 1. Configure workflow in {{< var vm.product >}} -1. Add a new workflow, selecting the **Via Webhook** workflow start option.[^3] +a. Add a new workflow, selecting the **Via Webhook** workflow start option.[^3] -2. From the **Workflow Steps** modal, drag and drop a **Webhook** step[^4] onto the canvas, then connect it to your workflow. +b. From the **Workflow Steps** modal, drag and drop a **Webhook** step[^4] onto the canvas, then connect it to your workflow. -3. Double-click the step to open the **Webhook Step Trigger** modal. +c. Double-click the step to open the **Webhook Step Trigger** modal. -4. Copy or select the webhook details: +d. Copy or select the webhook details: - **URL** — Click **{{< fa regular copy >}} Copy** for the unique POST webhook URL to use when configuring your external system. - **[select target {record-type} record for payload]{.smallcaps}** — Select the record that is associated with the webhook payload from the dropdown. @@ -52,9 +52,9 @@ Start a {{< var vm.product >}} workflow from an external system by sending a POS - `x-api-secret`: `{{API Secret}}` - **[wait for webhook trigger when reached]{.smallcaps}** — When enabled, the workflow pauses execution when it reaches this step and waits for the external system to send the POST request. -5. Click **Save**. +e. Click **Save**. -### b. Start workflow from external system +### 2. Start workflow from external system Send a POST request to the webhook URL with a JSON payload that includes the `run_workflow` action for the target record (model) CUID: @@ -73,15 +73,15 @@ Trigger a waiting {{< var vm.product >}} workflow step to continue from an exter ::: {.panel-tabset} -### a. Configure workflow in {{< var vm.product >}} +### 1. Configure workflow in {{< var vm.product >}} -1. Open the workflow you want to configure, or add a new workflow.[^3] +a. Open the workflow you want to configure, or add a new workflow.[^3] -2. From the **Workflow Steps** modal, drag and drop a **Webhook** step[^4] onto the canvas, then connect the step to your workflow. +b. From the **Workflow Steps** modal, drag and drop a **Webhook** step[^4] onto the canvas, then connect the step to your workflow. -3. Double-click the step to open the **Webhook Step Trigger** modal. +c. Double-click the step to open the **Webhook Step Trigger** modal. -4. Copy or select the webhook details: +d. Copy or select the webhook details: - **URL** — Click **{{< fa regular copy >}} Copy** for the unique POST webhook URL to use when configuring your external system. - **[select target {record-type} record for payload]{.smallcaps}** — Select the record that is associated with the webhook payload from the dropdown. @@ -99,11 +99,11 @@ Trigger a waiting {{< var vm.product >}} workflow step to continue from an exter - `x-api-key`: `{{API Key}}` - `x-api-secret`: `{{API Secret}}` -5. Click **Update Step** to save your configuration. +e. Click **Update Step** to save your configuration. When the workflow reaches this step, it pauses and waits for the external system. -### b. Trigger workflow to continue from external system +### 2. Trigger workflow to continue from external system Send a POST request to the webhook URL with a JSON payload containing the `run_step` action for the target record (model) CUID: @@ -119,10 +119,10 @@ curl -X POST https://api.prod.vm.validmind.ai/vm/api/v1/webhooks/xxxxxxxxxxxxxxx -[^1]: [Manage permissions](../../configuration/manage-permissions.qmd) +[^1]: [Manage permissions](/guide/configuration/manage-permissions.qmd) -[^2]: [Introduction to workflows](../../workflows/introduction-to-workflows.qmd) +[^2]: [Introduction to workflows](/guide/workflows/introduction-to-workflows.qmd) -[^3]: [Add new workflows](../../workflows/configure-workflows.qmd#add-new-workflows) +[^3]: [Add new workflows](/guide/workflows/configure-workflows.qmd#add-new-workflows) -[^4]: [Workflow step types](../../workflows/workflow-step-types.qmd#webhook) +[^4]: [Workflow step types](/guide/workflows/workflow-step-types.qmd#webhook) From 7d80ee066dda5549df159bd5e940a6d305b1b7cf Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Tue, 2 Jun 2026 14:55:10 -0700 Subject: [PATCH 13/35] save --- .../guide/integrations/configure-analytics-exports.qmd | 10 +++++----- site/guide/integrations/configure-connections.qmd | 2 +- .../integrations/implement-custom-integrations.qmd | 6 +++--- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/site/guide/integrations/configure-analytics-exports.qmd b/site/guide/integrations/configure-analytics-exports.qmd index 1950c723f8..5cdc540bbe 100644 --- a/site/guide/integrations/configure-analytics-exports.qmd +++ b/site/guide/integrations/configure-analytics-exports.qmd @@ -32,9 +32,9 @@ Configure scheduled exports of analytics datasets to cloud storage so that BI to - Artifact - Model Limitation - Artifact - Policy Exception - Artifact - Validation Issue - - Inventory Models - - Model Activity[^4] - - Custom artifact types[^3] + - Inventory Records + - Record Activity[^3] + - Custom artifact types[^4] - Custom inventory record types ::: {.callout title="Record Activity exports"} @@ -167,6 +167,6 @@ Data you exported previously will remain in the cloud storage destination unchan [^2]: [Manage secrets](/guide/integrations/manage-secrets.qmd) -[^3]: [Manage artifact types](/guide/validation/manage-artifact-types.qmd) +[^3]: [View record activity](/guide/inventory/view-record-activity.qmd) -[^4]: [View record activity](/guide/inventory/view-record-activity.qmd) +[^4]: [Manage artifact types](/guide/validation/manage-artifact-types.qmd) diff --git a/site/guide/integrations/configure-connections.qmd b/site/guide/integrations/configure-connections.qmd index 9794783c27..bf9b3f3cc1 100644 --- a/site/guide/integrations/configure-connections.qmd +++ b/site/guide/integrations/configure-connections.qmd @@ -151,7 +151,7 @@ Required configuration details: : A secret containing the API key for authenticating with your integration. **[integration types]{.smallcaps}** -: Select which types of objects this integration provides — Model Registry and/or Artifact / Ticket Source. +: Select which types of objects this integration provides — Record Registry and/or Artifact / Ticket Source. :::: diff --git a/site/guide/integrations/implement-custom-integrations.qmd b/site/guide/integrations/implement-custom-integrations.qmd index 9e536f3648..8d18e62072 100644 --- a/site/guide/integrations/implement-custom-integrations.qmd +++ b/site/guide/integrations/implement-custom-integrations.qmd @@ -81,9 +81,9 @@ Your service must expose these endpoints at the `/api/v1` base path: **Resource types** : `GET /resource-types` — Returns available resource categories for filtering in the UI. -### Model response format +### `/models` response format -Your models endpoint should return objects with these fields: +Your `/models` (records) endpoint should return objects with these fields: | Field | Required | Description | |-------|----------|-------------| @@ -186,7 +186,7 @@ When linking resources, {{< var vm.product >}} can write metadata back to your s - **[endpoint url]{.smallcaps}** — The base URL of your deployed integration that implements the reference API. - **[api key]{.smallcaps}** — Select a secret containing the API key for authenticating with your integration. - **[integration types]{.smallcaps}** — Select which types of objects this integration provides: - - **Model Registry** — Sync models from your external system. + - **Record Registry** — Sync models from your external system. - **Artifact / Ticket Source** — Sync artifacts or tickets from your external system. - **[initial status]{.smallcaps}** — Set to `Operational` to enable immediately or `Disabled` to finish setup later. From dd191a7a5619382b568bd6afbfcae125eced57b5 Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Tue, 2 Jun 2026 14:58:59 -0700 Subject: [PATCH 14/35] save --- .../implement-custom-integrations.qmd | 60 ++++++++++++++++--- 1 file changed, 53 insertions(+), 7 deletions(-) diff --git a/site/guide/integrations/implement-custom-integrations.qmd b/site/guide/integrations/implement-custom-integrations.qmd index 8d18e62072..4f99ff12e9 100644 --- a/site/guide/integrations/implement-custom-integrations.qmd +++ b/site/guide/integrations/implement-custom-integrations.qmd @@ -15,7 +15,7 @@ Custom integrations let you link resources, such as AI systems or records such a ## Prerequisites - [x] {{< var link.login >}} -- [x] You can manage permissions.[^1] +- [x] You are assigned a role that can manage permissions.[^1] - [x] Your integration service is deployed and accessible from {{< var vm.product >}}. - [x] You have the endpoint URL and API key for your integration service. - [x] A secret containing your API key exists in integration secrets.[^2] @@ -38,7 +38,7 @@ flowchart LR VM[ValidMind Platform] API[Your API service] DATA[Your data sources] - + VM <-->|Reference API| API API <--> DATA ``` @@ -103,7 +103,12 @@ Your `/models` (records) endpoint should return objects with these fields: When linking resources, {{< var vm.product >}} can write metadata back to your system via `PUT` requests. This bidirectional sync enables you to store the {{< var vm.product >}} record identifier (`vm_cuid`) alongside your external records, creating a two-way link between systems. -::: {.callout collapse="true" title="Code examples"} +
+ +::: {.callout-button .pl4 .nt4} +::: {.callout collapse="true" appearance="minimal"} + +### Code examples **GET /models response** @@ -148,6 +153,7 @@ When linking resources, {{< var vm.product >}} can write metadata back to your s } ``` +::: ::: ## Set up custom integrations @@ -204,19 +210,59 @@ When linking resources, {{< var vm.product >}} can write metadata back to your s After configuring your custom integration, link resources to records in the inventory: +:::: {.panel-tabset} + +### Link Model + +Use this flow for custom integrations configured as a **Record Registry** or with **Model Registry** selected as an integration type: + 1. In the left sidebar, click **{{< fa cubes >}} Inventory**. 2. Select a record or find your record by applying a filter or searching for it.[^3] -3. In the right sidebar, locate your custom integration connection. +3. Click the **Integrations** tab. -4. Hover over the connection. +4. Locate your custom integration connection. 5. When the **{{< fa ellipsis-vertical >}}** menu appears, click it and select **{{< fa link >}} Link Model**. -6. In the modal that opens, select the resource from your external system. +6. In the **Link to External System** modal, select the external model. + + If your integration exposes multiple resource types, select the resource type first to filter the available models. + +7. Select a **Sync Frequency**. + +8. Click **Test Connection** to verify the binding configuration. + +9. Click **Link Model**. + +### Link Ticket + +Use this flow for custom integrations configured as an **Artifact / Ticket Source**: + +1. In the left sidebar, click **{{< fa cubes >}} Inventory**. + +2. Select the record that contains the finding you want to link. + +3. Open the finding. + +4. Click the **Integrations** tab. + +5. Locate your custom integration connection. + +6. When the **{{< fa ellipsis-vertical >}}** menu appears, click it and select **{{< fa link >}} Link Artifact**. + +7. In the **Link to External System** modal, search for or select the external ticket. + + If the ticket isn't available in the list, enter the ticket or issue ID from the external system. + +8. Select a **Sync Frequency**. + +9. Click **Test Connection** to verify the binding configuration. + +10. Click **Link Ticket**. -7. Click **Link Model**. +:::: From 3b883e8ed8b1835563d2e9341de60fd5dc85ec66 Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Tue, 2 Jun 2026 15:05:58 -0700 Subject: [PATCH 15/35] save --- site/guide/attestation/manage-attestations.qmd | 10 +++++----- site/guide/configuration/customize-your-dashboard.qmd | 2 +- .../configuration/manage-platform-notifications.qmd | 4 ++-- site/guide/configuration/set-up-your-organization.qmd | 4 ++-- site/guide/documentation/collaborate-with-others.qmd | 2 +- .../integrations-examples/synchronize-aws-bedrock.qmd | 4 ++-- .../synchronize-aws-sagemaker.qmd | 4 ++-- .../integrations-examples/synchronize-gitlab.qmd | 4 ++-- .../synchronize-with-databricks.qmd | 4 ++-- site/guide/integrations/manage-secrets.qmd | 8 ++++---- site/guide/inventory/_rename-field-keys.qmd | 2 +- site/guide/inventory/manage-inventory-fields.qmd | 2 +- site/guide/reporting/export-analytics.qmd | 2 +- site/guide/shared/manage-views/_organization-views.qmd | 6 +++--- site/guide/shared/manage-views/_personal-views.qmd | 2 +- site/guide/templates/customize-document-checker.qmd | 6 +++--- site/guide/templates/manage-document-templates.qmd | 2 +- site/guide/templates/manage-document-types.qmd | 4 ++-- site/guide/templates/manage-documents.qmd | 2 +- site/guide/validation/_add-edit-artifact-statuses.qmd | 4 ++-- site/guide/validation/_remove-artifact-view.qmd | 2 +- site/guide/validation/configure-assessment-options.qmd | 4 ++-- site/guide/validation/manage-artifact-fields.qmd | 2 +- site/guide/validation/manage-artifact-severities.qmd | 4 ++-- site/guide/validation/manage-artifact-types.qmd | 6 +++--- site/guide/workflows/_workflow-states.qmd | 4 ++-- site/guide/workflows/configure-workflows.qmd | 4 ++-- site/guide/workflows/manage-record-stages.qmd | 2 +- 28 files changed, 53 insertions(+), 53 deletions(-) diff --git a/site/guide/attestation/manage-attestations.qmd b/site/guide/attestation/manage-attestations.qmd index 1074b92d41..795c0601fb 100644 --- a/site/guide/attestation/manage-attestations.qmd +++ b/site/guide/attestation/manage-attestations.qmd @@ -50,7 +50,7 @@ For testing purposes only, you can trigger the attestation process: 3. Under **Attestation Periods**, hover over an attestation period. -4. When **{{< fa ellipsis-vertical >}}** appears, select **{{< fa play >}} Start Now**. +4. When the **{{< fa ellipsis-vertical >}}** menu appears, select **{{< fa play >}} Start Now**. 5. Click **Confirm**. @@ -64,7 +64,7 @@ After starting the schedule, attestation participants are notified via My Inbox 3. Under **Attestation Periods**, hover over an attestation period. -4. When **{{< fa ellipsis-vertical >}}** appears, select **{{< fa pencil >}} Edit**. +4. When the **{{< fa ellipsis-vertical >}}** menu appears, select **{{< fa pencil >}} Edit**. 5. Make your desired changes to the following: @@ -88,7 +88,7 @@ This action cannot be undone. The history of previous attestation periods is una 3. Under **Attestation Periods**, hover over an attestation period. -4. When **{{< fa ellipsis-vertical >}}** appears, select [**{{< fa trash >}} Cancel Period**]{.red}. +4. When the **{{< fa ellipsis-vertical >}}** menu appears, select [**{{< fa trash >}} Cancel Period**]{.red}. 5. Click **Confirm** to cancel the period. @@ -184,7 +184,7 @@ To manually complete an attestation period: 3. Under **Attestation Periods**, hover over an active attestation period. -4. When **{{< fa ellipsis-vertical >}}** appears, select **{{< fa check >}} Complete Period**. +4. When the **{{< fa ellipsis-vertical >}}** menu appears, select **{{< fa check >}} Complete Period**. 5. Click **Confirm**. @@ -204,7 +204,7 @@ You cannot delete an attestation template if it has any active attestation perio 3. Locate the template to delete and hover over it. -4. When **{{< fa ellipsis-vertical >}}** appears, select [**{{< fa trash >}} Delete**]{.red}. +4. When the **{{< fa ellipsis-vertical >}}** menu appears, select [**{{< fa trash >}} Delete**]{.red}. 5. Click **Confirm** to delete the template. diff --git a/site/guide/configuration/customize-your-dashboard.qmd b/site/guide/configuration/customize-your-dashboard.qmd index d86acb88af..34ea11ce01 100644 --- a/site/guide/configuration/customize-your-dashboard.qmd +++ b/site/guide/configuration/customize-your-dashboard.qmd @@ -174,7 +174,7 @@ Removing a widget from a dashboard will not delete the linked view or analytics 4. Hover over the widget you would like to remove. -5. When the **{{< fa ellipsis-vertical >}}** appears, click on it and select [**{{< fa trash-can >}} Remove**]{.red}. +5. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select [**{{< fa trash-can >}} Remove**]{.red}. 6. Click **Yes, Delete Widget** to confirm permanent deletion of the widget from that dashboard. diff --git a/site/guide/configuration/manage-platform-notifications.qmd b/site/guide/configuration/manage-platform-notifications.qmd index d4c0bc62d9..ae316bc8cd 100644 --- a/site/guide/configuration/manage-platform-notifications.qmd +++ b/site/guide/configuration/manage-platform-notifications.qmd @@ -63,7 +63,7 @@ To mark an individual update as read: a. Hover over the update you want to mark as read. -b. When the **{{< fa ellipsis-vertical >}}** appears, click on it and select **{{< fa envelope >}} Mark as Read**. +b. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa envelope >}} Mark as Read**. To mark multiple updates as read: @@ -79,7 +79,7 @@ To dismiss an individual update: a. Hover over the update you want to dismiss. -b. When the **{{< fa ellipsis-vertical >}}** appears, click on it and select **{{< fa bell-slash >}} Dismiss**. +b. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa bell-slash >}} Dismiss**. To dismiss all updates: diff --git a/site/guide/configuration/set-up-your-organization.qmd b/site/guide/configuration/set-up-your-organization.qmd index d69ae6b862..1e350fdc15 100644 --- a/site/guide/configuration/set-up-your-organization.qmd +++ b/site/guide/configuration/set-up-your-organization.qmd @@ -39,7 +39,7 @@ This task involves managing organizations within {{< var vm.product >}}, allowin a. Hover over the business unit you want to rename. -b. When the **{{< fa ellipsis-vertical >}}** appears, click on it and select **{{< fa pencil >}} Edit Details** to rename the business unit. +b. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa pencil >}} Edit Details** to rename the business unit. c. Click **Save** to apply your changes. @@ -51,7 +51,7 @@ In order to delete a business unit, there must be no records attached to that un a. Hover over the business unit you want to delete. -b. When the **{{< fa ellipsis-vertical >}}** appears, click on it and select [**{{< fa trash-can >}} Delete Business Unit**]{.red} to remove the business unit. +b. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select [**{{< fa trash-can >}} Delete Business Unit**]{.red} to remove the business unit. ::: {.callout-important} In order to delete a business unit, there must be no records attached to that unit. diff --git a/site/guide/documentation/collaborate-with-others.qmd b/site/guide/documentation/collaborate-with-others.qmd index a8f9bf43a3..0d60da21df 100644 --- a/site/guide/documentation/collaborate-with-others.qmd +++ b/site/guide/documentation/collaborate-with-others.qmd @@ -94,7 +94,7 @@ b. Click on the version you would like to compare another version to. c. Hover over the other version to compare with your first version. -d. When the **{{< fa ellipsis-vertical >}}** appears, click on it and select **Compare against selected**. +d. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **Compare against selected**. ### Rename a version diff --git a/site/guide/integrations/integrations-examples/synchronize-aws-bedrock.qmd b/site/guide/integrations/integrations-examples/synchronize-aws-bedrock.qmd index 26033dc148..9fe9a32600 100644 --- a/site/guide/integrations/integrations-examples/synchronize-aws-bedrock.qmd +++ b/site/guide/integrations/integrations-examples/synchronize-aws-bedrock.qmd @@ -54,7 +54,7 @@ f. Click **Save Integration**. g. Test the connection: i. Hover over the AWS Bedrock connection you just created. - ii. When the **{{< fa ellipsis-vertical >}}** appears, click on it and select **{{< fa circle-check >}} Test Connection**. + ii. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa circle-check >}} Test Connection**. If the test is successful, the message **{{< fa check-circle >}} Connection successful** displays. @@ -70,7 +70,7 @@ c. Scroll down until you locate the **Amazon Bedrock** connection box in the rig d. Hover over the Amazon Bedrock box. -e. When the **{{< fa ellipsis-vertical >}}** appears, click on it and select **{{< fa link >}} Link Model**. +e. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa link >}} Link Model**. f. In the modal that opens, use the tabs to filter by resource type: diff --git a/site/guide/integrations/integrations-examples/synchronize-aws-sagemaker.qmd b/site/guide/integrations/integrations-examples/synchronize-aws-sagemaker.qmd index cf4b2192e6..7522cc320c 100644 --- a/site/guide/integrations/integrations-examples/synchronize-aws-sagemaker.qmd +++ b/site/guide/integrations/integrations-examples/synchronize-aws-sagemaker.qmd @@ -46,7 +46,7 @@ f. Click **Save Integration**. g. Test the connection: i. Hover over the AWS SageMaker connection you just created. - ii. When the **{{< fa ellipsis-vertical >}}** appears, click on it and select **{{< fa circle-check >}} Test Connection**. + ii. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa circle-check >}} Test Connection**. If the test is successful, the message **{{< fa check-circle >}} Connection successful** is displayed. @@ -61,7 +61,7 @@ c. Scroll down until you locate the **Amazon Sagemaker** connection box in the r d. Hover over the Amazon SageMaker box. -e. When the **{{< fa ellipsis-vertical >}}** appears, click on it and select **{{< fa link >}} Link Model**. +e. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa link >}} Link Model**. f. In the modal that opens, click the [select model]{.smallcaps} dropdown to pick the AWS SageMaker model to link. diff --git a/site/guide/integrations/integrations-examples/synchronize-gitlab.qmd b/site/guide/integrations/integrations-examples/synchronize-gitlab.qmd index b4e18ebbd0..b6f10edf7e 100644 --- a/site/guide/integrations/integrations-examples/synchronize-gitlab.qmd +++ b/site/guide/integrations/integrations-examples/synchronize-gitlab.qmd @@ -47,7 +47,7 @@ f. Click **Save Integration**. g. Test the connection: i. Hover over the GitLab connection you just created. - ii. When the **{{< fa ellipsis-vertical >}}** appears, click on it and select **{{< fa circle-check >}} Test Connection**. + ii. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa circle-check >}} Test Connection**. If the test is successful, the message **{{< fa check-circle >}} Connection successful** is displayed. @@ -61,7 +61,7 @@ c. Scroll down until you locate the **GitLab** connection box in the right sideb d. Hover over the GitLab box. -e. When the **{{< fa ellipsis-vertical >}}** appears, click on it and select **{{< fa link >}} Link Model**. +e. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa link >}} Link Model**. f. In the modal that opens, click the [select model]{.smallcaps} dropdown to pick the GitLab model to link. diff --git a/site/guide/integrations/integrations-examples/synchronize-with-databricks.qmd b/site/guide/integrations/integrations-examples/synchronize-with-databricks.qmd index 376e0b7b9a..e952e5efde 100644 --- a/site/guide/integrations/integrations-examples/synchronize-with-databricks.qmd +++ b/site/guide/integrations/integrations-examples/synchronize-with-databricks.qmd @@ -95,7 +95,7 @@ f. Click **Save Integration**. g. Test the connection: i. Hover over the Databricks connection you just created. - ii. When the **{{< fa ellipsis-vertical >}}** appears, click on it and select **{{< fa circle-check >}} Test Connection**. + ii. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa circle-check >}} Test Connection**. If the test is successful, the message **{{< fa check-circle >}} Connection successful** is displayed. @@ -111,7 +111,7 @@ c. Scroll down until you locate the **Databricks** connection box in the right s d. Hover over the Databricks box. -e. When the **{{< fa ellipsis-vertical >}}** appears, click on it and select **{{< fa link >}} Link Model**. +e. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa link >}} Link Model**. f. In the modal that opens: diff --git a/site/guide/integrations/manage-secrets.qmd b/site/guide/integrations/manage-secrets.qmd index 1b662bf52e..9b80cf8101 100644 --- a/site/guide/integrations/manage-secrets.qmd +++ b/site/guide/integrations/manage-secrets.qmd @@ -82,7 +82,7 @@ Recommended: Create a new secret and update integrations that should use it.
3. Hover over the secret you want to change. -4. When **{{< fa ellipsis-vertical >}}** appears, click on it and select **{{< fa triangle-exclamation >}} Revoke**. +4. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa triangle-exclamation >}} Revoke**. 5. On the confirmation dialogue that appears, select **OK** to confirm revocation. @@ -100,7 +100,7 @@ Be sure to update any connections that depend on this secret before deleting it. 3. Hover over the secret you want to remove. -4. When **{{< fa ellipsis-vertical >}}** appears, click it, then select **{{< fa trash >}} Delete**. +4. When the **{{< fa ellipsis-vertical >}}** menu appears, click it, then select **{{< fa trash >}} Delete**. 5. In the confirmation dialog, select **OK** to confirm deletion. @@ -166,7 +166,7 @@ At runtime, the workflow engine replaces `{{secret:jira_pat}}` with the stored v 3. Hover over the secret you want to revoke. -4. When **{{< fa ellipsis-vertical >}}** appears, click on it and select **{{< fa triangle-exclamation >}} Revoke**. +4. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa triangle-exclamation >}} Revoke**. 5. On the confirmation dialogue that appears, select **OK** to confirm revocation. @@ -184,7 +184,7 @@ Be sure to update any HTTP Request workflow steps that depend on this secret bef 3. Hover over the secret you want to remove. -4. When **{{< fa ellipsis-vertical >}}** appears, click it, then select **{{< fa trash >}} Delete**. +4. When the **{{< fa ellipsis-vertical >}}** menu appears, click it, then select **{{< fa trash >}} Delete**. 5. In the confirmation dialog, select **OK** to confirm deletion. diff --git a/site/guide/inventory/_rename-field-keys.qmd b/site/guide/inventory/_rename-field-keys.qmd index c72fd1ca25..bf8d7311e3 100644 --- a/site/guide/inventory/_rename-field-keys.qmd +++ b/site/guide/inventory/_rename-field-keys.qmd @@ -4,7 +4,7 @@ SPDX-License-Identifier: AGPL-3.0 AND ValidMind Commercial --> 1. Hover over the **[actions]{.smallcaps}** column on the far-right for the field whose key you want to rename. -1. When the **{{< fa ellipsis-vertical >}}** appears, click on it and select **{{< fa pen-to-square >}} Rename Key**. +1. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa pen-to-square >}} Rename Key**. 1. Enter the [new key]{.smallcaps} and click **Check Availability**. diff --git a/site/guide/inventory/manage-inventory-fields.qmd b/site/guide/inventory/manage-inventory-fields.qmd index b810431c5c..6c0de8ed4c 100644 --- a/site/guide/inventory/manage-inventory-fields.qmd +++ b/site/guide/inventory/manage-inventory-fields.qmd @@ -119,7 +119,7 @@ Deleting an inventory field will remove it from all records using that field, ev 3. Hover over the field you would like to delete. -4. When the **{{< fa ellipsis-vertical >}}** appears under the Actions column, click on it and select [**{{< fa trash-can >}} Delete Field**]{.red}. +4. When the **{{< fa ellipsis-vertical >}}** menu appears under the Actions column, click on it and select [**{{< fa trash-can >}} Delete Field**]{.red}. 5. Click **Yes, Delete Field** to confirm permanent deletion. diff --git a/site/guide/reporting/export-analytics.qmd b/site/guide/reporting/export-analytics.qmd index d90abd1788..0683d083bc 100644 --- a/site/guide/reporting/export-analytics.qmd +++ b/site/guide/reporting/export-analytics.qmd @@ -26,7 +26,7 @@ Export analytics widgets as comma-delimited tables (`.csv`). 3. Hover over the widget you would like to export. -4. When the **{{< fa ellipsis-vertical >}}** appears, click on it and select **{{< fa download >}} Export CSV**. +4. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa download >}} Export CSV**. 5. After the `.csv` file downloads automatically, open the file to confirm that the data exported is correct and is as expected. diff --git a/site/guide/shared/manage-views/_organization-views.qmd b/site/guide/shared/manage-views/_organization-views.qmd index 1c866adb5a..b269044425 100644 --- a/site/guide/shared/manage-views/_organization-views.qmd +++ b/site/guide/shared/manage-views/_organization-views.qmd @@ -31,7 +31,7 @@ To publish a saved personal view to your organization, you must have permissions 4. Hover over the name of the view you want to share with your organization. -5. When the **{{< fa ellipsis-vertical >}}** appears, click on it and select **{{< fa upload >}} Publish to Organization**. +5. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa upload >}} Publish to Organization**. 6. (Optional) Edit the [view name]{.smallcaps} and [description]{.smallcaps} for your shared view. @@ -49,7 +49,7 @@ To unshare a saved organization view: 3. Hover over the view you want to remove from shared organization access. -4. When the **{{< fa ellipsis-vertical >}}** appears, click on it and select **{{< fa download >}} Unpublish**. +4. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa download >}} Unpublish**. 5. Click **Yes, Unpublish View** to confirm removal of the view from shared organization access. @@ -67,7 +67,7 @@ Deletion of saved views is permanent. 3. Hover over the view you want to remove from your organization. -4. When the **{{< fa ellipsis-vertical >}}** appears, click on it and select **{{< fa trash-can >}} Remove View**. +4. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa trash-can >}} Remove View**. 5. Click **Yes, Remove View** to confirm permanent deletion of that view. diff --git a/site/guide/shared/manage-views/_personal-views.qmd b/site/guide/shared/manage-views/_personal-views.qmd index 3d81b810e4..c681045dd1 100644 --- a/site/guide/shared/manage-views/_personal-views.qmd +++ b/site/guide/shared/manage-views/_personal-views.qmd @@ -63,7 +63,7 @@ Deletion of saved views is permanent. 3. Hover over the name of the view you want to edit or remove. -4. When the **{{< fa ellipsis-vertical >}}** appears, click on it and select: +4. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select: - **{{< fa pencil >}} Edit View** to edit the [view name]{.smallcaps} and [description]{.smallcaps}. Click **Save Changes** to apply your edits. - [**{{< fa trash-can >}} Remove View**]{.red} to delete the view. Click **Yes, Delete View** to confirm permanent deletion of that view. diff --git a/site/guide/templates/customize-document-checker.qmd b/site/guide/templates/customize-document-checker.qmd index 535c206cf0..54767e598e 100644 --- a/site/guide/templates/customize-document-checker.qmd +++ b/site/guide/templates/customize-document-checker.qmd @@ -57,7 +57,7 @@ Default regulations provided by {{< var vm.product >}} cannot be edited.[^2] a. Hover over the regulation or policy you want to edit. -b. When the **{{< fa ellipsis-vertical >}}** appears, click on it and select **{{< fa pencil >}} Edit** to make changes to the: +b. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa pencil >}} Edit** to make changes to the: - **[regulation or policy name]{.smallcaps}** - (Optional) **[description]{.smallcaps}** @@ -106,7 +106,7 @@ Cloned assessments are the same assessment type and are available to the same do a. Hover over the assessment you want to clone. -b. When the **{{< fa ellipsis-vertical >}}** appears, click on it and select **{{< fa copy >}} Clone Assessment** to make changes to the: +b. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa copy >}} Clone Assessment** to make changes to the: - **[regulation or policy name]{.smallcaps}** - (Optional) **[description]{.smallcaps}** @@ -144,7 +144,7 @@ Click **{{}} Search** to enter your keywords, then press * a. Hover over the question you want to edit. -b. When the **{{< fa ellipsis-vertical >}}** appears, click on it and select **{{< fa pencil >}} Edit** to make changes to the **[question]{.smallcaps}**. +b. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa pencil >}} Edit** to make changes to the **[question]{.smallcaps}**. c. Click **Update Question** to save your changes. diff --git a/site/guide/templates/manage-document-templates.qmd b/site/guide/templates/manage-document-templates.qmd index da5aee54a7..76ed999d24 100644 --- a/site/guide/templates/manage-document-templates.qmd +++ b/site/guide/templates/manage-document-templates.qmd @@ -166,5 +166,5 @@ Delete templates no longer required by your organization: **To delete a template without reviewing template details:**

- a. Hover over the template until the **{{< fa ellipsis-vertical >}}** appears, then click on it. + a. Hover over the template until the **{{< fa ellipsis-vertical >}}** menu appears, then click on it. b. Select [**{{< fa trash-can >}} Delete**]{.red}. \ No newline at end of file diff --git a/site/guide/templates/manage-document-types.qmd b/site/guide/templates/manage-document-types.qmd index dfc5752195..39fdcff411 100644 --- a/site/guide/templates/manage-document-types.qmd +++ b/site/guide/templates/manage-document-types.qmd @@ -65,7 +65,7 @@ Once created, customize the available templates for your document type.[^7] a. Hover over the document type you want to edit. -b. When the **{{< fa ellipsis-vertical >}}** appears under the Actions column, click on it and select **{{< fa pencil >}} Edit** to change your document type's details. +b. When the **{{< fa ellipsis-vertical >}}** menu appears under the Actions column, click on it and select **{{< fa pencil >}} Edit** to change your document type's details. c. Click **Update Document Type** to apply your changes. @@ -73,7 +73,7 @@ c. Click **Update Document Type** to apply your changes. a. Hover over the document type you want to delete. -b. When the **{{< fa ellipsis-vertical >}}** appears under the Actions column, click on it and select [**{{< fa trash-can >}} Delete**]{.red} to remove the document type. +b. When the **{{< fa ellipsis-vertical >}}** menu appears under the Actions column, click on it and select [**{{< fa trash-can >}} Delete**]{.red} to remove the document type. c. Click **Yes, Delete Document Type** to confirm permanent deletion of that document type. diff --git a/site/guide/templates/manage-documents.qmd b/site/guide/templates/manage-documents.qmd index d06e02b407..2f039f2206 100644 --- a/site/guide/templates/manage-documents.qmd +++ b/site/guide/templates/manage-documents.qmd @@ -158,7 +158,7 @@ Deletion of documents on records is permanent and cannot be undone. 4. Hover over the document you want to delete. -5. When the **{{< fa ellipsis-vertical >}}** appears, click on it and select [**{{< fa trash-can >}} Delete**]{.red} to remove the document. +5. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select [**{{< fa trash-can >}} Delete**]{.red} to remove the document. 6. Click **Yes, Delete Document** to confirm permanent deletion of that document from the record. diff --git a/site/guide/validation/_add-edit-artifact-statuses.qmd b/site/guide/validation/_add-edit-artifact-statuses.qmd index 25797b00e9..56baa1dc1e 100644 --- a/site/guide/validation/_add-edit-artifact-statuses.qmd +++ b/site/guide/validation/_add-edit-artifact-statuses.qmd @@ -16,7 +16,7 @@ c. When you are done, click **Add Status** to create your new status. a. Hover over the artifact status you'd like to modify. -b. When the **{{< fa ellipsis-vertical >}}** appears, click on it and select: +b. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select: - **{{< fa pencil >}} Edit Details** to change the **[status name]{.smallcaps}** or **[color]{.smallcaps}** of the status, then click **Update Status** to apply your changes. - [**{{< fa trash-can >}} Delete Status**]{.red} to remove the status. Click **OK** to confirm permanent deletion of that status. @@ -48,7 +48,7 @@ c. When you are done, click **Add Status** to create your new status. a. Hover over the artifact status you'd like to modify. -b. When the **{{< fa ellipsis-vertical >}}** appears, click on it and select **{{< fa pencil >}} Edit Details** to change the **[status name]{.smallcaps}** or **[color]{.smallcaps}** of the status. +b. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa pencil >}} Edit Details** to change the **[status name]{.smallcaps}** or **[color]{.smallcaps}** of the status. c. Click **Update Status** to apply your changes. diff --git a/site/guide/validation/_remove-artifact-view.qmd b/site/guide/validation/_remove-artifact-view.qmd index 6fa4ae1767..5007dcf6d3 100644 --- a/site/guide/validation/_remove-artifact-view.qmd +++ b/site/guide/validation/_remove-artifact-view.qmd @@ -8,7 +8,7 @@ SPDX-License-Identifier: AGPL-3.0 AND ValidMind Commercial --> 4. Hover over the name of the view you want to edit or remove. -5. When the **{{< fa ellipsis-vertical >}}** appears, click on it and select: +5. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select: - **{{< fa pencil >}} Edit View** to edit the [view name]{.smallcaps} and [description]{.smallcaps}. Click **Save Changes** to apply your edits. - [**{{< fa trash-can >}} Remove View**]{.red} to delete the view. Click **Yes, Delete View** to confirm permanent deletion of that view. \ No newline at end of file diff --git a/site/guide/validation/configure-assessment-options.qmd b/site/guide/validation/configure-assessment-options.qmd index bd0bce9097..bde328568a 100644 --- a/site/guide/validation/configure-assessment-options.qmd +++ b/site/guide/validation/configure-assessment-options.qmd @@ -56,7 +56,7 @@ c. Click **Add Option** to insert the new option into that validation report tem a. Hover over the assessment option you want to edit. -b. When **{{< fa ellipsis-vertical >}}** appears, select **{{< fa pencil >}} Edit Option**. +b. When the **{{< fa ellipsis-vertical >}}** menu appears, select **{{< fa pencil >}} Edit Option**. c. Update the details for your assessment option: @@ -75,7 +75,7 @@ Assessment options can only be deleted if they are not assigned to sections in a a. Hover over the assessment option you want to edit. -b. When **{{< fa ellipsis-vertical >}}** appears, select [**{{< fa trash-can >}} Delete Option**]{.red}. +b. When the **{{< fa ellipsis-vertical >}}** menu appears, select [**{{< fa trash-can >}} Delete Option**]{.red}. c. Click **Delete Assessment Option** to confirm removal of that option. diff --git a/site/guide/validation/manage-artifact-fields.qmd b/site/guide/validation/manage-artifact-fields.qmd index 8d20312dd7..47c3ce07cd 100644 --- a/site/guide/validation/manage-artifact-fields.qmd +++ b/site/guide/validation/manage-artifact-fields.qmd @@ -117,7 +117,7 @@ Deleting an artifact field will remove it from all artifacts using that field, e 3. Hover over the field you would like to delete. -4. When the **{{< fa ellipsis-vertical >}}** appears under the Actions column, click on it and select [**{{< fa trash-can >}} Delete Field**]{.red}. +4. When the **{{< fa ellipsis-vertical >}}** menu appears under the Actions column, click on it and select [**{{< fa trash-can >}} Delete Field**]{.red}. 5. Click **Yes, Delete Field** to confirm permanent deletion. diff --git a/site/guide/validation/manage-artifact-severities.qmd b/site/guide/validation/manage-artifact-severities.qmd index bba73efccd..16000eb5de 100644 --- a/site/guide/validation/manage-artifact-severities.qmd +++ b/site/guide/validation/manage-artifact-severities.qmd @@ -32,7 +32,7 @@ aliases: 3. Hover over the severity you want to edit. -4. When the **{{< fa ellipsis-vertical >}}** appears, click on it and select **{{< fa pencil >}} Edit Severity**. +4. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa pencil >}} Edit Severity**. 5. Make your changes to the **[name]{.smallcaps}** and **[color]{.smallcaps}** of the severity. @@ -56,7 +56,7 @@ Severities can only be deleted if they are not in use by any artifacts. 3. Hover over the severity you would like to delete. -4. When the **{{< fa ellipsis-vertical >}}** appears, click on it and select [**{{< fa trash-can >}} Delete Severity**]{.red}. +4. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select [**{{< fa trash-can >}} Delete Severity**]{.red}. 5. Click **Delete Artifact Severity** to confirm permanent deletion. diff --git a/site/guide/validation/manage-artifact-types.qmd b/site/guide/validation/manage-artifact-types.qmd index f7ad85c26f..f684bc82f0 100644 --- a/site/guide/validation/manage-artifact-types.qmd +++ b/site/guide/validation/manage-artifact-types.qmd @@ -87,7 +87,7 @@ Custom artifact types support the same features as default types, including stat 3. Hover over the artifact type you want to archive or delete. -5. When the **{{< fa ellipsis-vertical >}}** appears, click [**{{< fa box-archive >}} Archive Artifact Type**]{.red} under the Actions column. +5. When the **{{< fa ellipsis-vertical >}}** menu appears, click [**{{< fa box-archive >}} Archive Artifact Type**]{.red} under the Actions column. 6. Click **Yes, Archive Artifact Type** to confirm archival. @@ -103,13 +103,13 @@ Only artifact types with no active artifact records can be deleted. ::: a. Hover over the artifact type you want to delete. -b. When the **{{< fa ellipsis-vertical >}}** appears, click [**{{< fa trash-can >}} Delete**]{.red} under the Actions column. +b. When the **{{< fa ellipsis-vertical >}}** menu appears, click [**{{< fa trash-can >}} Delete**]{.red} under the Actions column. c. Click **Yes, Delete Artifact Type** to confirm permanent deletion. #### Restore artifact types a. Hover over the artifact type you want to restore. -b. When the **{{< fa ellipsis-vertical >}}** appears, click **{{< fa undo >}} Restore** under the Actions column. +b. When the **{{< fa ellipsis-vertical >}}** menu appears, click **{{< fa undo >}} Restore** under the Actions column. c. Click **Yes, Restore Artifact Type** to confirm restoration. ::: diff --git a/site/guide/workflows/_workflow-states.qmd b/site/guide/workflows/_workflow-states.qmd index 1604c17eaf..39079be847 100644 --- a/site/guide/workflows/_workflow-states.qmd +++ b/site/guide/workflows/_workflow-states.qmd @@ -37,7 +37,7 @@ Add workflow states either while configuring a **{{< fa wifi >}} Workflow State 1. Click on the workflow you'd like to edit the states for. -1. Hover over the workflow state you want to edit until the **{{< fa ellipsis-vertical >}}** appears, then click on it. +1. Hover over the workflow state you want to edit until the **{{< fa ellipsis-vertical >}}** menu appears, then click on it. 1. Select **{{< fa pencil >}} Edit Details**. @@ -62,7 +62,7 @@ If a state is or was previously in use on a workflow within a {{< fa wifi >}} W 1. Click on the workflow you'd like to delete workflow states for. -1. Hover over the workflow state you want to delete until the **{{< fa ellipsis-vertical >}}** appears, then click on it. +1. Hover over the workflow state you want to delete until the **{{< fa ellipsis-vertical >}}** menu appears, then click on it. 1. Select [**{{< fa trash-can >}} Delete Workflow State**]{.red}. diff --git a/site/guide/workflows/configure-workflows.qmd b/site/guide/workflows/configure-workflows.qmd index 6ef4eb217b..aadd9fb483 100644 --- a/site/guide/workflows/configure-workflows.qmd +++ b/site/guide/workflows/configure-workflows.qmd @@ -65,7 +65,7 @@ To create a copy of an existing workflow as a new draft workflow:[^3] 2. Hover over the workflow you'd like to clone.[^4] -3. When the **{{< fa ellipsis-vertical >}}** appears, click on it and select **{{< fa copy >}} Clone Workflow**. +3. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa copy >}} Clone Workflow**. 4. Make your changes to the workflow's **[title]{.smallcaps}** and **[workflow type]{.smallcaps}**. @@ -160,7 +160,7 @@ Deleting workflow steps on workflows active on records may result in malfunction 3. Hover over the workflow you would like to remove.[^11] -4. When the **{{< fa ellipsis-vertical >}}** appears, click on it and select **{{< fa trash-can >}} Delete Workflow**. +4. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa trash-can >}} Delete Workflow**. 5. Click **Yes, Delete Workflow** to permanently remove that workflow and make it inaccessible for any future runs. diff --git a/site/guide/workflows/manage-record-stages.qmd b/site/guide/workflows/manage-record-stages.qmd index ce49222348..c6036b868b 100644 --- a/site/guide/workflows/manage-record-stages.qmd +++ b/site/guide/workflows/manage-record-stages.qmd @@ -36,7 +36,7 @@ aliases: 4. Hover over the stage you'd like to modify. -5. When the **{{< fa ellipsis-vertical >}}** appears, click on it: +5. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it: - Select **{{< fa pencil >}} Edit Details** to modify that stage. - Select **{{< fa trash-can >}} Delete Stage**. On the confirmation dialogue that appears, select **OK** to confirm deletion. From fd4bdd6fba082d89cf1538137c6ba5673bdb9e1f Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Tue, 2 Jun 2026 15:19:37 -0700 Subject: [PATCH 16/35] WIP: Implement custom integratons --- .../implement-custom-integrations.qmd | 57 ++++++++++--------- 1 file changed, 29 insertions(+), 28 deletions(-) diff --git a/site/guide/integrations/implement-custom-integrations.qmd b/site/guide/integrations/implement-custom-integrations.qmd index 4f99ff12e9..0d7981ce6c 100644 --- a/site/guide/integrations/implement-custom-integrations.qmd +++ b/site/guide/integrations/implement-custom-integrations.qmd @@ -10,19 +10,7 @@ Connect {{< var vm.product >}} to third-party systems that aren't supported out Custom integrations let you link resources, such as AI systems or records such as models, from internal registries, proprietary platforms, or any service you control to the {{< var vm.product >}} inventory. -::: {.attn} - -## Prerequisites - -- [x] {{< var link.login >}} -- [x] You are assigned a role that can manage permissions.[^1] -- [x] Your integration service is deployed and accessible from {{< var vm.product >}}. -- [x] You have the endpoint URL and API key for your integration service. -- [x] A secret containing your API key exists in integration secrets.[^2] - -::: - -## How custom integrations work +### How do custom integrations work? To create a custom integration, you build a service that implements the reference API endpoints: @@ -43,13 +31,26 @@ flowchart LR API <--> DATA ``` +::: {.attn} + +## Prerequisites + +- [x] {{< var link.login >}} +- [x] You are assigned a role that can manage permissions.[^1] +- [x] Your integration service is deployed and accessible from {{< var vm.product >}}. +- [x] You have the endpoint URL and API key for your integration service. +- [x] A secret containing your API key exists in integration secrets.[^2] + +::: + ## Reference API The reference API defines the HTTP endpoints your service must implement. {{< var vm.product >}} calls these endpoints to discover and synchronize resources. -::: {.callout title="Reference implementation"} -A reference implementation with sample code is available. Contact your ValidMind representative for access. -::: +Bidirectional sync +: When linking resources, {{< var vm.product >}} can write metadata back to your system via `PUT` requests. This bidirectional sync enables you to store the {{< var vm.product >}} record identifier (`vm_cuid`) alongside your external records, creating a two-way link between systems. + +::: {.panel-tabset} ### Required endpoints @@ -99,18 +100,13 @@ Your `/models` (records) endpoint should return objects with these fields: {{< var vm.product >}} authenticates requests using the `X-API-Key` header. Your service should validate this key and return `401 Unauthorized` if invalid or missing. -### Bidirectional sync - -When linking resources, {{< var vm.product >}} can write metadata back to your system via `PUT` requests. This bidirectional sync enables you to store the {{< var vm.product >}} record identifier (`vm_cuid`) alongside your external records, creating a two-way link between systems. - -
- -::: {.callout-button .pl4 .nt4} -::: {.callout collapse="true" appearance="minimal"} +::: ### Code examples -**GET /models response** +::: {.panel-tabset} + +#### `GET /models` response ```json [ @@ -129,7 +125,9 @@ When linking resources, {{< var vm.product >}} can write metadata back to your s ] ``` -**PUT /models/{id} request body** (what {{< var vm.product >}} sends) +#### `PUT /models/{id}` request body + +What {{< var vm.product >}} sends: ```json { @@ -137,7 +135,7 @@ When linking resources, {{< var vm.product >}} can write metadata back to your s } ``` -**Health check response** +#### Health check response ```json { @@ -145,7 +143,7 @@ When linking resources, {{< var vm.product >}} can write metadata back to your s } ``` -**Error response format** +#### Error response format ```json { @@ -154,6 +152,9 @@ When linking resources, {{< var vm.product >}} can write metadata back to your s ``` ::: + +::: {.callout title="Reference implementation"} +A reference implementation with sample code is available. Contact your {{< var vm.product >}} representative for access. ::: ## Set up custom integrations From 5df6819795408cb59ab22726684e56bd0fcfdb6a Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Tue, 2 Jun 2026 15:22:29 -0700 Subject: [PATCH 17/35] saqve --- .../implement-custom-integrations.qmd | 47 ++++++++++++------- 1 file changed, 29 insertions(+), 18 deletions(-) diff --git a/site/guide/integrations/implement-custom-integrations.qmd b/site/guide/integrations/implement-custom-integrations.qmd index 0d7981ce6c..05c07f446b 100644 --- a/site/guide/integrations/implement-custom-integrations.qmd +++ b/site/guide/integrations/implement-custom-integrations.qmd @@ -159,24 +159,9 @@ A reference implementation with sample code is available. Contact your {{< var v ## Set up custom integrations -### Best practices - -**Secure your service** -: Deploy your integration service behind HTTPS. Validate the API key on every request. - -**Handle errors gracefully** -: Return appropriate HTTP status codes (`400`, `401`, `404`, `500`) and error messages so users can troubleshoot connection issues. - -**Paginate large responses** -: If your external system contains many resources, implement pagination to keep responses fast. - -**Monitor availability** -: Track the health of your integration service. {{< var vm.product >}} displays connection status in the UI, so users notice outages quickly. - -**Version your API** -: Include version information in your API path (`/api/v1/`) to support future changes without breaking existing integrations. +::: {.panel-tabset} -### Add a custom integration +### 1. Add a custom integration 1. In the left sidebar, click **{{< fa gear >}} Settings**. @@ -207,7 +192,7 @@ A reference implementation with sample code is available. Contact your {{< var v If the test succeeds, the message **{{< fa check-circle >}} Connection successful** displays. -### Link resources +### 2. Link resources After configuring your custom integration, link resources to records in the inventory: @@ -265,6 +250,32 @@ Use this flow for custom integrations configured as an **Artifact / Ticket Sourc :::: +::: + +
+ +::: {.callout-button .pl4 .nt4} +::: {.callout collapse="true" appearance="minimal"} +### What are some best practices for implementing custom integrations? + +**Secure your service** +: Deploy your integration service behind HTTPS. Validate the API key on every request. + +**Handle errors gracefully** +: Return appropriate HTTP status codes (`400`, `401`, `404`, `500`) and error messages so users can troubleshoot connection issues. + +**Paginate large responses** +: If your external system contains many resources, implement pagination to keep responses fast. + +**Monitor availability** +: Track the health of your integration service. {{< var vm.product >}} displays connection status in the UI, so users notice outages quickly. + +**Version your API** +: Include version information in your API path (`/api/v1/`) to support future changes without breaking existing integrations. + +::: +::: + [^1]: [Manage permissions](/guide/configuration/manage-permissions.qmd) From e9da6e659c6dcaa9e29f27035a625beb8812806e Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Tue, 2 Jun 2026 15:36:16 -0700 Subject: [PATCH 18/35] Edit: Implement custom integrations --- .../implement-custom-integrations.qmd | 108 ++++++++---------- 1 file changed, 47 insertions(+), 61 deletions(-) diff --git a/site/guide/integrations/implement-custom-integrations.qmd b/site/guide/integrations/implement-custom-integrations.qmd index 05c07f446b..eec01de6bd 100644 --- a/site/guide/integrations/implement-custom-integrations.qmd +++ b/site/guide/integrations/implement-custom-integrations.qmd @@ -161,94 +161,73 @@ A reference implementation with sample code is available. Contact your {{< var v ::: {.panel-tabset} -### 1. Add a custom integration +### 1. Add custom integration -1. In the left sidebar, click **{{< fa gear >}} Settings**. +a. In the left sidebar, click **{{< fa gear >}} Settings**. -2. Under {{< fa puzzle-piece >}} Integrations, select **Connections**. +b. Under {{< fa puzzle-piece >}} Integrations, select **Connections**. -3. Click **{{< fa plus >}} Add Connection**. +c. Click **{{< fa plus >}} Add Connection**. -4. In the modal that opens, select **Custom Integration**. +d. In the modal that opens, select **Custom Integration**. -5. Enter the: +e. Enter the: - - **[integration name]{.smallcaps}** — A display name to identify this integration. - - **[description]{.smallcaps}** (optional) — Additional details about the intended usage. - - **[endpoint url]{.smallcaps}** — The base URL of your deployed integration that implements the reference API. - - **[api key]{.smallcaps}** — Select a secret containing the API key for authenticating with your integration. - - **[integration types]{.smallcaps}** — Select which types of objects this integration provides: - - **Record Registry** — Sync models from your external system. - - **Artifact / Ticket Source** — Sync artifacts or tickets from your external system. - - **[initial status]{.smallcaps}** — Set to `Operational` to enable immediately or `Disabled` to finish setup later. + - **[integration name]{.smallcaps}** -- A display name to identify this integration. + - **[description]{.smallcaps}** (optional) -- Additional details about the intended usage. + - **[endpoint url]{.smallcaps}** -- The base URL of your deployed integration that implements the reference API. + - **[api key]{.smallcaps}** -- Select a secret containing the API key for authenticating with your integration. + - **[integration types]{.smallcaps}** -- Select which types of objects this integration provides: + - **Record Registry** -- Sync models from your external system. + - **Artifact / Ticket Source** -- Sync artifacts or tickets from your external system. + - **[initial status]{.smallcaps}** -- Set to `Operational` to enable immediately or `Disabled` to finish setup later. -6. Click **Save Integration**. +f. Click **Save Integration**. -7. Test the connection to verify your service is reachable: +g. Test the connection to verify your service is reachable: - a. Hover over the custom integration you created. - - b. When the **{{< fa ellipsis-vertical >}}** menu appears, click it and select **{{< fa circle-check >}} Test Connection**. - - If the test succeeds, the message **{{< fa check-circle >}} Connection successful** displays. + i. Hover over the custom integration you created. + ii. When the **{{< fa ellipsis-vertical >}}** menu appears, click it and select **{{< fa circle-check >}} Test Connection**. -### 2. Link resources - -After configuring your custom integration, link resources to records in the inventory: - -:::: {.panel-tabset} - -### Link Model - -Use this flow for custom integrations configured as a **Record Registry** or with **Model Registry** selected as an integration type: - -1. In the left sidebar, click **{{< fa cubes >}} Inventory**. - -2. Select a record or find your record by applying a filter or searching for it.[^3] - -3. Click the **Integrations** tab. - -4. Locate your custom integration connection. + If the test succeeds, the message **{{< fa check-circle >}} Connection successful** is displayed. -5. When the **{{< fa ellipsis-vertical >}}** menu appears, click it and select **{{< fa link >}} Link Model**. - -6. In the **Link to External System** modal, select the external model. - - If your integration exposes multiple resource types, select the resource type first to filter the available models. - -7. Select a **Sync Frequency**. +### 2. Link resources -8. Click **Test Connection** to verify the binding configuration. +After configuring your custom integration, link resources to inventory records or artifacts: -9. Click **Link Model**. +#### Link inventory records to models -### Link Ticket +a. In the left sidebar, click **{{< fa cubes >}} Inventory**. -Use this flow for custom integrations configured as an **Artifact / Ticket Source**: +b. Select a record or find your record by applying a filter or searching for it.[^3] -1. In the left sidebar, click **{{< fa cubes >}} Inventory**. +c. Click the **Integrations** tab. -2. Select the record that contains the finding you want to link. +d. Select your custom integration connection. -3. Open the finding. +e. When the **{{< fa ellipsis-vertical >}}** menu appears, click it and select **{{< fa link >}} Link Model**: -4. Click the **Integrations** tab. + - Select the external model to link.[^4] + - Select a **Sync Frequency**. + - Click **Test Connection** to verify the binding configuration. -5. Locate your custom integration connection. +f. Click **Link Model**. -6. When the **{{< fa ellipsis-vertical >}}** menu appears, click it and select **{{< fa link >}} Link Artifact**. +#### Link artifacts to tickets -7. In the **Link to External System** modal, search for or select the external ticket. +a. Locate the artifact you want to link to a ticket.[^5] - If the ticket isn't available in the list, enter the ticket or issue ID from the external system. +b. Click the **Integrations** tab. -8. Select a **Sync Frequency**. +c. Select your custom integration connection. -9. Click **Test Connection** to verify the binding configuration. +d. When the **{{< fa ellipsis-vertical >}}** menu appears, click it and select **{{< fa link >}} Link Artifact**: -10. Click **Link Ticket**. + - Search for or select the external ticket to link.[^6] + - Select a **Sync Frequency**. + - Click **Test Connection** to verify the binding configuration. -:::: +e. Click **Link Ticket**. ::: @@ -276,6 +255,7 @@ Use this flow for custom integrations configured as an **Artifact / Ticket Sourc ::: ::: + [^1]: [Manage permissions](/guide/configuration/manage-permissions.qmd) @@ -283,3 +263,9 @@ Use this flow for custom integrations configured as an **Artifact / Ticket Sourc [^2]: [Manage secrets](manage-secrets.qmd) [^3]: [Working with the inventory](/guide/inventory/working-with-the-inventory.qmd#search-filter-and-sort-records) + +[^4]: If your integration exposes multiple resource types, select the resource type first to filter the available models. + +[^5]: [View and filter artifacts](/guide/validation/view-filter-artifacts.qmd) + +[^6]: If the ticket isn't available in the list, enter the ticket or issue ID from the external system. From 437741efa71d4508ddf9d38db20d867999df5500 Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Tue, 2 Jun 2026 15:39:46 -0700 Subject: [PATCH 19/35] Edit: Managing integrations --- site/guide/integrations/managing-integrations.qmd | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/site/guide/integrations/managing-integrations.qmd b/site/guide/integrations/managing-integrations.qmd index a72d853b8e..3449951eb6 100644 --- a/site/guide/integrations/managing-integrations.qmd +++ b/site/guide/integrations/managing-integrations.qmd @@ -12,7 +12,7 @@ listing: sort: false fields: [title, description] contents: - - manage-secrets.qmd + - manage-secrets.qmd - configure-connections.qmd - configure-analytics-exports.qmd - implement-custom-integrations.qmd @@ -34,7 +34,7 @@ graph TD F[Testing & documentation] G[Service integration] H[AI assistants] - + A <--> B A <--> C A <--> D @@ -46,6 +46,8 @@ graph TD +::: {.panel-tabset} + ### Analytics and reporting Access built-in analytics and dashboards. Or, import analytics data into external reporting tools to build unified reports that combine {{< var vm.product >}} insights with other sources. Schedule exports of analytics datasets to cloud storage for BI tools like Tableau, Snowflake, and Looker.[^1][^6] @@ -137,12 +139,12 @@ Manage record lifecycles by configuring workflows to transition records through :::: {.flex .flex-wrap .justify-around} ::: {.w-50 .pr5} -**From {{< var vm.product >}}** +**From {{< var vm.product >}}** Send HTTP requests to external services when a record reaches a specific stage or to trigger updates in other systems. ::: ::: {.w-50 .pl3 .pr3} -**From external systems** +**From external systems** Send webhooks (POST requests) into {{< var vm.product >}} to start workflows or to resume workflows that are paused and waiting for input. ::: @@ -244,6 +246,8 @@ Connect AI assistants to {{< var vm.product >}} using the Model Context Protocol :::: +::: + ## Key concepts From 8694f6eb4a84b66d2a37a1f1592a7580f409f622 Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Tue, 2 Jun 2026 15:55:23 -0700 Subject: [PATCH 20/35] Edit: Manage secretes --- .../configure-analytics-exports.qmd | 2 +- .../integrations/configure-connections.qmd | 2 +- site/guide/integrations/manage-secrets.qmd | 145 +++++++++--------- 3 files changed, 71 insertions(+), 78 deletions(-) diff --git a/site/guide/integrations/configure-analytics-exports.qmd b/site/guide/integrations/configure-analytics-exports.qmd index 5cdc540bbe..d198b1d63b 100644 --- a/site/guide/integrations/configure-analytics-exports.qmd +++ b/site/guide/integrations/configure-analytics-exports.qmd @@ -142,7 +142,7 @@ The export stops or starts running depending on the action you take. ## Delete analytics export configurations -::: {.callout-warning title="Deleting an analytics export configuration is permanent."} +::: {.callout-important title="Deleting an analytics export configuration is permanent."} Data you exported previously will remain in the cloud storage destination unchanged. ::: diff --git a/site/guide/integrations/configure-connections.qmd b/site/guide/integrations/configure-connections.qmd index bf9b3f3cc1..8d56f68f7b 100644 --- a/site/guide/integrations/configure-connections.qmd +++ b/site/guide/integrations/configure-connections.qmd @@ -268,7 +268,7 @@ If the test is successful, the message **{{< fa check-circle >}} Connection succ ## Delete connections -::: {.callout-warning title="Deleting a connection is permanent."} +::: {.callout-important title="Deleting a connection is permanent."} ::: 1. In the left sidebar, click **{{< fa gear >}} Settings**. diff --git a/site/guide/integrations/manage-secrets.qmd b/site/guide/integrations/manage-secrets.qmd index 9b80cf8101..f352afbc5a 100644 --- a/site/guide/integrations/manage-secrets.qmd +++ b/site/guide/integrations/manage-secrets.qmd @@ -24,171 +24,164 @@ You store each secret once and then reuse it across supported integrations. Integration secrets authenticate persistent connections to external platforms. You store each secret once and then reuse it across supported integrations by selecting it from a dropdown when configuring a connection. -### Add integration secrets - 1. In the left sidebar, click **{{< fa gear >}} Settings**. -2. Under {{< fa puzzle-piece >}} Integrations, select **Secrets**, then open the **Integration Secrets** tab. +2. Under {{< fa puzzle-piece >}} Integrations, select **Secrets**, then open the **Integration Secrets** tab to view, add, edit, revoke, or delete integration secrets: + +::: {.panel-tabset} + +### View integration secret details + +Click the secret you want to view. + +### Add integration secrets -3. Click **{{< fa plus >}} Add Secret**. +a. Click **{{< fa plus >}} Add Secret**. -4. Fill in the details: +b. Fill in the details: - **[secret name]{.smallcaps}** — Enter an easily identifiable label that indicates which system the secret belongs to. - **[description]{.smallcaps}** (optional) — Summarize when to use the secret or who owns it so other admins know whether it is safe to re-use. - **[secret value]{.smallcaps}** — Paste the credential exactly as issued by the external system. The value is encrypted and never displayed in plaintext again. - **[expiration date]{.smallcaps}** (optional) — Set a rotation reminder if the external system enforces key expiry. -5. Click **Create Secret**. +c. Click **Create Secret**. The secret can now be selected when configuring connections.[^2] -::: {.column-margin} -::: {.callout-tip title="For secrets with expiration dates"} -Recommended: Create a new secret and update integrations that should use it.

Or, to continue using the same secret, extend the expiration date. -::: -::: - -### View integration secret details - -1. In the left sidebar, click **{{< fa gear >}} Settings**. - -2. Under {{< fa puzzle-piece >}} Integrations, select **Secrets**, then open the **Integration Secrets** tab. - -3. Click the secret you want to view. - ### Edit integration secrets -1. In the left sidebar, click **{{< fa gear >}} Settings**. - -2. Under {{< fa puzzle-piece >}} Integrations, select **Secrets**, then open the **Integration Secrets** tab. +a. Click the secret you want to modify -3. Click the secret you want to change. +b. In the modal that appears, click **Edit Secret**. -4. In the modal that appears, click **Edit Secret**. - -5. Make your changes. For example: +c. Make your changes. For example: - **[secret value]{.smallcaps}** — Paste a new value if the external platform issued a replacement token. - **[expiration date]{.smallcaps}** (optional) — Extend the expiry window if you want to keep the secret active for longer. -6. Click **Update Secret** to save your changes. +d. Click **Update Secret** to save your changes. ### Revoke integration secrets -1. In the left sidebar, click **{{< fa gear >}} Settings**. - -2. Under {{< fa puzzle-piece >}} Integrations, select **Secrets**, then open the **Integration Secrets** tab. +a. Hover over the secret you want to revoke. -3. Hover over the secret you want to change. +b. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa triangle-exclamation >}} Revoke**. -4. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa triangle-exclamation >}} Revoke**. - -5. On the confirmation dialogue that appears, select **OK** to confirm revocation. +c. On the confirmation dialogue that appears, select **OK** to confirm revocation. Revocation immediately disables the secret so it can no longer be used, but does not remove it. ### Delete integration secrets -::: {.callout-warning title="Deleting a secret is permanent."} +::: {.callout-important title="Deleting a secret is permanent."} Be sure to update any connections that depend on this secret before deleting it. ::: -1. In the left sidebar, click **{{< fa gear >}} Settings**. +a. Hover over the secret you want to remove. -2. Under {{< fa puzzle-piece >}} Integrations, select **Secrets**, then open the **Integration Secrets** tab. +b. When the **{{< fa ellipsis-vertical >}}** menu appears, click it, then select **{{< fa trash >}} Delete**. -3. Hover over the secret you want to remove. +c. In the confirmation dialog, select **OK** to confirm deletion. + +::: -4. When the **{{< fa ellipsis-vertical >}}** menu appears, click it, then select **{{< fa trash >}} Delete**. +
-5. In the confirmation dialog, select **OK** to confirm deletion. +::: {.callout-button .pl4 .nt4} +::: {.callout collapse="true" appearance="minimal"} +### How should I manage secrets with expiration dates? + +(Recommended) Create a new secret and update integrations that should use it. + +Or, to continue using the same secret, extend the expiration date. + +::: +::: ## Webhook secrets Webhook secrets authenticate outgoing HTTP requests in workflows. Instead of hardcoding credentials directly into HTTP Request step header values, you store secrets once and reference them using `{{secret:name}}` syntax. HTTPS is enforced when secrets are used. -### Add webhook secrets - 1. In the left sidebar, click **{{< fa gear >}} Settings**. -2. Under {{< fa puzzle-piece >}} Integrations, select **Secrets**, then open the **Webhook Secrets** tab. +2. Under {{< fa puzzle-piece >}} Integrations, select **Secrets**, then open the **Webhook Secrets** tab to view, add, edit, revoke, or delete webhook secrets: + +::: {.panel-tabset} + +### View webhook secret details + +Click the secret you want to view. + +### Add webhook secrets -3. Click **{{< fa plus >}} Add Secret**. +a. Click **{{< fa plus >}} Add Secret**. -4. Fill in the details: +b. Fill in the details: - **[secret name]{.smallcaps}** — Enter an easily identifiable label. Use this name to reference the secret: `{{secret:secret_name}}`. - **[description]{.smallcaps}** (optional) — Summarize what the secret is used for. - **[secret value]{.smallcaps}** — Paste the credential. The value is encrypted at rest and never displayed in plaintext again. - **[expiration date]{.smallcaps}** (optional) — Set a rotation reminder if the credential expires. -5. Click **Create Secret**. +c. Click **Create Secret**. The secret can now be referenced in HTTP Request step headers using `{{secret:secret_name}}` syntax. -#### Usage example +
+ +::: {.callout-button .pl4 .nt4} +::: {.callout collapse="true" appearance="minimal"} +### Webhook secret usage example + In a workflow HTTP Request step, add a header: -- **Header Name**: `Authorization` +- **Header Name**: `Authorization` - **Header Value**: `Bearer {{secret:jira_pat}}` At runtime, the workflow engine replaces `{{secret:jira_pat}}` with the stored value and sends the request over HTTPS. -### View webhook secret details - -1. In the left sidebar, click **{{< fa gear >}} Settings**. - -2. Under {{< fa puzzle-piece >}} Integrations, select **Secrets**, then open the **Webhook Secrets** tab. - -3. Click the secret you want to view. +::: +::: ### Edit webhook secrets -1. In the left sidebar, click **{{< fa gear >}} Settings**. - -2. Under {{< fa puzzle-piece >}} Integrations, select **Secrets**, then open the **Webhook Secrets** tab. +a. Click the secret you want to modify. -3. Click the secret you want to change. - -4. Make your changes. For example: +b. Make your changes. For example: - **[secret value]{.smallcaps}** — Paste a new value if the credential was rotated. - **[expiration date]{.smallcaps}** (optional) — Extend the expiry window. -5. Click **Update Secret** to save your changes. +c. Click **Update Secret** to save your changes. ### Revoke webhook secrets -1. In the left sidebar, click **{{< fa gear >}} Settings**. - -2. Under {{< fa puzzle-piece >}} Integrations, select **Secrets**, then open the **Webhook Secrets** tab. - -3. Hover over the secret you want to revoke. +a. Hover over the secret you want to revoke. -4. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa triangle-exclamation >}} Revoke**. +b. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa triangle-exclamation >}} Revoke**. -5. On the confirmation dialogue that appears, select **OK** to confirm revocation. +c. On the confirmation dialogue that appears, select **OK** to confirm revocation. Revocation immediately disables the secret. Any HTTP Request workflow steps referencing it will fail until you update them to use an active secret. ### Delete webhook secrets -::: {.callout-warning title="Deleting a secret is permanent."} +::: {.callout-important title="Deleting a secret is permanent."} Be sure to update any HTTP Request workflow steps that depend on this secret before deleting it. ::: -1. In the left sidebar, click **{{< fa gear >}} Settings**. +a. Hover over the secret you want to remove. -2. Under {{< fa puzzle-piece >}} Integrations, select **Secrets**, then open the **Webhook Secrets** tab. +b. When the **{{< fa ellipsis-vertical >}}** menu appears, click it, then select **{{< fa trash >}} Delete**. -3. Hover over the secret you want to remove. +c. In the confirmation dialog, select **OK** to confirm deletion. -4. When the **{{< fa ellipsis-vertical >}}** menu appears, click it, then select **{{< fa trash >}} Delete**. +::: -5. In the confirmation dialog, select **OK** to confirm deletion. [^1]: [Manage permissions](/guide/configuration/manage-permissions.qmd) + [^2]: [Configure connections](/guide/integrations/configure-connections.qmd) From bc353145edf08bfc155db2cada9a2ade5ed9dc4e Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Tue, 2 Jun 2026 16:04:38 -0700 Subject: [PATCH 21/35] Edit: Configure connections --- .../integrations/configure-connections.qmd | 158 +++++++++--------- 1 file changed, 82 insertions(+), 76 deletions(-) diff --git a/site/guide/integrations/configure-connections.qmd b/site/guide/integrations/configure-connections.qmd index 8d56f68f7b..ebc55aa89b 100644 --- a/site/guide/integrations/configure-connections.qmd +++ b/site/guide/integrations/configure-connections.qmd @@ -6,28 +6,17 @@ title: "Configure connections" date: last-modified --- -Connections link {{< var vm.product >}} with the external systems your teams already use. +Connections link {{< var vm.product >}} with the external systems your teams already use. Each connection enables you to authenticate and keep events flowing between platforms such as Jira, ServiceNow, Amazon Bedrock and SageMaker, MLflow, and GitLab. -::: {.attn} - -## Prerequisites - -- [x] {{< var link.login >}} -- [x] You can manage workspace settings.[^1] -- [x] The integration's required secrets already exist in integration secrets.[^2] -- [x] You coordinated with the external system owner to obtain the required credentials and configuration details for the connection. - -::: - -## Supported connections +### Supported connections :::: {.panel-tabset} ### Jira -A project tracking tool that teams use to plan work, track progress, and manage issues across a project lifecycle. +A project tracking tool that teams use to plan work, track progress, and manage issues across a project lifecycle. Required configuration details: @@ -42,7 +31,7 @@ Required configuration details: ### ServiceNow -An IT service management platform that helps teams handle requests incidents assets and other operational workflows. +An IT service management platform that helps teams handle requests incidents assets and other operational workflows. Required configuration details: @@ -56,14 +45,14 @@ Required configuration details: : The ServiceNow username. **[password]{.smallcaps}** -: The secret that stores the ServiceNow password. +: The secret that stores the ServiceNow password. **[servicenow board]{.smallcaps}** : The board or table that receives linked tickets. ### Amazon SageMaker -An ML development service that lets teams build train and deploy models at scale. +An ML development service that lets teams build train and deploy models at scale. Required configuration details: @@ -155,6 +144,33 @@ Required configuration details: :::: +::: {.attn} + +## Prerequisites + +- [x] {{< var link.login >}} +- [x] You can manage workspace settings.[^1] +- [x] The integration's required secrets already exist in integration secrets.[^2] +- [x] You coordinated with the external system owner to obtain the required credentials and configuration details for the connection. + +::: + +## View connection details + +The connection detail page provides a dashboard-style view for managing a connection, its linked records, and metric sources. + +1. In the left sidebar, click **{{< fa gear >}} Settings**. + +2. Under {{< fa puzzle-piece >}} Integrations, select **Connections**. + +3. Click the connection you want to view. + +The connection detail page displays: + +- **Connection status** — Shows whether the connection is operational, disabled, or experiencing issues. +- **Linked records** — Lists all {{< var vm.product >}} inventory records linked to resources in this integration. +- **Monitoring** — For integrations that provide metrics (such as Amazon Bedrock), shows configured metric sources and their sync status. + ## Add connections 1. In the left sidebar, click **{{< fa gear >}} Settings**. @@ -174,31 +190,48 @@ Required configuration details: - **[password]{.smallcaps}** — The secret that stores the secret key, password, or token required by the external service. - **[initial status]{.smallcaps}** — Set to `Operational` to enable immediately or `Disabled` if you plan to finish setup later. -6. Click **Save Integration**. +6. Click **Save Integration**. You can now [test the connection](#test-connections) to ensure it is working as expected. -## View connection details +## Edit connections -The connection detail page provides a dashboard-style view for managing a connection, its linked records, and metric sources. +1. In the left sidebar, click **{{< fa gear >}} Settings**. + +2. Under {{< fa puzzle-piece >}} Integrations, select **Connections**. + +3. Click the connection you want to edit. + +4. In the modal that appears, click **Edit Connection**. + +5. Make your changes. For example: + + - **[tracking uri]{.smallcaps}** — Change the URI needed for the connection. + - **[password]{.smallcaps}** — Change the secret that stores the secret key, password, or token required by the external service. + +6. Click **Update Integration** to save your changes. + +## Test connections 1. In the left sidebar, click **{{< fa gear >}} Settings**. 2. Under {{< fa puzzle-piece >}} Integrations, select **Connections**. -3. Click the connection you want to view. +3. Hover over the connection you want to test. -The connection detail page displays: +4. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa circle-check >}} Test Connection**. -- **Connection status** — Shows whether the connection is operational, disabled, or experiencing issues. -- **Linked records** — Lists all {{< var vm.product >}} inventory records linked to resources in this integration. -- **Monitoring** — For integrations that provide metrics (such as Amazon Bedrock), shows configured metric sources and their sync status. +If the test is successful, the message **{{< fa check-circle >}} Connection successful** displays. + +## Monitor connections -## Monitor connection health +::: {.panel-tabset} + +### Monitor connection health The Connections page provides visibility into the health of your integrations at a glance. -### Health indicators +#### Health indicators Each connection displays a status indicator: @@ -206,7 +239,7 @@ Each connection displays a status indicator: - [Needs Attention]{.bubble .orange-bg} — The connection has issues that need to be resolved. - [Disabled]{.bubble} — The connection has been manually disabled. -### View connections requiring attention +#### View connections requiring attention Connections with errors or warnings display a status indicator, such as [{{< fa triangle-exclamation >}} 1 link with sync errors]{.bubble .yellow-bg}. Review these connections to: @@ -215,7 +248,7 @@ Connections with errors or warnings display a status indicator, such as [{{< fa 3. Verify the external service is accessible. 4. Test the connection after making changes. -### View linked records +#### View linked records To see which records (models) use a specific connection: @@ -227,7 +260,7 @@ To see which records (models) use a specific connection: 4. Review the linked records table, which shows the **VM Model** ({{< var vm.product >}} inventory record) and **External Name** (the linked external record) for each connection. -### View metric sources +#### View metric sources For connections that provide monitoring metrics, such as Amazon Bedrock: @@ -237,34 +270,35 @@ For connections that provide monitoring metrics, such as Amazon Bedrock: 3. These metrics can be added to monitoring documents for records linked to this connection.[^5] -## Edit connections +### View monitoring data -1. In the left sidebar, click **{{< fa gear >}} Settings**. +Some integrations, such as Amazon Bedrock, can provide metrics that sync into {{< var vm.product >}} for use in monitoring documents. Metric sources define which external evaluations or metrics are available for a linked record. -2. Under {{< fa puzzle-piece >}} Integrations, select **Connections**. +#### Access the Monitoring tab -3. Click the connection you want to edit. - -4. In the modal that appears, click **Edit Connection**. +1. In the left sidebar, click **{{< fa gear >}} Settings**. -5. Make your changes. For example: +2. Under {{< fa puzzle-piece >}} Integrations, select **Connections**. - - **[tracking uri]{.smallcaps}** — Change the URI needed for the connection. - - **[password]{.smallcaps}** — Change the secret that stores the secret key, password, or token required by the external service. +3. Click on a connection that supports metric sources, for example a **Bedrock** connection. -6. Click **Update Integration** to save your changes. +4. On the connection detail page, select the **Monitoring** tab. -## Test connections + This section lists all configured metric sources, their sync status, and when they last synced. -1. In the left sidebar, click **{{< fa gear >}} Settings**. +#### How metric sources work -2. Under {{< fa puzzle-piece >}} Integrations, select **Connections**. +When a record in the {{< var vm.product >}} inventory is linked to an external resource, such as a Bedrock agent, available evaluations from that resource become metric sources. These metrics: -3. Hover over the connection you want to test. +- Sync automatically on a scheduled interval. +- Appear in the **From Integration** tab when adding metrics over time to monitoring documents.[^6] +- Support threshold configuration for alerting when values exceed acceptable limits. -4. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa circle-check >}} Test Connection**. +::: {.callout title="Bedrock Agent Evaluations"} +For Amazon Bedrock connections, metric sources include agent evaluation results such as accuracy, helpfulness, and other assessment metrics. Link a record to a Bedrock agent to enable these metrics.[^6] +::: -If the test is successful, the message **{{< fa check-circle >}} Connection successful** displays. +::: ## Delete connections @@ -281,34 +315,6 @@ If the test is successful, the message **{{< fa check-circle >}} Connection succ 5. In the confirmation dialog, select **OK** to confirm deletion. -## View monitoring data - -Some integrations, such as Amazon Bedrock, can provide metrics that sync into {{< var vm.product >}} for use in monitoring documents. Metric sources define which external evaluations or metrics are available for a linked record. - -### Access the Monitoring tab - -1. In the left sidebar, click **{{< fa gear >}} Settings**. - -2. Under {{< fa puzzle-piece >}} Integrations, select **Connections**. - -3. Click on a connection that supports metric sources, for example a **Bedrock** connection. - -4. On the connection detail page, select the **Monitoring** tab. - - This section lists all configured metric sources, their sync status, and when they last synced. - -### How metric sources work - -When a record in the {{< var vm.product >}} inventory is linked to an external resource, such as a Bedrock agent, available evaluations from that resource become metric sources. These metrics: - -- Sync automatically on a scheduled interval. -- Appear in the **From Integration** tab when adding metrics over time to monitoring documents.[^5] -- Support threshold configuration for alerting when values exceed acceptable limits. - -::: {.callout title="Bedrock Agent Evaluations"} -For Amazon Bedrock connections, metric sources include agent evaluation results such as accuracy, helpfulness, and other assessment metrics. Link a record to a Bedrock agent to enable these metrics.[^6] -::: - [^1]: [Manage permissions](/guide/configuration/manage-permissions.qmd) @@ -319,6 +325,6 @@ For Amazon Bedrock connections, metric sources include agent evaluation results [^4]: [Implement custom integrations](implement-custom-integrations.qmd) -[^5]: [Work with metrics over time](/guide/monitoring/work-with-metrics-over-time.qmd#add-integration-metrics) +[^5]: [Link external records](link-external-records.qmd) -[^6]: [Link external records](link-external-records.qmd) +[^6]: [Work with metrics over time](/guide/monitoring/work-with-metrics-over-time.qmd#add-integration-metrics) From 7f86d7378adc44e1098323db511f12e074b40f6e Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Tue, 2 Jun 2026 16:11:39 -0700 Subject: [PATCH 22/35] Edit: Connect AI assistants via MCP --- .../mcp/connect-ai-assistants-via-mcp.qmd | 56 ++++++++----------- 1 file changed, 24 insertions(+), 32 deletions(-) diff --git a/site/guide/mcp/connect-ai-assistants-via-mcp.qmd b/site/guide/mcp/connect-ai-assistants-via-mcp.qmd index 39b3f01112..ecb5c8e180 100644 --- a/site/guide/mcp/connect-ai-assistants-via-mcp.qmd +++ b/site/guide/mcp/connect-ai-assistants-via-mcp.qmd @@ -8,20 +8,7 @@ date: last-modified The {{< var vm.product >}} MCP (Model Context Protocol) server enables AI assistants to query and manage your inventory through natural language, providing seamless access to records (models), artifacts (findings), templates, and custom fields. - -::: {.attn} - -## Prerequisites - -- [x] {{< var link.login >}} -- [x] You have your API key and secret.[^1] -- [x] You have a compatible AI assistant installed: - - Cursor IDE[^2] - - Claude Code[^3] - -::: - -## Key concepts +### Key concepts {{< include /about/glossary/mcp/_mcp.qmd >}} @@ -29,7 +16,7 @@ The {{< var vm.product >}} MCP (Model Context Protocol) server enables AI assist {{< include /about/glossary/mcp/_mcp-tool.qmd >}} -### How does {{< var vm.product >}} MCP work? +#### How does {{< var vm.product >}} MCP work? ```{mermaid} graph LR @@ -59,30 +46,24 @@ graph LR Your AI assistant sends natural language queries through the MCP protocol. The {{< var vm.product >}} MCP server translates these into API calls, authenticates using your API key, and returns data from the {{< var validmind.platform >}}. -### What can I do with {{< var vm.product >}} MCP? +#### What can I do with {{< var vm.product >}} MCP? The MCP server exposes tools for working with your {{< var vm.product >}} inventory: -:::: {.flex .flex-wrap .justify-around} - -::: {.w-50-ns .pr3} +::: {.panel-tabset} -**Record (model) and artifact (finding) operations** +##### Record and artifact operations -- List and get records -- List and get artifacts +- List and get records (models) +- List and get artifacts (findings) - Filter by risk level, deployment region, or ownership -**Custom field operations** +##### Custom field operations - List custom fields for records and artifacts - Update custom field values -::: - -::: {.w-50-ns .pl3} - -**Template operations** +##### Template operations - List available templates - Get template details @@ -91,15 +72,26 @@ The MCP server exposes tools for working with your {{< var vm.product >}} invent ::: -:::: - -**Example queries you can ask:** - +::: {.callout title="Example queries you can ask"} - "Show me all model-type records that are high risk" - "Find all the records I am an owner for" - "List my validation artifacts" - "What templates are available for credit risk models?" +::: + +::: {.attn} + +## Prerequisites + +- [x] {{< var link.login >}} +- [x] You have your API key and secret.[^1] +- [x] You have a compatible AI assistant installed: + - Cursor IDE[^2] + - Claude Code[^3] + +::: + ## Configure your AI assistant ::: {.panel-tabset} From fec9c6c2a8fa7bcb7fc14251b8915b5ab4c8cadd Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Tue, 2 Jun 2026 16:21:18 -0700 Subject: [PATCH 23/35] save --- .../attestation/working-with-attestations.qmd | 39 ++++++++++--------- .../working-with-documentation.qmd | 22 +++++------ .../mcp/connect-ai-assistants-via-mcp.qmd | 12 +++--- .../preparing-validation-reports.qmd | 24 ++++++------ .../guide/validation/review-documentation.qmd | 8 ++-- 5 files changed, 53 insertions(+), 52 deletions(-) diff --git a/site/guide/attestation/working-with-attestations.qmd b/site/guide/attestation/working-with-attestations.qmd index ccf3095924..cae0b87f9d 100644 --- a/site/guide/attestation/working-with-attestations.qmd +++ b/site/guide/attestation/working-with-attestations.qmd @@ -20,21 +20,6 @@ listing: {{< include /guide/attestation/_attestations.qmd >}} -::: {.attn} - -## Prerequisites - -- [x] {{< var link.login >}} -- [x] Records registered in the inventory require attestation.[^1] -- [x] If applicable, artifacts (findings) have been documented.[^2] -- [x] You are assigned a role with sufficient permissions to perform attestation tasks:[^3] - - [{{< fa hand >}} Customer Admin]{.bubble} — Sets up attestations - - [Submitter]{.bubble} — Stakeholder who submits attestation questionnaires - - [Reviewer]{.bubble} — Organizational role that reviews attestation questionnaires - - [Approver]{.bubble} — Organizational role that approves attestation questionnaires - -::: - ## Key concepts {{< include /about/glossary/_attestation.qmd >}} @@ -72,12 +57,12 @@ graph LR A["**Not Started**"] --> B["**In Progress**"] B --> C["**Ready for Review**"] end - + subgraph Reviewer C --> D["**Reviewed**"] D -.-> B end - + subgraph Approver D --> E["**Signed Off**"] end @@ -109,7 +94,7 @@ If attestations were organized by owner alone, neither Emma nor Kam would have p This approach ensures 100% accountability per group, where Emma approves all Fraud records and Kam approves all KYC records. If Fraud has two co-leads (Emma and Andres), either can approve. ::: -## How do I create meaningful attestation questionnaires? +### How do I create meaningful attestation questionnaires? Attestation questionnaires are typically used in risk management to confirm that key controls, governance processes and documentation requirements have been followed throughout a record's lifecycle. These questionnaires are part of a broader effort to ensure accountability and regulatory compliance. @@ -131,15 +116,31 @@ Areas typically covered in the questionnaire: Work with your risk management team to create a template that accurately reflects your organization's attestation requirements. +::: {.attn} + +## Prerequisites + +- [x] {{< var link.login >}} +- [x] Records registered in the inventory require attestation.[^1] +- [x] If applicable, artifacts (findings) have been documented.[^2] +- [x] You are assigned a role with sufficient permissions to perform attestation tasks:[^3] + - [{{< fa hand >}} Customer Admin]{.bubble} — Sets up attestations + - [Submitter]{.bubble} — Stakeholder who submits attestation questionnaires + - [Reviewer]{.bubble} — Organizational role that reviews attestation questionnaires + - [Approver]{.bubble} — Organizational role that approves attestation questionnaires + +::: + ## Manage attestations ::: {#attestation-listing} ::: + [^1]: [Register records in the inventory](/guide/inventory/register-records-in-inventory.qmd) [^2]: [Working with artifacts](/guide/validation/working-with-artifacts.qmd) -[^3]: [Manage permissions](/guide/configuration/manage-permissions.qmd) \ No newline at end of file +[^3]: [Manage permissions](/guide/configuration/manage-permissions.qmd) \ No newline at end of file diff --git a/site/guide/documentation/working-with-documentation.qmd b/site/guide/documentation/working-with-documentation.qmd index d5ada74553..ddb30ffb83 100644 --- a/site/guide/documentation/working-with-documentation.qmd +++ b/site/guide/documentation/working-with-documentation.qmd @@ -42,17 +42,6 @@ This section describes how to work with Development type documents[^1] (for exam [Learn more about the {{< var validmind.developer >}} {{< fa hand-point-right>}}](/developer/validmind-library.qmd){.button .button-green} ::: -::: {.attn} - -## Prerequisites - -- [x] {{< var link.login >}} -- [x] The record you are documenting is registered in the inventory.[^2] -- [x] You have provided some content for the documentation, either by uploading it through the {{< var vm.developer >}}[^3] or via the {{< var vm.platform >}}. -- [x] You are a [{{< fa code >}} Developer]{.bubble} or assigned another role with sufficient permissions to perform the tasks in this guide.[^4] - -::: - ## Key concepts @@ -80,6 +69,17 @@ This section describes how to work with Development type documents[^1] (for exam :::: +::: {.attn} + +## Prerequisites + +- [x] {{< var link.login >}} +- [x] The record you are documenting is registered in the inventory.[^2] +- [x] You have provided some content for the documentation, either by uploading it through the {{< var vm.developer >}}[^3] or via the {{< var vm.platform >}}. +- [x] You are a [{{< fa code >}} Developer]{.bubble} or assigned another role with sufficient permissions to perform the tasks in this guide.[^4] + +::: + ## Document Overview {{< include _document-overview.qmd >}} diff --git a/site/guide/mcp/connect-ai-assistants-via-mcp.qmd b/site/guide/mcp/connect-ai-assistants-via-mcp.qmd index ecb5c8e180..36c22559a5 100644 --- a/site/guide/mcp/connect-ai-assistants-via-mcp.qmd +++ b/site/guide/mcp/connect-ai-assistants-via-mcp.qmd @@ -8,7 +8,7 @@ date: last-modified The {{< var vm.product >}} MCP (Model Context Protocol) server enables AI assistants to query and manage your inventory through natural language, providing seamless access to records (models), artifacts (findings), templates, and custom fields. -### Key concepts +## Key concepts {{< include /about/glossary/mcp/_mcp.qmd >}} @@ -16,7 +16,7 @@ The {{< var vm.product >}} MCP (Model Context Protocol) server enables AI assist {{< include /about/glossary/mcp/_mcp-tool.qmd >}} -#### How does {{< var vm.product >}} MCP work? +### How does {{< var vm.product >}} MCP work? ```{mermaid} graph LR @@ -46,24 +46,24 @@ graph LR Your AI assistant sends natural language queries through the MCP protocol. The {{< var vm.product >}} MCP server translates these into API calls, authenticates using your API key, and returns data from the {{< var validmind.platform >}}. -#### What can I do with {{< var vm.product >}} MCP? +### What can I do with {{< var vm.product >}} MCP? The MCP server exposes tools for working with your {{< var vm.product >}} inventory: ::: {.panel-tabset} -##### Record and artifact operations +#### Record and artifact operations - List and get records (models) - List and get artifacts (findings) - Filter by risk level, deployment region, or ownership -##### Custom field operations +#### Custom field operations - List custom fields for records and artifacts - Update custom field values -##### Template operations +#### Template operations - List available templates - Get template details diff --git a/site/guide/validation/preparing-validation-reports.qmd b/site/guide/validation/preparing-validation-reports.qmd index df1dc864ee..c169c81760 100644 --- a/site/guide/validation/preparing-validation-reports.qmd +++ b/site/guide/validation/preparing-validation-reports.qmd @@ -34,18 +34,6 @@ aliases: Use the {{< var validmind.platform >}} to prepare detailed validation reports in adherence with your organization's guidelines. Link evidence and artifacts to your reports and assess compliance status at a granular level. -::: {.attn} - -## Prerequisites - -- [x] {{< var link.login >}} -- [x] The record you are validating is registered in the inventory.[^1] -- [x] Documentation has been submitted to you for validation.[^2] -- [x] Validation guidelines are aligned with your organization's requirements and added to the correct validation templates.[^3] -- [x] You are a [{{< fa circle-check >}} Validator]{.bubble} or assigned another role with sufficient permissions to perform the tasks in this guide.[^4] - -::: - ## Key concepts @@ -78,6 +66,18 @@ Use the {{< var validmind.platform >}} to prepare detailed validation reports in :::: +::: {.attn} + +## Prerequisites + +- [x] {{< var link.login >}} +- [x] The record you are validating is registered in the inventory.[^1] +- [x] Documentation has been submitted to you for validation.[^2] +- [x] Validation guidelines are aligned with your organization's requirements and added to the correct validation templates.[^3] +- [x] You are a [{{< fa circle-check >}} Validator]{.bubble} or assigned another role with sufficient permissions to perform the tasks in this guide.[^4] + +::: + ## Validation Overview ::: {.callout title="Static PDF uploads do not include a Document Overview."} diff --git a/site/guide/validation/review-documentation.qmd b/site/guide/validation/review-documentation.qmd index f9a0b5b88c..8bb4bd4b2d 100644 --- a/site/guide/validation/review-documentation.qmd +++ b/site/guide/validation/review-documentation.qmd @@ -11,6 +11,10 @@ aliases: Use the {{< var validmind.platform >}} to review the documentation provided by developers as part of the formal validation process. +## Key concepts + +{{< include /about/glossary/validation_reports/_review.qmd >}} + ::: {.attn} ## Prerequisites @@ -21,10 +25,6 @@ Use the {{< var validmind.platform >}} to review the documentation provided by d ::: -## Key concepts - -{{< include /about/glossary/validation_reports/_review.qmd >}} - ## Document Overview {{< include /guide/documentation/_document-overview.qmd >}} From 9cfc76142a83eca7c1451f0cc695923e13b01f43 Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Tue, 2 Jun 2026 16:29:15 -0700 Subject: [PATCH 24/35] save --- .../working-with-documentation.qmd | 6 --- .../integrations/configure-connections.qmd | 2 +- .../implement-custom-integrations.qmd | 2 +- .../synchronize-aws-bedrock.qmd | 2 +- .../synchronize-with-databricks.qmd | 2 +- .../integrations/managing-integrations.qmd | 54 +++++++++---------- 6 files changed, 31 insertions(+), 37 deletions(-) diff --git a/site/guide/documentation/working-with-documentation.qmd b/site/guide/documentation/working-with-documentation.qmd index ddb30ffb83..441e189c75 100644 --- a/site/guide/documentation/working-with-documentation.qmd +++ b/site/guide/documentation/working-with-documentation.qmd @@ -106,12 +106,6 @@ Modify the contents of the **Latest** version of your document:[^6] b. Select **Save current revision** and enter a name. c. Click {{< fa check >}} to save the current revision. - - ## Prepare documentation Draft, edit, and refine your documentation, complete with supporting test results: diff --git a/site/guide/integrations/configure-connections.qmd b/site/guide/integrations/configure-connections.qmd index ebc55aa89b..f8122baa62 100644 --- a/site/guide/integrations/configure-connections.qmd +++ b/site/guide/integrations/configure-connections.qmd @@ -10,7 +10,7 @@ Connections link {{< var vm.product >}} with the external systems your teams alr Each connection enables you to authenticate and keep events flowing between platforms such as Jira, ServiceNow, Amazon Bedrock and SageMaker, MLflow, and GitLab. -### Supported connections +## Supported connections :::: {.panel-tabset} diff --git a/site/guide/integrations/implement-custom-integrations.qmd b/site/guide/integrations/implement-custom-integrations.qmd index eec01de6bd..c3cb4c43fa 100644 --- a/site/guide/integrations/implement-custom-integrations.qmd +++ b/site/guide/integrations/implement-custom-integrations.qmd @@ -10,7 +10,7 @@ Connect {{< var vm.product >}} to third-party systems that aren't supported out Custom integrations let you link resources, such as AI systems or records such as models, from internal registries, proprietary platforms, or any service you control to the {{< var vm.product >}} inventory. -### How do custom integrations work? +## How do custom integrations work? To create a custom integration, you build a service that implements the reference API endpoints: diff --git a/site/guide/integrations/integrations-examples/synchronize-aws-bedrock.qmd b/site/guide/integrations/integrations-examples/synchronize-aws-bedrock.qmd index 9fe9a32600..e04285ea61 100644 --- a/site/guide/integrations/integrations-examples/synchronize-aws-bedrock.qmd +++ b/site/guide/integrations/integrations-examples/synchronize-aws-bedrock.qmd @@ -8,7 +8,7 @@ date: last-modified Link {{< var vm.product >}} records to foundation models and generative AI agents in Amazon Web Services (AWS) Bedrock, supporting governance across your AI/ML ecosystem. -### How does the integration with AWS Bedrock work? +## How does the integration with AWS Bedrock work? AWS Bedrock exposes two primary integration surfaces: diff --git a/site/guide/integrations/integrations-examples/synchronize-with-databricks.qmd b/site/guide/integrations/integrations-examples/synchronize-with-databricks.qmd index e952e5efde..377aeed452 100644 --- a/site/guide/integrations/integrations-examples/synchronize-with-databricks.qmd +++ b/site/guide/integrations/integrations-examples/synchronize-with-databricks.qmd @@ -21,7 +21,7 @@ Link {{< var vm.product >}} inventory records to models, datasets, and agents in You can also run validation notebooks directly against Databricks-hosted data. -### How does the integration with Databricks work? +## How does the integration with Databricks work? Databricks Unity Catalog provides a unified governance solution for all data and AI assets across your Databricks workspaces. The integration exposes three Unity Catalog resource types: diff --git a/site/guide/integrations/managing-integrations.qmd b/site/guide/integrations/managing-integrations.qmd index 3449951eb6..e8fa3650cc 100644 --- a/site/guide/integrations/managing-integrations.qmd +++ b/site/guide/integrations/managing-integrations.qmd @@ -22,7 +22,33 @@ listing: Integrations connect the {{< var validmind.platform >}} with external systems or services, enabling bidirectional data synchronization, workflow automation, and API access. -## What can I do with integrations? +## Key concepts + + + +:::: {.flex .flex-wrap .justify-around} + +::: {.w-50-ns .pr3} + +{{< include /about/glossary/integrations/_integration.qmd >}} + +{{< include /about/glossary/integrations/_secret.qmd >}} + +{{< include /about/glossary/integrations/_connection.qmd >}} + +::: + +::: {.w-50-ns .pl3} + +{{< include /about/glossary/integrations/_http-request.qmd >}} + +{{< include /about/glossary/integrations/_webhook.qmd >}} + +::: + +:::: + +### What can I do with integrations? ```{mermaid} graph TD @@ -248,32 +274,6 @@ Connect AI assistants to {{< var vm.product >}} using the Model Context Protocol ::: -## Key concepts - - - -:::: {.flex .flex-wrap .justify-around} - -::: {.w-50-ns .pr3} - -{{< include /about/glossary/integrations/_integration.qmd >}} - -{{< include /about/glossary/integrations/_secret.qmd >}} - -{{< include /about/glossary/integrations/_connection.qmd >}} - -::: - -::: {.w-50-ns .pl3} - -{{< include /about/glossary/integrations/_http-request.qmd >}} - -{{< include /about/glossary/integrations/_webhook.qmd >}} - -::: - -:::: - ## Manage integrations :::{#integrations-listing} From e8de5494d47157f147420794d3d61e8c02348350 Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Tue, 2 Jun 2026 16:34:21 -0700 Subject: [PATCH 25/35] save --- site/guide/integrations/manage-secrets.qmd | 30 +++++++++++++++++----- 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/site/guide/integrations/manage-secrets.qmd b/site/guide/integrations/manage-secrets.qmd index f352afbc5a..f688b3e160 100644 --- a/site/guide/integrations/manage-secrets.qmd +++ b/site/guide/integrations/manage-secrets.qmd @@ -26,14 +26,16 @@ Integration secrets authenticate persistent connections to external platforms. Y 1. In the left sidebar, click **{{< fa gear >}} Settings**. -2. Under {{< fa puzzle-piece >}} Integrations, select **Secrets**, then open the **Integration Secrets** tab to view, add, edit, revoke, or delete integration secrets: - -::: {.panel-tabset} +2. Under {{< fa puzzle-piece >}} Integrations, select **Secrets**, then click the **Integration Secrets** tab to view, add, edit, revoke, or delete integration secrets: ### View integration secret details Click the secret you want to view. +### Add or edit integration secrets + +::: {.panel-tabset} + ### Add integration secrets a. Click **{{< fa plus >}} Add Secret**. @@ -62,6 +64,13 @@ c. Make your changes. For example: d. Click **Update Secret** to save your changes. +::: + + +### Revoke or delete integration secrets + +::: {.panel-tabset} + ### Revoke integration secrets a. Hover over the secret you want to revoke. @@ -86,6 +95,7 @@ c. In the confirmation dialog, select **OK** to confirm deletion. ::: +
::: {.callout-button .pl4 .nt4} @@ -105,14 +115,16 @@ Webhook secrets authenticate outgoing HTTP requests in workflows. Instead of har 1. In the left sidebar, click **{{< fa gear >}} Settings**. -2. Under {{< fa puzzle-piece >}} Integrations, select **Secrets**, then open the **Webhook Secrets** tab to view, add, edit, revoke, or delete webhook secrets: - -::: {.panel-tabset} +2. Under {{< fa puzzle-piece >}} Integrations, select **Secrets**, then click the **Webhook Secrets** tab to view, add, edit, revoke, or delete webhook secrets: ### View webhook secret details Click the secret you want to view. +### Add or edit webhook secrets + +::: {.panel-tabset} + ### Add webhook secrets a. Click **{{< fa plus >}} Add Secret**. @@ -155,6 +167,12 @@ b. Make your changes. For example: c. Click **Update Secret** to save your changes. +::: + +### Revoke or delete webhook secrets + +::: {.panel-tabset} + ### Revoke webhook secrets a. Hover over the secret you want to revoke. From 1a52ae8703871a13d227c7ecdd470f5659d0d1d8 Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Tue, 2 Jun 2026 16:44:34 -0700 Subject: [PATCH 26/35] save --- .../configure-analytics-exports.qmd | 34 +++++++++---------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/site/guide/integrations/configure-analytics-exports.qmd b/site/guide/integrations/configure-analytics-exports.qmd index d198b1d63b..410340d19c 100644 --- a/site/guide/integrations/configure-analytics-exports.qmd +++ b/site/guide/integrations/configure-analytics-exports.qmd @@ -27,28 +27,16 @@ Configure scheduled exports of analytics datasets to cloud storage so that BI to 3. On the Analytics Exports page, click **{{< fa plus >}} Create Analytics Export**. -4. From the **[datasets]{.smallcaps}** dropdown, choose which analytics datasets to export. For example: +4. From the **[datasets]{.smallcaps}** dropdown, choose which analytics datasets to export:[^3] - Artifact - Model Limitation - Artifact - Policy Exception - Artifact - Validation Issue - Inventory Records - - Record Activity[^3] - - Custom artifact types[^4] + - Record Activity[^4] + - Custom artifact types[^5] - Custom inventory record types - ::: {.callout title="Record Activity exports"} - Record Activity exports audit events — comments, workflow status changes, and field updates on inventory records. Use this dataset for compliance reporting or audit trails. Record Activity respects the same export scope (organization, workspace, or selected records) and supports 30, 60, or 90-day window filtering. - ::: - - ::: {.callout title="Custom types"} - Any custom artifact types or custom inventory record types defined for your organization also appear in the datasets dropdown and can be exported. - ::: - -::: {.column-margin} -![Selecting datasets](configure-analytics-export-step-1.png){fig-alt="Create Analytics Export modal showing Select Datasets step and datasets dropdown." .screenshot} -::: - 5. Click **Next** {{< fa angle-right >}}. 6. Configure the cloud storage destination and output settings: @@ -167,6 +155,18 @@ Data you exported previously will remain in the cloud storage destination unchan [^2]: [Manage secrets](/guide/integrations/manage-secrets.qmd) -[^3]: [View record activity](/guide/inventory/view-record-activity.qmd) +[^3]: -[^4]: [Manage artifact types](/guide/validation/manage-artifact-types.qmd) + ![Selecting datasets](configure-analytics-export-step-1.png){fig-alt="Create Analytics Export modal showing Select Datasets step and datasets dropdown." .screenshot} + +[^4]: + + Record Activity exports audit events — for example, comments, workflow status changes, and field updates on inventory records. Use this dataset for compliance reporting or audit trails. Record Activity respects the same export scope (organization, workspace, or selected records) and supports 30, 60, or 90-day window filtering. +

+ **Learn more:** [View record activity](/guide/inventory/view-record-activity.qmd) + +[^5]: + + Any custom artifact types or custom inventory record types defined for your organization also appear in the datasets dropdown and can be exported. +

+ **Learn more:** [Manage artifact types](/guide/validation/manage-artifact-types.qmd) From b1dd193ed5328ec7c830216ca0789aa64843f4c4 Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Tue, 2 Jun 2026 16:46:59 -0700 Subject: [PATCH 27/35] save --- .../configure-analytics-export-step-1.png | Bin 121225 -> 0 bytes .../configure-analytics-export-step-2.png | Bin 205167 -> 0 bytes .../configure-analytics-export-step-3.png | Bin 95268 -> 0 bytes .../configure-analytics-exports.qmd | 22 ++++-------------- 4 files changed, 5 insertions(+), 17 deletions(-) delete mode 100644 site/guide/integrations/configure-analytics-export-step-1.png delete mode 100644 site/guide/integrations/configure-analytics-export-step-2.png delete mode 100644 site/guide/integrations/configure-analytics-export-step-3.png diff --git a/site/guide/integrations/configure-analytics-export-step-1.png b/site/guide/integrations/configure-analytics-export-step-1.png deleted file mode 100644 index 55b5b742ba0c9249c378fa71499c9ef725b67a65..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 121225 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 z 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 diff --git a/site/guide/integrations/configure-analytics-export-step-2.png b/site/guide/integrations/configure-analytics-export-step-2.png deleted file mode 100644 index 7b4e6ce3afb6ee07271d7e5d94a3bf556c544361..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 205167 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㎞PTvrR`%^RsDTrXb_BE%ww}98JZ3 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

G>GMVFEqka3KAqtQlna>~616!I{dbGWzCp(x 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 TSRML}0SG)@{an^LB{Ts5v{((a diff --git a/site/guide/integrations/configure-analytics-exports.qmd b/site/guide/integrations/configure-analytics-exports.qmd index 410340d19c..206a4ddbf9 100644 --- a/site/guide/integrations/configure-analytics-exports.qmd +++ b/site/guide/integrations/configure-analytics-exports.qmd @@ -27,15 +27,15 @@ Configure scheduled exports of analytics datasets to cloud storage so that BI to 3. On the Analytics Exports page, click **{{< fa plus >}} Create Analytics Export**. -4. From the **[datasets]{.smallcaps}** dropdown, choose which analytics datasets to export:[^3] +4. From the **[datasets]{.smallcaps}** dropdown, choose which analytics datasets to export: - - Artifact - Model Limitation + - Artifact - Limitation - Artifact - Policy Exception - Artifact - Validation Issue - Inventory Records - - Record Activity[^4] - - Custom artifact types[^5] + - Record Activity[^3] - Custom inventory record types + - Custom artifact types[^4] 5. Click **Next** {{< fa angle-right >}}. @@ -50,10 +50,6 @@ Configure scheduled exports of analytics datasets to cloud storage so that BI to - **[test connection]{.smallcaps}** (optional) — Click to verify the destination can be accessed. -::: {.column-margin} -![Configuring your cloud storage destination](configure-analytics-export-step-2.png){fig-alt="Create Analytics Export modal showing Configure Destination step with cloud storage and output settings." .screenshot} -::: - 7. Click **Next** {{< fa angle-right >}}. 8. Set how often to export: @@ -62,10 +58,6 @@ Configure scheduled exports of analytics datasets to cloud storage so that BI to - **[time (utc)]{.smallcaps}** — Choose the time of day in UTC (example: `12:00 AM`). -::: {.column-margin} -![Setting the schedule](configure-analytics-export-step-3.png){fig-alt="Create Analytics Export modal showing Set Schedule step with Daily schedule and 12:00 am UTC." .screenshot} -::: - 9. Click **Create Analytics Export**. The export is created and runs on the schedule you set. Data is written to the configured path in your cloud storage so BI tools can read it. @@ -157,15 +149,11 @@ Data you exported previously will remain in the cloud storage destination unchan [^3]: - ![Selecting datasets](configure-analytics-export-step-1.png){fig-alt="Create Analytics Export modal showing Select Datasets step and datasets dropdown." .screenshot} - -[^4]: - Record Activity exports audit events — for example, comments, workflow status changes, and field updates on inventory records. Use this dataset for compliance reporting or audit trails. Record Activity respects the same export scope (organization, workspace, or selected records) and supports 30, 60, or 90-day window filtering.

**Learn more:** [View record activity](/guide/inventory/view-record-activity.qmd) -[^5]: +[^4]: Any custom artifact types or custom inventory record types defined for your organization also appear in the datasets dropdown and can be exported.

From 45220dcfdc115510ea85c0492adbfddb0f590da2 Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Tue, 2 Jun 2026 16:48:23 -0700 Subject: [PATCH 28/35] save --- .../integrations/configure-analytics-exports.qmd | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/site/guide/integrations/configure-analytics-exports.qmd b/site/guide/integrations/configure-analytics-exports.qmd index 206a4ddbf9..129009fe18 100644 --- a/site/guide/integrations/configure-analytics-exports.qmd +++ b/site/guide/integrations/configure-analytics-exports.qmd @@ -34,8 +34,8 @@ Configure scheduled exports of analytics datasets to cloud storage so that BI to - Artifact - Validation Issue - Inventory Records - Record Activity[^3] - - Custom inventory record types - - Custom artifact types[^4] + - Custom inventory record types[^4] + - Custom artifact types[^5] 5. Click **Next** {{< fa angle-right >}}. @@ -62,7 +62,7 @@ Configure scheduled exports of analytics datasets to cloud storage so that BI to The export is created and runs on the schedule you set. Data is written to the configured path in your cloud storage so BI tools can read it. -## View details +## View export details 1. In the left sidebar, click **{{< fa gear >}} Settings**. @@ -155,6 +155,12 @@ Data you exported previously will remain in the cloud storage destination unchan [^4]: - Any custom artifact types or custom inventory record types defined for your organization also appear in the datasets dropdown and can be exported. + Any custom inventory record types defined for your organization also appear in the datasets dropdown and can be exported. +

+ **Learn more:** [Manage inventory record types](/guide/inventory/manage-inventory-record-types.qmd) + +[^5]: + + Any custom artifact types defined for your organization also appear in the datasets dropdown and can be exported.

**Learn more:** [Manage artifact types](/guide/validation/manage-artifact-types.qmd) From fa3ee49653fc7f92caa154b8f3695dee9d4b15b8 Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Tue, 2 Jun 2026 16:58:34 -0700 Subject: [PATCH 29/35] Edi: Configure analytics exports --- .../configure-analytics-exports.qmd | 95 ++++++++++--------- 1 file changed, 48 insertions(+), 47 deletions(-) diff --git a/site/guide/integrations/configure-analytics-exports.qmd b/site/guide/integrations/configure-analytics-exports.qmd index 129009fe18..8d00be60e8 100644 --- a/site/guide/integrations/configure-analytics-exports.qmd +++ b/site/guide/integrations/configure-analytics-exports.qmd @@ -19,6 +19,30 @@ Configure scheduled exports of analytics datasets to cloud storage so that BI to ::: +## View analytics exports + +1. In the left sidebar, click **{{< fa gear >}} Settings**. + +2. Under {{< fa puzzle-piece >}} Integrations, select **Analytics Exports** to view existing export configuration details or export run history: + +::: {.panel-tabset} + +### View export details + +Click the export row you want to view, or hover over it and when the **{{< fa ellipsis-vertical >}}** menu appears, click it and select **{{< fa eye >}} View Details**. + +Review the destination, schedule, datasets, and next run for that export. + +### View export run history + +a. Hover over the export you want to inspect. + +b. When the **{{< fa ellipsis-vertical >}}** menu appears, click it and select **{{< fa history >}} View Run History**. + +Review past runs with their status, start time, duration, rows exported, and files written. + +::: + ## Create analytics exports 1. In the left sidebar, click **{{< fa gear >}} Settings**. @@ -62,85 +86,62 @@ Configure scheduled exports of analytics datasets to cloud storage so that BI to The export is created and runs on the schedule you set. Data is written to the configured path in your cloud storage so BI tools can read it. -## View export details +## Manage analytics exports 1. In the left sidebar, click **{{< fa gear >}} Settings**. -2. Under {{< fa puzzle-piece >}} Integrations, select **Analytics Exports**. - -3. Click the export row you want to view, or hover over it and when the **{{< fa ellipsis-vertical >}}** menu appears, click it and select **{{< fa eye >}} View Details**. +2. Under {{< fa puzzle-piece >}} Integrations, select **Analytics Exports** to edit existing export configurations, disable or enable exports, or delete configured exports: -You see the destination, schedule, datasets, and next run for that export. +::: {.panel-tabset} -## Edit analytics exports +### Edit exports -1. In the left sidebar, click **{{< fa gear >}} Settings**. +a. Hover over the export you want to change. -2. Under {{< fa puzzle-piece >}} Integrations, select **Analytics Exports**. +b. When the **{{< fa ellipsis-vertical >}}** menu appears, click it and select **{{< fa pen >}} Edit**. -3. Hover over the export you want to change. +c. Adjust selected datasets, export destination, or export schedule, then click **Save Changes**. -4. When the **{{< fa ellipsis-vertical >}}** menu appears, click it and select **{{< fa pen >}} Edit**. +### Disable or enable exports -5. In the modal, adjust datasets, destination, or schedule, then click **Save Changes**. +a. Hover over the export you want to pause or restart. -## Run analytics exports manually - -1. In the left sidebar, click **{{< fa gear >}} Settings**. - -2. Under {{< fa puzzle-piece >}} Integrations, select **Analytics Exports**. - -3. Hover over the export you want to run. - -4. When the **{{< fa ellipsis-vertical >}}** menu appears, click it and select **{{< fa play >}} Run Now**. +b. When the **{{< fa ellipsis-vertical >}}** menu appears, click it and select **{{< fa bolt >}} Disable** or **{{< fa bolt >}} Enable**, depending on the current setting. -A one-off export runs in addition to the scheduled runs. The status for a run is shown on the export configuration row or in the run history. - -## View run history - -1. In the left sidebar, click **{{< fa gear >}} Settings**. - -2. Under {{< fa puzzle-piece >}} Integrations, select **Analytics Exports**. - -3. Hover over the export you want to inspect. - -4. When the **{{< fa ellipsis-vertical >}}** menu appears, click it and select **{{< fa history >}} View Run History**. - -You see past runs with their status, start time, duration, rows exported, and files written. - -## Disable or enable analytics exports - -1. In the left sidebar, click **{{< fa gear >}} Settings**. +The export stops or starts running depending on the action you take. -2. Under {{< fa puzzle-piece >}} Integrations, select **Analytics Exports**. +### Delete configured exports -3. Hover over the export you want to pause. +::: {.callout-important title="Deleting an analytics export configuration is permanent."} +Data you exported previously will remain in the cloud storage destination unchanged. +::: -4. When the **{{< fa ellipsis-vertical >}}** menu appears, click it and select **{{< fa bolt >}} Disable** or **{{< fa bolt >}} Enable**, depending on the current setting. +a. Hover over the export you want to remove. -The export stops or starts running depending on the action you take. +b. When the **{{< fa ellipsis-vertical >}}** menu appears, click it and select **Delete**. -## Delete analytics export configurations +c. In the confirmation dialog, click **Yes, Delete Export** to confirm deletion. -::: {.callout-important title="Deleting an analytics export configuration is permanent."} -Data you exported previously will remain in the cloud storage destination unchanged. ::: +## Run analytics exports manually + 1. In the left sidebar, click **{{< fa gear >}} Settings**. 2. Under {{< fa puzzle-piece >}} Integrations, select **Analytics Exports**. -3. Hover over the export you want to remove. +3. Hover over the export you want to run. -4. When the **{{< fa ellipsis-vertical >}}** menu appears, click it and select **Delete**. +4. When the **{{< fa ellipsis-vertical >}}** menu appears, click it and select **{{< fa play >}} Run Now**. -5. In the confirmation dialog, click **Yes, Delete Export** to confirm deletion. +A one-off export runs in addition to the scheduled runs. The status for a run is shown on the export configuration row or in the run history. ## What's next - Use your BI tool to connect to the same bucket and path to build reports from the exported datasets. - Ensure credentials stay valid by rotating secrets when required and updating the export configuration if you change secrets.[^2] + [^1]: [Manage permissions](/guide/configuration/manage-permissions.qmd) From 77ffaf301013d90b7790af25bb0fb160341deffe Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Tue, 2 Jun 2026 17:06:54 -0700 Subject: [PATCH 30/35] proof --- site/guide/integrations/configure-connections.qmd | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/site/guide/integrations/configure-connections.qmd b/site/guide/integrations/configure-connections.qmd index f8122baa62..0e8484ab91 100644 --- a/site/guide/integrations/configure-connections.qmd +++ b/site/guide/integrations/configure-connections.qmd @@ -291,7 +291,7 @@ Some integrations, such as Amazon Bedrock, can provide metrics that sync into {{ When a record in the {{< var vm.product >}} inventory is linked to an external resource, such as a Bedrock agent, available evaluations from that resource become metric sources. These metrics: - Sync automatically on a scheduled interval. -- Appear in the **From Integration** tab when adding metrics over time to monitoring documents.[^6] +- Appear in the **From Integration** tab when adding metrics over time to monitoring documents.[^5] - Support threshold configuration for alerting when values exceed acceptable limits. ::: {.callout title="Bedrock Agent Evaluations"} @@ -325,6 +325,6 @@ For Amazon Bedrock connections, metric sources include agent evaluation results [^4]: [Implement custom integrations](implement-custom-integrations.qmd) -[^5]: [Link external records](link-external-records.qmd) +[^5]: [Work with metrics over time](/guide/monitoring/work-with-metrics-over-time.qmd#add-integration-metrics) -[^6]: [Work with metrics over time](/guide/monitoring/work-with-metrics-over-time.qmd#add-integration-metrics) +[^6]: [Link external records](link-external-records.qmd) From 6a2bb3bd64fba348bf5b4dff30f0c0b57b754e12 Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Tue, 2 Jun 2026 17:10:45 -0700 Subject: [PATCH 31/35] more proofreading --- site/guide/attestation/manage-attestations.qmd | 10 +++++----- .../guide/configuration/customize-your-dashboard.qmd | 2 +- .../configuration/manage-platform-notifications.qmd | 4 ++-- .../guide/configuration/set-up-your-organization.qmd | 4 ++-- site/guide/documentation/collaborate-with-others.qmd | 2 +- .../synchronize-aws-bedrock.qmd | 4 ++-- .../synchronize-aws-sagemaker.qmd | 12 ++++++------ .../integrations-examples/synchronize-gitlab.qmd | 4 ++-- .../synchronize-with-databricks.qmd | 4 ++-- site/guide/integrations/manage-secrets.qmd | 8 ++++---- site/guide/inventory/_rename-field-keys.qmd | 2 +- site/guide/inventory/manage-inventory-fields.qmd | 2 +- site/guide/reporting/export-analytics.qmd | 2 +- .../shared/manage-views/_organization-views.qmd | 6 +++--- site/guide/shared/manage-views/_personal-views.qmd | 2 +- site/guide/templates/customize-document-checker.qmd | 6 +++--- site/guide/templates/manage-document-types.qmd | 4 ++-- site/guide/templates/manage-documents.qmd | 2 +- .../guide/validation/_add-edit-artifact-statuses.qmd | 4 ++-- site/guide/validation/_remove-artifact-view.qmd | 2 +- .../validation/configure-assessment-options.qmd | 4 ++-- site/guide/validation/manage-artifact-fields.qmd | 2 +- site/guide/validation/manage-artifact-severities.qmd | 4 ++-- site/guide/validation/manage-artifact-types.qmd | 6 +++--- .../validation/manage-validation-guidelines.qmd | 2 +- site/guide/workflows/configure-workflows.qmd | 4 ++-- site/guide/workflows/manage-record-stages.qmd | 2 +- 27 files changed, 55 insertions(+), 55 deletions(-) diff --git a/site/guide/attestation/manage-attestations.qmd b/site/guide/attestation/manage-attestations.qmd index 795c0601fb..08a7d82a52 100644 --- a/site/guide/attestation/manage-attestations.qmd +++ b/site/guide/attestation/manage-attestations.qmd @@ -50,7 +50,7 @@ For testing purposes only, you can trigger the attestation process: 3. Under **Attestation Periods**, hover over an attestation period. -4. When the **{{< fa ellipsis-vertical >}}** menu appears, select **{{< fa play >}} Start Now**. +4. When the **{{< fa ellipsis-vertical >}}** menu appears, select **{{< fa play >}} Start Now**. 5. Click **Confirm**. @@ -64,7 +64,7 @@ After starting the schedule, attestation participants are notified via My Inbox 3. Under **Attestation Periods**, hover over an attestation period. -4. When the **{{< fa ellipsis-vertical >}}** menu appears, select **{{< fa pencil >}} Edit**. +4. When the **{{< fa ellipsis-vertical >}}** menu appears, select **{{< fa pencil >}} Edit**. 5. Make your desired changes to the following: @@ -88,7 +88,7 @@ This action cannot be undone. The history of previous attestation periods is una 3. Under **Attestation Periods**, hover over an attestation period. -4. When the **{{< fa ellipsis-vertical >}}** menu appears, select [**{{< fa trash >}} Cancel Period**]{.red}. +4. When the **{{< fa ellipsis-vertical >}}** menu appears, select [**{{< fa trash >}} Cancel Period**]{.red}. 5. Click **Confirm** to cancel the period. @@ -184,7 +184,7 @@ To manually complete an attestation period: 3. Under **Attestation Periods**, hover over an active attestation period. -4. When the **{{< fa ellipsis-vertical >}}** menu appears, select **{{< fa check >}} Complete Period**. +4. When the **{{< fa ellipsis-vertical >}}** menu appears, select **{{< fa check >}} Complete Period**. 5. Click **Confirm**. @@ -204,7 +204,7 @@ You cannot delete an attestation template if it has any active attestation perio 3. Locate the template to delete and hover over it. -4. When the **{{< fa ellipsis-vertical >}}** menu appears, select [**{{< fa trash >}} Delete**]{.red}. +4. When the **{{< fa ellipsis-vertical >}}** menu appears, select [**{{< fa trash >}} Delete**]{.red}. 5. Click **Confirm** to delete the template. diff --git a/site/guide/configuration/customize-your-dashboard.qmd b/site/guide/configuration/customize-your-dashboard.qmd index 34ea11ce01..e18f28c45f 100644 --- a/site/guide/configuration/customize-your-dashboard.qmd +++ b/site/guide/configuration/customize-your-dashboard.qmd @@ -174,7 +174,7 @@ Removing a widget from a dashboard will not delete the linked view or analytics 4. Hover over the widget you would like to remove. -5. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select [**{{< fa trash-can >}} Remove**]{.red}. +5. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select [**{{< fa trash-can >}} Remove**]{.red}. 6. Click **Yes, Delete Widget** to confirm permanent deletion of the widget from that dashboard. diff --git a/site/guide/configuration/manage-platform-notifications.qmd b/site/guide/configuration/manage-platform-notifications.qmd index ae316bc8cd..96338b37d5 100644 --- a/site/guide/configuration/manage-platform-notifications.qmd +++ b/site/guide/configuration/manage-platform-notifications.qmd @@ -63,7 +63,7 @@ To mark an individual update as read: a. Hover over the update you want to mark as read. -b. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa envelope >}} Mark as Read**. +b. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa envelope >}} Mark as Read**. To mark multiple updates as read: @@ -79,7 +79,7 @@ To dismiss an individual update: a. Hover over the update you want to dismiss. -b. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa bell-slash >}} Dismiss**. +b. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa bell-slash >}} Dismiss**. To dismiss all updates: diff --git a/site/guide/configuration/set-up-your-organization.qmd b/site/guide/configuration/set-up-your-organization.qmd index 1e350fdc15..87bc635150 100644 --- a/site/guide/configuration/set-up-your-organization.qmd +++ b/site/guide/configuration/set-up-your-organization.qmd @@ -39,7 +39,7 @@ This task involves managing organizations within {{< var vm.product >}}, allowin a. Hover over the business unit you want to rename. -b. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa pencil >}} Edit Details** to rename the business unit. +b. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa pencil >}} Edit Details** to rename the business unit. c. Click **Save** to apply your changes. @@ -51,7 +51,7 @@ In order to delete a business unit, there must be no records attached to that un a. Hover over the business unit you want to delete. -b. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select [**{{< fa trash-can >}} Delete Business Unit**]{.red} to remove the business unit. +b. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select [**{{< fa trash-can >}} Delete Business Unit**]{.red} to remove the business unit. ::: {.callout-important} In order to delete a business unit, there must be no records attached to that unit. diff --git a/site/guide/documentation/collaborate-with-others.qmd b/site/guide/documentation/collaborate-with-others.qmd index 0d60da21df..0d087136cf 100644 --- a/site/guide/documentation/collaborate-with-others.qmd +++ b/site/guide/documentation/collaborate-with-others.qmd @@ -94,7 +94,7 @@ b. Click on the version you would like to compare another version to. c. Hover over the other version to compare with your first version. -d. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **Compare against selected**. +d. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **Compare against selected**. ### Rename a version diff --git a/site/guide/integrations/integrations-examples/synchronize-aws-bedrock.qmd b/site/guide/integrations/integrations-examples/synchronize-aws-bedrock.qmd index e04285ea61..2427585bf8 100644 --- a/site/guide/integrations/integrations-examples/synchronize-aws-bedrock.qmd +++ b/site/guide/integrations/integrations-examples/synchronize-aws-bedrock.qmd @@ -54,7 +54,7 @@ f. Click **Save Integration**. g. Test the connection: i. Hover over the AWS Bedrock connection you just created. - ii. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa circle-check >}} Test Connection**. + ii. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa circle-check >}} Test Connection**. If the test is successful, the message **{{< fa check-circle >}} Connection successful** displays. @@ -70,7 +70,7 @@ c. Scroll down until you locate the **Amazon Bedrock** connection box in the rig d. Hover over the Amazon Bedrock box. -e. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa link >}} Link Model**. +e. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa link >}} Link Model**. f. In the modal that opens, use the tabs to filter by resource type: diff --git a/site/guide/integrations/integrations-examples/synchronize-aws-sagemaker.qmd b/site/guide/integrations/integrations-examples/synchronize-aws-sagemaker.qmd index 7522cc320c..355a1cac77 100644 --- a/site/guide/integrations/integrations-examples/synchronize-aws-sagemaker.qmd +++ b/site/guide/integrations/integrations-examples/synchronize-aws-sagemaker.qmd @@ -30,15 +30,15 @@ b. Under {{< fa puzzle-piece >}} Integrations, select **Connections**. c. Click **{{< fa plus >}} Add Connection**. -d. In the modal that opens, select **AWS Sagemaker**.[^2] +d. In the modal that opens, select **AWS SageMaker**.[^2] e. Complete: - **[integration name]{.smallcaps}** — How other admins can identify the connection. - **[description]{.smallcaps}** (optional) — The intended usage or additional details. - **[aws region]{.smallcaps}** - The primary region where your SageMaker model registry lives, for example `us-west-2`. - - **[aws access key id]{.smallcaps}** — The secret generated by AWS IAM with permissions to read the model registry. - - **[aws secret access key]{.smallcaps}** — The secret generated by AWS IAM with permissions to read the model registry. + - **[aws access key id]{.smallcaps}** — The secret generated by AWS IAM with permissions to read the SageMaker model registry. + - **[aws secret access key]{.smallcaps}** — The secret generated by AWS IAM with permissions to read the SageMaker model registry. - **[initial status]{.smallcaps}** — Set to `Operational` to enable immediately or `Disabled` if you plan to finish setup later. f. Click **Save Integration**. @@ -46,7 +46,7 @@ f. Click **Save Integration**. g. Test the connection: i. Hover over the AWS SageMaker connection you just created. - ii. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa circle-check >}} Test Connection**. + ii. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa circle-check >}} Test Connection**. If the test is successful, the message **{{< fa check-circle >}} Connection successful** is displayed. @@ -57,11 +57,11 @@ a. In the left sidebar, click **{{< fa cubes >}} Inventory**. b. Select a record or find your record by applying a filter or searching for it.[^3] -c. Scroll down until you locate the **Amazon Sagemaker** connection box in the right sidebar. +c. Scroll down until you locate the **Amazon SageMaker** connection box in the right sidebar. d. Hover over the Amazon SageMaker box. -e. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa link >}} Link Model**. +e. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa link >}} Link Model**. f. In the modal that opens, click the [select model]{.smallcaps} dropdown to pick the AWS SageMaker model to link. diff --git a/site/guide/integrations/integrations-examples/synchronize-gitlab.qmd b/site/guide/integrations/integrations-examples/synchronize-gitlab.qmd index b6f10edf7e..bb4e7ae67b 100644 --- a/site/guide/integrations/integrations-examples/synchronize-gitlab.qmd +++ b/site/guide/integrations/integrations-examples/synchronize-gitlab.qmd @@ -47,7 +47,7 @@ f. Click **Save Integration**. g. Test the connection: i. Hover over the GitLab connection you just created. - ii. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa circle-check >}} Test Connection**. + ii. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa circle-check >}} Test Connection**. If the test is successful, the message **{{< fa check-circle >}} Connection successful** is displayed. @@ -61,7 +61,7 @@ c. Scroll down until you locate the **GitLab** connection box in the right sideb d. Hover over the GitLab box. -e. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa link >}} Link Model**. +e. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa link >}} Link Model**. f. In the modal that opens, click the [select model]{.smallcaps} dropdown to pick the GitLab model to link. diff --git a/site/guide/integrations/integrations-examples/synchronize-with-databricks.qmd b/site/guide/integrations/integrations-examples/synchronize-with-databricks.qmd index 377aeed452..bbeb398146 100644 --- a/site/guide/integrations/integrations-examples/synchronize-with-databricks.qmd +++ b/site/guide/integrations/integrations-examples/synchronize-with-databricks.qmd @@ -95,7 +95,7 @@ f. Click **Save Integration**. g. Test the connection: i. Hover over the Databricks connection you just created. - ii. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa circle-check >}} Test Connection**. + ii. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa circle-check >}} Test Connection**. If the test is successful, the message **{{< fa check-circle >}} Connection successful** is displayed. @@ -111,7 +111,7 @@ c. Scroll down until you locate the **Databricks** connection box in the right s d. Hover over the Databricks box. -e. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa link >}} Link Model**. +e. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa link >}} Link Model**. f. In the modal that opens: diff --git a/site/guide/integrations/manage-secrets.qmd b/site/guide/integrations/manage-secrets.qmd index f688b3e160..3ee0c2558e 100644 --- a/site/guide/integrations/manage-secrets.qmd +++ b/site/guide/integrations/manage-secrets.qmd @@ -75,7 +75,7 @@ d. Click **Update Secret** to save your changes. a. Hover over the secret you want to revoke. -b. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa triangle-exclamation >}} Revoke**. +b. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa triangle-exclamation >}} Revoke**. c. On the confirmation dialogue that appears, select **OK** to confirm revocation. @@ -89,7 +89,7 @@ Be sure to update any connections that depend on this secret before deleting it. a. Hover over the secret you want to remove. -b. When the **{{< fa ellipsis-vertical >}}** menu appears, click it, then select **{{< fa trash >}} Delete**. +b. When the **{{< fa ellipsis-vertical >}}** menu appears, click it, then select **{{< fa trash >}} Delete**. c. In the confirmation dialog, select **OK** to confirm deletion. @@ -177,7 +177,7 @@ c. Click **Update Secret** to save your changes. a. Hover over the secret you want to revoke. -b. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa triangle-exclamation >}} Revoke**. +b. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa triangle-exclamation >}} Revoke**. c. On the confirmation dialogue that appears, select **OK** to confirm revocation. @@ -191,7 +191,7 @@ Be sure to update any HTTP Request workflow steps that depend on this secret bef a. Hover over the secret you want to remove. -b. When the **{{< fa ellipsis-vertical >}}** menu appears, click it, then select **{{< fa trash >}} Delete**. +b. When the **{{< fa ellipsis-vertical >}}** menu appears, click it, then select **{{< fa trash >}} Delete**. c. In the confirmation dialog, select **OK** to confirm deletion. diff --git a/site/guide/inventory/_rename-field-keys.qmd b/site/guide/inventory/_rename-field-keys.qmd index bf8d7311e3..e322201813 100644 --- a/site/guide/inventory/_rename-field-keys.qmd +++ b/site/guide/inventory/_rename-field-keys.qmd @@ -4,7 +4,7 @@ SPDX-License-Identifier: AGPL-3.0 AND ValidMind Commercial --> 1. Hover over the **[actions]{.smallcaps}** column on the far-right for the field whose key you want to rename. -1. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa pen-to-square >}} Rename Key**. +1. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa pen-to-square >}} Rename Key**. 1. Enter the [new key]{.smallcaps} and click **Check Availability**. diff --git a/site/guide/inventory/manage-inventory-fields.qmd b/site/guide/inventory/manage-inventory-fields.qmd index 6c0de8ed4c..f57ab7ee04 100644 --- a/site/guide/inventory/manage-inventory-fields.qmd +++ b/site/guide/inventory/manage-inventory-fields.qmd @@ -119,7 +119,7 @@ Deleting an inventory field will remove it from all records using that field, ev 3. Hover over the field you would like to delete. -4. When the **{{< fa ellipsis-vertical >}}** menu appears under the Actions column, click on it and select [**{{< fa trash-can >}} Delete Field**]{.red}. +4. When the **{{< fa ellipsis-vertical >}}** menu appears under the Actions column, click on it and select [**{{< fa trash-can >}} Delete Field**]{.red}. 5. Click **Yes, Delete Field** to confirm permanent deletion. diff --git a/site/guide/reporting/export-analytics.qmd b/site/guide/reporting/export-analytics.qmd index 0683d083bc..92071d5965 100644 --- a/site/guide/reporting/export-analytics.qmd +++ b/site/guide/reporting/export-analytics.qmd @@ -26,7 +26,7 @@ Export analytics widgets as comma-delimited tables (`.csv`). 3. Hover over the widget you would like to export. -4. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa download >}} Export CSV**. +4. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa download >}} Export CSV**. 5. After the `.csv` file downloads automatically, open the file to confirm that the data exported is correct and is as expected. diff --git a/site/guide/shared/manage-views/_organization-views.qmd b/site/guide/shared/manage-views/_organization-views.qmd index b269044425..11b47ef720 100644 --- a/site/guide/shared/manage-views/_organization-views.qmd +++ b/site/guide/shared/manage-views/_organization-views.qmd @@ -31,7 +31,7 @@ To publish a saved personal view to your organization, you must have permissions 4. Hover over the name of the view you want to share with your organization. -5. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa upload >}} Publish to Organization**. +5. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa upload >}} Publish to Organization**. 6. (Optional) Edit the [view name]{.smallcaps} and [description]{.smallcaps} for your shared view. @@ -49,7 +49,7 @@ To unshare a saved organization view: 3. Hover over the view you want to remove from shared organization access. -4. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa download >}} Unpublish**. +4. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa download >}} Unpublish**. 5. Click **Yes, Unpublish View** to confirm removal of the view from shared organization access. @@ -67,7 +67,7 @@ Deletion of saved views is permanent. 3. Hover over the view you want to remove from your organization. -4. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa trash-can >}} Remove View**. +4. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa trash-can >}} Remove View**. 5. Click **Yes, Remove View** to confirm permanent deletion of that view. diff --git a/site/guide/shared/manage-views/_personal-views.qmd b/site/guide/shared/manage-views/_personal-views.qmd index c681045dd1..9d4bf0ff08 100644 --- a/site/guide/shared/manage-views/_personal-views.qmd +++ b/site/guide/shared/manage-views/_personal-views.qmd @@ -63,7 +63,7 @@ Deletion of saved views is permanent. 3. Hover over the name of the view you want to edit or remove. -4. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select: +4. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select: - **{{< fa pencil >}} Edit View** to edit the [view name]{.smallcaps} and [description]{.smallcaps}. Click **Save Changes** to apply your edits. - [**{{< fa trash-can >}} Remove View**]{.red} to delete the view. Click **Yes, Delete View** to confirm permanent deletion of that view. diff --git a/site/guide/templates/customize-document-checker.qmd b/site/guide/templates/customize-document-checker.qmd index 54767e598e..1e1927a380 100644 --- a/site/guide/templates/customize-document-checker.qmd +++ b/site/guide/templates/customize-document-checker.qmd @@ -57,7 +57,7 @@ Default regulations provided by {{< var vm.product >}} cannot be edited.[^2] a. Hover over the regulation or policy you want to edit. -b. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa pencil >}} Edit** to make changes to the: +b. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa pencil >}} Edit** to make changes to the: - **[regulation or policy name]{.smallcaps}** - (Optional) **[description]{.smallcaps}** @@ -106,7 +106,7 @@ Cloned assessments are the same assessment type and are available to the same do a. Hover over the assessment you want to clone. -b. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa copy >}} Clone Assessment** to make changes to the: +b. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa copy >}} Clone Assessment** to make changes to the: - **[regulation or policy name]{.smallcaps}** - (Optional) **[description]{.smallcaps}** @@ -144,7 +144,7 @@ Click **{{}} Search** to enter your keywords, then press * a. Hover over the question you want to edit. -b. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa pencil >}} Edit** to make changes to the **[question]{.smallcaps}**. +b. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa pencil >}} Edit** to make changes to the **[question]{.smallcaps}**. c. Click **Update Question** to save your changes. diff --git a/site/guide/templates/manage-document-types.qmd b/site/guide/templates/manage-document-types.qmd index 39fdcff411..d318214a0e 100644 --- a/site/guide/templates/manage-document-types.qmd +++ b/site/guide/templates/manage-document-types.qmd @@ -65,7 +65,7 @@ Once created, customize the available templates for your document type.[^7] a. Hover over the document type you want to edit. -b. When the **{{< fa ellipsis-vertical >}}** menu appears under the Actions column, click on it and select **{{< fa pencil >}} Edit** to change your document type's details. +b. When the **{{< fa ellipsis-vertical >}}** menu appears under the Actions column, click on it and select **{{< fa pencil >}} Edit** to change your document type's details. c. Click **Update Document Type** to apply your changes. @@ -73,7 +73,7 @@ c. Click **Update Document Type** to apply your changes. a. Hover over the document type you want to delete. -b. When the **{{< fa ellipsis-vertical >}}** menu appears under the Actions column, click on it and select [**{{< fa trash-can >}} Delete**]{.red} to remove the document type. +b. When the **{{< fa ellipsis-vertical >}}** menu appears under the Actions column, click on it and select [**{{< fa trash-can >}} Delete**]{.red} to remove the document type. c. Click **Yes, Delete Document Type** to confirm permanent deletion of that document type. diff --git a/site/guide/templates/manage-documents.qmd b/site/guide/templates/manage-documents.qmd index 2f039f2206..ae09f9cc23 100644 --- a/site/guide/templates/manage-documents.qmd +++ b/site/guide/templates/manage-documents.qmd @@ -158,7 +158,7 @@ Deletion of documents on records is permanent and cannot be undone. 4. Hover over the document you want to delete. -5. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select [**{{< fa trash-can >}} Delete**]{.red} to remove the document. +5. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select [**{{< fa trash-can >}} Delete**]{.red} to remove the document. 6. Click **Yes, Delete Document** to confirm permanent deletion of that document from the record. diff --git a/site/guide/validation/_add-edit-artifact-statuses.qmd b/site/guide/validation/_add-edit-artifact-statuses.qmd index 56baa1dc1e..c76ad1b230 100644 --- a/site/guide/validation/_add-edit-artifact-statuses.qmd +++ b/site/guide/validation/_add-edit-artifact-statuses.qmd @@ -16,7 +16,7 @@ c. When you are done, click **Add Status** to create your new status. a. Hover over the artifact status you'd like to modify. -b. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select: +b. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select: - **{{< fa pencil >}} Edit Details** to change the **[status name]{.smallcaps}** or **[color]{.smallcaps}** of the status, then click **Update Status** to apply your changes. - [**{{< fa trash-can >}} Delete Status**]{.red} to remove the status. Click **OK** to confirm permanent deletion of that status. @@ -48,7 +48,7 @@ c. When you are done, click **Add Status** to create your new status. a. Hover over the artifact status you'd like to modify. -b. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa pencil >}} Edit Details** to change the **[status name]{.smallcaps}** or **[color]{.smallcaps}** of the status. +b. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa pencil >}} Edit Details** to change the **[status name]{.smallcaps}** or **[color]{.smallcaps}** of the status. c. Click **Update Status** to apply your changes. diff --git a/site/guide/validation/_remove-artifact-view.qmd b/site/guide/validation/_remove-artifact-view.qmd index 5007dcf6d3..372685d317 100644 --- a/site/guide/validation/_remove-artifact-view.qmd +++ b/site/guide/validation/_remove-artifact-view.qmd @@ -8,7 +8,7 @@ SPDX-License-Identifier: AGPL-3.0 AND ValidMind Commercial --> 4. Hover over the name of the view you want to edit or remove. -5. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select: +5. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select: - **{{< fa pencil >}} Edit View** to edit the [view name]{.smallcaps} and [description]{.smallcaps}. Click **Save Changes** to apply your edits. - [**{{< fa trash-can >}} Remove View**]{.red} to delete the view. Click **Yes, Delete View** to confirm permanent deletion of that view. \ No newline at end of file diff --git a/site/guide/validation/configure-assessment-options.qmd b/site/guide/validation/configure-assessment-options.qmd index bde328568a..9e3e8c402e 100644 --- a/site/guide/validation/configure-assessment-options.qmd +++ b/site/guide/validation/configure-assessment-options.qmd @@ -56,7 +56,7 @@ c. Click **Add Option** to insert the new option into that validation report tem a. Hover over the assessment option you want to edit. -b. When the **{{< fa ellipsis-vertical >}}** menu appears, select **{{< fa pencil >}} Edit Option**. +b. When the **{{< fa ellipsis-vertical >}}** menu appears, select **{{< fa pencil >}} Edit Option**. c. Update the details for your assessment option: @@ -75,7 +75,7 @@ Assessment options can only be deleted if they are not assigned to sections in a a. Hover over the assessment option you want to edit. -b. When the **{{< fa ellipsis-vertical >}}** menu appears, select [**{{< fa trash-can >}} Delete Option**]{.red}. +b. When the **{{< fa ellipsis-vertical >}}** menu appears, select [**{{< fa trash-can >}} Delete Option**]{.red}. c. Click **Delete Assessment Option** to confirm removal of that option. diff --git a/site/guide/validation/manage-artifact-fields.qmd b/site/guide/validation/manage-artifact-fields.qmd index 47c3ce07cd..36be54518e 100644 --- a/site/guide/validation/manage-artifact-fields.qmd +++ b/site/guide/validation/manage-artifact-fields.qmd @@ -117,7 +117,7 @@ Deleting an artifact field will remove it from all artifacts using that field, e 3. Hover over the field you would like to delete. -4. When the **{{< fa ellipsis-vertical >}}** menu appears under the Actions column, click on it and select [**{{< fa trash-can >}} Delete Field**]{.red}. +4. When the **{{< fa ellipsis-vertical >}}** menu appears under the Actions column, click on it and select [**{{< fa trash-can >}} Delete Field**]{.red}. 5. Click **Yes, Delete Field** to confirm permanent deletion. diff --git a/site/guide/validation/manage-artifact-severities.qmd b/site/guide/validation/manage-artifact-severities.qmd index 16000eb5de..b91bc0a9cf 100644 --- a/site/guide/validation/manage-artifact-severities.qmd +++ b/site/guide/validation/manage-artifact-severities.qmd @@ -32,7 +32,7 @@ aliases: 3. Hover over the severity you want to edit. -4. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa pencil >}} Edit Severity**. +4. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa pencil >}} Edit Severity**. 5. Make your changes to the **[name]{.smallcaps}** and **[color]{.smallcaps}** of the severity. @@ -56,7 +56,7 @@ Severities can only be deleted if they are not in use by any artifacts. 3. Hover over the severity you would like to delete. -4. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select [**{{< fa trash-can >}} Delete Severity**]{.red}. +4. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select [**{{< fa trash-can >}} Delete Severity**]{.red}. 5. Click **Delete Artifact Severity** to confirm permanent deletion. diff --git a/site/guide/validation/manage-artifact-types.qmd b/site/guide/validation/manage-artifact-types.qmd index f684bc82f0..ac667db17d 100644 --- a/site/guide/validation/manage-artifact-types.qmd +++ b/site/guide/validation/manage-artifact-types.qmd @@ -87,7 +87,7 @@ Custom artifact types support the same features as default types, including stat 3. Hover over the artifact type you want to archive or delete. -5. When the **{{< fa ellipsis-vertical >}}** menu appears, click [**{{< fa box-archive >}} Archive Artifact Type**]{.red} under the Actions column. +5. When the **{{< fa ellipsis-vertical >}}** menu appears, click [**{{< fa box-archive >}} Archive Artifact Type**]{.red} under the Actions column. 6. Click **Yes, Archive Artifact Type** to confirm archival. @@ -103,13 +103,13 @@ Only artifact types with no active artifact records can be deleted. ::: a. Hover over the artifact type you want to delete. -b. When the **{{< fa ellipsis-vertical >}}** menu appears, click [**{{< fa trash-can >}} Delete**]{.red} under the Actions column. +b. When the **{{< fa ellipsis-vertical >}}** menu appears, click [**{{< fa trash-can >}} Delete**]{.red} under the Actions column. c. Click **Yes, Delete Artifact Type** to confirm permanent deletion. #### Restore artifact types a. Hover over the artifact type you want to restore. -b. When the **{{< fa ellipsis-vertical >}}** menu appears, click **{{< fa undo >}} Restore** under the Actions column. +b. When the **{{< fa ellipsis-vertical >}}** menu appears, click **{{< fa undo >}} Restore** under the Actions column. c. Click **Yes, Restore Artifact Type** to confirm restoration. ::: diff --git a/site/guide/validation/manage-validation-guidelines.qmd b/site/guide/validation/manage-validation-guidelines.qmd index aba8522672..124c669924 100644 --- a/site/guide/validation/manage-validation-guidelines.qmd +++ b/site/guide/validation/manage-validation-guidelines.qmd @@ -111,7 +111,7 @@ a. Expand the menu for a risk area by clicking **{{< fa chevron-down >}}**. b. Hover over the guideline you want to delete. -c. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select [**{{< fa trash-can>}} Delete Guideline**]{.red}. +c. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select [**{{< fa trash-can>}} Delete Guideline**]{.red}. d. Click **Yes, Delete Guideline** to confirm permanent deletion of that guideline. diff --git a/site/guide/workflows/configure-workflows.qmd b/site/guide/workflows/configure-workflows.qmd index aadd9fb483..76d03cb09f 100644 --- a/site/guide/workflows/configure-workflows.qmd +++ b/site/guide/workflows/configure-workflows.qmd @@ -65,7 +65,7 @@ To create a copy of an existing workflow as a new draft workflow:[^3] 2. Hover over the workflow you'd like to clone.[^4] -3. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa copy >}} Clone Workflow**. +3. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa copy >}} Clone Workflow**. 4. Make your changes to the workflow's **[title]{.smallcaps}** and **[workflow type]{.smallcaps}**. @@ -160,7 +160,7 @@ Deleting workflow steps on workflows active on records may result in malfunction 3. Hover over the workflow you would like to remove.[^11] -4. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa trash-can >}} Delete Workflow**. +4. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa trash-can >}} Delete Workflow**. 5. Click **Yes, Delete Workflow** to permanently remove that workflow and make it inaccessible for any future runs. diff --git a/site/guide/workflows/manage-record-stages.qmd b/site/guide/workflows/manage-record-stages.qmd index c6036b868b..3ca76a1bc9 100644 --- a/site/guide/workflows/manage-record-stages.qmd +++ b/site/guide/workflows/manage-record-stages.qmd @@ -36,7 +36,7 @@ aliases: 4. Hover over the stage you'd like to modify. -5. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it: +5. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it: - Select **{{< fa pencil >}} Edit Details** to modify that stage. - Select **{{< fa trash-can >}} Delete Stage**. On the confirmation dialogue that appears, select **OK** to confirm deletion. From d1728ba319de24a20513be51928f76e69fe3f71d Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Tue, 2 Jun 2026 17:17:35 -0700 Subject: [PATCH 32/35] more proofreading --- site/guide/configuration/customize-your-dashboard.qmd | 10 +++++----- .../guide/documentation/working-with-documentation.qmd | 2 +- site/guide/inventory/_remove-attachments.qmd | 2 +- site/guide/validation/manage-validation-guidelines.qmd | 8 ++++---- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/site/guide/configuration/customize-your-dashboard.qmd b/site/guide/configuration/customize-your-dashboard.qmd index e18f28c45f..4c4d6646b0 100644 --- a/site/guide/configuration/customize-your-dashboard.qmd +++ b/site/guide/configuration/customize-your-dashboard.qmd @@ -28,9 +28,9 @@ Dashboards allow you to use widgets to quickly review and access information by 1. In the left sidebar, click **{{< fa home >}} Dashboard**. -2. Click **{{< fa plus>}} Add Dashboard**. +2. Click **{{< fa plus >}} Add Dashboard**. -3. On the Add New Dasboard modal that appears, enter the: +3. On the Add New Dashboard modal that appears, enter the: - **[dashboard name]{.smallcaps}** - **[description]{.smallcaps}** (optional) @@ -56,7 +56,7 @@ Deletion of dashboards is permanent. #### Edit dashboard details -a. Select **{{< fa pencil >}} Details** to edit a **[dashboard name]{.smallcaps}** or **[description]{.smallcaps}**. +a. Select **{{< fa pencil >}} Details** to edit a **[dashboard name]{.smallcaps}** or **[description]{.smallcaps}**. b. Make your edits then click **Save Changes** to apply your adjustments. @@ -99,11 +99,11 @@ Retrieve a list of the latest artifacts[^5] or recent activity.[^6] 3. Click **{{< fa pencil >}} Edit Dashboard**. -4. Hover over the title of a widget until the **{{< fa hand>}}** appears. +4. Hover over the title of a widget until the **{{< fa hand >}}** appears. 5. Click and drag to position your widget as desired. - To resize a widget, hover over the bottom-right corner of a widget until the **{{< fa hand>}}** appears, then adjust the dimensions to your liking. + To resize a widget, hover over the bottom-right corner of a widget until the **{{< fa hand >}}** appears, then adjust the dimensions to your liking. 6. Click **Done Editing** to exit the editor. diff --git a/site/guide/documentation/working-with-documentation.qmd b/site/guide/documentation/working-with-documentation.qmd index 441e189c75..3375eb7340 100644 --- a/site/guide/documentation/working-with-documentation.qmd +++ b/site/guide/documentation/working-with-documentation.qmd @@ -39,7 +39,7 @@ After you upload initial documentation through the {{< var validmind.developer > This section describes how to work with Development type documents[^1] (for example, model documentation) in the {{< var validmind.platform >}}. Typically, you perform the tasks described here **after you have uploaded some initial documentation** with the {{< var validmind.developer >}}. -[Learn more about the {{< var validmind.developer >}} {{< fa hand-point-right>}}](/developer/validmind-library.qmd){.button .button-green} +[Learn more about the {{< var validmind.developer >}} {{< fa hand-point-right >}}](/developer/validmind-library.qmd){.button .button-green} ::: ## Key concepts diff --git a/site/guide/inventory/_remove-attachments.qmd b/site/guide/inventory/_remove-attachments.qmd index 0adedfad1b..0307be89af 100644 --- a/site/guide/inventory/_remove-attachments.qmd +++ b/site/guide/inventory/_remove-attachments.qmd @@ -4,7 +4,7 @@ SPDX-License-Identifier: AGPL-3.0 AND ValidMind Commercial --> 2. Locate the file you want to remove, and click on the **{{< fa ellipsis-vertical >}}** menu. - - Select **{{< fa trash-can>}} Delete File** to remove the file. Click **Yes, Delete File** to confirm permanent deletion of that file. + - Select **{{< fa trash-can >}} Delete File** to remove the file. Click **Yes, Delete File** to confirm permanent deletion of that file. - Select **Remove Notes** to delete any notes. Removal of notes is saved automatically. 3. Click **Save** to apply the deletion. diff --git a/site/guide/validation/manage-validation-guidelines.qmd b/site/guide/validation/manage-validation-guidelines.qmd index 124c669924..a22f806404 100644 --- a/site/guide/validation/manage-validation-guidelines.qmd +++ b/site/guide/validation/manage-validation-guidelines.qmd @@ -55,7 +55,7 @@ To set up validation guidelines, you'll need to complete these two steps in sequ a. Hover over the risk area you want to edit. -b. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa pencil>}} Edit Risk Area**. +b. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa pencil >}} Edit Risk Area**. c. Make your desired changes to the risk area's **[name]{.smallcaps}** and **[description]{.smallcaps}**. @@ -69,7 +69,7 @@ Any guidelines associated with a risk area will need to be deleted before the ri a. Hover over the risk area you want to remove. -b. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select [**{{< fa trash-can>}} Delete Risk Area**]{.red}. +b. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select [**{{< fa trash-can >}} Delete Risk Area**]{.red}. c. Click **Yes, Delete Risk Area** to confirm permanent deletion of that risk area. @@ -95,7 +95,7 @@ a. Expand the menu for a risk area by clicking **{{< fa chevron-down >}}**. b. Hover over the guideline you want to edit. -c. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa pencil>}} Edit Guideline**. +c. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa pencil >}} Edit Guideline**. d. Make your desired changes to the risk area's **[title]{.smallcaps}** and **[description]{.smallcaps}**. @@ -111,7 +111,7 @@ a. Expand the menu for a risk area by clicking **{{< fa chevron-down >}}**. b. Hover over the guideline you want to delete. -c. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select [**{{< fa trash-can>}} Delete Guideline**]{.red}. +c. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select [**{{< fa trash-can >}} Delete Guideline**]{.red}. d. Click **Yes, Delete Guideline** to confirm permanent deletion of that guideline. From bfef378367184cba06585aad31d6c2509c60ae25 Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Tue, 2 Jun 2026 17:23:21 -0700 Subject: [PATCH 33/35] more proofreading --- .../_add-workflow-example.qmd | 3 --- .../_configure-workflow-http-step.qmd | 14 +++++--------- .../_publish-workflow-example.qmd | 3 --- .../integrations-examples/create-jira-ticket.qmd | 2 -- .../create-servicenow-incident.qmd | 1 - .../synchronize-aws-sagemaker.qmd | 5 ++--- site/guide/integrations/link-external-records.qmd | 2 +- 7 files changed, 8 insertions(+), 22 deletions(-) diff --git a/site/guide/integrations/integrations-examples/_add-workflow-example.qmd b/site/guide/integrations/integrations-examples/_add-workflow-example.qmd index 555337590f..eb06e8bfcd 100644 --- a/site/guide/integrations/integrations-examples/_add-workflow-example.qmd +++ b/site/guide/integrations/integrations-examples/_add-workflow-example.qmd @@ -15,6 +15,3 @@ c. Click **{{< fa plus >}} Add Workflow**:^[[Add new workflows](/guide/workflows - Under **[workflow expected duration]{.smallcaps}**, define the SLA for the workflow based on the start date in days, weeks, months, or years. d. Click **Save Draft** to save your blank workflow. - - - diff --git a/site/guide/integrations/integrations-examples/_configure-workflow-http-step.qmd b/site/guide/integrations/integrations-examples/_configure-workflow-http-step.qmd index 2f81865855..ba1b8863ae 100644 --- a/site/guide/integrations/integrations-examples/_configure-workflow-http-step.qmd +++ b/site/guide/integrations/integrations-examples/_configure-workflow-http-step.qmd @@ -14,14 +14,14 @@ c. Configure the required fields for Jira,[^configure-jira] replacing the placeh - **[headers]{.smallcaps}** — Add: - `Content-Type`: `application/json` - `Authorization`: `Bearer {{Jira Personal Access Token}}` - + ::: {.callout title="Use webhook secrets for credentials"} Instead of entering credentials in plaintext, use a webhook secret: `Bearer {{secret:jira_pat}}`. To learn more, refer to [Manage secrets](/guide/integrations/manage-secrets.qmd#webhook-secrets). ::: - + - **[body type]{.smallcaps}** — JSON - **[body]{.smallcaps}** — Use the following JSON payload: - + ```json { "fields": { @@ -53,11 +53,11 @@ c. Configure the required fields for ServiceNow,[^configure-servicenow] replacin - **[headers]{.smallcaps}** — Add: - `Content-Type`: `application/json` - `Authorization`: `Basic {{ServiceNow Credentials}}` - + ::: {.callout title="Use webhook secrets for credentials"} Instead of entering credentials in plaintext, use a webhook secret: `Basic {{secret:servicenow_creds}}`. To learn more, refer to [Manage secrets](/guide/integrations/manage-secrets.qmd#webhook-secrets). ::: - + - **[body type]{.smallcaps}** — JSON - **[body]{.smallcaps}** — Use the following JSON payload: @@ -77,7 +77,3 @@ d. Click **Update Step** to save your configuration. ![Create a ServiceNow incident](integrations-examples-http-request-open-servicenow-incident.png){width=80% fig-alt="Screenshot of the HTTP request step configured to create a ServiceNow incident, showing the required fields described in step 12." .screenshot} :::: - - - - diff --git a/site/guide/integrations/integrations-examples/_publish-workflow-example.qmd b/site/guide/integrations/integrations-examples/_publish-workflow-example.qmd index f68e92f6ba..8f666708c2 100644 --- a/site/guide/integrations/integrations-examples/_publish-workflow-example.qmd +++ b/site/guide/integrations/integrations-examples/_publish-workflow-example.qmd @@ -7,6 +7,3 @@ a. Configure and link any additional workflow steps.^[[Configure workflows](/gui b. Save your workflow to apply your changes. c. Publish your workflow to make it available for use. - - - diff --git a/site/guide/integrations/integrations-examples/create-jira-ticket.qmd b/site/guide/integrations/integrations-examples/create-jira-ticket.qmd index 423dfd5e6b..dfa5df8fa0 100644 --- a/site/guide/integrations/integrations-examples/create-jira-ticket.qmd +++ b/site/guide/integrations/integrations-examples/create-jira-ticket.qmd @@ -50,5 +50,3 @@ The HTTP request to create the Jira ticket is sent when the workflow executes th [^2]: [Setting up workflows](/guide/workflows/setting-up-workflows.qmd) [^3]: [Manage secrets](/guide/integrations/manage-secrets.qmd) - - diff --git a/site/guide/integrations/integrations-examples/create-servicenow-incident.qmd b/site/guide/integrations/integrations-examples/create-servicenow-incident.qmd index 09c2d92103..6d6e8db531 100644 --- a/site/guide/integrations/integrations-examples/create-servicenow-incident.qmd +++ b/site/guide/integrations/integrations-examples/create-servicenow-incident.qmd @@ -48,4 +48,3 @@ The HTTP request to create the ServiceNow incident is sent when the workflow exe [^2]: [Setting up workflows](/guide/workflows/setting-up-workflows.qmd) [^3]: [Manage secrets](/guide/integrations/manage-secrets.qmd) - diff --git a/site/guide/integrations/integrations-examples/synchronize-aws-sagemaker.qmd b/site/guide/integrations/integrations-examples/synchronize-aws-sagemaker.qmd index 355a1cac77..deb6fe137d 100644 --- a/site/guide/integrations/integrations-examples/synchronize-aws-sagemaker.qmd +++ b/site/guide/integrations/integrations-examples/synchronize-aws-sagemaker.qmd @@ -41,10 +41,10 @@ e. Complete: - **[aws secret access key]{.smallcaps}** — The secret generated by AWS IAM with permissions to read the SageMaker model registry. - **[initial status]{.smallcaps}** — Set to `Operational` to enable immediately or `Disabled` if you plan to finish setup later. -f. Click **Save Integration**. +f. Click **Save Integration**. g. Test the connection: - + i. Hover over the AWS SageMaker connection you just created. ii. When the **{{< fa ellipsis-vertical >}}** menu appears, click on it and select **{{< fa circle-check >}} Test Connection**. @@ -82,4 +82,3 @@ h. Click **Link Model**. ![Connect with AWS SageMaker](integrations-examples-aws-sagemaker.png){width=80% fig-alt="Screenshot of the AWS Sagemaker connection configured to synchronize models, showing the required fields described in step 5." .screenshot} [^3]: [Working with the inventory](/guide/inventory/working-with-the-inventory.qmd#search-filter-and-sort-records) - diff --git a/site/guide/integrations/link-external-records.qmd b/site/guide/integrations/link-external-records.qmd index d445c7796f..0e5b3dc569 100644 --- a/site/guide/integrations/link-external-records.qmd +++ b/site/guide/integrations/link-external-records.qmd @@ -9,7 +9,7 @@ aliases: - /guide/integrations/link-external-models.html --- -Link records (models) tracked in {{< var vm.product >}} to external systems to keep your inventories synchronized. +Link records (models) tracked in {{< var vm.product >}} to external systems to keep your inventories synchronized. You can link, refresh, edit, and remove these connections as needed. From 53983f15b63d52a99e7e3248b98ed28758f2bb21 Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Wed, 3 Jun 2026 09:58:13 -0700 Subject: [PATCH 34/35] Edit & update sitemap --- .../integrations/configure-connections.qmd | 46 ++++++++++--------- .../implement-custom-integrations.qmd | 8 ++-- site/llm/chatbot-product-map.md | 12 ++--- 3 files changed, 34 insertions(+), 32 deletions(-) diff --git a/site/guide/integrations/configure-connections.qmd b/site/guide/integrations/configure-connections.qmd index 0e8484ab91..8a14ba8592 100644 --- a/site/guide/integrations/configure-connections.qmd +++ b/site/guide/integrations/configure-connections.qmd @@ -227,11 +227,11 @@ If the test is successful, the message **{{< fa check-circle >}} Connection succ ::: {.panel-tabset} -### Monitor connection health +## Monitor connection health The Connections page provides visibility into the health of your integrations at a glance. -#### Health indicators +### Health indicators Each connection displays a status indicator: @@ -239,7 +239,7 @@ Each connection displays a status indicator: - [Needs Attention]{.bubble .orange-bg} — The connection has issues that need to be resolved. - [Disabled]{.bubble} — The connection has been manually disabled. -#### View connections requiring attention +### View connections requiring attention Connections with errors or warnings display a status indicator, such as [{{< fa triangle-exclamation >}} 1 link with sync errors]{.bubble .yellow-bg}. Review these connections to: @@ -248,7 +248,7 @@ Connections with errors or warnings display a status indicator, such as [{{< fa 3. Verify the external service is accessible. 4. Test the connection after making changes. -#### View linked records +### View linked records To see which records (models) use a specific connection: @@ -260,7 +260,7 @@ To see which records (models) use a specific connection: 4. Review the linked records table, which shows the **VM Model** ({{< var vm.product >}} inventory record) and **External Name** (the linked external record) for each connection. -#### View metric sources +### View metric sources For connections that provide monitoring metrics, such as Amazon Bedrock: @@ -270,11 +270,23 @@ For connections that provide monitoring metrics, such as Amazon Bedrock: 3. These metrics can be added to monitoring documents for records linked to this connection.[^5] -### View monitoring data +## View monitoring data Some integrations, such as Amazon Bedrock, can provide metrics that sync into {{< var vm.product >}} for use in monitoring documents. Metric sources define which external evaluations or metrics are available for a linked record. -#### Access the Monitoring tab +### How do metric sources work? + +When a record in the {{< var vm.product >}} inventory is linked to an external resource, such as a Bedrock agent, available evaluations from that resource become metric sources. These metrics: + +- Sync automatically on a scheduled interval. +- Appear in the **From Integration** tab when adding metrics over time to monitoring documents.[^6] +- Support threshold configuration for alerting when values exceed acceptable limits. + +::: {.callout title="Bedrock Agent Evaluations"} +For Amazon Bedrock connections, metric sources include agent evaluation results such as accuracy, helpfulness, and other assessment metrics. Link a record to a Bedrock agent to enable these metrics.[^7] +::: + +### Access the Monitoring tab 1. In the left sidebar, click **{{< fa gear >}} Settings**. @@ -286,23 +298,11 @@ Some integrations, such as Amazon Bedrock, can provide metrics that sync into {{ This section lists all configured metric sources, their sync status, and when they last synced. -#### How metric sources work - -When a record in the {{< var vm.product >}} inventory is linked to an external resource, such as a Bedrock agent, available evaluations from that resource become metric sources. These metrics: - -- Sync automatically on a scheduled interval. -- Appear in the **From Integration** tab when adding metrics over time to monitoring documents.[^5] -- Support threshold configuration for alerting when values exceed acceptable limits. - -::: {.callout title="Bedrock Agent Evaluations"} -For Amazon Bedrock connections, metric sources include agent evaluation results such as accuracy, helpfulness, and other assessment metrics. Link a record to a Bedrock agent to enable these metrics.[^6] -::: - ::: ## Delete connections -::: {.callout-important title="Deleting a connection is permanent."} +::: {.callout-important title="Deleting a connection is permanent and cannot be undone."} ::: 1. In the left sidebar, click **{{< fa gear >}} Settings**. @@ -325,6 +325,8 @@ For Amazon Bedrock connections, metric sources include agent evaluation results [^4]: [Implement custom integrations](implement-custom-integrations.qmd) -[^5]: [Work with metrics over time](/guide/monitoring/work-with-metrics-over-time.qmd#add-integration-metrics) +[^5]: [Link external records](link-external-records.qmd) + +[^6]: [Work with metrics over time](/guide/monitoring/work-with-metrics-over-time.qmd#add-integration-metrics) -[^6]: [Link external records](link-external-records.qmd) +[^7]: [Synchronize records with AWS Bedrock](integrations-examples/synchronize-aws-bedrock.qmd) diff --git a/site/guide/integrations/implement-custom-integrations.qmd b/site/guide/integrations/implement-custom-integrations.qmd index c3cb4c43fa..f95e451039 100644 --- a/site/guide/integrations/implement-custom-integrations.qmd +++ b/site/guide/integrations/implement-custom-integrations.qmd @@ -161,7 +161,7 @@ A reference implementation with sample code is available. Contact your {{< var v ::: {.panel-tabset} -### 1. Add custom integration +## 1. Add custom integration a. In the left sidebar, click **{{< fa gear >}} Settings**. @@ -191,11 +191,11 @@ g. Test the connection to verify your service is reachable: If the test succeeds, the message **{{< fa check-circle >}} Connection successful** is displayed. -### 2. Link resources +## 2. Link resources After configuring your custom integration, link resources to inventory records or artifacts: -#### Link inventory records to models +### Link inventory records to models a. In the left sidebar, click **{{< fa cubes >}} Inventory**. @@ -213,7 +213,7 @@ e. When the **{{< fa ellipsis-vertical >}}** menu appears, click it and select * f. Click **Link Model**. -#### Link artifacts to tickets +### Link artifacts to tickets a. Locate the artifact you want to link to a ticket.[^5] diff --git a/site/llm/chatbot-product-map.md b/site/llm/chatbot-product-map.md index c2abf3e499..0ef651839b 100644 --- a/site/llm/chatbot-product-map.md +++ b/site/llm/chatbot-product-map.md @@ -30,7 +30,7 @@ - `/guide/attestation/submit-attestations.html` - Sections: Prerequisites; Steps - `/guide/attestation/working-with-attestations.html` - - Sections: Prerequisites; Key concepts; Where do I access attestations?; How does the attestation process work?; How are attestation submissions organized?; How do I create meaningful attestation questionnaires?; Manage attestations + - Sections: Key concepts; Where do I access attestations?; How does the attestation process work?; How are attestation submissions organized?; How do I create meaningful attestation questionnaires?; Prerequisites; Manage attestations - `/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 @@ -55,7 +55,7 @@ - `/guide/attestation/submit-attestations.html` - Sections: Prerequisites; Steps - `/guide/attestation/working-with-attestations.html` - - Sections: Prerequisites; Key concepts; Where do I access attestations?; How does the attestation process work?; How are attestation submissions organized?; How do I create meaningful attestation questionnaires?; Manage attestations + - Sections: Key concepts; Where do I access attestations?; How does the attestation process work?; How are attestation submissions organized?; How do I create meaningful attestation questionnaires?; Prerequisites; Manage attestations ### Organization @@ -454,7 +454,7 @@ - `/faq/faq-workflows.html` - Sections: Can I customize workflows within }?; What statuses are available for use in workflows?; Can we work with disconnected workflows?; You can also leverage the } once you are ready to document a specific record (model) for review and validation.; Learn more - `/guide/integrations/integrations-examples/use-webhooks-with-workflows.html` - - Sections: Prerequisites; Start a workflow via webhook; a. Configure workflow in }; b. Start workflow from external system; Trigger a paused workflow to continue; a. Configure workflow in }; b. Trigger workflow to continue from external system + - Sections: Prerequisites; Start a workflow via webhook; 1. Configure workflow in }; 2. Start workflow from external system; Trigger a paused workflow to continue; 1. Configure workflow in }; 2. Trigger workflow to continue from external system - `/guide/workflows/conditional-step-requirements.html` - Sections: Prerequisites; Configure conditional requirements - `/guide/workflows/configure-workflows.html` @@ -476,7 +476,7 @@ - `/faq/faq-workflows.html` - Sections: Can I customize workflows within }?; What statuses are available for use in workflows?; Can we work with disconnected workflows?; You can also leverage the } once you are ready to document a specific record (model) for review and validation.; Learn more - `/guide/integrations/integrations-examples/use-webhooks-with-workflows.html` - - Sections: Prerequisites; Start a workflow via webhook; a. Configure workflow in }; b. Start workflow from external system; Trigger a paused workflow to continue; a. Configure workflow in }; b. Trigger workflow to continue from external system + - Sections: Prerequisites; Start a workflow via webhook; 1. Configure workflow in }; 2. Start workflow from external system; Trigger a paused workflow to continue; 1. Configure workflow in }; 2. Trigger workflow to continue from external system - `/guide/workflows/conditional-step-requirements.html` - Sections: Prerequisites; Configure conditional requirements - `/guide/workflows/configure-workflows.html` @@ -539,7 +539,7 @@ - `/guide/attestation/submit-attestations.html` - Sections: Prerequisites; Steps - `/guide/attestation/working-with-attestations.html` - - Sections: Prerequisites; Key concepts; Where do I access attestations?; How does the attestation process work?; How are attestation submissions organized?; How do I create meaningful attestation questionnaires?; Manage attestations + - Sections: Key concepts; Where do I access attestations?; How does the attestation process work?; How are attestation submissions organized?; How do I create meaningful attestation questionnaires?; Prerequisites; Manage attestations - *No direct help link in frontend; related docs inferred from keywords.* @@ -563,7 +563,7 @@ - `/faq/faq-workflows.html` - Sections: Can I customize workflows within }?; What statuses are available for use in workflows?; Can we work with disconnected workflows?; You can also leverage the } once you are ready to document a specific record (model) for review and validation.; Learn more - `/guide/integrations/integrations-examples/use-webhooks-with-workflows.html` - - Sections: Prerequisites; Start a workflow via webhook; a. Configure workflow in }; b. Start workflow from external system; Trigger a paused workflow to continue; a. Configure workflow in }; b. Trigger workflow to continue from external system + - Sections: Prerequisites; Start a workflow via webhook; 1. Configure workflow in }; 2. Start workflow from external system; Trigger a paused workflow to continue; 1. Configure workflow in }; 2. Trigger workflow to continue from external system - `/guide/workflows/conditional-step-requirements.html` - Sections: Prerequisites; Configure conditional requirements - `/guide/workflows/configure-workflows.html` From 4df1a4c91c840f563d72c56b3c05005a6a898250 Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Fri, 5 Jun 2026 12:07:39 -0700 Subject: [PATCH 35/35] steven's suggestions --- site/guide/integrations/configure-connections.qmd | 6 +++--- .../integrations-examples/use-webhooks-with-workflows.qmd | 4 ++-- site/guide/integrations/manage-secrets.qmd | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/site/guide/integrations/configure-connections.qmd b/site/guide/integrations/configure-connections.qmd index 8a14ba8592..4f31402def 100644 --- a/site/guide/integrations/configure-connections.qmd +++ b/site/guide/integrations/configure-connections.qmd @@ -31,7 +31,7 @@ Required configuration details: ### ServiceNow -An IT service management platform that helps teams handle requests incidents assets and other operational workflows. +An IT service management platform that helps teams handle requests, incidents, assets, and other operational workflows. Required configuration details: @@ -52,7 +52,7 @@ Required configuration details: ### Amazon SageMaker -An ML development service that lets teams build train and deploy models at scale. +An ML development service that lets teams build, train, and deploy models at scale. Required configuration details: @@ -82,7 +82,7 @@ Required configuration details: ### MLflow -An open-source toolset that tracks experiments packages models and manages their deployment. +An open-source toolset that tracks experiments, packages models, and manages their deployment. Required configuration details: diff --git a/site/guide/integrations/integrations-examples/use-webhooks-with-workflows.qmd b/site/guide/integrations/integrations-examples/use-webhooks-with-workflows.qmd index 4cb07f1ce3..dfba80dd14 100644 --- a/site/guide/integrations/integrations-examples/use-webhooks-with-workflows.qmd +++ b/site/guide/integrations/integrations-examples/use-webhooks-with-workflows.qmd @@ -59,7 +59,7 @@ e. Click **Save**. Send a POST request to the webhook URL with a JSON payload that includes the `run_workflow` action for the target record (model) CUID: ```bash -curl -X POST https://api.prod.vm.validmind.ai/vm/api/v1/webhooks/xxxxxxxxxxxxxxxxxxxxxxxxx/xxxx -H 'Content-Type`: `application/json' -H 'x-api-key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' -H 'x-api-secret: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' --data '{ +curl -X POST https://api.prod.vm.validmind.ai/vm/api/v1/webhooks/xxxxxxxxxxxxxxxxxxxxxxxxx/xxxx -H 'Content-Type: application/json' -H 'x-api-key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' -H 'x-api-secret: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' --data '{ "action": "run_workflow", "target": "", "entity_name": "InventoryModel" @@ -108,7 +108,7 @@ When the workflow reaches this step, it pauses and waits for the external system Send a POST request to the webhook URL with a JSON payload containing the `run_step` action for the target record (model) CUID: ```bash -curl -X POST https://api.prod.vm.validmind.ai/vm/api/v1/webhooks/xxxxxxxxxxxxxxxxxxxxxxxxx/xxxx -H 'Content-Type`: `application/json' -H 'x-api-key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' -H 'x-api-secret: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' --data '{ +curl -X POST https://api.prod.vm.validmind.ai/vm/api/v1/webhooks/xxxxxxxxxxxxxxxxxxxxxxxxx/xxxx -H 'Content-Type: application/json' -H 'x-api-key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' -H 'x-api-secret: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' --data '{ "action": "run_step", "target": "", "entity_name": "InventoryModel" diff --git a/site/guide/integrations/manage-secrets.qmd b/site/guide/integrations/manage-secrets.qmd index 3ee0c2558e..cefad58a10 100644 --- a/site/guide/integrations/manage-secrets.qmd +++ b/site/guide/integrations/manage-secrets.qmd @@ -53,7 +53,7 @@ The secret can now be selected when configuring connections.[^2] ### Edit integration secrets -a. Click the secret you want to modify +a. Click the secret you want to modify. b. In the modal that appears, click **Edit Secret**.