secretprovider

package
v1.0.0-beta.23 Latest Latest
Warning

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

Go to latest
Published: Oct 30, 2026 License: Apache-2.0 Imports: 42 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrNoLLMConfigResolver = errors.New("llmconfig:// secrets are only served by the dagger CLI")

ErrNoLLMConfigResolver reports a llmconfig:// lookup in a process that serves no LLM configuration (anything but the dagger CLI).

Functions

func ContextWithRejectedSecretValue

func ContextWithRejectedSecretValue(ctx context.Context, fingerprint string) context.Context

ContextWithRejectedSecretValue marks a secret lookup with the SHA-256 hex fingerprint of a value its consumer has rejected. An empty fingerprint clears a prior rejection, including one inherited from incoming RPC metadata.

func RegisterLLMConfigResolver

func RegisterLLMConfigResolver(r LLMConfigResolver)

RegisterLLMConfigResolver installs the resolver behind the llmconfig:// scheme. Passing nil clears it. Safe to call concurrently.

func RejectedSecretValue

func RejectedSecretValue(ctx context.Context) string

RejectedSecretValue returns the rejected value's fingerprint at either end of a secret RPC. Outgoing metadata takes precedence to allow clearing it.

func Schemes added in v0.20.4

func Schemes() []string

Types

type LLMConfigResolver

type LLMConfigResolver func(ctx context.Context, path string) ([]byte, error)

LLMConfigResolver serves the llmconfig:// scheme: credentials the dagger CLI holds for the engine's LLM router (an API key stored in the user's config file, a subscription OAuth token it keeps refreshed). The path is "<provider>/<field>", e.g. "anthropic/auth_token"; see hack/designs/llm-config-transport.md for the fields.

Only the CLI can serve it — it owns the config file and the OAuth refresh flows — so it registers the resolver at startup via RegisterLLMConfigResolver. The scheme itself is always known, so that `secret(uri:"llmconfig://...")` validates in the engine; resolving one where no resolver is registered is an error.

A resolver may be handed a RejectedSecretValue fingerprint in the context: the consumer has found the value it last served unusable, and the resolver should rotate it if it can rather than serve it again.

type SecretProvider

type SecretProvider struct{}

func NewSecretProvider

func NewSecretProvider() SecretProvider

func (SecretProvider) GetSecret

func (SecretProvider) Register

func (sp SecretProvider) Register(server *grpc.Server)

type SecretProviderProxy added in v0.19.7

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

func NewSecretProviderProxy added in v0.19.7

func NewSecretProviderProxy(client secrets.SecretsClient) SecretProviderProxy

func (SecretProviderProxy) GetSecret added in v0.19.7

func (SecretProviderProxy) Register added in v0.19.7

func (sp SecretProviderProxy) Register(server *grpc.Server)

type SecretResolver

type SecretResolver func(context.Context, string) ([]byte, error)

func ResolverForID

func ResolverForID(id string) (SecretResolver, string, error)

Jump to

Keyboard shortcuts

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