Обзор API
Публичный REST API SecureCodingHub позволяет Вам провизионить пользователей, создавать задания, принимать находки сканеров и подписываться на события из Ваших собственных систем — без скрейпинга админ-интерфейса.
Когда использовать API
Используйте публичный API, когда Вы хотите, чтобы SecureCodingHub вёл себя как часть Вашей инфраструктуры, а не отдельная панель. Типичные интеграции:
- CI/CD-пайплайны — подавайте SARIF-вывод из CodeQL, Snyk, Semgrep или любого SAST-инструмента, чтобы автоматически создавать целевые учебные задания автору коммита.
- Синхронизация HR / IdP — провизионьте пользователей при найме и деактивируйте при увольнении, наряду с SCIM.
- Тикетинг и SOAR — открывайте тикет Jira, когда разработчик проваливает обязательное задание, или вызывайте инцидент PagerDuty, когда сертификат просрочен.
- Кастомная отчётность — выгружайте данные прогресса и аудита в Ваш собственный BI-инструмент (Looker, Metabase, Tableau).
- White-label панели — встраивайте статистику завершения внутрь Вашего внутреннего портала.
Базовый URL и версионирование
Каждый публичный эндпоинт достигается через единый базовый URL с версией, зафиксированной в пути:
https://api.limeplate.com/api/public/v1Контракт v1 стабилен. Ломающие изменения будут выпускаться как v2 по новому пути; v1 остаётся доступным как минимум 12 месяцев после того, как новая мажорная версия становится общедоступной.
Две поверхности, одна платформа
Админ-приложение под app.securecodinghub.com и публичный API под api.limeplate.com/api/public/v1 намеренно разделены. Они используют разные схемы аутентификации, разные политики rate-limit и разные соглашения по идентификаторам. Внутренние эндпоинты (/api/sch/...) могут изменяться без уведомления; только эндпоинты, задокументированные в этом разделе, гарантированы.
30-секундный тур
Поток для новой интеграции почти всегда выглядит так:
Создайте API-ключ в админ-консоли в разделе Организация → API-ключи. Предоставьте только нужные Вам области (users:read, assignments:write и т.д.).
Скопируйте токен scs_live_…. Токен показывается один раз при создании — сохраните его в Вашем менеджере секретов немедленно.
Сделайте свой первый вызов, отправив Authorization: Bearer scs_live_… на любой эндпоинт.
Для событий, происходящих внутри SecureCodingHub (задание завершено, SARIF-ран принят), подпишите webhook-эндпоинт и верифицируйте HMAC-подпись на каждой доставке.
Ваш первый запрос
Этот вызов возвращает метаданные для организации, владеющей API-ключом. Это рекомендуемая проверка работоспособности после выпуска нового токена:
curl https://api.limeplate.com/api/public/v1/org \
-H "Authorization: Bearer scs_live_yourkeyhere"Успешный ответ выглядит так:
{
"id": "e188fc87-1334-48bd-84d7-5e3e64cecb52",
"name": "Acme Corp",
"slug": "acme",
"domain": "acme.com",
"plan": "growth",
"maxSeats": 500,
"trialExpiresAt": null,
"isActive": true,
"createdAt": "2026-01-12T08:42:11Z"
}Соглашения
| Тема | Соглашение |
|---|---|
| Транспорт | Только HTTPS. Обычные HTTP-запросы отклоняются на границе. |
| Кодировка | JSON-тела запросов и ответов. Content-Type: application/json на каждом POST, PATCH. |
| Регистр | Все имена полей используют camelCase и в запросах, и в ответах (и в webhook-полезных нагрузках). |
| Временные метки | ISO 8601 UTC-строки (2026-05-29T13:45:12Z). |
| Идентификаторы | Все ID ресурсов — это RFC 4122 v4 UUID. |
| Пустые тела | Эндпоинты, которые просто подтверждают операцию, возвращают 200 OK с { "message": "..." }. |
| Идемпотентность | Где это важно (например, приём SARIF), идемпотентность ключуется по естественным идентификаторам в запросе, а не отдельным заголовком. |
OpenAPI-спецификация
Документ OpenAPI 3.0, описывающий каждый публичный эндпоинт, обслуживается с того же хоста:
https://api.limeplate.com/openapi/v1.jsonВы можете вставить этот URL напрямую в Postman, Insomnia, Stoplight или любой инструмент кодогенерации (openapi-generator, @hey-api/openapi-ts, NSwag), чтобы создать типизированный клиент.
Поддержка и статус
Операционные проблемы, ломающие изменения и уведомления о deprecation отправляются на email-адрес, зарегистрированный с Вашей организацией. По вопросам интеграции и багам пишите на support@securecodinghub.com с заголовком запроса X-Request-Id, если Вы можете захватить его из неудачного вызова — это значительно ускоряет триаж.