Documentation ¶
Index ¶
- Constants
- type BootstrapConfiguration
- type CORSConfigurationInfo
- type CertKeyPair
- type ClientInfo
- 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 map[string]ClientInfo Service ServiceInfo Config ConfigProviderInfo Registry RegistryInfo MessageBus MessageBusInfo 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 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 // SecretPath is the name of the path in secret provider to retrieve your secrets SecretPath 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 Path 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.