curl --request POST "https://gerncrjtrdjtjvybvseb.supabase.co/functions/v1/notify" \
--header "Authorization: Bearer $ZONA_SOURCE_TOKEN" \
--header "Idempotency-Key: ci-$GITHUB_RUN_ID" \
--header "Content-Type: application/json" \
--data '{
"title": "Build failed on main",
"body": "auth.spec.ts: 3 tests failed after the dependency bump.",
"category": "build",
"severity": "high"
}'
import os, requests
requests.post(
"https://gerncrjtrdjtjvybvseb.supabase.co/functions/v1/notify",
headers={
"Authorization": f"Bearer {os.environ['ZONA_SOURCE_TOKEN']}",
"Idempotency-Key": "backup-20260914-020000",
},
json={
"title": "Nightly backup complete",
"body": "Offsite copy verified and checksums match.",
"category": "backup",
"severity": "low",
},
timeout=10,
)
// Tool call your agent makes through the Zona MCP server
{
"name": "zona_notify",
"arguments": {
"title": "Migration finished, review the PR",
"body": "The refactor is done and the branch is ready for review.",
"category": "agent",
"severity": "medium"
}
}
# curl.exe ships with Windows; each attachment part is one image
curl.exe --request POST "https://gerncrjtrdjtjvybvseb.supabase.co/functions/v1/notify" `
--header "Authorization: Bearer $env:ZONA_SOURCE_TOKEN" `
--header "Idempotency-Key: render-$(Get-Date -Format yyyyMMddHHmmss)" `
--form "title=Render finished" `
--form "body=final-cut.mp4 is ready on the desktop. Preview attached." `
--form "category=render" `
--form "attachment=@preview.png"
await fetch("https://gerncrjtrdjtjvybvseb.supabase.co/functions/v1/notify", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.ZONA_SOURCE_TOKEN}`,
"Idempotency-Key": `incident-${incident.id}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
title: "5xx spike on /checkout",
body: "Error rate stayed above the threshold for five minutes.",
category: "incident",
severity: "critical",
todo: ["Drain the queue", "Restart the worker", "Verify the dashboard"],
}),
});