config

package
v0.1.0-M4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 21, 2023 License: Apache-2.0, EPL-2.0 Imports: 29 Imported by: 9

Documentation

Index

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 NewCAPool

func NewCAPool(caFile string) (*x509.CertPool, error)

NewCAPool opens a certificates pool.

func NewFSTlsConfig

func NewFSTlsConfig(caCertPool *x509.CertPool, certFile, keyFile string) (*tls.Config, error)

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

func ReadConfig(path string, config interface{}) error

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.

func SetupTracing

func SetupTracing(router *message.Router, logger logger.Logger)

SetupTracing initializes the messages tracing.

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"`

	UseCertificate          bool `json:"-"`
	AutoProvisioningEnabled bool `json:"-"`

	TLSSettings
}

HubConnectionSettings contains remote connection related settings.

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

func (settings *Settings) Provisioning() string

Provisioning implementation.

func (*Settings) ValidateDynamic

func (settings *Settings) ValidateDynamic() error

ValidateDynamic validates the settings that are changed runtime.

func (*Settings) ValidateStatic

func (settings *Settings) ValidateStatic() error

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.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL