Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
aos
GitHub Repository: aos/grafana-agent
Path: blob/main/component/otelcol/auth/basic/basic.go
4096 views
1
// Package basic provides an otelcol.auth.basic component.
2
package basic
3
4
import (
5
"github.com/grafana/agent/component"
6
"github.com/grafana/agent/component/otelcol/auth"
7
"github.com/grafana/agent/pkg/river/rivertypes"
8
"github.com/open-telemetry/opentelemetry-collector-contrib/extension/basicauthextension"
9
otelcomponent "go.opentelemetry.io/collector/component"
10
otelconfig "go.opentelemetry.io/collector/config"
11
)
12
13
func init() {
14
component.Register(component.Registration{
15
Name: "otelcol.auth.basic",
16
Args: Arguments{},
17
Exports: auth.Exports{},
18
19
Build: func(opts component.Options, args component.Arguments) (component.Component, error) {
20
fact := basicauthextension.NewFactory()
21
return auth.New(opts, fact, args.(Arguments))
22
},
23
})
24
}
25
26
// Arguments configures the otelcol.auth.basic component.
27
type Arguments struct {
28
// TODO(rfratto): should we support htpasswd?
29
30
Username string `river:"username,attr"`
31
Password rivertypes.Secret `river:"password,attr"`
32
}
33
34
var _ auth.Arguments = Arguments{}
35
36
// Convert implements auth.Arguments.
37
func (args Arguments) Convert() (otelconfig.Extension, error) {
38
return &basicauthextension.Config{
39
ExtensionSettings: otelconfig.NewExtensionSettings(otelconfig.NewComponentID("basic")),
40
ClientAuth: &basicauthextension.ClientAuthSettings{
41
Username: args.Username,
42
Password: string(args.Password),
43
},
44
}, nil
45
}
46
47
// Extensions implements auth.Arguments.
48
func (args Arguments) Extensions() map[otelconfig.ComponentID]otelcomponent.Extension {
49
return nil
50
}
51
52
// Exporters implements auth.Arguments.
53
func (args Arguments) Exporters() map[otelconfig.DataType]map[otelconfig.ComponentID]otelcomponent.Exporter {
54
return nil
55
}
56
57