Management

Create and Manage Dashboards

Manage dashboards that contain visualization panels for process mining insights, KPIs, and analytics. Dashboards are containers for displaying your analytical results in an organized, shareable format.

GET /api/

Get All Dashboards

Retrieves a paginated list of all dashboards within the specified project. Each dashboard includes metadata, panel count, and a shareable URL.

Query Parameters

Parameter Type Default Description
page integer 1 Page number for pagination
pageSize integer 50 Number of items per page (max recommended: 100)

Response

{
  "dashboards": [
    {
      "dashboardId": "880e8400-e29b-41d4-a716-446655440000",
      "projectId": "660e8400-e29b-41d4-a716-446655440000",
      "name": "Process Overview Dashboard",
      "description": "Main dashboard showing key process metrics",
      "panelCount": 8,
      "url": "https://your-instance.com/dashboard/880e8400-e29b-41d4-a716-446655440000",
      "dateCreated": "2024-01-15T10:30:00Z",
      "dateModified": "2024-01-20T14:45:00Z",
      "createdBy": "user123",
      "modifiedBy": "user456"
    }
  ],
  "totalCount": 25,
  "page": 1,
  "pageSize": 50
}

GET /api/

Get Dashboard Details

Retrieves comprehensive information about a specific dashboard including metadata, panel count, and shareable URL.

Parameters

Parameter Type Location Description
tenantId GUID Path The tenant identifier
projectId GUID Path The project identifier
dashboardId GUID Path The dashboard identifier

Response

{
  "dashboardId": "880e8400-e29b-41d4-a716-446655440000",
  "projectId": "660e8400-e29b-41d4-a716-446655440000",
  "name": "Process Overview Dashboard",
  "description": "Main dashboard showing key process metrics and performance indicators",
  "panelCount": 8,
  "url": "https://your-instance.com/dashboard/880e8400-e29b-41d4-a716-446655440000",
  "dateCreated": "2024-01-15T10:30:00Z",
  "dateModified": "2024-01-20T14:45:00Z",
  "createdBy": "user123",
  "modifiedBy": "user456"
}

GET /api/

Get Dashboard Panels

Retrieves all visualization panels configured in the dashboard, including panel types, positions, dimensions, and configuration settings.

Response

{
  "dashboardId": "880e8400-e29b-41d4-a716-446655440000",
  "panels": [
    {
      "panelId": "990e8400-e29b-41d4-a716-446655440000",
      "name": "Process Flow Chart",
      "panelType": "ProcessMap",
      "position": "Row: 1, Col: 1",
      "width": 6,
      "height": 4,
      "configuration": {
        "dataSource": "MainProcess",
        "visualization": "flow",
        "metrics": ["frequency", "duration"]
      }
    },
    {
      "panelId": "aa0e8400-e29b-41d4-a716-446655440000",
      "name": "KPI Summary",
      "panelType": "KPICard",
      "position": "Row: 1, Col: 7",
      "width": 3,
      "height": 2,
      "configuration": {
        "metric": "avgCycleTime",
        "format": "duration",
        "threshold": 48
      }
    }
  ]
}

GET /api/

Get Dashboard URLs

Generates shareable URLs for a dashboard, including standard view URLs and embed URLs for iframe integration.

Response

{
  "dashboardId": "880e8400-e29b-41d4-a716-446655440000",
  "url": "https://your-instance.com/dashboard/880e8400-e29b-41d4-a716-446655440000",
  "embedUrl": "https://your-instance.com/embed/dashboard/880e8400-e29b-41d4-a716-446655440000"
}

Embedding Dashboards

Use the embed URL in an iframe to integrate dashboards into external applications:

<iframe
  src="https://your-instance.com/embed/dashboard/880e8400-e29b-41d4-a716-446655440000"
  width="100%"
  height="600"
  frameborder="0">
</iframe>

JavaScript Example: Dashboard Manager

class DashboardManager {
  constructor(baseUrl, tenantId, projectId, token) {
    this.baseUrl = baseUrl;
    this.tenantId = tenantId;
    this.projectId = projectId;
    this.headers = {
      'Authorization': `Bearer ${token}`,
      'Content-Type': 'application/json'
    };
  }

  async getAllDashboards(page = 1, pageSize = 50) {
    const url = `${this.baseUrl}/api/${this.tenantId}/${this.projectId}/dashboard?page=${page}&pageSize=${pageSize}`;

    const response = await fetch(url, {
      headers: this.headers
    });

    return await response.json();
  }

  async getDashboard(dashboardId) {
    const url = `${this.baseUrl}/api/${this.tenantId}/${this.projectId}/dashboard/${dashboardId}`;

    const response = await fetch(url, {
      headers: this.headers
    });

    return await response.json();
  }

  async getDashboardPanels(dashboardId) {
    const url = `${this.baseUrl}/api/${this.tenantId}/${this.projectId}/dashboard/${dashboardId}/panels`;

    const response = await fetch(url, {
      headers: this.headers
    });

    return await response.json();
  }

  async getShareableUrl(dashboardId) {
    const url = `${this.baseUrl}/api/${this.tenantId}/${this.projectId}/dashboard/${dashboardId}/url`;

    const response = await fetch(url, {
      headers: this.headers
    });

    return await response.json();
  }
}

// Usage
const dashboardMgr = new DashboardManager(
  'https://your-mindzie-instance.com',
  'tenant-guid',
  'project-guid',
  'your-token'
);

// Get all dashboards
dashboardMgr.getAllDashboards()
  .then(result => {
    console.log(`Found ${result.totalCount} dashboards`);
    result.dashboards.forEach(d => {
      console.log(`- ${d.name}: ${d.panelCount} panels`);
    });
  });

// Get specific dashboard with panels
async function loadDashboard(dashboardId) {
  const dashboard = await dashboardMgr.getDashboard(dashboardId);
  const panels = await dashboardMgr.getDashboardPanels(dashboardId);
  const urls = await dashboardMgr.getShareableUrl(dashboardId);

  console.log(`Dashboard: ${dashboard.name}`);
  console.log(`Panels: ${panels.panels.length}`);
  console.log(`Share URL: ${urls.url}`);
}

Python Example: Dashboard Operations

import requests
import json

class DashboardManager:
    def __init__(self, base_url, tenant_id, project_id, token):
        self.base_url = base_url
        self.tenant_id = tenant_id
        self.project_id = project_id
        self.headers = {
            'Authorization': f'Bearer {token}',
            'Content-Type': 'application/json'
        }

    def get_all_dashboards(self, page=1, page_size=50):
        """Get paginated list of dashboards"""
        url = f"{self.base_url}/api/{self.tenant_id}/{self.project_id}/dashboard"
        params = {'page': page, 'pageSize': page_size}

        response = requests.get(url, headers=self.headers, params=params)
        return response.json()

    def get_dashboard(self, dashboard_id):
        """Get dashboard details"""
        url = f"{self.base_url}/api/{self.tenant_id}/{self.project_id}/dashboard/{dashboard_id}"
        response = requests.get(url, headers=self.headers)
        return response.json()

    def get_dashboard_panels(self, dashboard_id):
        """Get all panels in a dashboard"""
        url = f"{self.base_url}/api/{self.tenant_id}/{self.project_id}/dashboard/{dashboard_id}/panels"
        response = requests.get(url, headers=self.headers)
        return response.json()

    def get_shareable_url(self, dashboard_id):
        """Get shareable URLs for dashboard"""
        url = f"{self.base_url}/api/{self.tenant_id}/{self.project_id}/dashboard/{dashboard_id}/url"
        response = requests.get(url, headers=self.headers)
        return response.json()

    def list_all_dashboards(self):
        """Get all dashboards (handling pagination)"""
        all_dashboards = []
        page = 1

        while True:
            result = self.get_all_dashboards(page=page)
            all_dashboards.extend(result['dashboards'])

            if len(all_dashboards) >= result['totalCount']:
                break

            page += 1

        return all_dashboards

# Example usage
manager = DashboardManager(
    'https://your-mindzie-instance.com',
    'tenant-guid',
    'project-guid',
    'your-auth-token'
)

# Get all dashboards
dashboards = manager.get_all_dashboards()
print(f"Total dashboards: {dashboards['totalCount']}")

for dashboard in dashboards['dashboards']:
    print(f"\nDashboard: {dashboard['name']}")
    print(f"  Panels: {dashboard['panelCount']}")
    print(f"  URL: {dashboard['url']}")

    # Get detailed panel information
    panels = manager.get_dashboard_panels(dashboard['dashboardId'])
    for panel in panels['panels']:
        print(f"    - {panel['name']} ({panel['panelType']})")
An error has occurred. This application may no longer respond until reloaded. Reload ??