# Cron & Scheduler Die Cron-API ermöglicht das Planen wiederkehrender HTTP-Aufrufe an Synapse- Endpunkte (oder externe HTTPS-Endpunkte). Perfekt für periodischen Sync, Erinnerungen und Wartungsaufgaben. ## Endpunkte ### POST /cron Einen geplanten Task anlegen. ```bash 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"} }' ``` Antwort: ```json { "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 Alle geplanten Tasks auflisten. ```bash curl -H "Authorization: Bearer YOUR_MIND_KEY" \ https://synapse.schaefer.zone/cron ``` ### DELETE /cron/:id Einen geplanten Task löschen. ```bash curl -X DELETE -H "Authorization: Bearer YOUR_MIND_KEY" \ https://synapse.schaefer.zone/cron/cron_001 ``` ### PUT /cron/:id/toggle Einen Task aktivieren oder deaktivieren, ohne ihn zu löschen. ```bash curl -X PUT -H "Authorization: Bearer YOUR_MIND_KEY" \ https://synapse.schaefer.zone/cron/cron_001/toggle ``` ## Schedule-Syntax ### Standard-Cron (5 Felder) ``` ┌───── minute (0-59) │ ┌───── hour (0-23) │ │ ┌───── day of month (1-31) │ │ │ ┌───── month (1-12) │ │ │ │ ┌───── day of week (0-6, 0=Sunday) │ │ │ │ │ * * * * * ``` Beispiele: | Schedule | Bedeutung | |----------|-----------| | `0 * * * *` | Jede Stunde | | `*/15 * * * *` | Alle 15 Minuten | | `0 9 * * 1-5` | Werktags um 9 Uhr | | `0 0 * * 0` | Jeden Sonntag um Mitternacht | | `0 0 1 * *` | Ersten jeden Monats um Mitternacht | ### Integer-Intervall (Sekunden) Für einfache Intervalle übergibst du einen Integer: ```json { "schedule": "300" } // Alle 5 Minuten ``` ## Endpunkt-Einschränkungen > [!WARNING] > Endpoints must be `http://` or `https://` URLs pointing to: > - The same Synapse instance (e.g. `http://synapse:12800/memory/recall`) > - Public HTTPS URLs (no private IPs, no localhost, no metadata IPs) Das verhindert SSRF-Angriffe, bei denen ein kompromittierter Mind Anfragen an interne Dienste planen könnte. ## Häufige Patterns ### Stündlicher Memory-Recall (für LLM-Agenten) ```bash curl -X POST .../cron -d '{ "schedule": "0 * * * *", "endpoint": "https://synapse.schaefer.zone/memory/recall", "method": "GET", "headers": {"Authorization": "Bearer YOUR_MIND_KEY"} }' ``` ### Tägliche Sicherung ```bash curl -X POST .../cron -d '{ "schedule": "0 2 * * *", "endpoint": "https://synapse.schaefer.zone/memory/mind-export", "method": "GET", "headers": {"Authorization": "Bearer YOUR_MIND_KEY"} }' ``` ### Periodischer Chat-Poll (alle 5 Minuten) ```bash curl -X POST .../cron -d '{ "schedule": "300", "endpoint": "https://synapse.schaefer.zone/chat/poll", "method": "GET", "headers": {"Authorization": "Bearer YOUR_MIND_KEY"} }' ``` ### Wöchentlicher Report-Trigger ```bash 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"} }' ``` ## Nächste Schritte - [Variables-API](/docs/api/variables) - [Webhooks-API](/docs/api/webhooks)