Skip to main content

Canvas

Last updated on

Navigate to the Canvas page to create and manage custom dashboards that appear on the Insights page in SEI 2.0. If the out-of-the-box dashboards on the Insights page does not provide the views your team needs, you can create custom dashboardsA user-created dashboard built in Canvas and published to the Insights page for viewing and sharing. It can be tailored to display the most important data for your use case, providing insights and facilitating decision-making. on the Canvas page to publish, share, and collaborate with your team.

The Canvas page in SEI 2.0 displays all custom dashboards created by your team. You can search, view, and manage dashboards, including details such as the name, description, author, status, timestamps, and tags.

Each dashboard in the Canvas list includes the following metadata:

FieldDescription
NameThe name of the custom dashboard.
Created AtTimestamp when the dashboard was created.
Updated AtTimestamp of the most recent update.
AuthorThe user who created the dashboard.
StatusCurrent lifecycle state (Draft or Published).
TagsOptional labels used for grouping and filtering dashboards.

Canvas dashboards support query-level variables, including team-scoped filters and custom variables. This allows dashboards to dynamically adapt based on your configuration in Team Settings.

To filter dashboards by status, click the All Status dropdown menu next to + Create Dashboard.

Canvas dashboards support the following statuses:

  • Draft: The dashboard is still in progress and not yet shared broadly.
  • Published: The dashboard is finalized and visible for wider consumption depending on permissions.

Published Canvas dashboards are read-only. To make changes, move the dashboard back to Draft, update it, and then publish it again. For more information, see Managing dashboards in Canvas.

Prerequisites

Access to Canvas is governed by Harness RBAC. Permissions are managed using roles, resource groups, and role bindings.

To view and manage Canvas dashboards, ensure your role includes the following permissions:

  • View SEI Canvas (sei_seicanvas_view)
  • Create/Edit SEI Canvas (sei_seicanvas_create and sei_seicanvas_edit)
  • Delete SEI Canvas (sei_seicanvas_delete)

Access to Canvas dashboards is also scoped through Harness resource groups.

  1. Navigate to Project Settings > Resource Groups.

  2. Click + New Resource Group.

  3. Set the Resource Scope to Project only and under Software Engineering Insights, select one or both of the following resources, and configure access:

    • Insights Categories: Select All or Specified, and click + Add to choose from Efficiency, Productivity, Business Alignment, AI Insights, Security, and Custom.
    • Teams: Select All or Specified, and click + Add to choose one or more Org Tree teams.

  4. Click Save.

Next, associate the role with users or user groups by clicking Manage Role Bindings, selecting the role (such as SEI Team Manager), associating it with the appropriate resource group (such as all account-level resources), and clicking Save.

Create a Canvas dashboard

  1. From the Harness SEI navigation menu, navigate to the Canvas page and click + Create Dashboard.
  2. In the Create New Dashboard modal, enter a name (for example, [Team Name] Issue Dashboard) and a description.
  3. Optionally, enter tags.
  4. Click Create Dashboard to save the dashboard.

Edit a Canvas dashboard

Once you edit or create a dashboard, you enter a Dashboard Editor view where you can customize your dashboard layout and add widgets. To apply dashboard-level filters, click the + Add Filters dropdown menu and select Project, Repository, or Time Range.

An additional Project filter appears for you to search and select the appropriate project(s) you want to filter the dashboard to.

To add a widgetA widget is a visual component that displays specific data or information on a Canvas dashboard. Widgets can be customized to show different types of data, such as charts, tables, or metrics, and can be arranged to create a personalized dashboard layout., click + Add Widget to add a new visualization. Widgets are configured on top of dashboards and display the data defined in the query. You can customize the widget name/subtitle, visualization type (Table, Metric Card, Line Chart, Bar Chart, Column Chart, Area Chart, or Scatter Chart), and query configuration.

The Query Configuration section on the right side of the editor includes two tabs: Builder and Code.

On the Builder tab:

  1. Select a data sourceA data source is a connection to an external system or database that provides data for use in Canvas. It allows you to pull in data from various sources to create visualizations and insights in your custom dashboards. from the Datasource dropdown menu.

  2. In the Select section, click + Select to choose a column (for example, Integration Type). Optionally, apply an aggregation method (such as Count or Distinct Count). An alias is automatically generated (for example, integration_type_count), which can be used in sorting or visualization.

  3. In the Filter section, click + Filter to define conditions for your query.

    • Choose a field (for example, Status, Job Name, Created At).
    • Select an operator (Equals, Contains, Greater Than, In, Is Null, etc.).
    • Provide a value.

    These filters determine which records are included in the widget.

  4. In the Sort section, click + Sort to define how results are ordered.

    • Select a field or aggregated value.
    • Optionally apply an aggregation method (for example, Count, Average, Max).
    • Select Ascending or Descending.
  5. In the Limit section, define the maximum number of results returned (for example, 10).

As you configure the query, results update in real time across the preview tabs:

  • Widget and Data: Displays both the visualization and the underlying data.
  • Widget Only: Displays the visualization only.
  • Data Only: Displays the raw query results in table format.

When you're ready to add the widget to a dashboard, click Add Widget.

You can also select pre-defined time ranges above the widget visualization (such as 1W, 1M, 3M, 6M, or 12M) or define a custom date range.

Click the Settings icon to configure how time is applied to your data. You can select a time field (such as Created At, Start Time, End Time, or Updated At) to control how the dashboard filters data.

Additional options under Content Formatting allow you to customize how results are displayed, such as enabling pagination by clicking Show Pagination or formatting numeric columns based on selected aggregations. When you enable a column in the Numeric Columns section (for example, Integration Type Count), you can configure a style to control how values are displayed.

  • US Format: Formats numbers using US conventions (for example, 1,234.56).
  • Locale: Adapts formatting based on the user's locale settings.
  • Raw: Displays the unformatted numeric value.

To save your widget to a Canvas dashboard:

  1. Once you've configured the widget, including selecting a time range and visualize type, click Add Widget to add it to the dashboard.

  2. You are redirected to the dashboard view with the widget added. To create additional widgets, click + New Widget.

When you are done editing the dashboard, click Save to finalize your changes. Dashboards and their widgets can be edited or updated anytime from the Canvas page.

Use query variables in dashboards

Query variablesA query variable is a dynamic parameter that can be used in Canvas HQL queries to filter or modify the data being retrieved. It allows you to create more flexible and interactive dashboards by enabling users to input values that affect the displayed data. allow you to create dynamic, reusable queries that automatically adapt based on team configuration and dashboard filters. In the Dashboard Editor, click Query Variables in the upper right corner to access variable options.

You can use these variables inside HQL queries to replace static values with team-specific or time-based values. Query variables are applied as dynamic filters in HQL and are not configurable through the Builder tab. To use query variables, switch to the Code tab and include them using the filter operation.

Use ${imHqlFilters} to dynamically apply team-level Issue Management filters (such as project or integration) to your query. These values are automatically populated based on the configuration on the Issue Management tab in Team Settings.

The following data columns are exposed:

KeyData TypeDescription
projectstringJira or Azure DevOps project identifier.
integration_idstringUnique identifier for the integration instance.

For example, the following HQL query filters SEI issues based on the team's configured projects and integrations:

find entity "sei:issues"
| select { project }
| filter ${imHqlFilters}

Manage dashboards in Canvas

Each custom dashboard in the list on the Canvas page includes an overflow menu (...) that contains additional management actions:

  • Edit: Opens a modal where you can update the dashboard name, description, and tags. Click Update to save changes.

  • Clone: Creates a duplicate of the dashboard. This is useful for iterating on an existing dashboard without modifying the original

  • Publish: Marks the dashboard as Published and makes it available for selected Org Trees on the Insights page.

    When you click Publish, you are prompted to associate the dashboard with one or more configured Org Trees. You can select multiple Org Trees, then click Publish to confirm. This association controls how the dashboard is scoped and viewed across teams, rather than granting direct access permissions.

    Once published, the dashboard status changes to Published, the dashboard is available in the Canvas tab on the Insights page, and the selected Org Trees appear on the left-side panel, allowing you to view the dashboard in the context of each organizational hierarchy.

  • Move to Draft: Reverts a Published dashboard back to Draft state for further editing. When selected, a confirmation modal displays the Org Trees the dashboard is currently associated with.

    When you click Move to Draft, the dashboard is removed from the Insights page, the status changes to Draft on the Canvas page, all dashboard configurations are preserved, and you can continue editing and republish the dashboard at any time.

  • Delete: Permanently removes the dashboard. When you click Delete, a confirmation modal appears. Click Delete to confirm.

These actions allow teams to manage the lifecycle of custom dashboards and iterate before sharing them more broadly.