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?
- Gestión de Notebook - Operaciones CRUD completas
- Operaciones con Bloques - Crear y administrar bloques
- API de Plantillas - Crear notebooks desde plantillas
- API de Ejecución - Ejecutar notebooks