Documentation
¶
Index ¶
- Constants
- Variables
- func GenerateRandomBase64String(n int) (string, error)
- func GenerateSecureRandomString(n int) (string, error)
- func GetTextLoggerEnabled() bool
- func HasConfigurationFile(path string) (bool, error)
- func SetValue(target any, path, value string) error
- func SetValuesFromEnv(varPrefix string, target any, env []string) error
- func WriteConfigurationFile(path string, config Configuration) error
- type Argon2Configuration
- type CollectorManifest
- type CollectorManifests
- type CollectorVersion
- type Configuration
- func (s Configuration) ClientLogDirectory() string
- func (s Configuration) CollectorsDirectory() string
- func (s Configuration) GetRootURLHost() string
- func (s Configuration) RetainedFilesDirectory() string
- func (s Configuration) SaveCollectorManifests() (CollectorManifests, error)
- func (s Configuration) TempDirectory() string
- type CryptoConfiguration
- type DatabaseConfiguration
- type DefaultAdminConfiguration
- type JWTConfiguration
- type SAMLConfiguration
- type TLSConfiguration
Constants ¶
View Source
const ( CurrentConfigurationVersion = 2 BHAPIEnvironmentVariablePrefix = "bhe" )
Variables ¶
View Source
var ErrInvalidConfigurationPath = errors.New("unable to find a configuration element by path")
Functions ¶
func GenerateRandomBase64String ¶
GenerateRandomBase64String returns a URL-safe, base64 encoded securely generated random string. It will return an error if the system's secure random number generator fails to function correctly, in which case the caller should not continue.
func GetTextLoggerEnabled ¶
func GetTextLoggerEnabled() bool
func HasConfigurationFile ¶
func WriteConfigurationFile ¶
func WriteConfigurationFile(path string, config Configuration) error
Types ¶
type Argon2Configuration ¶
type Argon2Configuration struct {
MemoryKibibytes uint32 `json:"memory_kibibytes"`
NumIterations uint32 `json:"num_iterations"`
NumThreads uint8 `json:"num_threads"`
}
func (Argon2Configuration) NewDigester ¶
func (s Argon2Configuration) NewDigester() crypto.SecretDigester
type CollectorManifest ¶
type CollectorManifest struct {
Latest string `json:"latest"`
Versions []CollectorVersion `json:"versions"`
}
type CollectorManifests ¶
type CollectorManifests map[string]CollectorManifest
type CollectorVersion ¶
type Configuration ¶
type Configuration struct {
Version int `json:"version"`
BindAddress string `json:"bind_addr"`
SlowQueryThreshold int64 `json:"slow_query_threshold"`
MaxGraphQueryCacheSize int `json:"max_graphdb_cache_size"`
MaxAPICacheSize int `json:"max_api_cache_size"`
MetricsPort string `json:"metrics_port"`
RootURL serde.URL `json:"root_url"`
WorkDir string `json:"work_dir"`
LogLevel string `json:"log_level"`
LogPath string `json:"log_path"`
TLS TLSConfiguration `json:"tls"`
GraphDriver string `json:"graph_driver"`
Database DatabaseConfiguration `json:"database"`
Neo4J DatabaseConfiguration `json:"neo4j"`
Crypto CryptoConfiguration `json:"crypto"`
SAML SAMLConfiguration `json:"saml"`
DefaultAdmin DefaultAdminConfiguration `json:"default_admin"`
CollectorsBucketURL serde.URL `json:"collectors_bucket_url"`
CollectorsBasePath string `json:"collectors_base_path"`
DatapipeInterval int `json:"datapipe_interval"`
EnableStartupWaitPeriod bool `json:"enable_startup_wait_period"`
EnableAPILogging bool `json:"enable_api_logging"`
EnableCypherMutations bool `json:"enable_cypher_mutations"`
DisableAnalysis bool `json:"disable_analysis"`
DisableCypherComplexityLimit bool `json:"disable_cypher_complexity_limit"`
DisableIngest bool `json:"disable_ingest"`
DisableMigrations bool `json:"disable_migrations"`
GraphQueryMemoryLimit uint16 `json:"graph_query_memory_limit"`
EnableTextLogger bool `json:"enable_text_logger"`
RecreateDefaultAdmin bool `json:"recreate_default_admin"`
EnableUserAnalytics bool `json:"enable_user_analytics"`
ForceDownloadEmbeddedCollectors bool `json:"force_download_embedded_collectors"`
}
func GetConfiguration ¶
func GetConfiguration(path string, defaultConfigFunc func() (Configuration, error)) (Configuration, error)
func NewDefaultConfiguration ¶
func NewDefaultConfiguration() (Configuration, error)
NewDefaultConfiguration returns a new Configuration struct containing all documented configuration defaults.
func ParseConfiguration ¶
func ParseConfiguration(content []byte) (Configuration, error)
func ReadConfigurationFile ¶
func ReadConfigurationFile(path string) (Configuration, error)
func (Configuration) ClientLogDirectory ¶
func (s Configuration) ClientLogDirectory() string
func (Configuration) CollectorsDirectory ¶
func (s Configuration) CollectorsDirectory() string
func (Configuration) GetRootURLHost ¶
func (s Configuration) GetRootURLHost() string
func (Configuration) RetainedFilesDirectory ¶
func (s Configuration) RetainedFilesDirectory() string
func (Configuration) SaveCollectorManifests ¶
func (s Configuration) SaveCollectorManifests() (CollectorManifests, error)
func (Configuration) TempDirectory ¶
func (s Configuration) TempDirectory() string
type CryptoConfiguration ¶
type CryptoConfiguration struct {
JWT JWTConfiguration `json:"jwt"`
Argon2 Argon2Configuration `json:"argon2"`
}
type DatabaseConfiguration ¶
type DatabaseConfiguration struct {
Connection string `json:"connection"`
Address string `json:"addr"`
Database string `json:"database"`
Username string `json:"username"`
Secret string `json:"secret"`
MaxConcurrentSessions int `json:"max_concurrent_sessions"`
}
func (DatabaseConfiguration) Neo4jConnectionString ¶
func (s DatabaseConfiguration) Neo4jConnectionString() string
func (DatabaseConfiguration) PostgreSQLConnectionString ¶
func (s DatabaseConfiguration) PostgreSQLConnectionString() string
type DefaultAdminConfiguration ¶
type DefaultAdminConfiguration struct {
PrincipalName string `json:"principal_name"`
Password string `json:"password"`
EmailAddress string `json:"email_address"`
FirstName string `json:"first_name"`
LastName string `json:"last_name"`
ExpireNow bool `json:"expire_now"`
}
func NewDefaultAdminConfiguration ¶
func NewDefaultAdminConfiguration() (DefaultAdminConfiguration, error)
type JWTConfiguration ¶
type JWTConfiguration struct {
SigningKey string `json:"signing_key"`
}
func (*JWTConfiguration) SetSigningKeyBytes ¶
func (s *JWTConfiguration) SetSigningKeyBytes(signingKeyBytes []byte)
func (JWTConfiguration) SigningKeyBytes ¶
func (s JWTConfiguration) SigningKeyBytes() ([]byte, error)
type SAMLConfiguration ¶
type TLSConfiguration ¶
type TLSConfiguration struct {
CertFile string `json:"cert_file"`
KeyFile string `json:"key_file"`
}
func (TLSConfiguration) Enabled ¶
func (s TLSConfiguration) Enabled() bool
Click to show internal directories.
Click to hide internal directories.