curl -X POST "https://api.example.com/api/violations/viol_789xyz/remediation" \
-H "Authorization: Bearer YOUR_TOKEN"
{
"summary": "Implement automated breach notification workflow with 72-hour deadline tracking and supervisory authority integration.",
"steps": [
{
"title": "Add breach notification tracking table",
"code": "CREATE TABLE breach_notifications (\n id UUID PRIMARY KEY DEFAULT gen_random_uuid(),\n breach_date TIMESTAMP NOT NULL,\n detection_date TIMESTAMP NOT NULL,\n notification_deadline TIMESTAMP GENERATED ALWAYS AS (detection_date + INTERVAL '72 hours') STORED,\n affected_records INTEGER NOT NULL,\n data_types TEXT[] NOT NULL,\n notification_status TEXT CHECK (notification_status IN ('pending', 'sent', 'overdue')) DEFAULT 'pending',\n supervisory_authority_id TEXT,\n created_at TIMESTAMP DEFAULT NOW()\n);\n\nCREATE INDEX idx_notification_deadline ON breach_notifications(notification_deadline) WHERE notification_status = 'pending';",
"language": "sql"
},
{
"title": "Implement automated notification service",
"code": "import { sendBreachNotification } from '@/lib/gdpr/notifications';\n\nexport async function checkBreachDeadlines() {\n const supabase = getSupabaseClient();\n \n // Find breaches approaching 72-hour deadline\n const { data: breaches } = await supabase\n .from('breach_notifications')\n .select('*')\n .eq('notification_status', 'pending')\n .lt('notification_deadline', new Date(Date.now() + 24 * 60 * 60 * 1000).toISOString());\n \n for (const breach of breaches) {\n // Send to supervisory authority\n await sendBreachNotification({\n breachId: breach.id,\n authority: breach.supervisory_authority_id,\n affectedRecords: breach.affected_records,\n dataTypes: breach.data_types\n });\n \n // Update status\n await supabase\n .from('breach_notifications')\n .update({ notification_status: 'sent' })\n .eq('id', breach.id);\n }\n}",
"language": "typescript"
},
{
"title": "Schedule daily deadline check",
"code": "0 8 * * * /usr/bin/node /app/scripts/check-breach-deadlines.js",
"language": "bash"
},
{
"title": "Add monitoring alerts",
"code": "Configure monitoring to alert compliance team 24 hours before notification deadline. Set up escalation path for overdue notifications.",
"language": "text"
}
],
"estimated_effort": "4-6 hours",
"risk_level": "medium",
"applicable_frameworks": [
"GDPR",
"CCPA",
"ISO 27001"
]
}
Generate AI-powered remediation steps with code snippets for fixing compliance violations
curl -X POST "https://api.example.com/api/violations/viol_789xyz/remediation" \
-H "Authorization: Bearer YOUR_TOKEN"
{
"summary": "Implement automated breach notification workflow with 72-hour deadline tracking and supervisory authority integration.",
"steps": [
{
"title": "Add breach notification tracking table",
"code": "CREATE TABLE breach_notifications (\n id UUID PRIMARY KEY DEFAULT gen_random_uuid(),\n breach_date TIMESTAMP NOT NULL,\n detection_date TIMESTAMP NOT NULL,\n notification_deadline TIMESTAMP GENERATED ALWAYS AS (detection_date + INTERVAL '72 hours') STORED,\n affected_records INTEGER NOT NULL,\n data_types TEXT[] NOT NULL,\n notification_status TEXT CHECK (notification_status IN ('pending', 'sent', 'overdue')) DEFAULT 'pending',\n supervisory_authority_id TEXT,\n created_at TIMESTAMP DEFAULT NOW()\n);\n\nCREATE INDEX idx_notification_deadline ON breach_notifications(notification_deadline) WHERE notification_status = 'pending';",
"language": "sql"
},
{
"title": "Implement automated notification service",
"code": "import { sendBreachNotification } from '@/lib/gdpr/notifications';\n\nexport async function checkBreachDeadlines() {\n const supabase = getSupabaseClient();\n \n // Find breaches approaching 72-hour deadline\n const { data: breaches } = await supabase\n .from('breach_notifications')\n .select('*')\n .eq('notification_status', 'pending')\n .lt('notification_deadline', new Date(Date.now() + 24 * 60 * 60 * 1000).toISOString());\n \n for (const breach of breaches) {\n // Send to supervisory authority\n await sendBreachNotification({\n breachId: breach.id,\n authority: breach.supervisory_authority_id,\n affectedRecords: breach.affected_records,\n dataTypes: breach.data_types\n });\n \n // Update status\n await supabase\n .from('breach_notifications')\n .update({ notification_status: 'sent' })\n .eq('id', breach.id);\n }\n}",
"language": "typescript"
},
{
"title": "Schedule daily deadline check",
"code": "0 8 * * * /usr/bin/node /app/scripts/check-breach-deadlines.js",
"language": "bash"
},
{
"title": "Add monitoring alerts",
"code": "Configure monitoring to alert compliance team 24 hours before notification deadline. Set up escalation path for overdue notifications.",
"language": "text"
}
],
"estimated_effort": "4-6 hours",
"risk_level": "medium",
"applicable_frameworks": [
"GDPR",
"CCPA",
"ISO 27001"
]
}
Use Gemini AI to generate specific, actionable remediation steps with working code snippets. Results are cached byDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/Basit-Ali0/Yggdrasil/llms.txt
Use this file to discover all available pages before exploring further.
rule_id to avoid redundant API calls.
low, medium, or high["GDPR", "SOC 2", "ISO 27001"])curl -X POST "https://api.example.com/api/violations/viol_789xyz/remediation" \
-H "Authorization: Bearer YOUR_TOKEN"
{
"summary": "Implement automated breach notification workflow with 72-hour deadline tracking and supervisory authority integration.",
"steps": [
{
"title": "Add breach notification tracking table",
"code": "CREATE TABLE breach_notifications (\n id UUID PRIMARY KEY DEFAULT gen_random_uuid(),\n breach_date TIMESTAMP NOT NULL,\n detection_date TIMESTAMP NOT NULL,\n notification_deadline TIMESTAMP GENERATED ALWAYS AS (detection_date + INTERVAL '72 hours') STORED,\n affected_records INTEGER NOT NULL,\n data_types TEXT[] NOT NULL,\n notification_status TEXT CHECK (notification_status IN ('pending', 'sent', 'overdue')) DEFAULT 'pending',\n supervisory_authority_id TEXT,\n created_at TIMESTAMP DEFAULT NOW()\n);\n\nCREATE INDEX idx_notification_deadline ON breach_notifications(notification_deadline) WHERE notification_status = 'pending';",
"language": "sql"
},
{
"title": "Implement automated notification service",
"code": "import { sendBreachNotification } from '@/lib/gdpr/notifications';\n\nexport async function checkBreachDeadlines() {\n const supabase = getSupabaseClient();\n \n // Find breaches approaching 72-hour deadline\n const { data: breaches } = await supabase\n .from('breach_notifications')\n .select('*')\n .eq('notification_status', 'pending')\n .lt('notification_deadline', new Date(Date.now() + 24 * 60 * 60 * 1000).toISOString());\n \n for (const breach of breaches) {\n // Send to supervisory authority\n await sendBreachNotification({\n breachId: breach.id,\n authority: breach.supervisory_authority_id,\n affectedRecords: breach.affected_records,\n dataTypes: breach.data_types\n });\n \n // Update status\n await supabase\n .from('breach_notifications')\n .update({ notification_status: 'sent' })\n .eq('id', breach.id);\n }\n}",
"language": "typescript"
},
{
"title": "Schedule daily deadline check",
"code": "0 8 * * * /usr/bin/node /app/scripts/check-breach-deadlines.js",
"language": "bash"
},
{
"title": "Add monitoring alerts",
"code": "Configure monitoring to alert compliance team 24 hours before notification deadline. Set up escalation path for overdue notifications.",
"language": "text"
}
],
"estimated_effort": "4-6 hours",
"risk_level": "medium",
"applicable_frameworks": [
"GDPR",
"CCPA",
"ISO 27001"
]
}
rule_id to improve performance:
POST /api/violations/viol_123/remediation // rule_id: GDPR_BREACH_NOTIFICATION
→ Gemini API call, response cached
POST /api/violations/viol_456/remediation // rule_id: GDPR_BREACH_NOTIFICATION
→ Instant cache hit, no API call
CTR_* - Currency Transaction ReportsSAR_* - Suspicious Activity ReportsSTRUCTURING - Transaction structuring detectionVELOCITY - Transaction velocity monitoringDORMANT - Dormant account reactivationROUND_AMOUNT - Round amount patternsHIGH_RISK - High-risk entity transactionsRAPID_MOVEMENT - Rapid fund movementSUB_THRESHOLD - Sub-threshold structuringSMURFING - Smurfing detection{
"error": "NOT_APPLICABLE",
"message": "Remediation generation is not available for AML violations. AML violations require human review and regulatory reporting, not code fixes."
}
NOT_FOUND, NOT_APPLICABLE, UNAUTHORIZED, or INTERNAL_ERROR