Skip to main content

Cron & Scheduler

Planifiez des appels d'API récurrents — tâches cron qui se déclenchent selon une planification, parfait pour la synchronisation périodique et les rappels.


Cron & Scheduler

L'API Cron permet de planifier des appels HTTP récurrents vers des endpoints Synapse (ou des endpoints HTTPS externes). Parfait pour la synchronisation périodique, les rappels et les tâches de maintenance.

Endpoints

POST /cron

Crée une tâche planifiée.

curl -X POST https://synapse.schaefer.zone/cron \
  -H "Authorization: Bearer YOUR_MIND_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "schedule": "0 * * * *",
    "endpoint": "https://synapse.schaefer.zone/memory/recall",
    "method": "GET",
    "headers": {"Authorization": "Bearer YOUR_MIND_KEY"}
  }'

Réponse :

{
  "id": "cron_001",
  "schedule": "0 * * * *",
  "endpoint": "https://synapse.schaefer.zone/memory/recall",
  "method": "GET",
  "enabled": true,
  "next_run": "2026-06-27T13:00:00Z",
  "created_at": "2026-06-27T..."
}

GET /cron

Liste toutes les tâches planifiées.

curl -H "Authorization: Bearer YOUR_MIND_KEY" \
     https://synapse.schaefer.zone/cron

DELETE /cron/:id

Supprime une tâche planifiée.

curl -X DELETE -H "Authorization: Bearer YOUR_MIND_KEY" \
     https://synapse.schaefer.zone/cron/cron_001

PUT /cron/:id/toggle

Active ou désactive une tâche sans la supprimer.

curl -X PUT -H "Authorization: Bearer YOUR_MIND_KEY" \
     https://synapse.schaefer.zone/cron/cron_001/toggle

Syntaxe de planification

Cron standard (5 champs)

┌───── minute (0-59)
│ ┌───── hour (0-23)
│ │ ┌───── day of month (1-31)
│ │ │ ┌───── month (1-12)
│ │ │ │ ┌───── day of week (0-6, 0=Sunday)
│ │ │ │ │
* * * * *

Exemples :

Planification Signification
0 * * * * Toutes les heures
*/15 * * * * Toutes les 15 minutes
0 9 * * 1-5 En semaine à 9 h
0 0 * * 0 Tous les dimanches à minuit
0 0 1 * * Le premier de chaque mois à minuit

Intervalle entier (secondes)

Pour des intervalles simples, passez un entier :

{ "schedule": "300" }  // Toutes les 5 minutes

Restrictions sur les endpoints

Les endpoints doivent être des URLs `http://` ou `https://` pointant vers :

Cela empêche les attaques SSRF où un mind compromis pourrait planifier des requêtes vers des services internes.

Schémas courants

Rappel mémoire horaire (pour les agents LLM)

curl -X POST .../cron -d '{
  "schedule": "0 * * * *",
  "endpoint": "https://synapse.schaefer.zone/memory/recall",
  "method": "GET",
  "headers": {"Authorization": "Bearer YOUR_MIND_KEY"}
}'

Sauvegarde quotidienne

curl -X POST .../cron -d '{
  "schedule": "0 2 * * *",
  "endpoint": "https://synapse.schaefer.zone/memory/mind-export",
  "method": "GET",
  "headers": {"Authorization": "Bearer YOUR_MIND_KEY"}
}'

Polling périodique du chat (toutes les 5 minutes)

curl -X POST .../cron -d '{
  "schedule": "300",
  "endpoint": "https://synapse.schaefer.zone/chat/poll",
  "method": "GET",
  "headers": {"Authorization": "Bearer YOUR_MIND_KEY"}
}'

Déclencheur de rapport hebdomadaire

curl -X POST .../cron -d '{
  "schedule": "0 9 * * 1",
  "endpoint": "https://my-app.com/weekly-report",
  "method": "POST",
  "body": "{\"mind_id\": \"m_xyz789\"}",
  "headers": {"Content-Type": "application/json", "X-API-Key": "my-secret"}
}'

Prochaines étapes