config

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Oct 21, 2024 License: Apache-2.0 Imports: 14 Imported by: 0

Documentation

Overview

Package config contains various utility functions and loads the configuration via envs

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func UpdateSettings

func UpdateSettings(app core.App) error

UpdateSettings sets various pocketbase and app related settings

func UseHTTPS

func UseHTTPS() bool

UseHTTPS returns true if the app url is a domain

Types

type Config

type Config struct {
	// General Backend Settings
	AppURL           string `env:"PB_APP_URL"                 envDefault:""`
	AppName          string `env:"PB_APP_NAME"                envDefault:"SSH Nexus"`
	LogsMaxDays      int    `env:"PB_LOG_MAX_DAYS"            envDefault:"30"`
	AdminEmail       string `env:"PB_ADMIN_EMAIL"             envDefault:"root@nexus.local"`
	AdminPassword    string `env:"PB_ADMIN_PASSWORD,notEmpty" envDefault:""`
	SenderName       string `env:"PB_SENDER_NAME"             envDefault:"SSH Nexus"`
	SenderAddress    string `env:"PB_SENDER_EMAIL"            envDefault:"no-reply@nexus.local"`
	SMTPEnabled      bool   `env:"PB_SMTP_ENABLED"            envDefault:"false"`
	SMTPHost         string `env:"PB_SMTP_HOST"               envDefault:""`
	SMTPPort         int    `env:"PB_SMTP_PORT"               envDefault:"587"`
	SMTPUsername     string `env:"PB_SMTP_USER"               envDefault:""`
	SMTPPassword     string `env:"PB_SMTP_PASSWORD"           envDefault:""`
	SMTPTLS          bool   `env:"PB_SMTP_TLS"                envDefault:"false"`
	S3Enabled        bool   `env:"PB_S3_ENABLED"              envDefault:"false"`
	S3Endpoint       string `env:"PB_S3_ENDPOINT"             envDefault:""`
	S3Region         string `env:"PB_S3_REGION"               envDefault:""`
	S3Bucket         string `env:"PB_S3_BUCKET"               envDefault:"ssh-nexus"`
	S3Secret         string `env:"PB_S3_SECRET"               envDefault:""`
	S3AccessKey      string `env:"PB_S3_ACCESS_KEY"           envDefault:""`
	S3ForcePathStyle bool   `env:"PB_S3_FORCE_PATH_STYLE"     envDefault:"false"`
	OIDCURL          string `env:"PB_OIDC_URL"                envDefault:""`
	OIDCName         string `env:"PB_OIDC_NAME"               envDefault:""`
	OIDCRealm        string `env:"PB_OIDC_REALM"              envDefault:"master"`
	OIDCClientID     string `env:"PB_OIDC_CLIENT_ID"          envDefault:"ssh-nexus"`
	OIDCClientSecret string `env:"PB_OIDC_CLIENT_SECRET"      envDefault:""`

	// SSH Specific Settings
	DefaultRetention string `env:"DEFAULT_RETENTION" envDefault:"2592000"`
	UserLease        string `env:"USER_LEASE"        envDefault:"86400"`
	HostLease        string `env:"HOST_LEASE"        envDefault:"2592000"`
	MaxLease         string `env:"MAX_LEASE"         envDefault:"7776000"`
	SSHConfig        string `env:"SSH_CONFIG"        envDefault:""`
	InstallAgent     string `env:"INSTALL_AGENT"     envDefault:"true"`
}

func GetConfig

func GetConfig() (*Config, error)

GetConfig returns the config used by the settings collection

type OIDCConfig

type OIDCConfig struct {
	Name             string `json:"name,omitempty"`
	URL              string `json:"url,omitempty"`
	Realm            string `json:"realm,omitempty"`
	AuthEndpoint     string `json:"authorization_endpoint,omitempty"`
	TokenEndpoint    string `json:"token_endpoint,omitempty"`
	UserInfoEndpoint string `json:"userinfo_endpoint,omitempty"`
}

func (*OIDCConfig) NewOIDC

func (o *OIDCConfig) NewOIDC() error

NewOIDC creates a new provider

Jump to

Keyboard shortcuts

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