Dokumente/API & Webhooks/Inhaltskatalog

Inhaltskatalog

Der Katalog ist die Quelle der Wahrheit für die Kategorie-, Modul- und Topic-Kennzeichner, die überall sonst in der Public API verwendet werden. Schlagen Sie Kennzeichner hier nach, bevor Sie POST /assignments aufrufen, Elemente für benutzerdefinierte Kurse erstellen oder Compliance-Antworten interpretieren. Erforderlicher Geltungsbereich: content:read.

Endpunkte

MethodePfadGeltungsbereichZweck
GET/api/public/v1/content/categoriescontent:readAlle Top-Level-Kategorien.
GET/api/public/v1/content/categories/{'{'}categoryId{'}'}/topicscontent:readAlle Topics innerhalb einer Kategorie, mit Modul- und CWE-Informationen.
GET/api/public/v1/content/cwes/{'{'}cweId{'}'}/topicscontent:readEine CWE-ID zur Liste von Topics auflösen, die sie abdecken.

Kategorien auflisten

Gibt jede sichtbare Kategorie für Ihre Organisation zurück. Kategorien spiegeln die vier OWASP-Familien wider, die in den Compliance-Endpunkten verwendet werden — web, api, mobile, client.

GET /api/public/v1/content/categories
Authorization: Bearer scs_live_…

Antwort

{
  "count": 4,
  "categories": [
    { "categoryId": "web",    "title": "OWASP Top 10 (Web)" },
    { "categoryId": "api",    "title": "OWASP API Security Top 10" },
    { "categoryId": "mobile", "title": "OWASP Mobile Top 10" },
    { "categoryId": "client", "title": "OWASP Client-Side Top 10" }
  ]
}

Beispiel

curl -sS \
  -H "Authorization: Bearer $SCH_API_KEY" \
  https://api.limeplate.com/api/public/v1/content/categories

Topics in einer Kategorie auflisten

Gibt jedes Topic zurück, das zur gegebenen Kategorie aufrollt, jedes annotiert mit seinem übergeordneten Modul und der CWE-Menge, die für SARIF-Mapping verwendet wird. Gibt 404 category_not_found zurück, wenn die categoryId nicht eine der vier oben ist.

GET /api/public/v1/content/categories/web/topics
Authorization: Bearer scs_live_…

Antwort

{
  "categoryId": "web",
  "categoryTitle": "OWASP Top 10 (Web)",
  "count": 2,
  "topics": [
    {
      "topicId": "sql-injection",
      "title": "SQL Injection",
      "moduleId": "a03-injection",
      "moduleTitle": "A03: Injection",
      "cwes": ["CWE-89"]
    },
    {
      "topicId": "xss-reflected",
      "title": "Reflected Cross-Site Scripting",
      "moduleId": "a03-injection",
      "moduleTitle": "A03: Injection",
      "cwes": ["CWE-79", "CWE-80"]
    }
  ]
}
  • topicId ist der Wert, den Sie an POST /assignments und an Elemente von benutzerdefinierten Kursen übergeben.
  • moduleId entspricht der moduleId, die in den Compliance-Framework-Detailantworten verwendet wird, sodass Sie die zwei Endpunkte clientseitig joinen können.
  • moduleTitle kann für Topics, die nicht unter einem OWASP-Modul gruppiert sind, null sein (selten; reserviert für Ad-hoc-Inhalte).

Beispiel

curl -sS \
  -H "Authorization: Bearer $SCH_API_KEY" \
  https://api.limeplate.com/api/public/v1/content/categories/api/topics

Eine CWE zu Topics auflösen

Bei gegebener CWE-Kennung wird jedes Topic zurückgegeben, das sie abdeckt. Dies ist derselbe Lookup, den die SARIF-Aufnahme intern verwendet — rufen Sie ihn direkt auf, wenn Sie einen Befund einer Schulung zuordnen möchten, ohne einen vollständigen Bericht aufzunehmen.

GET /api/public/v1/content/cwes/CWE-89/topics
Authorization: Bearer scs_live_…

Akzeptierte CWE-Formate

Das {'{'}cweId{'}'}-Pfadsegment wird serverseitig normalisiert. Alle der folgenden werden identisch aufgelöst:

  • 89
  • cwe-89
  • CWE-89
  • external/cwe/cwe-89

Das cwe-Feld der Antwort gibt immer die normalisierte kanonische Form (CWE-89) wieder. Unbekannte CWEs geben 200 mit count: 0 und einem leeren topics-Array zurück — nicht 404 — sodass der Client keine unmappten IDs sonderbehandeln muss.

Antwort

{
  "cwe": "CWE-89",
  "count": 1,
  "topics": [
    {
      "topicId": "sql-injection",
      "title": "SQL Injection",
      "moduleId": "a03-injection",
      "moduleTitle": "A03: Injection",
      "categoryId": "web",
      "categoryTitle": "OWASP Top 10 (Web)"
    }
  ]
}

Beispiel

curl -sS \
  -H "Authorization: Bearer $SCH_API_KEY" \
  https://api.limeplate.com/api/public/v1/content/cwes/external/cwe/cwe-79/topics

Kennzeichner-Stabilität

Kategorie-, Modul- und Topic-Kennzeichner sind stabile Strings — sie werden sich nach der Veröffentlichung nicht ändern. Neue Topics können unter bestehenden Modulen hinzugefügt werden, und neue Module unter bestehenden Kategorien, aber Umbenennungen werden vermieden, um Integrationen widerstandsfähig zu halten. Wenn ein Topic jemals zurückgezogen wird, wird die Kennung bewahrt und das Topic aus dem Katalog ausgeblendet, statt recycelt zu werden.