Documentation
¶
Index ¶
- func ApplySettings(cleanSession bool, settings SettingsAccessor, args map[string]interface{}, ...) error
- func CreateCloudConnection(settings *LocalConnectionSettings, cleanSession bool, ...) (*conn.MQTTConnection, error)
- func CreateLocalConnection(settings *LocalConnectionSettings, logger watermill.LoggerAdapter) (*conn.MQTTConnection, error)
- func HonoConnect(sigs chan os.Signal, statusPub message.Publisher, ...) error
- func LocalConnect(ctx context.Context, localClient *conn.MQTTConnection, ...) error
- func NewCAPool(caFile string) (*x509.CertPool, error)
- func NewFSTlsConfig(caCertPool *x509.CertPool, certFile, keyFile string) (*tls.Config, error)
- func NewHonoPub(logger watermill.LoggerAdapter, honoClient *conn.MQTTConnection) message.Publisher
- func NewHonoSub(logger watermill.LoggerAdapter, honoClient *conn.MQTTConnection) message.Subscriber
- func NewHubUsername(settings *HubConnectionSettings) string
- func NewLocalTLSConfig(settings *LocalConnectionSettings, logger watermill.LoggerAdapter) (*tls.Config, error)
- func NewOnlineHonoPub(logger watermill.LoggerAdapter, honoClient *conn.MQTTConnection) message.Publisher
- func ParseProvisioningJSON(data []byte, settings *HubConnectionSettings) error
- func ReadConfig(path string, config interface{}) error
- func ReadProvisioning(path string, settings *HubConnectionSettings) error
- func SetupLocalTLS(mosquittoConfig *conn.Configuration, settings *LocalConnectionSettings, ...) error
- func SetupTracing(router *message.Router, logger logger.Logger)
- type Cleaner
- func CreateHubConnection(settings *HubConnectionSettings, nopStore bool, logger logger.Logger) (*conn.MQTTConnection, Cleaner, error)
- func NewHubTLSConfig(settings *TLSSettings, logger watermill.LoggerAdapter) (*tls.Config, Cleaner, error)
- func NewTPMTlsConfig(settings *TLSSettings, caCertPool *x509.CertPool, ...) (*tls.Config, Cleaner, error)
- type HubConnectionSettings
- type LocalConnectionSettings
- type Settings
- func (settings *Settings) DeepCopy() SettingsAccessor
- func (settings *Settings) HubConnection() *HubConnectionSettings
- func (settings *Settings) LocalConnection() *LocalConnectionSettings
- func (settings *Settings) Provisioning() string
- func (settings *Settings) ValidateDynamic() error
- func (settings *Settings) ValidateStatic() error
- type SettingsAccessor
- type TLSSettings
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ApplySettings ¶
func ApplySettings( cleanSession bool, settings SettingsAccessor, args map[string]interface{}, statusPub message.Publisher, logger logger.Logger, ) error
ApplySettings applies all launch settings.
func CreateCloudConnection ¶
func CreateCloudConnection( settings *LocalConnectionSettings, cleanSession bool, logger watermill.LoggerAdapter, ) (*conn.MQTTConnection, error)
CreateCloudConnection creates a remote mosquitto connection.
func CreateLocalConnection ¶
func CreateLocalConnection( settings *LocalConnectionSettings, logger watermill.LoggerAdapter, ) (*conn.MQTTConnection, error)
CreateLocalConnection creates a local mosquitto connection.
func HonoConnect ¶
func HonoConnect(sigs chan os.Signal, statusPub message.Publisher, honoClient *conn.MQTTConnection, logger logger.Logger, ) error
HonoConnect connects to the Hub.
func LocalConnect ¶
func LocalConnect(ctx context.Context, localClient *conn.MQTTConnection, logger watermill.LoggerAdapter, ) error
LocalConnect connects to the local broker.
func NewFSTlsConfig ¶
NewFSTlsConfig initializes a file Hub TLS.
func NewHonoPub ¶
func NewHonoPub(logger watermill.LoggerAdapter, honoClient *conn.MQTTConnection) message.Publisher
NewHonoPub returns publisher for the Hono message connection.
func NewHonoSub ¶
func NewHonoSub(logger watermill.LoggerAdapter, honoClient *conn.MQTTConnection) message.Subscriber
NewHonoSub returns subscriber for the Hono message connection.
func NewHubUsername ¶
func NewHubUsername(settings *HubConnectionSettings) string
NewHubUsername returns username from hub connection settings
func NewLocalTLSConfig ¶
func NewLocalTLSConfig(settings *LocalConnectionSettings, logger watermill.LoggerAdapter) (*tls.Config, error)
NewLocalTLSConfig initializes the Local broker TLS.
func NewOnlineHonoPub ¶
func NewOnlineHonoPub(logger watermill.LoggerAdapter, honoClient *conn.MQTTConnection) message.Publisher
NewOnlineHonoPub returns publisher for the Hono message connection in online mode.
func ParseProvisioningJSON ¶
func ParseProvisioningJSON(data []byte, settings *HubConnectionSettings) error
ParseProvisioningJSON parse and get settings values using the provided json content. The expected format should match the format used in the provisioning.json file. All values that are not present or have unexpected format are not filled in. Returns error if the provided data is not a valid json format.
func ReadConfig ¶
ReadConfig reads the configuration file provided settings.
func ReadProvisioning ¶
func ReadProvisioning(path string, settings *HubConnectionSettings) error
ReadProvisioning reads the provisioning file provided settings.
func SetupLocalTLS ¶
func SetupLocalTLS( mosquittoConfig *conn.Configuration, settings *LocalConnectionSettings, logger watermill.LoggerAdapter, ) error
SetupLocalTLS creates a local ssl configuration.
Types ¶
type Cleaner ¶
type Cleaner func()
Cleaner type is used to define the clean-up function.
func CreateHubConnection ¶
func CreateHubConnection( settings *HubConnectionSettings, nopStore bool, logger logger.Logger, ) (*conn.MQTTConnection, Cleaner, error)
CreateHubConnection creates a hub connection.
func NewHubTLSConfig ¶
func NewHubTLSConfig(settings *TLSSettings, logger watermill.LoggerAdapter) (*tls.Config, Cleaner, error)
NewHubTLSConfig initializes the Hub TLS.
func NewTPMTlsConfig ¶
func NewTPMTlsConfig( settings *TLSSettings, caCertPool *x509.CertPool, logger watermill.LoggerAdapter, ) (*tls.Config, Cleaner, error)
NewTPMTlsConfig initializes s TPM Hub TLS.
type HubConnectionSettings ¶
type HubConnectionSettings struct { DeviceID string `json:"deviceId"` DeviceIDPattern string `json:"deviceIdPattern"` TenantID string `json:"tenantId"` PolicyID string `json:"policyId"` Address string `json:"address"` Password string `json:"password"` Username string `json:"username"` ClientID string `json:"clientId"` AuthID string `json:"authId"` Generic bool `json:"generic"` UseCertificate bool `json:"-"` AutoProvisioningEnabled bool `json:"-"` TLSSettings }
HubConnectionSettings contains remote connection related settings.
func (*HubConnectionSettings) AWS ¶
func (c *HubConnectionSettings) AWS() bool
AWS returns true if the remote broker is AWS IoT Core
func (*HubConnectionSettings) Validate ¶
func (c *HubConnectionSettings) Validate() error
Validate validates the hub connection settings.
type LocalConnectionSettings ¶
type LocalConnectionSettings struct { LocalAddress string `json:"localAddress"` LocalUsername string `json:"localUsername"` LocalPassword string `json:"localPassword"` LocalCACert string `json:"localCACert"` LocalCert string `json:"localCert"` LocalKey string `json:"localKey"` }
LocalConnectionSettings contains the local connection settings.
func (*LocalConnectionSettings) Validate ¶
func (c *LocalConnectionSettings) Validate() error
Validate validates the local connection settings.
type Settings ¶
type Settings struct { logger.LogSettings HubConnectionSettings LocalConnectionSettings ProvisioningFile string `json:"provisioningFile"` }
Settings defines all configurable data that is used to setup the Suite Connector.
func DefaultSettings ¶
func DefaultSettings() *Settings
DefaultSettings returns the default settings.
func (*Settings) DeepCopy ¶
func (settings *Settings) DeepCopy() SettingsAccessor
DeepCopy implementation.
func (*Settings) HubConnection ¶
func (settings *Settings) HubConnection() *HubConnectionSettings
HubConnection implementation.
func (*Settings) LocalConnection ¶
func (settings *Settings) LocalConnection() *LocalConnectionSettings
LocalConnection implementation.
func (*Settings) Provisioning ¶
Provisioning implementation.
func (*Settings) ValidateDynamic ¶
ValidateDynamic validates the settings that are changed runtime.
func (*Settings) ValidateStatic ¶
ValidateStatic validates the settings that could not be changed runtime.
type SettingsAccessor ¶
type SettingsAccessor interface { // Provisioning returns the ProvisioningFile embedded field. Provisioning() string // LocalConnection returns the LocalConnectionSettings embedded field. LocalConnection() *LocalConnectionSettings // HubConnection returns HubConnectionSettings embedded field. HubConnection() *HubConnectionSettings // ValidateDynamic validates settings instance ValidateDynamic() error // Creates deep copy of this instance. DeepCopy() SettingsAccessor }
SettingsAccessor is used accessing embedded struct members.
type TLSSettings ¶
type TLSSettings struct { CACert string `json:"caCert"` Cert string `json:"cert"` Key string `json:"key"` Alpn []string `json:"alpn"` TPMKey string `json:"tpmKey"` TPMKeyPub string `json:"tpmKeyPub"` TPMHandle uint64 `json:"tpmHandle"` TPMDevice string `json:"tpmDevice"` }
TLSSettings represents the TLS configuration data.