Outils de développement

Aller à l'intégration du SDK

Connectez vos services Go, vos contrôleurs Kubernetes et vos pipelines de déploiement directement aux API de posture de sécurité de BlackShield.

Zéro dépendance externe

The core SDK relies only on the Go standard library. It adds no third-party packages or licenses to your binaries and container images.

Nouvelle tentative et interruption intégrées

Transient network hiccups, 5xx gateway errors, and 429 rate limits retry automatically with exponential backoff and jitter.

Pagination en streaming et saisie

Process thousands of findings or telemetry events without memory spikes using streaming NDJSON readers and typed cursor paginators.

Mise en place

Ajoutez le module à votre projet Go :

go get github.com/blackshield-security/blackshield-go

Démarrage rapide : résultats de requête

Initialisez le client avec la clé API de votre locataire et récupérez les résultats de sécurité actifs :

package main

import (
    "context"
    "fmt"
    "log"

    "github.com/blackshield-security/blackshield-go"
)

func main() {
    client, err := blackshield.NewClient(
        blackshield.WithAPIKey("bsk_live_your_api_key"),
    )
    if err != nil {
        log.Fatalf("client error: %v", err)
    }

    ctx := context.Background()
    page, err := client.Findings.List(ctx, blackshield.FindingsFilter{
        Severity: []string{"critical", "high"},
        Limit:    10,
    })
    if err != nil {
        log.Fatalf("query failed: %v", err)
    }

    for _, f := range page.Items {
        fmt.Printf("[%s] %s: %s\n", f.Severity, f.ID, f.Title)
    }
}

Évaluation de la politique de déploiement

Vérifiez si un artefact respecte vos politiques de sécurité avant sa promotion ou sa sortie :

decision, err := client.Policies.EvaluateDeploy(ctx, blackshield.DeployEvaluationRequest{
    ServiceID:    "payment-service",
    ArtifactURI:  "123456789.dkr.ecr.us-east-1.amazonaws.com/payments:v1.2.0",
    GitCommitSHA: "abcdef0123456789abcdef0123456789abcdef01",
    Environment:  "production",
})
if err != nil {
    log.Fatalf("policy evaluation failed: %v", err)
}

if !decision.Allowed {
    log.Fatalf("Release rejected: %s (Violations: %v)", decision.Reason, decision.Violations)
}

Guides associés

Aller à l'intégration du SDK