Path: blob/main/component/otelcol/auth/basic/basic.go
4096 views
// Package basic provides an otelcol.auth.basic component.1package basic23import (4"github.com/grafana/agent/component"5"github.com/grafana/agent/component/otelcol/auth"6"github.com/grafana/agent/pkg/river/rivertypes"7"github.com/open-telemetry/opentelemetry-collector-contrib/extension/basicauthextension"8otelcomponent "go.opentelemetry.io/collector/component"9otelconfig "go.opentelemetry.io/collector/config"10)1112func init() {13component.Register(component.Registration{14Name: "otelcol.auth.basic",15Args: Arguments{},16Exports: auth.Exports{},1718Build: func(opts component.Options, args component.Arguments) (component.Component, error) {19fact := basicauthextension.NewFactory()20return auth.New(opts, fact, args.(Arguments))21},22})23}2425// Arguments configures the otelcol.auth.basic component.26type Arguments struct {27// TODO(rfratto): should we support htpasswd?2829Username string `river:"username,attr"`30Password rivertypes.Secret `river:"password,attr"`31}3233var _ auth.Arguments = Arguments{}3435// Convert implements auth.Arguments.36func (args Arguments) Convert() (otelconfig.Extension, error) {37return &basicauthextension.Config{38ExtensionSettings: otelconfig.NewExtensionSettings(otelconfig.NewComponentID("basic")),39ClientAuth: &basicauthextension.ClientAuthSettings{40Username: args.Username,41Password: string(args.Password),42},43}, nil44}4546// Extensions implements auth.Arguments.47func (args Arguments) Extensions() map[otelconfig.ComponentID]otelcomponent.Extension {48return nil49}5051// Exporters implements auth.Arguments.52func (args Arguments) Exporters() map[otelconfig.DataType]map[otelconfig.ComponentID]otelcomponent.Exporter {53return nil54}555657