verifier

package
v1.7.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 19, 2026 License: MIT Imports: 10 Imported by: 0

Documentation

Overview

Package verifier provides the secret verification infrastructure. Verifiers check whether detected secrets are active or inactive by making controlled, read-only API calls to the relevant services.

Index

Constants

View Source
const DefaultConcurrency = 4

DefaultConcurrency is the default number of concurrent verification workers.

View Source
const DefaultRateLimit = 10.0

DefaultRateLimit is the default maximum verification requests per second.

View Source
const DefaultTimeout = 10 * time.Second

DefaultTimeout is the default per-request verification timeout.

Variables

This section is empty.

Functions

func Register

func Register(v Verifier)

Register adds a verifier to the global registry. Each verifier package calls this function in its init() function. Panics if a verifier with the same Type() is already registered.

func Reset

func Reset()

Reset clears all registered verifiers. WARNING: This is for testing only and is NOT safe for concurrent use. It must be called from a single goroutine (typically TestMain or a test setup).

Types

type Config

type Config struct {
	// Enabled controls whether verification is performed at all.
	Enabled bool

	// Timeout is the maximum duration for a single verification request.
	Timeout time.Duration

	// Concurrency is the number of concurrent verification workers.
	Concurrency int

	// RateLimit is the maximum verification requests per second.
	//
	// The rate applies both as a per-detector budget (each distinct detector ID
	// gets its own limiter of this rate) and as a global ceiling shared across
	// all providers, so one high-volume detector type cannot starve the
	// verification of unrelated findings in the same run.
	RateLimit float64
}

Config holds the verification engine configuration.

func DefaultConfig

func DefaultConfig() Config

DefaultConfig returns a Config with sensible default values.

type Engine

type Engine struct {
	// contains filtered or unexported fields
}

Engine orchestrates concurrent secret verification with rate limiting. It maps findings to the appropriate verifier by detector ID and applies per-request timeouts and global rate limiting.

func NewEngine

func NewEngine(cfg Config, vs []Verifier) *Engine

NewEngine creates a verification engine from the given config and verifier list. If cfg.Enabled is false, the engine will pass through findings unmodified.

func (*Engine) VerifyAll

func (e *Engine) VerifyAll(ctx context.Context, pairs []VerifyPair) []finding.Finding

VerifyAll verifies all findings concurrently and returns updated findings. Findings without a matching verifier are returned with StatusUnverified. If the engine is disabled, all findings are returned as-is.

Concurrency safety: each worker writes to a distinct index in the results slice. In Go, distinct-index writes to a pre-allocated slice are safe without additional synchronization because they target non-overlapping memory locations.

type Verifier

type Verifier interface {
	// Type returns the detector ID this verifier handles.
	// It must match the corresponding Detector.ID() value.
	Type() string

	// Verify checks if the detected secret is valid/active.
	// It may make network calls, so the context must be respected for cancellation.
	Verify(ctx context.Context, raw detector.RawFinding) finding.VerificationResult
}

Verifier validates whether a detected secret is active or inactive. Each implementation targets a specific detector type (e.g., AWS, GitHub). Implementations MUST NOT log or persist the raw secret content.

func All

func All() []Verifier

All returns all registered verifiers sorted by Type().

func Get

func Get(detectorID string) (Verifier, bool)

Get returns the verifier registered for the given detector ID.

It is the public single-lookup counterpart to All (which the engine uses to snapshot every verifier). Get is retained for callers that need to resolve a single verifier by detector ID directly against the global registry (for example an ad-hoc single-secret verification path) without constructing an Engine.

type VerifyPair

type VerifyPair struct {
	Finding finding.Finding
	Raw     detector.RawFinding
}

VerifyPair associates a Finding with its corresponding RawFinding so the verification engine can pass raw secret data to verifiers while returning enriched Finding objects.

Directories

Path Synopsis
Package airtable provides a verifier for Airtable personal access tokens.
Package airtable provides a verifier for Airtable personal access tokens.
Package anthropic provides a verifier for Anthropic API keys.
Package anthropic provides a verifier for Anthropic API keys.
Package auth0 provides a verifier for Auth0 Management API tokens.
Package auth0 provides a verifier for Auth0 Management API tokens.
Package aws provides a verifier for AWS Access Key credentials.
Package aws provides a verifier for AWS Access Key credentials.
Package azure provides verifiers for Azure secrets.
Package azure provides verifiers for Azure secrets.
Package bitbucket provides a verifier for Bitbucket app passwords.
Package bitbucket provides a verifier for Bitbucket app passwords.
Package circleci provides a verifier for CircleCI API tokens.
Package circleci provides a verifier for CircleCI API tokens.
Package cloudflare provides a verifier for Cloudflare API tokens.
Package cloudflare provides a verifier for Cloudflare API tokens.
Package coinbase provides a verifier for legacy Coinbase API keys.
Package coinbase provides a verifier for legacy Coinbase API keys.
Package databricks provides a verifier for Databricks personal access tokens.
Package databricks provides a verifier for Databricks personal access tokens.
Package datadog provides a verifier for Datadog API keys.
Package datadog provides a verifier for Datadog API keys.
Package deepseek provides a verifier for DeepSeek API keys.
Package deepseek provides a verifier for DeepSeek API keys.
Package digitalocean provides a verifier for DigitalOcean personal access tokens.
Package digitalocean provides a verifier for DigitalOcean personal access tokens.
Package discord provides a verifier for Discord Bot tokens.
Package discord provides a verifier for Discord Bot tokens.
Package dockerhub provides a verifier for Docker Hub Personal Access Tokens.
Package dockerhub provides a verifier for Docker Hub Personal Access Tokens.
Package doppler provides a verifier for Doppler tokens.
Package doppler provides a verifier for Doppler tokens.
Package figma provides a verifier for Figma personal access tokens.
Package figma provides a verifier for Figma personal access tokens.
Package gcp provides a verifier for GCP service account keys.
Package gcp provides a verifier for GCP service account keys.
Package github also provides a verifier for GitHub OAuth tokens.
Package github also provides a verifier for GitHub OAuth tokens.
Package gitlab provides a verifier for GitLab personal access tokens.
Package gitlab provides a verifier for GitLab personal access tokens.
Package grafana provides a verifier for Grafana API keys.
Package grafana provides a verifier for Grafana API keys.
Package heroku provides a verifier for Heroku API keys.
Package heroku provides a verifier for Heroku API keys.
Package huggingface provides a verifier for HuggingFace tokens.
Package huggingface provides a verifier for HuggingFace tokens.
Package infura provides a verifier for Infura API keys.
Package infura provides a verifier for Infura API keys.
internal
httpx
Package httpx provides a shared, security-hardened HTTP client and helpers for use by secret verifiers.
Package httpx provides a shared, security-hardened HTTP client and helpers for use by secret verifiers.
vtest
Package vtest provides reusable, table-driven test helpers shared by the secret verifier packages.
Package vtest provides reusable, table-driven test helpers shared by the secret verifier packages.
Package launchdarkly provides a verifier for LaunchDarkly SDK keys.
Package launchdarkly provides a verifier for LaunchDarkly SDK keys.
Package linear provides a verifier for Linear API keys.
Package linear provides a verifier for Linear API keys.
Package mailgun provides a verifier for Mailgun API keys.
Package mailgun provides a verifier for Mailgun API keys.
Package newrelic provides a verifier for New Relic API keys.
Package newrelic provides a verifier for New Relic API keys.
Package notion provides a verifier for Notion integration tokens.
Package notion provides a verifier for Notion integration tokens.
Package npm provides a verifier for npm authentication tokens.
Package npm provides a verifier for npm authentication tokens.
Package okta provides a verifier for Okta API tokens.
Package okta provides a verifier for Okta API tokens.
Package openai provides a verifier for OpenAI API keys.
Package openai provides a verifier for OpenAI API keys.
Package pagerduty provides a verifier for PagerDuty API keys.
Package pagerduty provides a verifier for PagerDuty API keys.
Package postmark provides a verifier for Postmark Server Tokens.
Package postmark provides a verifier for Postmark Server Tokens.
Package pypi provides a verifier for PyPI API tokens.
Package pypi provides a verifier for PyPI API tokens.
Package rabbitmq provides a verifier for RabbitMQ connection strings.
Package rabbitmq provides a verifier for RabbitMQ connection strings.
Package rubygems provides a verifier for RubyGems API keys.
Package rubygems provides a verifier for RubyGems API keys.
Package sendgrid provides a verifier for SendGrid API keys.
Package sendgrid provides a verifier for SendGrid API keys.
Package sentry provides a verifier for Sentry authentication tokens.
Package sentry provides a verifier for Sentry authentication tokens.
Package shopify provides a verifier for Shopify access tokens.
Package shopify provides a verifier for Shopify access tokens.
Package slack provides a verifier for Slack Bot/User tokens.
Package slack provides a verifier for Slack Bot/User tokens.
Package snowflake provides a verifier for Snowflake credentials.
Package snowflake provides a verifier for Snowflake credentials.
Package snyk provides a verifier for Snyk API keys.
Package snyk provides a verifier for Snyk API keys.
Package sonarcloud provides a verifier for SonarCloud tokens.
Package sonarcloud provides a verifier for SonarCloud tokens.
Package stripe provides verifiers for Stripe API keys (live and test).
Package stripe provides verifiers for Stripe API keys (live and test).
Package supabase provides a verifier for Supabase service keys.
Package supabase provides a verifier for Supabase service keys.
Package teams provides a verifier for Microsoft Teams webhook URLs.
Package teams provides a verifier for Microsoft Teams webhook URLs.
Package telegram provides a verifier for Telegram Bot tokens.
Package telegram provides a verifier for Telegram Bot tokens.
Package terraform provides a verifier for Terraform Cloud API tokens.
Package terraform provides a verifier for Terraform Cloud API tokens.
Package twilio provides a verifier for Twilio API keys.
Package twilio provides a verifier for Twilio API keys.
Package vercel provides a verifier for Vercel authentication tokens.
Package vercel provides a verifier for Vercel authentication tokens.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL