Notebook API Overzicht

Notebooks zijn containers voor analyseblokken die process mining workflows definiƫren binnen onderzoeken. Gebruik de Notebook API om analyseworkflows programmatisch te maken, beheren en uit te voeren.

Belangrijke Concepten

Wat Zijn Notebooks?

Notebooks bevatten geordende reeksen van analyseblokken:

  • Filters: Beperk de data tot specifieke cases of gebeurtenissen
  • Calculators: Bereken metrics, duur en afgeleide waarden
  • Insights: Genereer visualisaties en statistische analyses
  • Dashboards: Maak deelbare rapporten

Blokken worden in volgorde uitgevoerd, waarbij elk blok data ontvangt van het ouderblok.

Notebook Types

Type Waarde Beschrijving
Standard 0 Regulier analysenotebook
Template 1 Template-gebaseerd notebook
BaseKnowledge 2 Basiskennis-notebook

Auto-Load Gedrag

Notebook CRUD-operaties laden het project automatisch in de gedeelde cache. Je hoeft niet expliciet /project/{id}/load aan te roepen voordat je notebooks maakt, bijwerkt of verwijdert.

# Roep de operatie direct aan - project wordt automatisch geladen
response = requests.post(
    f"{BASE_URL}/api/{TENANT_ID}/{PROJECT_ID}/notebook/investigation/{investigation_id}",
    json={"name": "New Notebook"},
    headers=headers
)

Optimistic Locking

Update-operaties ondersteunen optionele conflictdetectie met gebruik van DateModified:

# Voeg DateModified toe om gelijktijdige wijzigingen te detecteren
response = requests.put(
    f"{BASE_URL}/api/{TENANT_ID}/{PROJECT_ID}/notebook/{notebook_id}",
    json={
        "name": "Updated Name",
        "dateModified": "2024-01-15T10:30:00Z"  # Van je laatste GET
    },
    headers=headers
)

# Als een andere gebruiker het notebook heeft gewijzigd, wordt 409 Conflict geretourneerd

API Endpoints

Notebook CRUD

Methode Endpoint Beschrijving
GET /api/{tenantId}/{projectId}/notebook/investigation/{investigationId} Notebooks in onderzoek opvragen
POST /api/{tenantId}/{projectId}/notebook/investigation/{investigationId} Notebook aanmaken
POST /api/{tenantId}/{projectId}/notebook/investigation/{investigationId}/from-template Aanmaken vanuit template
GET /api/{tenantId}/{projectId}/notebook/{notebookId} Details van notebook opvragen
PUT /api/{tenantId}/{projectId}/notebook/{notebookId} Notebook bijwerken
DELETE /api/{tenantId}/{projectId}/notebook/{notebookId} Notebook verwijderen
POST /api/{tenantId}/{projectId}/notebook/{notebookId}/copy Notebook kopiƫren

Blok Operaties

Methode Endpoint Beschrijving
GET /api/{tenantId}/{projectId}/notebook/{notebookId}/blocks Blokken opvragen
POST /api/{tenantId}/{projectId}/notebook/{notebookId}/blocks Blok aanmaken
GET /api/{tenantId}/{projectId}/notebook/{notebookId}/blocks/order Blokvolgorde opvragen
PUT /api/{tenantId}/{projectId}/notebook/{notebookId}/blocks/order Blokken herschikken

Hulpmiddelen

Methode Endpoint Beschrijving
GET /api/{tenantId}/{projectId}/notebook/{notebookId}/url Deelbare URL genereren
GET /api/{tenantId}/{projectId}/notebook/ping Geverifieerde connectiviteitstest
GET /api/{tenantId}/{projectId}/notebook/unauthorized-ping Openbare connectiviteitstest

Quick Start

Notebooks in een Onderzoek Opvragen

curl -X GET "https://your-mindzie-instance.com/api/{tenantId}/{projectId}/notebook/investigation/{investigationId}" \
  -H "Authorization: Bearer YOUR_API_KEY"

Een Notebook Aanmaken

curl -X POST "https://your-mindzie-instance.com/api/{tenantId}/{projectId}/notebook/investigation/{investigationId}" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name": "My Analysis", "description": "Proces analyse workflow"}'

Aanmaken vanuit Template

curl -X POST "https://your-mindzie-instance.com/api/{tenantId}/{projectId}/notebook/investigation/{investigationId}/from-template" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"templateId": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee", "name": "My Analysis"}'

Response Structuur

Notebook Response

{
  "notebookId": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
  "investigationId": "11111111-2222-3333-4444-555555555555",
  "name": "Main Analysis",
  "description": "Primaire proces analyse workflow",
  "dateCreated": "2024-01-15T10:30:00Z",
  "dateModified": "2024-01-20T14:45:00Z",
  "createdBy": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "modifiedBy": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "notebookType": 0,
  "notebookOrder": 1.0,
  "lastExecutionDuration": 2.5,
  "blockCount": 12
}

Response Velden

Veld Type Beschrijving
notebookId GUID Unieke notebook identificatie
investigationId GUID Parent onderzoek ID
name string Notebook naam
description string Notebook beschrijving
dateCreated datetime Aanmaak tijdstempel
dateModified datetime Laatste wijziging tijdstempel
createdBy GUID Maker gebruiker ID
modifiedBy GUID Laatste wijziger gebruiker ID
notebookType integer Type (0=Standard, 1=Template, 2=BaseKnowledge)
notebookOrder decimaal Weergavevolgorde binnen onderzoek
lastExecutionDuration double Laatste uitvoeringstijd in seconden
blockCount integer Aantal blokken in notebook

Wat Nu?