Resumen de la API de Plantillas

Las plantillas son configuraciones reutilizables de notebooks que definen flujos de trabajo de análisis. Utiliza la API de Plantillas para listar, obtener, crear y gestionar plantillas de notebooks de forma programática.

Conceptos Clave

¿Qué Son las Plantillas?

Las plantillas son definiciones preconfiguradas de notebooks que contienen:

  • Bloques: Filtros, calculadoras, insights y otros componentes de análisis
  • Texto MCL: El texto de configuración que define la estructura del notebook
  • Metadatos: Nombre, descripción, categoría y contexto del proceso

Cuando creas un notebook a partir de una plantilla, todos los bloques y configuraciones se aplican automáticamente.

Tipos de Plantillas

Tipo Alcance ¿Se puede crear vía API? ¿Se puede eliminar vía API?
Global Todos los tenants No No
Específico de Tenant Tenant único

Las plantillas globales son para todo el sistema y se gestionan a través de la interfaz de administración. Las plantillas específicas de tenant pueden crearse y gestionarse mediante esta API.

Categorías de Plantillas

Las plantillas se organizan en categorías:

Categoría Descripción
Templates Plantillas estándar de análisis
Custom Plantillas personalizadas creadas por el usuario
BaseKnowledge Plantillas de conocimiento fundamental

Autenticación

Todos los endpoints de la API de Plantillas requieren una Clave API Global. Las claves API específicas de tenant no pueden acceder a operaciones de plantillas.

curl -H "Authorization: Bearer YOUR_GLOBAL_API_KEY" \
  https://your-mindzie-instance.com/api/templates

Si usas una clave API que no es global, recibirás:

{
  "error": "This endpoint requires a Global API key.",
  "hint": "Global API keys can be created at /admin/global-api-keys"
}

Endpoints de la API

Método Endpoint Descripción
GET /api/templates Listar todas las plantillas globales
GET /api/templates/tenant/{tenantId} Listar plantillas para un tenant (global + específico de tenant)
GET /api/templates/category/{category} Listar plantillas por categoría
GET /api/templates/{templateId} Obtener detalles de una plantilla con texto MCL
GET /api/templates/{templateId}/thumbnail Obtener imagen miniatura de la plantilla
POST /api/templates/tenant/{tenantId} Crear una plantilla específica de tenant
PUT /api/templates/{templateId} Actualizar una plantilla
DELETE /api/templates/{templateId} Eliminar una plantilla

Inicio Rápido

Listar Todas las Plantillas para un Tenant

curl -X GET "https://your-mindzie-instance.com/api/templates/tenant/12345678-1234-1234-1234-123456789012" \
  -H "Authorization: Bearer YOUR_GLOBAL_API_KEY"

Obtener Detalles de una Plantilla

curl -X GET "https://your-mindzie-instance.com/api/templates/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee" \
  -H "Authorization: Bearer YOUR_GLOBAL_API_KEY"

Crear un Notebook desde una Plantilla

Utiliza la API de Notebook para crear un notebook a partir de una 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": "Mi Análisis"
  }'

Estructura de la Respuesta

Respuesta de Lista de Plantillas

{
  "templates": [
    {
      "templateId": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
      "name": "Descubrimiento de Procesos",
      "description": "Flujo estándar de descubrimiento de procesos",
      "category": "Templates",
      "processName": "Order to Cash",
      "tenantId": null,
      "isGlobal": true,
      "hasThumbnail": true,
      "autoAddedDefaultSortOrder": 100,
      "dateModified": "2024-01-15T10:30:00Z"
    }
  ],
  "totalCount": 1
}

Respuesta de Detalle de Plantilla

{
  "templateId": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
  "name": "Descubrimiento de Procesos",
  "description": "Flujo estándar de descubrimiento de procesos",
  "category": "Templates",
  "processName": "Order to Cash",
  "mclText": "// MCL configuration text here...",
  "tenantId": null,
  "isGlobal": true,
  "hasThumbnail": true,
  "autoAddedDefaultSortOrder": 100,
  "originatingNotebookId": null,
  "dateCreated": "2024-01-01T00:00:00Z",
  "dateModified": "2024-01-15T10:30:00Z",
  "createdBy": null,
  "createdByName": "System",
  "modifiedBy": null,
  "modifiedByName": "System"
}

¿Qué Sigue?