Files
bridge/internal/config/config.go
2023-07-17 22:05:23 +00:00

39 lines
1.1 KiB
Go

// Package config defines app configuration.
package config
import (
"go.infratographer.com/x/echox"
"go.infratographer.com/x/events"
"go.infratographer.com/x/loggingx"
"go.infratographer.com/x/oauth2x"
"go.infratographer.com/x/otelx"
"go.equinixmetal.net/infra9-metal-bridge/internal/metal"
"go.equinixmetal.net/infra9-metal-bridge/internal/permissions"
"go.equinixmetal.net/infra9-metal-bridge/internal/service"
)
// AppConfig is the main application configuration.
var AppConfig struct {
Logging loggingx.Config
OIDC OIDCClientConfig
EquinixMetal metal.Config
OTel otelx.Config
Server echox.Config
Service service.Config
Events EventsConfig
Roles service.ConfigRoles
Permissions permissions.Config
}
// EventsConfig defines the configuration setting up both subscriptions and publishing
type EventsConfig struct {
Publisher events.PublisherConfig
Subscriber events.SubscriberConfig
}
// OIDCClientConfig defines the configuration for OIDC Client Credentials.
type OIDCClientConfig struct {
Client oauth2x.Config
}