Documentation
¶
Overview ¶
Package factory provides a fluent builder for creating TLS configurations and providers from configuration.
ProvidersBuilder uses a fluent API with deferred error accumulation: errors from any step are collected and returned at ProvidersBuilder.Build time.
providers, err := factory.New(cfg.TlsProvider).
UseLogger(logger).
UseVaultClient(vaultClient).
UseCacheDir("./certs").
Build()
if err != nil {
log.Fatal(err)
}
defer providers.Close(ctx, nil)
For client TLS configurations, use ProvidersBuilder.CreateClientConfig:
b := factory.New(nil).UseLogger(logger) tlsConfig, err := b.CreateClientConfig(cfg.TlsClient)
Index ¶
- type ProvidersBuilder
- func (b *ProvidersBuilder) Build() (*tlsproviders.Providers, error)
- func (b *ProvidersBuilder) CreateClientConfig(cfg *config.TlsClient) (*tls.Config, error)
- func (b *ProvidersBuilder) UseCacheDir(v string) *ProvidersBuilder
- func (b *ProvidersBuilder) UseDefaultLogger() *ProvidersBuilder
- func (b *ProvidersBuilder) UseLogger(v *slog.Logger) *ProvidersBuilder
- func (b *ProvidersBuilder) UseOcspStapler(v tlsutils.OCSPStapler) *ProvidersBuilder
- func (b *ProvidersBuilder) UseVaultClient(v *vaultApi.Client) *ProvidersBuilder
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ProvidersBuilder ¶
type ProvidersBuilder struct {
corefactory.Base
// contains filtered or unexported fields
}
ProvidersBuilder assembles a tlsproviders.Providers registry step by step using a fluent API. Create instances with New. Errors are accumulated and reported at ProvidersBuilder.Build time. The builder is not safe for concurrent use.
func New ¶
func New(cfg *config.TlsProvider) *ProvidersBuilder
New creates a ProvidersBuilder for the given TLS provider config. Config can be nil — Build returns an empty tlsproviders.Providers in that case.
func (*ProvidersBuilder) Build ¶
func (b *ProvidersBuilder) Build() (*tlsproviders.Providers, error)
Build assembles the TLS providers registry. Errors from fluent methods are accumulated and reported here via errors.Join.
func (*ProvidersBuilder) CreateClientConfig ¶
CreateClientConfig creates a TLS configuration for client connections from config. Returns nil, nil if the configuration is nil. This is a standalone utility that does not depend on the builder's TLS provider config.
func (*ProvidersBuilder) UseCacheDir ¶
func (b *ProvidersBuilder) UseCacheDir(v string) *ProvidersBuilder
UseCacheDir sets the cache directory for TLS certificate caching.
func (*ProvidersBuilder) UseDefaultLogger ¶
func (b *ProvidersBuilder) UseDefaultLogger() *ProvidersBuilder
UseDefaultLogger sets the logger to slog.Default.
func (*ProvidersBuilder) UseLogger ¶
func (b *ProvidersBuilder) UseLogger(v *slog.Logger) *ProvidersBuilder
UseLogger sets the logger for the builder and all created components.
func (*ProvidersBuilder) UseOcspStapler ¶
func (b *ProvidersBuilder) UseOcspStapler(v tlsutils.OCSPStapler) *ProvidersBuilder
UseOcspStapler sets the OCSP stapler for TLS providers.
func (*ProvidersBuilder) UseVaultClient ¶
func (b *ProvidersBuilder) UseVaultClient(v *vaultApi.Client) *ProvidersBuilder
UseVaultClient sets the Vault client for the Vault TLS provider.