Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
aos
GitHub Repository: aos/grafana-agent
Path: blob/main/component/otelcol/auth/bearer/bearer.go
5438 views
1
// Package bearer provides an otelcol.auth.bearer component.
2
package bearer
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/bearertokenauthextension"
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.bearer",
16
Args: Arguments{},
17
Exports: auth.Exports{},
18
19
Build: func(opts component.Options, args component.Arguments) (component.Component, error) {
20
fact := bearertokenauthextension.NewFactory()
21
return auth.New(opts, fact, args.(Arguments))
22
},
23
})
24
}
25
26
// Arguments configures the otelcol.auth.bearer component.
27
type Arguments struct {
28
Token rivertypes.Secret `river:"token,attr"`
29
}
30
31
var _ auth.Arguments = Arguments{}
32
33
// Convert implements auth.Arguments.
34
func (args Arguments) Convert() (otelconfig.Extension, error) {
35
return &bearertokenauthextension.Config{
36
ExtensionSettings: otelconfig.NewExtensionSettings(otelconfig.NewComponentID("bearer")),
37
BearerToken: string(args.Token),
38
}, nil
39
}
40
41
// Extensions implements auth.Arguments.
42
func (args Arguments) Extensions() map[otelconfig.ComponentID]otelcomponent.Extension {
43
return nil
44
}
45
46
// Exporters implements auth.Arguments.
47
func (args Arguments) Exporters() map[otelconfig.DataType]map[otelconfig.ComponentID]otelcomponent.Exporter {
48
return nil
49
}
50
51