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']})")