Integrations

Extensions

Enable, configure and disable the built-in extensions: Slack, MLflow, Azure AI Foundry, Model Lifecycle, Risk Import, Jira Assets, Jira incidents and Dataset Bulk Upload.

Overview

Extensions are optional features built into VerifyWise. Some connect VerifyWise to tools you already use (Slack, MLflow, Azure AI Foundry, Jira Assets, Jira incidents). Others add extra tools inside the app (Model Lifecycle, Risk Import, Dataset Bulk Upload).

All eight extensions ship with VerifyWise, so there is nothing to download or install. Each one stays off until an Admin enables it for the organization.

Admin only
Only Admins can open the Extensions page and enable, configure or disable extensions. Other roles see the Extensions button greyed out with the tooltip "Admin access required."
Looking for compliance frameworks?
Frameworks such as SOC 2, GDPR and HIPAA are not extensions. They are built in and available to every organization. See Adding frameworks to add one to your organization or a use case.

Finding extensions

There are two ways to open the Extensions page:

  • Header: Click the Extensions button (package icon) in the top header. Its tooltip reads "Enable or disable extensions for your organization."
  • Start here: Open Start here in the sidebar and click the Extensions card.

The page lists one card per extension. Each card shows the extension name, its category and version (for example "ML Ops ยท v1.0.0"), and " ยท Configuration required" when you need to fill in settings before you can enable it. Enabled extensions carry an Enabled badge.

Enabling and configuring an extension

The buttons on each card depend on the extension and its state:

ButtonWhat it does
EnableTurns the extension on straight away. Shown when the extension needs no settings up front.
Configure to enableOpens the settings page so you can fill in the required settings, then enable. Shown for MLflow and Azure AI Foundry.
ConfigureOpens the settings page of an enabled extension that has settings.
DisableTurns the extension off. Shown once the extension is enabled.

The settings page (reached through Configure or Configure to enable) has a Back to extensions link and, depending on the extension:

  • Configuration: A form with the extension's connection settings. Password and token fields are stored encrypted. Leave a secret field blank to keep the existing value.
  • Extension panel: Slack, Model Lifecycle, Jira Assets and Jira incidents show their own setup panel here once enabled.
  • Enable / Disable: Turns the extension on or off.
  • Save configuration: Saves changes to the Configuration form after the extension is enabled. You see "Configuration saved." when it works.
  • Test connection: Checks the saved settings against the external service. Available for MLflow, Azure AI Foundry and Jira incidents. Jira Assets has its own Test Connection button in its panel, and Jira incidents also has a Test connection button in its panel that checks the values you have typed before you save them.

If something goes wrong, the page shows the error returned by the server, or a short message such as "Enable failed", "Save failed" or "Test failed".

Disabling an extension

Click Disable on the card or on the settings page. The extension turns off immediately, without a confirmation step, and its tabs, buttons and menu items disappear from the app.

Disabling keeps your data
Disabling does not delete anything. The extension's configuration and any data it created stay in place, and everything comes back when you enable it again. There is no uninstall.

Available extensions

ExtensionCategoryWhat it does
SlackCommunicationSends VerifyWise notifications to Slack channels
MLflowML OpsPulls models and runs from an MLflow tracking server
Azure AI FoundryML OpsImports model deployments from an Azure AI Foundry project
Model LifecycleML OpsAdds configurable lifecycle phases to each model
Risk ImportData managementCreates risks in bulk from an Excel template
Jira Assets IntegrationData managementImports "AI System" objects from Jira Service Management Assets as use cases
Jira incidentsData managementImports new Jira issues as incidents and keeps their status in sync both ways
Dataset Bulk UploadData managementUploads many dataset files at once, with PII detection

Slack

Sends VerifyWise notifications to channels in your Slack workspace.

  1. Click Enable on the Slack card, then Configure.
  2. Click Add to Slack. Slack asks you to pick a workspace and the channel to post to, and to approve the connection.
  3. Back in VerifyWise, the connection appears in the table (Team Name, Channel, Creation Date, Active, Action). You can add more connections the same way.
  4. Click Configure to open Notification Routing, choose the notification types under "Apply to all workspaces", and click Save Changes.

Where it shows up: notifications arrive in the Slack channels you connected. See Slack integration for routing, troubleshooting and removing connections.

Self-hosted installations
Slack needs a Slack app. On a self-hosted installation, set SLACK_CLIENT_ID, SLACK_CLIENT_SECRET and SLACK_API_URL on the server, and VITE_SLACK_CLIENT_ID and VITE_SLACK_URL on the client, before you click Add to Slack.

MLflow

Pulls models and runs from your MLflow tracking server into VerifyWise.

  1. Click Configure to enable on the MLflow card.
  2. Fill in the Configuration form (see the table below).
  3. Click Enable, then Test connection to check the server is reachable.
FieldNotes
Tracking server URLRequired. Base URL of your MLflow tracking server, for example https://mlflow.example.com.
Authentication methodNone, Basic (username / password) or Token. Defaults to None.
UsernameNeeded for Basic authentication.
PasswordNeeded for Basic authentication. Stored encrypted.
API tokenNeeded for Token authentication. Stored encrypted.
Request timeout (seconds)Between 1 and 600. Defaults to 30. Applies to each request to MLflow.

Where it shows up: an MLFlow tab in Model inventory. Click Sync there to pull the latest runs. Syncing is manual; nothing syncs on a schedule.

Azure AI Foundry

Imports the model deployments in an Azure AI Foundry project. The AI agents page also uses this connection as one of its sources.

  1. Click Configure to enable on the Azure AI Foundry card.
  2. Fill in the Configuration form (see the table below).
  3. Click Enable, then Test connection.
FieldNotes
Project endpointRequired. In the form https://<project>.services.ai.azure.com.
API keyRequired. Stored encrypted.
Subscription IDOptional. Only needed for the Azure Resource Manager API.
Resource groupOptional. Only needed for the Azure Resource Manager API.
Resource nameOptional. Only needed for the Azure Resource Manager API.

Where it shows up: an Azure AI Foundry tab in Model inventory. Click Sync there to refresh the deployments.

Model Lifecycle

Lets you define lifecycle phases for your models, each with its own items such as approvals, documents and responsible people.

  1. Click Enable on the Model Lifecycle card, then Configure.
  2. Click Configure Phases to open Configure Model Lifecycle.
  3. Click Add new phase, give it a name and an optional description.
  4. Inside a phase, click Add item, name it and pick its type: Text, Text Area, Documents, People, Classification, Checklist or Approval.
The extension starts with no phases. Nothing appears on your models until you create at least one phase.

Where it shows up: a View lifecycle button on each row in Model inventory, and a lifecycle section on each model's detail page.

Risk Import

Creates many risks at once from a filled-in Excel template. Click Enable on the card; there is nothing to configure.

Where it shows up: in Risk management, click Add new risk and choose Import from Excel. The Import Risks from Excel dialog walks you through three steps:

  1. Step 1: click Download Template.
  2. Step 2: fill in the template and upload it with Choose File.
  3. Step 3: click Import Risks.

Columns marked with * in the template are required: Risk Name, Risk Owner, AI Lifecycle Phase, Likelihood and Severity. Each row also needs a Risk Description, or the import rejects that row. Admins and Editors can import risks.

Jira Assets Integration

Imports "AI System" objects from Jira Service Management Assets and turns them into VerifyWise use cases.

  1. Click Enable on the Jira Assets Integration card, then Configure.
  2. Choose a Deployment Type: JIRA Cloud (Atlassian-hosted) or JIRA Data Center / Server (Self-hosted).
  3. Fill in JIRA Base URL, then Workspace ID (Cloud) or Insight Object Schema ID (Data Center), then Email and API Token (Cloud) or Username and Password / Token (Data Center).
  4. Click Test Connection, then Save Configuration.
  5. Pick the Schema and the Object Type (AI Systems) to import from.
  6. In the Import & Sync section, click Import, select the objects you want and click Import N Selected. The list shows up to 1,000 objects at a time; if Jira has more, click Load more.

Where it shows up: imported objects appear as use cases under Use cases. To refresh them later, click Sync Now in the Import & Sync section.

Automatic sync
Under Step 3: Sync Settings, turn on Enable automatic sync and pick a Sync Interval (every hour up to every 48 hours). Both are saved as soon as you change them; if saving fails, the settings switch back to what was last saved and an error appears. On that interval, counted from the last sync, VerifyWise refreshes the use cases you have imported with their latest details from Jira. Automatic sync never imports new objects. Sync Now runs in the background (the button shows progress and the result appears when it finishes) and also imports new objects of the selected type. Automatic sync starts after at least one use case has been imported and stops while the extension is disabled. Only one sync or import runs at a time; if one is already running you see "A sync is already running". Only Admins can change these settings or run a sync.
Syncs never delete use cases
No sync, manual or automatic, removes a use case. When a sync has received every object of the type from Jira and an imported object is no longer there, the use case is flagged instead: it appears under Missing in Jira in the panel, with the date it went missing, and its overview shows a Missing in Jira chip. If the object comes back in Jira, the next sync clears the flag. To delete flagged use cases, an Admin ticks them in the list (nothing is selected by default; there is also a select-all), clicks Remove selected use cases and confirms; this permanently deletes those use cases and their data in VerifyWise. A use case that a sync found again in the meantime is not removed. A sync only flags use cases imported from the object type it is syncing, so changing the object type never flags the use cases imported from the previous one.

Jira incidents

Imports new issues from a Jira Cloud project as VerifyWise incidents, then keeps their status in sync in both directions.

What it does and doesn't do
Only issues created in Jira after this is set up are imported. VerifyWise doesn't create Jira issues. After import, only status stays in sync, in both directions. Later changes to other Jira fields aren't copied. If a Jira status move needs a field such as Resolution, VerifyWise can't make it. Those incidents show an error, and you can change the status in Jira.

Before you start, you need:

  • A Jira Cloud site: such as https://your-company.atlassian.net. Jira Data Center and Server are not supported.
  • A service account: a Jira user that VerifyWise acts as. In the project you import from, it needs the Jira permissions Browse projects, Transition issues and Link issues.
  • A classic API token: for that account, created at id.atlassian.com. Scoped API tokens aren't supported.
  1. Click Enable on the Jira incidents card, then Configure.
  2. Under Connection, enter the Jira site URL, the Service account email and the API token. Click Test connection to check them; once a project is chosen, it also checks the three permissions.
  3. Click Save. VerifyWise checks the token with Jira and loads your projects and priorities.
  4. Under Which issues to import, choose the Jira project and the Issue type. Optionally enter a Label to import only issues with that label; matching labels from Jira appear as you type.
  5. Under Status mapping, check the two tables. Jira to VerifyWise has a row for every status in the issue type's workflow, and each one needs a VerifyWise status. VerifyWise to Jira has a row for each VerifyWise status; pick the Jira status to move the issue to, or Don't change Jira. Both are filled in from Jira's status categories to start with.
  6. Under Severity mapping, map each Jira priority to Minor, Serious or Very serious. The starting values are Highest and High โ†’ Very serious, Medium โ†’ Serious, Low and Lowest โ†’ Minor, and Serious for any other priority.
  7. Under Defaults for imported incidents, choose the Use case and Incident type and enter the Reporter.
  8. Click Save. Once everything is filled in, syncing starts on its own, every hour by default.

What an imported incident contains: the issue's summary and description as the description, the severity from your mapping (Serious when the issue has no priority), the status from your mapping, the issue's created date as the date it occurred and was detected, and your default use case, type and reporter. Its approval status starts as Pending. A new imported incident runs the same automations as any new incident, and a Very serious one starts the incident response workflow. If your VerifyWise server has its web address configured, the Jira issue also gets a link back to the incident. If adding that link fails, the next syncs try again.

Where it shows up: imported incidents show the Jira key, for example SEC-42, next to the incident ID in the incidents table and in the incident's edit header. Click it to open the issue in Jira. A dot on the key means the link needs attention: a sync error, a conflict, or an issue deleted in Jira. Hover over or tab to the key to see the reason.

How syncing works
Each sync first imports issues created since the last sync, then compares status on both sides. A status changed in Jira is copied to the incident, and a status changed in VerifyWise moves the Jira issue, unless you chose Don't change Jira for it. If both changed since the last sync, the more recent change wins, and the other side is updated to match. Once an incident is closed on both sides, scheduled syncs check its Jira issue once a day, so reopening it in Jira can take up to a day to show in VerifyWise. Sync now checks it straight away. The Sync section lets you click Sync now or change how often it runs, from every hour to every 48 hours. Sync activity lists the latest 50 events with links to the incident and the Jira issue. Changing the project, issue type or label affects new imports only. Only Admins can open these settings.
You seeWhat to do
Jira rejected the API token. It may have expired or been revoked.Create a new classic API token for the service account, enter it under Connection and click Save.
Jira status 'Awaiting vendor' isn't mappedA status was added to the workflow. Open the settings page, where it now appears in Jira to VerifyWise, check its mapping and click Save.
No move from 'Done' to 'In Progress' in this workflow, or Moving to 'Done' needs a value for ResolutionThe Jira workflow does not let VerifyWise make that move. Change the status in Jira; the incident keeps its VerifyWise status.
VerifyWise can no longer read Jira project SECGive the service account Browse projects on the project again. Nothing is changed until it can read the project.
Deleted in JiraThe issue was deleted or is no longer visible to the service account. The incident is kept. If the issue comes back, syncing resumes.
Rate limited by Jira. The next sync continues where this one stopped.Nothing; the next sync picks up the rest.

Deleting an imported incident in VerifyWise does not touch the Jira issue, and the issue is not imported again.

Dataset Bulk Upload

Registers many datasets at once. Click Enable on the card; there is nothing to configure.

Where it shows up: a Bulk upload button on the Datasets page, available to Admins and Editors. You can upload up to 20 CSV, XLSX or XLS files at a time, up to 30 MB each. VerifyWise checks column headers for likely personal data and flags matching datasets. Developers can use the same upload through the API.

Who can do what

ActionRequired role
Open the Extensions pageAdmin
Enable, configure or disable an extensionAdmin
Import risks from Excel (Risk Import)Admin, Editor
Bulk upload datasets (Dataset Bulk Upload)Admin, Editor
See the Jira key on imported incidents (Jira incidents)Anyone who can see incidents
PreviousAutomations
Extensions - Integrations - VerifyWise User Guide