Modeler
Canvas visuel drag-and-drop pour créer et gérer vos ontologies.
Vue d'ensemble
Le Modeler permet de :
- Canvas visuel - Interface drag-and-drop intuitive
- Gestion des entités - Créer, modifier, supprimer des nœuds
- Mapping des relations - Connecter les entités avec des liens typés
- Actions Kinetic - Workflows automatisés sur les entités
- Historique - Annuler/Rétablir avec traçabilité complète
Types d'entités
| Type | Icône | Cas d'usage |
|---|---|---|
concept | 💡 | Idées abstraites, catégories |
object | 📦 | Objets physiques ou numériques |
process | ⚙️ | Workflows, procédures |
actor | 👤 | Personnes, systèmes, organisations |
Schéma d'entité
interface Entity {
id: string; // UUID v4
name: string; // Nom d'affichage
entityType: EntityType;
position: { x: number; y: number };
data: Record<string, unknown>; // Métadonnées personnalisées
workspaceId: string;
createdAt: string; // ISO 8601
updatedAt: string;
}
Commandes
Créer une entité
curl -X POST "https://api.dev-growthsystemes.com/api/commands/execute" \
-H "Authorization: Bearer $API_KEY" \
-H "x-workspace-id: $WORKSPACE_ID" \
-H "Content-Type: application/json" \
-d '{
"type": "CREATE_NODE",
"payload": {
"name": "Client",
"entityType": "concept",
"position": { "x": 100, "y": 100 },
"data": { "description": "Utilisateur final du système" }
}
}'
Modifier une entité
curl -X POST "https://api.dev-growthsystemes.com/api/commands/execute" \
-H "Authorization: Bearer $API_KEY" \
-H "x-workspace-id: $WORKSPACE_ID" \
-H "Content-Type: application/json" \
-d '{
"type": "UPDATE_NODE",
"payload": {
"id": "550e8400-...",
"name": "Nom modifié",
"data": { "description": "Description mise à jour" }
},
"expectedVersion": 3
}'
Supprimer une entité
curl -X POST "https://api.dev-growthsystemes.com/api/commands/execute" \
-H "Authorization: Bearer $API_KEY" \
-H "x-workspace-id: $WORKSPACE_ID" \
-H "Content-Type: application/json" \
-d '{
"type": "DELETE_NODE",
"payload": { "id": "550e8400-..." }
}'
Relations
Schéma de relation
interface Edge {
id: string;
source: string; // ID entité source
target: string; // ID entité cible
relationType: string; // ex: "depends_on", "contains"
data: Record<string, unknown>;
}
Créer une relation
curl -X POST "https://api.dev-growthsystemes.com/api/commands/execute" \
-H "Authorization: Bearer $API_KEY" \
-H "x-workspace-id: $WORKSPACE_ID" \
-H "Content-Type: application/json" \
-d '{
"type": "CREATE_EDGE",
"payload": {
"source": "550e8400-...",
"target": "550e8400-...",
"relationType": "depends_on"
}
}'
Annuler/Rétablir
Chaque action peut être annulée :
# Annuler la dernière action
curl -X POST "https://api.dev-growthsystemes.com/api/commands/execute" \
-H "Authorization: Bearer $API_KEY" \
-H "x-workspace-id: $WORKSPACE_ID" \
-H "Content-Type: application/json" \
-d '{ "type": "UNDO" }'
# Rétablir la dernière action annulée
curl -X POST "https://api.dev-growthsystemes.com/api/commands/execute" \
-H "Authorization: Bearer $API_KEY" \
-H "x-workspace-id: $WORKSPACE_ID" \
-H "Content-Type: application/json" \
-d '{ "type": "REDO" }'
La réponse indique les actions disponibles :
{
"metadata": {
"canUndo": true,
"canRedo": false,
"undoableEvents": 5
}
}
Limites
| Limite | Valeur | Notes |
|---|---|---|
| Entités par workspace | 10 000 | Maximum recommandé |
| Relations par entité | 100 | Maximum recommandé |
| Longueur nom entité | 255 caractères | UTF-8 |
| Taille données custom | 64 Ko | Payload JSON |
| Actions Kinetic par entité | 100 | Déclencheurs de workflow |
Requêtes
Lister toutes les entités
curl "https://api.dev-growthsystemes.com/api/queries/nodes?limit=50&offset=0" \
-H "Authorization: Bearer $API_KEY" \
-H "x-workspace-id: $WORKSPACE_ID"
Filtrer par type
curl "https://api.dev-growthsystemes.com/api/queries/nodes?entityType=concept" \
-H "Authorization: Bearer $API_KEY" \
-H "x-workspace-id: $WORKSPACE_ID"
Obtenir une entité
curl "https://api.dev-growthsystemes.com/api/queries/nodes/550e8400-..." \
-H "Authorization: Bearer $API_KEY" \
-H "x-workspace-id: $WORKSPACE_ID"
Dépannage
| Problème | Cause | Solution |
|---|---|---|
| Entité non visible | Délai de cache | Attendre 100ms, rafraîchir |
| 409 Conflict | Édition concurrente | Recharger, réessayer avec nouvelle version |
| Position non sauvée | Position manquante | Inclure position dans le payload |
| Création relation échoue | Source/target invalide | Vérifier que les IDs existent |
Voir Erreurs courantes pour plus de détails.