Entwicklertools

Gehen Sie zur SDK-Integration

Verbinden Sie Ihre Go-Dienste, Kubernetes-Controller und Bereitstellungspipelines direkt mit den Sicherheitsstatus-APIs von BlackShield.

Keine externen Abhängigkeiten

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

Integrierter Wiederholungsversuch und Backoff

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

Streaming und getipptes Paging

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

Installation

Fügen Sie das Modul zu Ihrem Go-Projekt hinzu:

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

Schnellstart: Ergebnisse abfragen

Initialisieren Sie den Client mit Ihrem Mandanten-API-Schlüssel und rufen Sie aktive Sicherheitsergebnisse ab:

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)
    }
}

Bewertung der Bereitstellungsrichtlinie

Überprüfen Sie vor der Heraufstufung oder Veröffentlichung, ob ein Artefakt Ihren Sicherheitsrichtlinien entspricht:

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)
}

Verwandte Leitfäden

Gehen Sie zur SDK-Integration