config

package
v0.2.2 Latest Latest
Warning

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

Go to latest
Published: Oct 26, 2021 License: Apache-2.0 Imports: 2 Imported by: 0

Documentation

Index

Constants

View Source
const (
	MaxMessageSize = 65536 // Maximum message size allowed from/to the peer.
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Config

type Config struct {
	// Default HTTP(S) address:port to listen on for websocket. Either a
	// numeric or a canonical name, e.g. ":80" or ":https". Could include a host name, e.g.
	// "localhost:80".
	// Could be blank: if TLS is not configured, will use ":80", otherwise ":443".
	// Can be overridden from the command line, see option --listen.
	Listen string `json:"listen"`

	// Default HTTP(S) address:port to listen on for grpc. Either a
	// numeric or a canonical name, e.g. ":80" or ":https". Could include a host name, e.g.
	// "localhost:80".
	// Could be blank: if TLS is not configured, will use ":80", otherwise ":443".
	// Can be overridden from the command line, see option --listen.
	GrpcListen string `json:"grpc_listen"`

	// Default logging level is "InfoLevel" so to enable the debug log set the "LogLevel" to "DebugLevel".
	LoggingLevel string `json:"logging_level"`

	EncryptionConfig json.RawMessage `json:"encryption_config"`

	// Configs for subsystems
	Cluster json.RawMessage `json:"cluster_config"`

	// Config for database store
	DBPath      string          `json:"db_path"`
	StoreConfig json.RawMessage `json:"store_config"`

	// Config to expose runtime stats
	VarzPath string `json:"varz_path"`
}

Config represents main configuration.

func (*Config) Encryption

func (c *Config) Encryption(encrConfig json.RawMessage) EncryptionConfig

func (*Config) Store

func (c *Config) Store(storeConfig json.RawMessage) StoreConfig

type EncryptionConfig

type EncryptionConfig struct {

	// chacha20poly1305 encryption key for client Ids and topic keys. 32 random bytes base64-encoded.
	Key string `json:"key,omitempty"`

	// Key identifier. it is useful when you use multiple keys.
	Identifier string `json:"identifier"`

	// slealed flag tells if key in the configuration is sealed.
	Sealed bool `json:"slealed"`

	// timestamp is helpful to determine the latest key in case of keyroll over.
	Timestamp uint32 `json:"timestamp,omitempty"`
}

EncryptionConfig represents the configuration for the encryption.

type StoreConfig

type StoreConfig struct {
	// Reset resets message store on service restart
	Reset bool `json:"reset"`
}

StoreConfig represents the configuration for the store.

Jump to

Keyboard shortcuts

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