Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type BootstrapHandler ¶
type BootstrapHandler func( ctx context.Context, wg *sync.WaitGroup, startupTimer startup.Timer, dic *di.Container) (success bool)
BootstrapHandler defines the contract each bootstrap handler must fulfill. Implementation returns true if the handler completed successfully, false if it did not.
type CertificateProvider ¶
type CertificateProvider interface { // GetCertificateKeyPair retrieves certificate pair. GetCertificateKeyPair(path string) (config.CertKeyPair, error) }
CertificateProvider interface provides an abstraction for obtaining certificate pair.
type Configuration ¶
type Configuration interface { // These two interfaces have been separated out for use in the custom configuration capability for // App and Device services UpdatableConfig WritableConfig // EmptyWritablePtr returns a pointer to a service-specific empty WritableInfo struct. It is used by the bootstrap to // provide the appropriate structure to registry.Client's WatchForChanges(). EmptyWritablePtr() interface{} // GetBootstrap returns the configuration elements required by the bootstrap. GetBootstrap() config.BootstrapConfiguration // GetLogLevel returns the current ConfigurationStruct's log level. GetLogLevel() string // GetRegistryInfo gets the config.RegistryInfo field from the ConfigurationStruct. GetRegistryInfo() config.RegistryInfo // GetInsecureSecrets gets the config.InsecureSecrets field from the ConfigurationStruct. GetInsecureSecrets() config.InsecureSecrets // GetTelemetryInfo gets the config.Telemetry section from the ConfigurationStruct GetTelemetryInfo() *config.TelemetryInfo // GetWritablePtr gets the config.WritablePtr section from the ConfigurationStruct GetWritablePtr() any }
Configuration interface provides an abstraction around a configuration struct.
type CredentialsProvider ¶
type CredentialsProvider interface { // GetDatabaseCredentials retrieves database credentials. GetDatabaseCredentials(database config.Database) (config.Credentials, error) }
CredentialsProvider interface provides an abstraction for obtaining credentials.
type MetricsManager ¶
type MetricsManager interface { // ResetInterval resets the interval between reporting the current metrics ResetInterval(interval time.Duration) // Register registers a go-metrics metric item such as a Counter Register(name string, item interface{}, tags map[string]string) error // IsRegistered checks whether a metric has been registered IsRegistered(name string) bool // Unregister unregisters a go-metrics metric item such as a Counter Unregister(name string) // Run starts the collection of metrics Run(ctx context.Context, wg *sync.WaitGroup) // GetCounter retrieves the specified registered Counter // Returns nil if named item not registered or not a Counter GetCounter(name string) gometrics.Counter // GetGauge retrieves the specified registered Gauge // Returns nil if named item not registered or not a Gauge GetGauge(name string) gometrics.Gauge // GetGaugeFloat64 retrieves the specified registered GaugeFloat64 // Returns nil if named item not registered or not a GaugeFloat64 GetGaugeFloat64(name string) gometrics.GaugeFloat64 // GetTimer retrieves the specified registered Timer // Returns nil if named item not registered or not a Timer GetTimer(name string) gometrics.Timer }
MetricsManager manages a services metrics
type MetricsReporter ¶
type MetricsReporter interface {
Report(registry gometrics.Registry, metricTags map[string]map[string]string) error
}
MetricsReporter reports the metrics
type SecretProvider ¶
type SecretProvider interface { // StoreSecret stores new secrets into the service's SecretStore at the specified secretName. StoreSecret(secretName string, secrets map[string]string) error // GetSecret retrieves secrets from the service's SecretStore at the specified secretName. GetSecret(secretName string, keys ...string) (map[string]string, error) // SecretsLastUpdated returns the last time secrets were updated SecretsLastUpdated() time.Time // ListSecretNames returns a list of secretNames for the current service from an insecure/secure secret store. ListSecretNames() ([]string, error) // HasSecret returns true if the service's SecretStore contains a secret at the specified secretName. HasSecret(secretName string) (bool, error) // RegisterSecretUpdatedCallback registers a callback for a secret. If you specify 'SecretNameWildcard' // as the secretName, then the callback will be called for any updated secret. Callbacks set for a specific // secretName are given a higher precedence over wildcard ones, and will be called instead of the wildcard one // if both are present. RegisterSecretUpdatedCallback(secretName string, callback func(secretName string)) error // DeregisterSecretUpdatedCallback removes a secret's registered callback secretName. DeregisterSecretUpdatedCallback(secretName string) }
SecretProvider defines the contract for secret provider implementations that allow secrets to be retrieved/stored from/to a services Secret Store and other secret related APIs. This interface is limited to the APIs that individual service code need.
type SecretProviderExt ¶
type SecretProviderExt interface { SecretProvider // SecretsUpdated sets the secrets last updated time to current time. SecretsUpdated() // GetAccessToken return an access token for the specified token type and service key. // Service key is use as the access token role which must have be previously setup. GetAccessToken(tokenType string, serviceKey string) (string, error) // SecretUpdatedAtSecretName performs updates and callbacks for an updated secret or secretName. SecretUpdatedAtSecretName(secretName string) // GetMetricsToRegister returns all metric objects that needs to be registered. GetMetricsToRegister() map[string]interface{} // GetSelfJWT returns an encoded JWT for the current identity-based secret store token GetSelfJWT() (string, error) // IsJWTValid evaluates a given JWT and returns a true/false if the JWT is valid (i.e. belongs to us and current) or not IsJWTValid(jwt string) (bool, error) // HttpTransport returns the http.RoundTripper to be used by http-based clients HttpTransport() http.RoundTripper // SetHttpTransport sets the http.RoundTripper to be used by http-based clients SetHttpTransport(rt http.RoundTripper) // FallbackDialer returns the dialer to use to establish connections when there is no zero trust service found/authorized FallbackDialer() *net.Dialer // SetFallbackDialer sets the dialer to use to establish connections when there is no zero trust service found/authorized SetFallbackDialer(dialer *net.Dialer) // IsZeroTrustEnabled returns whether zero trust principles are enabled IsZeroTrustEnabled() bool // EnableZeroTrust marks the provider as being zero trust enabled EnableZeroTrust() }
SecretProviderExt defines the extended contract for secret provider implementations that provide additional APIs needed only from the bootstrap code.
type UpdatableConfig ¶
type UpdatableConfig interface { // UpdateFromRaw converts configuration received from the Configuration Provider to a service-specific // configuration struct which is then used to overwrite the service's existing configuration struct. UpdateFromRaw(rawConfig interface{}) bool }
UpdatableConfig interface allows service to have their custom configuration populated from configuration stored in the Configuration Provider (aka Consul). A service using custom configuration must implement this interface on the custom configuration, even if not using Configuration Provider. If not using the Configuration Provider it can have dummy implementations of this interface.
type WritableConfig ¶
type WritableConfig interface { // UpdateWritableFromRaw converts updated configuration received from the Configuration Provider to a // service-specific struct that is being watched for changes by the Configuration Provider. // The changes are used to overwrite the service's existing configuration's watched struct. UpdateWritableFromRaw(rawWritableConfig interface{}) bool }
WritableConfig allows service to listen for changes from the Configuration Provider and have the configuration updated when the changes occur