Vue d'ensemble de l'API
L'API REST publique SecureCodingHub vous permet de provisionner des utilisateurs, créer des affectations, ingérer des découvertes de scanner et vous abonner à des événements depuis vos propres systèmes — sans gratter l'interface d'administration.
Quand utiliser l'API
Utilisez l'API publique lorsque vous voulez que SecureCodingHub se comporte comme une partie de votre infrastructure plutôt qu'un tableau de bord séparé. Intégrations typiques :
- Pipelines CI/CD — alimentez la sortie SARIF de CodeQL, Snyk, Semgrep ou tout outil SAST pour créer automatiquement des affectations de formation ciblées pour l'auteur du commit.
- Synchronisation RH / IdP — provisionnez les utilisateurs à l'embauche et désactivez-les au départ, aux côtés de SCIM.
- Ticketing et SOAR — ouvrez un ticket Jira chaque fois qu'un développeur échoue à une affectation obligatoire, ou appelez un incident PagerDuty lorsqu'un certificat est en retard.
- Rapports personnalisés — extrayez les données de progression et d'audit dans votre propre outil BI (Looker, Metabase, Tableau).
- Tableaux de bord en marque blanche — intégrez les statistiques de complétion dans votre portail interne.
URL de base et versioning
Chaque point de terminaison public est atteint via une seule URL de base avec la version épinglée dans le chemin :
https://api.limeplate.com/api/public/v1Le contrat v1 est stable. Les changements cassants seront livrés en tant que v2 sur un nouveau chemin ; v1 reste disponible pendant au moins 12 mois après qu'une nouvelle version majeure devient généralement disponible.
Deux surfaces, une plateforme
L'application web admin sous app.securecodinghub.com et l'API publique sous api.limeplate.com/api/public/v1 sont intentionnellement séparées. Elles utilisent des schémas d'authentification différents, des politiques de limite de débit différentes et des conventions d'identifiant différentes. Les points de terminaison internes (/api/sch/...) sont sujets à changement sans préavis ; seuls les points de terminaison documentés dans cette section sont garantis.
Un tour de 30 secondes
Le flux pour une nouvelle intégration ressemble presque toujours à ceci :
Créez une clé API dans la console d'administration sous Organisation → Clés API. Accordez uniquement les portées dont vous avez besoin (users:read, assignments:write, etc.).
Copiez le token scs_live_…. Le token est affiché une fois à la création — stockez-le immédiatement dans votre gestionnaire de secrets.
Faites votre premier appel en envoyant Authorization: Bearer scs_live_… sur n'importe quel point de terminaison.
Pour les événements qui proviennent de SecureCodingHub (une affectation a été terminée, une exécution SARIF a été ingérée), abonnez un point de terminaison webhook et vérifiez la signature HMAC à chaque livraison.
Votre première requête
Cet appel renvoie les métadonnées de l'organisation qui possède la clé API. C'est le contrôle de santé recommandé après l'émission d'un nouveau token :
curl https://api.limeplate.com/api/public/v1/org \
-H "Authorization: Bearer scs_live_yourkeyhere"Une réponse réussie ressemble à :
{
"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"
}Conventions
| Sujet | Convention |
|---|---|
| Transport | HTTPS uniquement. Les requêtes HTTP en clair sont refusées au bord. |
| Encodage | Corps de requête et de réponse JSON. Content-Type: application/json sur chaque POST, PATCH. |
| Casse | Tous les noms de champs utilisent camelCase à la fois dans les requêtes et les réponses (et les charges utiles webhook). |
| Horodatages | Chaînes UTC ISO 8601 (2026-05-29T13:45:12Z). |
| Identifiants | Tous les IDs de ressource sont des UUID v4 RFC 4122. |
| Corps vides | Les points de terminaison qui acquittent simplement une opération renvoient 200 OK avec { "message": "..." }. |
| Idempotence | Là où cela compte (par exemple ingestion SARIF), l'idempotence est clé sur les identifiants naturels dans la requête, non sur un en-tête séparé. |
Spécification OpenAPI
Un document OpenAPI 3.0 décrivant chaque point de terminaison public est servi depuis le même hôte :
https://api.limeplate.com/openapi/v1.jsonVous pouvez coller cette URL directement dans Postman, Insomnia, Stoplight ou tout outil de génération de code (openapi-generator, @hey-api/openapi-ts, NSwag) pour échafauder un client typé.
Support et statut
Les problèmes opérationnels, les changements cassants et les avis de dépréciation sont envoyés à l'adresse e-mail enregistrée auprès de votre organisation. Pour les questions d'intégration et les rapports de bugs, écrivez à support@securecodinghub.com avec l'en-tête X-Request-Id de la requête si vous pouvez le capturer depuis un appel échoué — cela accélère dramatiquement le triage.