Документация/API и Webhook'и/Обзор API

Обзор 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-секундный тур

Поток для новой интеграции почти всегда выглядит так:

1

Создайте API-ключ в админ-консоли в разделе Организация → API-ключи. Предоставьте только нужные Вам области (users:read, assignments:write и т.д.).

2

Скопируйте токен scs_live_…. Токен показывается один раз при создании — сохраните его в Вашем менеджере секретов немедленно.

3

Сделайте свой первый вызов, отправив Authorization: Bearer scs_live_… на любой эндпоинт.

4

Для событий, происходящих внутри 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, если Вы можете захватить его из неудачного вызова — это значительно ускоряет триаж.