Vue d'ensemble de l'API Template

Les templates sont des configurations réutilisables de notebooks qui définissent des workflows d'analyse. Utilisez l'API Template pour lister, récupérer, créer et gérer les templates de notebooks de manière programmatique.

Concepts Clés

Qu'est-ce qu'un Template ?

Les templates sont des définitions de notebooks pré-configurées contenant :

  • Blocs : Filtres, calculateurs, insights et autres composants d'analyse
  • Texte MCL : Le texte de configuration qui définit la structure du notebook
  • Métadonnées : Nom, description, catégorie et contexte du processus

Lorsque vous créez un notebook à partir d'un template, tous les blocs et configurations sont automatiquement appliqués.

Types de Templates

Type Portée Création via API ? Suppression via API ?
Global Tous les tenants Non Non
Spécifique au Tenant Tenant unique Oui Oui

Les templates globaux sont système-wide et gérés via l'interface d'administration. Les templates spécifiques au tenant peuvent être créés et gérés via cette API.

Catégories de Templates

Les templates sont organisés en catégories :

Catégorie Description
Templates Templates standards pour l'analyse
Custom Templates personnalisés créés par l'utilisateur
BaseKnowledge Templates de connaissances fondamentales

Authentification

Tous les endpoints de l'API Template nécessitent une clé API Globale. Les clés API des tenants ne peuvent pas accéder aux opérations liées aux templates.

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

Si vous utilisez une clé API non globale, vous recevrez :

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

Points de terminaison de l'API

Méthode Endpoint Description
GET /api/templates Liste tous les templates globaux
GET /api/templates/tenant/{tenantId} Liste les templates pour un tenant (globaux + spécifiques au tenant)
GET /api/templates/category/{category} Liste les templates par catégorie
GET /api/templates/{templateId} Obtenir les détails d'un template avec le texte MCL
GET /api/templates/{templateId}/thumbnail Obtenir l'image miniature d'un template
POST /api/templates/tenant/{tenantId} Créer un template spécifique au tenant
PUT /api/templates/{templateId} Mettre à jour un template
DELETE /api/templates/{templateId} Supprimer un template

Démarrage rapide

Lister tous les templates pour 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"

Obtenir les détails d'un template

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

Créer un notebook à partir d'un template

Utilisez l'API Notebook pour créer un notebook à partir d'un 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"
  }'

Structure des réponses

Réponse de la liste des templates

{
  "templates": [
    {
      "templateId": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
      "name": "Process Discovery",
      "description": "Standard process discovery workflow",
      "category": "Templates",
      "processName": "Order to Cash",
      "tenantId": null,
      "isGlobal": true,
      "hasThumbnail": true,
      "autoAddedDefaultSortOrder": 100,
      "dateModified": "2024-01-15T10:30:00Z"
    }
  ],
  "totalCount": 1
}

Réponse des détails d'un template

{
  "templateId": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
  "name": "Process Discovery",
  "description": "Standard process discovery workflow",
  "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"
}

Et après ?