Skip to main content

Overzicht

Klantel heeft elf HTTP-eindpunten die periodiek worden aangeroepen door de VPS-root-crontab (zie ADR-0014). Coolify Scheduled Tasks worden niet gebruikt.

Beveiliging

Alle cron-eindpunten vereisen een Authorization: Bearer-header met het CRON_SECRET:
Stel CRON_SECRET in als omgevingsvariabele. Genereer een sterk geheim:
Nooit het CRON_SECRET in code, logs of platte-tekst crontab-regels opslaan. Beheer het via /etc/klantel-cron.env (chmod 600) op de VPS — elke crontab-regel source-t deze file.

Eindpunten

POST /api/cron/weekrapport

Verstuurt een wekelijks samenvattingsrapport per e-mail aan alle beheerders van elke actieve tenant. Schema (VPS-crontab): iedere zondag om 18:00 UTC (19:00 Belgische wintertijd)
Aanroepvoorbeeld:
Respons bij succes:
Foutrespons:
HTTP 401 bij ontbrekende of ongeldige token.

POST /api/cron/audit-retentie

Verwijdert AuditEntry-rijen ouder dan AUDIT_RETENTIE_DAGEN dagen (default 2555 = 7 jaar). Voldoet aan GDPR-opslagbeperking: audit-logboek niet langer bewaren dan wettelijk vereist. Omgevingsvariabele: AUDIT_RETENTIE_DAGEN (optioneel, default 2555) Schema (VPS-crontab): jaarlijks op 1 januari om 02:00 UTC
Aanroepvoorbeeld:
Respons bij succes:
Na opschoning blijft de hashketen-verificatie (/api/cron/audit-verificatie) groen: de verificatie-cron gebruikt de oudste resterende entry als nieuw ankerpunt.

POST /api/cron/beveiligingslog-retentie

Verwijdert BeveiligingsLog-rijen (inlogpogingen) ouder dan BEVEILIGINGSLOG_RETENTIE_DAGEN dagen (default 90). Omgevingsvariabele: BEVEILIGINGSLOG_RETENTIE_DAGEN (optioneel, default 90) Schema (VPS-crontab): dagelijks om 03:00 UTC
Aanroepvoorbeeld:
Respons bij succes:

POST /api/cron/audit-verificatie

Verifieert de SHA-256 hashketen van alle AuditEntry-records per tenant. Alarmeert bij een gebroken keten (mogelijke manipulatie). Schema (VPS-crontab): dagelijks om 01:00 UTC
Aanroepvoorbeeld:
Respons bij succes (keten intact): HTTP 200
Respons bij gebroken keten: HTTP 409

POST /api/cron/backup-status

Rapporteer-eindpunt voor de host-cron (scripts/backup.sh/opt/klantel/backup.sh). De host-cron stuurt na elke back-up-run de exit-status en bestandsgrootte door. Het resultaat wordt bewaard (BackupStatus) zodat het dagrapport de back-up-status als vaste rubriek kan tonen. Bij een mislukte run (exitCode ≠ 0) volgt een Sentry-event met tag type: backup-failure — zo wordt stille faling alsnog gemeld (KLANTEL-354). Body (JSON):
exitCode is verplicht; bestandsnaam, grootte (bytes) en foutmelding zijn optioneel. Aanroepvoorbeeld:
Respons bij succes:
HTTP 400 bij ongeldige body, 401 bij ontbrekende/ongeldige token.

POST /api/cron/dagrapport

Dagelijks operationeel rapport voor de beheerder. Toont de back-up-status als vaste rubriek (datum + grootte + OK/FOUT), gevoed door BackupStatus. Wordt gemaild naar DAGRAPPORT_EMAIL (val terug op SUPPORT_EMAIL). Zonder ontvanger wordt het rapport niet verstuurd maar wel als JSON teruggegeven (KLANTEL-354). Schema (VPS-crontab): dagelijks om 06:00 UTC
Aanroepvoorbeeld:
Respons bij succes:

VPS-crontab-configuratie

Alle cron-endpoints worden aangeroepen vanuit de root-crontab op de VPS (zie ADR-0014 en DEPLOYMENT_OVH_COOLIFY.md §3.9 voor de volledige regelset).
1

Env-file aanmaken

Maak /etc/klantel-cron.env aan als root met CRON_SECRET=<geheim> en stel de rechten in:
2

Crontab-regels toevoegen

Voer crontab -e uit als root. Elke regel source-t de env-file:
Zie DEPLOYMENT_OVH_COOLIFY.md §3.9 voor de volledige regelset van alle negen endpoints.
3

Testen

Roep het endpoint manueel aan en controleer de log:

Verwante pagina’s

API-overzicht

Basis-URL, rate limits en foutformaten

Rapporten

Manueel rapporten bekijken