Documentation ¶
Overview ¶
Package component contains code that is shared by all components (discovery, router, broker, networkserver, handler)
Index ¶
- Variables
- type Component
- func (c *Component) Announce() error
- func (c *Component) BuildJWT() (string, error)
- func (c *Component) Discover(serviceName, id string) (*pb_discovery.Announcement, error)
- func (c *Component) ExchangeAppKeyForToken(appID, key string) (string, error)
- func (c *Component) GetContext(token string) context.Context
- func (c *Component) GetStatus() Status
- func (c *Component) InitAuth() error
- func (c *Component) ServerOptions() []grpc.ServerOption
- func (c *Component) SetStatus(status Status)
- func (c *Component) UpdateTokenKey() error
- func (c *Component) ValidateNetworkContext(ctx context.Context) (component *pb_discovery.Announcement, err error)
- func (c *Component) ValidateTTNAuthContext(ctx context.Context) (*claims.Claims, error)
- type Config
- type Interface
- type ManagementInterface
- type Status
Constants ¶
This section is empty.
Variables ¶
var AuthServerRegex = regexp.MustCompile(`^(http[s]?://)(?:([0-9a-z_-]+)(?::([0-9A-Za-z-!"#$%&'()*+,.:;<=>?@[\]^_{|}~]+))?@)?([0-9a-z.-]+)/?$`)
AuthServerRegex gives the format of auth server configuration. Format: [username[:password]@]domain - usernames can contain lowercase letters, numbers, underscores and dashes - passwords can contain uppercase and lowercase letters, numbers, and special characters - domains can be http/https and can contain lowercase letters, numbers, dashes and dots
var ErrNoAuthServerRegexMatch = errors.New("Account server did not match AuthServerRegex")
ErrNoAuthServerRegexMatch is returned when an auth server
Functions ¶
This section is empty.
Types ¶
type Component ¶
type Component struct { Config Config Identity *pb_discovery.Announcement Discovery pb_discovery.Client Monitors map[string]*pb_monitor.Client Ctx log.Interface AccessToken string TokenKeyProvider tokenkey.Provider // contains filtered or unexported fields }
Component contains the common attributes for all TTN components
func (*Component) Discover ¶
func (c *Component) Discover(serviceName, id string) (*pb_discovery.Announcement, error)
Discover is used to discover another component
func (*Component) ExchangeAppKeyForToken ¶
ExchangeAppKeyForToken enables authentication with the App Access Key
func (*Component) GetContext ¶
GetContext returns a context for outgoing RPC request. If token is "", this function will generate a short lived token from the component
func (*Component) ServerOptions ¶
func (c *Component) ServerOptions() []grpc.ServerOption
func (*Component) UpdateTokenKey ¶
UpdateTokenKey updates the OAuth Bearer token key
func (*Component) ValidateNetworkContext ¶
func (c *Component) ValidateNetworkContext(ctx context.Context) (component *pb_discovery.Announcement, err error)
ValidateNetworkContext validates the context of a network request (router-broker, broker-handler, etc)
type Config ¶
Config is the configuration for this component
func ConfigFromViper ¶
func ConfigFromViper() Config
ConfigFromViper imports configuration from Viper