Resumen de la API de Notebook

Los notebooks son contenedores para bloques de análisis que definen flujos de trabajo de minería de procesos dentro de investigaciones. Use la API de Notebook para crear, administrar y ejecutar flujos de análisis programáticamente.

Conceptos Clave

¿Qué son los Notebooks?

Los notebooks contienen secuencias ordenadas de bloques de análisis:

  • Filtros: Restringen los datos a casos o eventos específicos
  • Calculadoras: Calculan métricas, duraciones y valores derivados
  • Insights: Generan visualizaciones y análisis estadísticos
  • Dashboards: Crean reportes compartibles

Los bloques se ejecutan en orden, y cada bloque recibe datos de su bloque padre.

Tipos de Notebook

Tipo Valor Descripción
Standard 0 Notebook de análisis regular
Template 1 Notebook basado en plantilla
BaseKnowledge 2 Notebook de conocimiento fundamental

Comportamiento de Auto-Carga

Las operaciones CRUD de notebook cargan automáticamente el proyecto en la caché compartida. No es necesario llamar explícitamente a /project/{id}/load antes de crear, actualizar o eliminar notebooks.

# Solo llama la operación directamente - el proyecto se carga automáticamente
response = requests.post(
    f"{BASE_URL}/api/{TENANT_ID}/{PROJECT_ID}/notebook/investigation/{investigation_id}",
    json={"name": "New Notebook"},
    headers=headers
)

Bloqueo Optimista

Las operaciones de actualización soportan detección opcional de conflictos usando DateModified:

# Incluye DateModified para detectar modificaciones concurrentes
response = requests.put(
    f"{BASE_URL}/api/{TENANT_ID}/{PROJECT_ID}/notebook/{notebook_id}",
    json={
        "name": "Updated Name",
        "dateModified": "2024-01-15T10:30:00Z"  # Desde tu último GET
    },
    headers=headers
)

# Si otro usuario modificó el notebook, devuelve 409 Conflict

Endpoints de API

CRUD de Notebook

Método Endpoint Descripción
GET /api/{tenantId}/{projectId}/notebook/investigation/{investigationId} Lista notebooks en la investigación
POST /api/{tenantId}/{projectId}/notebook/investigation/{investigationId} Crear notebook
POST /api/{tenantId}/{projectId}/notebook/investigation/{investigationId}/from-template Crear desde plantilla
GET /api/{tenantId}/{projectId}/notebook/{notebookId} Obtener detalles del notebook
PUT /api/{tenantId}/{projectId}/notebook/{notebookId} Actualizar notebook
DELETE /api/{tenantId}/{projectId}/notebook/{notebookId} Eliminar notebook
POST /api/{tenantId}/{projectId}/notebook/{notebookId}/copy Copiar notebook

Operaciones con Bloques

Método Endpoint Descripción
GET /api/{tenantId}/{projectId}/notebook/{notebookId}/blocks Listar bloques
POST /api/{tenantId}/{projectId}/notebook/{notebookId}/blocks Crear bloque
GET /api/{tenantId}/{projectId}/notebook/{notebookId}/blocks/order Obtener orden de bloques
PUT /api/{tenantId}/{projectId}/notebook/{notebookId}/blocks/order Reordenar bloques

Utilidades

Método Endpoint Descripción
GET /api/{tenantId}/{projectId}/notebook/{notebookId}/url Generar URL compartible
GET /api/{tenantId}/{projectId}/notebook/ping Prueba de conectividad autenticada
GET /api/{tenantId}/{projectId}/notebook/unauthorized-ping Prueba de conectividad pública

Inicio Rápido

Listar Notebooks en una Investigación

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

Crear un Notebook

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": "Process analysis workflow"}'

Crear desde Plantilla

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

Estructura de la Respuesta

Respuesta de Notebook

{
  "notebookId": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
  "investigationId": "11111111-2222-3333-4444-555555555555",
  "name": "Main Analysis",
  "description": "Primary process analysis 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
}

Campos de Respuesta

Campo Tipo Descripción
notebookId GUID Identificador único del notebook
investigationId GUID ID de la investigación padre
name string Nombre del notebook
description string Descripción del notebook
dateCreated datetime Fecha y hora de creación
dateModified datetime Fecha y hora de la última modificación
createdBy GUID ID del usuario creador
modifiedBy GUID ID del usuario que modificó por última vez
notebookType integer Tipo (0=Standard, 1=Template, 2=BaseKnowledge)
notebookOrder decimal Orden de visualización dentro de la investigación
lastExecutionDuration double Tiempo de última ejecución en segundos
blockCount integer Número de bloques en el notebook

¿Qué Sigue?