46 lines
1.3 KiB
Go
46 lines
1.3 KiB
Go
package grpcutils
|
|
|
|
import (
|
|
"github.com/spf13/pflag"
|
|
|
|
"github.com/grafana/grafana/pkg/setting"
|
|
)
|
|
|
|
type GrpcServerConfig struct {
|
|
SigningKeysURL string
|
|
AllowedAudiences []string
|
|
LegacyFallback bool
|
|
AllowInsecure bool
|
|
}
|
|
|
|
func (c *GrpcServerConfig) AddFlags(fs *pflag.FlagSet) {
|
|
fs.StringVar(&c.SigningKeysURL, "grpc-server-authentication.signing-keys-url", "", "gRPC server authentication signing keys URL")
|
|
}
|
|
|
|
func ReadGrpcServerConfig(cfg *setting.Cfg) *GrpcServerConfig {
|
|
section := cfg.SectionWithEnvOverrides("grpc_server_authentication")
|
|
|
|
return &GrpcServerConfig{
|
|
SigningKeysURL: section.Key("signing_keys_url").MustString(""),
|
|
AllowedAudiences: section.Key("allowed_audiences").Strings(","),
|
|
LegacyFallback: section.Key("legacy_fallback").MustBool(true),
|
|
AllowInsecure: cfg.Env == setting.Dev,
|
|
}
|
|
}
|
|
|
|
type GrpcClientConfig struct {
|
|
Token string
|
|
TokenExchangeURL string
|
|
TokenNamespace string
|
|
}
|
|
|
|
func ReadGrpcClientConfig(cfg *setting.Cfg) *GrpcClientConfig {
|
|
section := cfg.SectionWithEnvOverrides("grpc_client_authentication")
|
|
|
|
return &GrpcClientConfig{
|
|
Token: section.Key("token").MustString(""),
|
|
TokenExchangeURL: section.Key("token_exchange_url").MustString(""),
|
|
TokenNamespace: section.Key("token_namespace").MustString("stacks-" + cfg.StackID),
|
|
}
|
|
}
|