Соответствие
Два параллельных представления покрытия над теми же учебными данными. Представление OWASP оценивает Вашу рабочую силу по четырём семействам OWASP Top 10 (Web, API, Mobile, Client). Регуляторное представление оценивает то же обучение по внешним стандартам (PCI DSS, ISO/IEC 27001, SOC 2), сопоставляя каждый контроль с его основными CWE. Требуемая область: compliance:read.
Конечные точки
| Метод | Путь | Область действия | Назначение |
|---|---|---|---|
GET | /api/public/v1/compliance/summary | compliance:read | Сводка покрытия OWASP по всем четырём фреймворкам. |
GET | /api/public/v1/compliance/frameworks/{'{'}frameworkId{'}'} | compliance:read | Разбивка по модулям для одного фреймворка OWASP. |
GET | /api/public/v1/compliance/regulatory/summary | compliance:read | Сводка покрытия для регуляторных фреймворков. |
GET | /api/public/v1/compliance/regulatory/{'{'}frameworkId{'}'} | compliance:read | Разбивка по контролям для одного регуляторного фреймворка. |
Как рассчитывается покрытие
Подходящий пользователь — это любой активный участник организации, чья роль не org_admin. Пользователь считается обучен по теме, если у него есть хотя бы одна практическая попытка с оценкой ≥ passingScore (70) внутри последних windowDays (365). Элемент риска (модуль OWASP или регуляторный контроль) переключается в статус covered, как только процент подходящих пользователей, обученных по нему, пересекает coverageThresholdPercent Вашей организации — по умолчанию 80, настраивается через UI администратора между 50 и 100.
Идентификаторы фреймворков
| Тип | Идентификатор | Заголовок |
|---|---|---|
| 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 |
| Регуляторный | pci-dss | PCI DSS v4.0 — Требование 6.2.4 |
| Регуляторный | iso-27001 | ISO/IEC 27001:2022 — Annex A безопасная разработка |
| Регуляторный | soc-2 | SOC 2 — Trust Services Criteria (TSC 2017) |
Сводка OWASP
Одна запись на фреймворк OWASP. Используйте это для плиток панели.
GET /api/public/v1/compliance/summary
Authorization: Bearer scs_live_…Ответ
{
"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означает, что мы ещё не выпустили обучение для этого элемента риска — относитесь к нему как к известному пробелу, а не сбою рабочей силы.avgScore— это среднее проходных попыток в пределах окна, выраженное по шкале 0–100.
Пример
curl -sS \
-H "Authorization: Bearer $SCH_API_KEY" \
https://api.limeplate.com/api/public/v1/compliance/summaryДетали фреймворка OWASP
Углубляется в один фреймворк — возвращает элементы риска по модулям, каждый с составляющими темами и CWE. Возвращает 404 framework_not_found для любого идентификатора вне web | api | mobile | client.
GET /api/public/v1/compliance/frameworks/web
Authorization: Bearer scs_live_…Ответ
{
"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— один изcovered,partial,no-activity,no-content.totalAttemptsвключает неудачные попытки в пределах окна;trainedUsersсчитает только пользователей хотя бы с одной проходной попыткой.
Пример
curl -sS \
-H "Authorization: Bearer $SCH_API_KEY" \
https://api.limeplate.com/api/public/v1/compliance/frameworks/apiРегуляторная сводка
Та же форма, что и сводка OWASP, но для регуляторных фреймворков. Каждая запись несёт version и subtitle, чтобы Вы могли отрендерить идентифицирующий пункт стандарта напрямую.
GET /api/public/v1/compliance/regulatory/summary
Authorization: Bearer scs_live_…Ответ
{
"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"
}Пример
curl -sS \
-H "Authorization: Bearer $SCH_API_KEY" \
https://api.limeplate.com/api/public/v1/compliance/regulatory/summaryДетали регуляторного фреймворка
Разбивка по контролям. Каждый контроль включает восходящее описание, как его публикует стандарт, и набор CWE, который мы использовали для сопоставления обучения с контролем. Возвращает 404 regulatory_framework_not_found для неизвестных идентификаторов.
GET /api/public/v1/compliance/regulatory/pci-dss
Authorization: Bearer scs_live_…Ответ
{
"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"
}Пример
curl -sS \
-H "Authorization: Bearer $SCH_API_KEY" \
https://api.limeplate.com/api/public/v1/compliance/regulatory/iso-27001