Skip to content

Référence API : automatisations et notifications ​

Les automatisations s’exécutent via l’assistant WeKnora intégré, au nom du créateur. Les interfaces ci-dessous exigent un utilisateur connecté, Viewer+ dans l’espace, et n’accèdent qu’aux tâches et notifications de l’appelant ; les clés API ne sont pas autorisées sur ces routes.

Gestion des tâches ​

Méthode et cheminUsage
GET /api/v1/automationsLister les tâches de l’utilisateur
POST /api/v1/automationsCréer une tâche
POST /api/v1/automations/validate-triggerValider le planning et prévisualiser la prochaine exécution
GET /api/v1/automations/by-session/:session_idTâche liée à une session
GET /api/v1/automations/:idDétail d’une tâche
PUT /api/v1/automations/:idMettre à jour (champs présents dans AutomationPatch)
DELETE /api/v1/automations/:idSupprimer une tâche
POST /api/v1/automations/:id/pauseMettre le planning en pause
POST /api/v1/automations/:id/resumeReprendre le planning
POST /api/v1/automations/:id/runExécuter immédiatement

Champs obligatoires à la création : name, instruction, trigger. Exemple :

json
{
  "name": "Synthèse quotidienne des connaissances",
  "instruction": "Lire les bases de connaissances auxquelles j’ai accès, résumer les ajouts récents avec les sources, sans modifier les données.",
  "trigger": {"type": "cron", "expr": "0 9 * * *", "timezone": "Asia/Shanghai"},
  "session_mode": "per_run",
  "access_level": "read_only",
  "notify_on_success": true
}
ChampDescription
trigger.typecron ou once
trigger.exprCron à cinq ou six champs, ou descripteurs comme @daily ; intervalle minimum 5 minutes
trigger.atHeure unique, RFC3339 ou heure locale dans le fuseau indiqué ; heure locale inexistante refusée
trigger.timezoneFuseau IANA ; UTC si omis
model_idModèle optionnel ; vide = modèle par défaut de l’assistant
session_modeper_run (défaut) ou persistent
carry_last_resultInjecter le dernier succès dans chaque nouvelle session ; défaut false
misfire_policyskip (défaut) ou run_once
overlap_policyskip (défaut) ou queue
access_levelread_only / confirm (défaut) / auto_write, plafonné par le niveau d’accès de l’assistant
approval_timeout_minutesDéfaut 1440, plage 5–10080
limits.max_duration_minutesDéfaut 30, max 240 ; n’inclut pas l’attente d’approbation
notify_on_successDéfaut false ; les échecs notifient toujours

Les consignes acceptent les variables de modèle now, last_run_at, last_success_at, run_id, automation_name entre doubles accolades. L’exécution passe par l’assistant intégré ; les besoins de collaboration s’expriment dans la consigne.

Exécutions et autorisations ​

Méthode et cheminUsage
GET /api/v1/automations/:id/runsHistorique des exécutions
GET /api/v1/automation-runs/:idDétail d’une exécution
POST /api/v1/automation-runs/:id/cancelAnnuler cette exécution
GET /api/v1/automations/:id/grantsAutorisations durables de la tâche
GET /api/v1/automations/:id/grant-candidatesCandidats dérivés d’approbations existantes
POST /api/v1/automations/:id/grantsAjouter une autorisation avec {"prompt_id":"..."}

Statuts d’exécution : queued, running, awaiting_approval, succeeded, failed, cancelled, skipped, needs_attention. Ce dernier signifie interruption avec issue incertaine — ne pas rejouer automatiquement des écritures peut-être déjà appliquées.

Liste unifiée et révocation : GET /api/v1/agent/grants et DELETE /api/v1/agent/grants/:id ; réponse aux approbations : POST /api/v1/agent/prompts/:prompt_id. Structure et validation : internal/handler/mcp_service.go, agent_grant.go.

Notifications in-app ​

Méthode et cheminUsage
GET /api/v1/notificationsNotifications de l’utilisateur
POST /api/v1/notifications/readMarquer comme lues : {"ids":["..."]}
DELETE /api/v1/notifications/readSupprimer les notifications lues

Référence d’implémentation : internal/router/routes_automation.go, internal/handler/automation.go, internal/types/automation.go. Usage produit : Automatisations.

Documentation issue de WeKnora v0.9.0 · MIT License