Compliance
Zwei parallele Abdeckungsansichten über dieselben Schulungsdaten. Die OWASP-Ansicht bewertet Ihre Belegschaft gegen die vier OWASP Top 10-Familien (Web, API, Mobile, Client). Die regulatorische Ansicht bewertet dieselbe Schulung gegen externe Standards (PCI DSS, ISO/IEC 27001, SOC 2), indem jede Kontrolle ihren zugrundeliegenden CWEs zugeordnet wird. Erforderlicher Geltungsbereich: compliance:read.
Endpunkte
| Methode | Pfad | Geltungsbereich | Zweck |
|---|---|---|---|
GET | /api/public/v1/compliance/summary | compliance:read | OWASP-Abdeckungs-Roll-up über alle vier Frameworks. |
GET | /api/public/v1/compliance/frameworks/{'{'}frameworkId{'}'} | compliance:read | Aufschlüsselung pro Modul für ein OWASP-Framework. |
GET | /api/public/v1/compliance/regulatory/summary | compliance:read | Abdeckungs-Roll-up für die regulatorischen Frameworks. |
GET | /api/public/v1/compliance/regulatory/{'{'}frameworkId{'}'} | compliance:read | Aufschlüsselung pro Kontrolle für ein regulatorisches Framework. |
Wie die Abdeckung berechnet wird
Ein berechtigter Benutzer ist jedes aktive Organisationsmitglied, dessen Rolle nicht org_admin ist. Ein Benutzer wird als trainiert auf einem Topic gezählt, wenn er mindestens einen Übungsversuch mit Punktzahl ≥ passingScore (70) innerhalb der letzten windowDays (365) hat. Ein Risikoelement (OWASP-Modul oder regulatorische Kontrolle) wechselt zum Status covered, sobald der Prozentsatz der berechtigten Benutzer, die darauf trainiert sind, den coverageThresholdPercent Ihrer Organisation überschreitet — Standard 80, konfigurierbar über die Administrator-UI zwischen 50 und 100.
Framework-Kennzeichner
| Typ | Kennzeichner | Titel |
|---|---|---|
| OWASP | web | OWASP Top 10 (Web) |
| OWASP | api | OWASP API Security Top 10 |
| OWASP | mobile | OWASP Mobile Top 10 |
| OWASP | client | OWASP Client-Side Top 10 |
| Regulatorisch | pci-dss | PCI DSS v4.0 — Anforderung 6.2.4 |
| Regulatorisch | iso-27001 | ISO/IEC 27001:2022 — Annex A Secure Development |
| Regulatorisch | soc-2 | SOC 2 — Trust Services Criteria (TSC 2017) |
OWASP-Zusammenfassung
Ein Eintrag pro OWASP-Framework. Verwenden Sie dies für Dashboard-Kacheln.
GET /api/public/v1/compliance/summary
Authorization: Bearer scs_live_…Antwort
{
"frameworks": [
{
"frameworkId": "web",
"title": "OWASP Top 10 (Web)",
"totalRiskItems": 10,
"coveredRiskItems": 7,
"partialRiskItems": 2,
"noActivityRiskItems": 1,
"noContentRiskItems": 0,
"eligibleUsers": 142,
"trainedUsers": 118,
"coveragePercent": 83.1,
"avgScore": 86.4
},
{
"frameworkId": "api",
"title": "OWASP API Security Top 10",
"totalRiskItems": 10,
"coveredRiskItems": 5,
"partialRiskItems": 3,
"noActivityRiskItems": 2,
"noContentRiskItems": 0,
"eligibleUsers": 142,
"trainedUsers": 91,
"coveragePercent": 64.1,
"avgScore": 79.2
}
],
"passingScore": 70,
"coverageThresholdPercent": 80,
"windowDays": 365,
"generatedAt": "2026-05-29T13:42:11.318Z"
}covered+partial+noActivity+noContent=totalRiskItems.noContentbedeutet, dass wir noch keine Schulung für dieses Risikoelement bereitgestellt haben — behandeln Sie es als bekannte Lücke, nicht als Belegschaftsversagen.avgScoreist der Mittelwert bestandener Versuche innerhalb des Fensters, ausgedrückt auf einer 0–100-Skala.
Beispiel
curl -sS \
-H "Authorization: Bearer $SCH_API_KEY" \
https://api.limeplate.com/api/public/v1/compliance/summaryOWASP-Framework-Detail
Geht in ein Framework hinein — gibt die Risikoelemente pro Modul zurück, jedes mit den enthaltenen Topics und CWEs. Gibt 404 framework_not_found für jeden Kennzeichner außerhalb von web | api | mobile | client zurück.
GET /api/public/v1/compliance/frameworks/web
Authorization: Bearer scs_live_…Antwort
{
"frameworkId": "web",
"title": "OWASP Top 10 (Web)",
"summary": {
"frameworkId": "web",
"title": "OWASP Top 10 (Web)",
"totalRiskItems": 10,
"coveredRiskItems": 7,
"partialRiskItems": 2,
"noActivityRiskItems": 1,
"noContentRiskItems": 0,
"eligibleUsers": 142,
"trainedUsers": 118,
"coveragePercent": 83.1,
"avgScore": 86.4
},
"riskItems": [
{
"moduleId": "a01-broken-access-control",
"title": "A01: Broken Access Control",
"status": "covered",
"topicsCount": 4,
"eligibleUsers": 142,
"trainedUsers": 124,
"coveragePercent": 87.3,
"avgScore": 88.1,
"topics": [
{
"topicId": "idor",
"title": "Insecure Direct Object References",
"trainedUsers": 121,
"totalAttempts": 318,
"avgScore": 87.6,
"cwes": ["CWE-639", "CWE-285"]
}
]
}
],
"passingScore": 70,
"coverageThresholdPercent": 80,
"windowDays": 365,
"generatedAt": "2026-05-29T13:42:11.318Z"
}statusist eines voncovered,partial,no-activity,no-content.totalAttemptsbeinhaltet fehlgeschlagene Versuche innerhalb des Fensters;trainedUserszählt nur Benutzer mit mindestens einem bestandenen Versuch.
Beispiel
curl -sS \
-H "Authorization: Bearer $SCH_API_KEY" \
https://api.limeplate.com/api/public/v1/compliance/frameworks/apiRegulatorische Zusammenfassung
Gleiche Form wie die OWASP-Zusammenfassung, aber für regulatorische Frameworks. Jeder Eintrag trägt version und subtitle, sodass Sie die identifizierende Klausel des Standards direkt rendern können.
GET /api/public/v1/compliance/regulatory/summary
Authorization: Bearer scs_live_…Antwort
{
"frameworks": [
{
"frameworkId": "pci-dss",
"title": "PCI DSS",
"version": "v4.0",
"subtitle": "Payment Card Industry Data Security Standard — Requirement 6 (Secure Systems and Software)",
"totalControls": 6,
"coveredControls": 4,
"partialControls": 1,
"noActivityControls": 1,
"noContentControls": 0,
"eligibleUsers": 142,
"trainedUsers": 105,
"coveragePercent": 73.9,
"avgScore": 84.7
},
{
"frameworkId": "iso-27001",
"title": "ISO/IEC 27001",
"version": "2022",
"subtitle": "Annex A controls — secure development and application security",
"totalControls": 6,
"coveredControls": 5,
"partialControls": 1,
"noActivityControls": 0,
"noContentControls": 0,
"eligibleUsers": 142,
"trainedUsers": 117,
"coveragePercent": 82.4,
"avgScore": 86.0
}
],
"passingScore": 70,
"coverageThresholdPercent": 80,
"windowDays": 365,
"generatedAt": "2026-05-29T13:42:11.318Z"
}Beispiel
curl -sS \
-H "Authorization: Bearer $SCH_API_KEY" \
https://api.limeplate.com/api/public/v1/compliance/regulatory/summaryRegulatorisches Framework-Detail
Aufschlüsselung pro Kontrolle. Jede Kontrolle enthält die Upstream-Beschreibung, wie sie der Standard veröffentlicht, und die CWE-Menge, die wir verwendet haben, um die Schulung der Kontrolle zuzuordnen. Gibt 404 regulatory_framework_not_found für unbekannte Kennzeichner zurück.
GET /api/public/v1/compliance/regulatory/pci-dss
Authorization: Bearer scs_live_…Antwort
{
"frameworkId": "pci-dss",
"title": "PCI DSS",
"version": "v4.0",
"subtitle": "Payment Card Industry Data Security Standard — Requirement 6 (Secure Systems and Software)",
"summary": {
"frameworkId": "pci-dss",
"title": "PCI DSS",
"version": "v4.0",
"subtitle": "Payment Card Industry Data Security Standard — Requirement 6 (Secure Systems and Software)",
"totalControls": 6,
"coveredControls": 4,
"partialControls": 1,
"noActivityControls": 1,
"noContentControls": 0,
"eligibleUsers": 142,
"trainedUsers": 105,
"coveragePercent": 73.9,
"avgScore": 84.7
},
"controls": [
{
"controlId": "6.2.4.a",
"title": "Injection Attacks",
"description": "Address attacks that inject untrusted data into commands or queries (Req 6.2.4.a).",
"cwes": ["CWE-89", "CWE-78", "CWE-79", "CWE-94", "CWE-611", "CWE-917", "CWE-918"],
"status": "covered",
"topicsCount": 7,
"eligibleUsers": 142,
"trainedUsers": 128,
"coveragePercent": 90.1,
"avgScore": 88.6,
"topics": [
{
"topicId": "sql-injection",
"title": "SQL Injection",
"trainedUsers": 131,
"totalAttempts": 402,
"avgScore": 89.4,
"cwes": ["CWE-89"]
}
]
}
],
"passingScore": 70,
"coverageThresholdPercent": 80,
"windowDays": 365,
"generatedAt": "2026-05-29T13:42:11.318Z"
}Beispiel
curl -sS \
-H "Authorization: Bearer $SCH_API_KEY" \
https://api.limeplate.com/api/public/v1/compliance/regulatory/iso-27001