Strumenti per sviluppatori

Vai all'integrazione dell'SDK

Connetti i tuoi servizi Go, i controller Kubernetes e le pipeline di distribuzione direttamente alle API del livello di sicurezza di BlackShield.

Zero dipendenze esterne

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

Riprova e backoff integrati

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

Streaming e impaginazione digitata

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

Installazione

Aggiungi il modulo al tuo progetto Go:

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

Avvio rapido: risultati delle query

Inizializza il client con la chiave API del tenant e recupera i risultati di sicurezza attivi:

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

Valutazione della politica di distribuzione

Controlla se un elemento soddisfa le tue policy di sicurezza prima della promozione o del rilascio:

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

Guide correlate

Vai all'integrazione dell'SDK