Dokumente/API & Webhooks/Compliance

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

MethodePfadGeltungsbereichZweck
GET/api/public/v1/compliance/summarycompliance:readOWASP-Abdeckungs-Roll-up über alle vier Frameworks.
GET/api/public/v1/compliance/frameworks/{'{'}frameworkId{'}'}compliance:readAufschlüsselung pro Modul für ein OWASP-Framework.
GET/api/public/v1/compliance/regulatory/summarycompliance:readAbdeckungs-Roll-up für die regulatorischen Frameworks.
GET/api/public/v1/compliance/regulatory/{'{'}frameworkId{'}'}compliance:readAufschlü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

TypKennzeichnerTitel
OWASPwebOWASP Top 10 (Web)
OWASPapiOWASP API Security Top 10
OWASPmobileOWASP Mobile Top 10
OWASPclientOWASP Client-Side Top 10
Regulatorischpci-dssPCI DSS v4.0 — Anforderung 6.2.4
Regulatorischiso-27001ISO/IEC 27001:2022 — Annex A Secure Development
Regulatorischsoc-2SOC 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.
  • noContent bedeutet, dass wir noch keine Schulung für dieses Risikoelement bereitgestellt haben — behandeln Sie es als bekannte Lücke, nicht als Belegschaftsversagen.
  • avgScore ist 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/summary

OWASP-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"
}
  • status ist eines von covered, partial, no-activity, no-content.
  • totalAttempts beinhaltet fehlgeschlagene Versuche innerhalb des Fensters; trainedUsers zä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/api

Regulatorische 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/summary

Regulatorisches 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