Documentation
¶
Index ¶
- Constants
- type BootstrapConfiguration
- type CORSConfigurationInfo
- type CertKeyPair
- type ClientInfo
- type ClientsCollection
- type ConfigProviderInfo
- type Credentials
- type Database
- type ExternalMQTTInfo
- type InsecureSecrets
- type InsecureSecretsInfo
- type MessageBusInfo
- type RegistryInfo
- type SecretStoreInfo
- type ServiceInfo
- type TelemetryInfo
Constants ¶
const ( ServiceTypeApp = "app-service" ServiceTypeDevice = "device-service" ServiceTypeOther = "other" )
const (
CommonConfigDone = "IsCommonConfigReady"
)
const (
DefaultHttpProtocol = "http"
)
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type BootstrapConfiguration ¶
type BootstrapConfiguration struct {
Clients *ClientsCollection
Service *ServiceInfo
Config *ConfigProviderInfo
Registry *RegistryInfo
MessageBus *MessageBusInfo
Database *Database
ExternalMQTT *ExternalMQTTInfo
}
BootstrapConfiguration defines the configuration elements required by the bootstrap.
type CORSConfigurationInfo ¶
type CORSConfigurationInfo struct {
// EnableCORS indicates whether enables CORS in this service
EnableCORS bool
// CORSAllowCredentials defines the value of Access-Control-Allow-Credentials in the response header.
// The Access-Control-Allow-Credentials response header tells browsers whether to expose the response
// to the frontend JavaScript code when the request's credentials mode (Request.credentials) is included.
CORSAllowCredentials bool
// CORSAllowedOrigin defines the value of Access-Control-Allow-Origin in the response header.
// The Access-Control-Allow-Origin response header indicates whether the response can be shared
// with requesting code from the given origin.
CORSAllowedOrigin string
// CORSAllowedMethods defines the value of Access-Control-Allow-Methods in the response header.
// The Access-Control-Allow-Methods response header specifies one or more methods allowed when
// accessing a resource in response to a preflight request.
CORSAllowedMethods string
// CORSAllowedHeaders defines the value of Access-Control-Allow-Headers in the response header.
// The Access-Control-Allow-Headers response header is used in response to a preflight request which
// includes the Access-Control-Request-Headers to indicate which HTTP headers can be used during the actual request.
CORSAllowedHeaders string
// CORSExposeHeaders defines the value of Access-Control-Expose-Headers in the response header
// The Access-Control-Expose-Headers response header allows a server to indicate which response headers
// should be made available to scripts running in the browser, in response to a cross-origin request.
CORSExposeHeaders string
// CORSMaxAge defines the value of Access-Control-Max-Age in the response header.
// The Access-Control-Max-Age response header indicates how long the results of a preflight request can be cached.
CORSMaxAge int
}
CORSConfigurationInfo defines the cross-origin resource sharing related settings
type CertKeyPair ¶
CertKeyPair encapsulates public certificate/private key pair for an SSL certificate
type ClientInfo ¶
type ClientInfo struct {
// Host is the hostname or IP address of a service.
Host string
// Port defines the port on which to access a given service
Port int
// Protocol indicates the protocol to use when accessing a given service
Protocol string
// UseMessageBus indicates weather to use Messaging version of client
UseMessageBus bool
}
ClientInfo provides the host and port of another service in the eco-system.
func (ClientInfo) Url ¶
func (c ClientInfo) Url() string
type ClientsCollection ¶
type ClientsCollection map[string]*ClientInfo
ClientsCollection is a collection of Client information for communicating to dependent clients.
type ConfigProviderInfo ¶
ConfigProviderInfo defines the type and location (via host/port) of the desired configuration provider (e.g. Consul, Eureka)
type Credentials ¶
Credentials encapsulates username-password attributes.
type ExternalMQTTInfo ¶
type ExternalMQTTInfo struct {
// Url contains the fully qualified URL to connect to the MQTT broker
Url string
// SubscribeTopics is a comma separated list of topics in which to subscribe
SubscribeTopics string
// PublishTopic is the topic to publish pipeline output (if any)
PublishTopic string
// Topics allows ExternalMQTTInfo to be more flexible with respect to topics.
// TODO: move PublishTopic and SubscribeTopics to Topics in EdgeX 3.0
Topics map[string]string
// ClientId to connect to the broker with.
ClientId string
// ConnectTimeout is a time duration indicating how long to wait timing out on the broker connection
ConnectTimeout string
// AutoReconnect indicated whether to retry connection if disconnected
AutoReconnect bool
// KeepAlive is seconds between client ping when no active data flowing to avoid client being disconnected
KeepAlive int64
// QoS for MQTT Connection
QoS byte
// Retain setting for MQTT Connection
Retain bool
// SkipCertVerify indicates if the certificate verification should be skipped
SkipCertVerify bool
// SecretName is the name of the secret in secret provider to retrieve your secrets
SecretName string
// AuthMode indicates what to use when connecting to the broker. Options are "none", "cacert" , "usernamepassword", "clientcert".
// If a CA Cert exists in the SecretPath then it will be used for all modes except "none".
AuthMode string
// RetryDuration indicates how long (in seconds) to wait timing out on the MQTT client creation
RetryDuration int
// RetryInterval indicates the time (in seconds) that will be waited between attempts to create MQTT client
RetryInterval int
// Enabled determines whether the service needs to connect to the external MQTT broker
Enabled bool
}
type InsecureSecrets ¶
type InsecureSecrets map[string]InsecureSecretsInfo
InsecureSecrets is used to hold the secrets stored in the configuration
type InsecureSecretsInfo ¶
InsecureSecretsInfo encapsulates info used to retrieve insecure secrets
type MessageBusInfo ¶
type MessageBusInfo struct {
// Disabled indicates if the use of the EdgeX MessageBus is disabled.
Disabled bool
// Indicates the message bus implementation to use, i.e. zero, mqtt, redisstreams...
Type string
// Protocol indicates the protocol to use when accessing the message bus.
Protocol string
// Host is the hostname or IP address of the broker, if applicable.
Host string
// Port defines the port on which to access the message bus.
Port int
// AuthMode specifies the type of secure connection to the message bus which are 'none', 'usernamepassword'
// 'clientcert' or 'cacert'. Not all option supported by each implementation.
// RedisStreams only supports 'none' & 'usernamepassword' while MQTT and NATS support all options.
AuthMode string
// SecretName is the name of the secret in the SecretStore that contains the Auth Credentials. The credential are
// dynamically loaded using this name and store the Option property below where the implementation expected to
// find them.
SecretName string
// BaseTopicPrefix is the base topic prefix that all topics start with.
// If not set the DefaultBaseTopic constant is used.
BaseTopicPrefix string
// Provides additional configuration properties which do not fit within the existing field.
// Typically, the key is the name of the configuration property and the value is a string representation of the
// desired value for the configuration property.
Optional map[string]string
}
MessageBusInfo provides parameters related to connecting to the EdgeX MessageBus
func (MessageBusInfo) GetBaseTopicPrefix ¶
func (m MessageBusInfo) GetBaseTopicPrefix() string
func (MessageBusInfo) URL ¶
func (p MessageBusInfo) URL() string
URL constructs a URL from the protocol, host and port and returns that as a string.
type RegistryInfo ¶
type RegistryInfo struct {
// Host is the host name where the Registry client is running
Host string
// Port is the port number that the Registry client is listening
Port int
// Type is the type of Registry client to use, i.e. 'consul'
Type string
}
RegistryInfo defines the type and location (via host/port) of the desired service registry (e.g. Consul, Eureka)
type SecretStoreInfo ¶
type SecretStoreInfo struct {
Type string
Host string
Port int
StoreName string
Protocol string
Namespace string
RootCaCertPath string
ServerName string
Authentication types.AuthenticationInfo
// TokenFile provides a location to a token file.
TokenFile string
// SecretsFile is optional Path to JSON file containing secrets to seed into service's SecretStore
SecretsFile string
// DisableScrubSecretsFile specifies to not scrub secrets file after importing. Service will fail start-up if
// not disabled and file can not be written.
DisableScrubSecretsFile bool
// RuntimeTokenProvider is optional if not using delayed start from spiffe-token provider
RuntimeTokenProvider types.RuntimeTokenProviderInfo
}
SecretStoreInfo encapsulates configuration properties used to create a SecretClient.
func NewSecretStoreInfo ¶
func NewSecretStoreInfo(serviceKey string) SecretStoreInfo
type ServiceInfo ¶
type ServiceInfo struct {
// HealthCheckInterval is the interval for Registry heal check callback
HealthCheckInterval string
// Host is the hostname or IP address of the service.
Host string
// Port is the HTTP port of the service.
Port int
// ServerBindAddr specifies an IP address or hostname
// for ListenAndServe to bind to, such as 0.0.0.0
ServerBindAddr string
// StartupMsg specifies a string to log once service
// initialization and startup is completed.
StartupMsg string
// MaxResultCount specifies the maximum size list supported
// in response to REST calls to other services.
MaxResultCount int
// MaxRequestSize defines the maximum size of http request body in kilobytes
MaxRequestSize int64
// RequestTimeout specifies a timeout (in milliseconds) for
// processing REST request calls from other services.
RequestTimeout string
// CORSConfiguration defines the cross-origin resource sharing related settings
CORSConfiguration CORSConfigurationInfo
}
ServiceInfo contains configuration settings necessary for the basic operation of any EdgeX service.
func (ServiceInfo) HealthCheck ¶
func (s ServiceInfo) HealthCheck() string
HealthCheck is a URL specifying a health check REST endpoint used by the Registry to determine if the service is available.
func (ServiceInfo) Url ¶
func (s ServiceInfo) Url() string
Url provides a way to obtain the full url of the host service for use in initialization or, in some cases, responses to a caller.
type TelemetryInfo ¶
type TelemetryInfo struct {
// Interval is the time duration in which to collect and report the service's metrics
Interval string
// Metrics is the list of service's metrics that can be collected. Each of the service's metrics must be in the list
// and set to true if enable or false if disabled.
Metrics map[string]bool
// Tags is a list of service level tags that are attached to every metric reported for the service
// Example: Gateway = "Gateway123"
Tags map[string]string
}
TelemetryInfo contains the configuration for a service's metrics collection
func (*TelemetryInfo) GetEnabledMetricName ¶
func (t *TelemetryInfo) GetEnabledMetricName(metricName string) (string, bool)
GetEnabledMetricName returns the matching configured Metric name and if it is enabled.