settings

package
v0.5.0 Latest Latest
Warning

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

Go to latest
Published: Apr 6, 2026 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Index

Constants

View Source
const (
	Title                               = "title"
	ShowRecentPads                      = "showRecentPads"
	Favicon                             = "favicon"
	Skinname                            = "skinName"
	SkinVariants                        = "skinVariants"
	IP                                  = "ip"
	Port                                = "port"
	ShowSettingsInAdminPage             = "showSettingsInAdminPage"
	EnableMetrics                       = "enableMetrics"
	CleanupExpr                         = "cleanup"
	CleanupEnabled                      = "cleanup.enabled"
	CleanupKeepRevisions                = "cleanup.keepRevisions"
	AuthenticationMethod                = "authenticationMethod"
	EnableDarkMode                      = "enableDarkMode"
	AvailableExports                    = "availableExports"
	IndentationOnNewLine                = "indentationOnNewLine"
	UpdateServer                        = "updateServer"
	DBType                              = "dbType"
	DBSettingsHost                      = "dbSettings.host"
	DBSettingsPort                      = "dbSettings.port"
	DBSettingsDatabase                  = "dbSettings.database"
	DBSettingsUser                      = "dbSettings.user"
	SSLKey                              = "ssl.key"
	SSLCert                             = "ssl.cert"
	SSLCa                               = "ssl.ca"
	DBSettingsPassword                  = "dbSettings.password"
	DBSettingsCharset                   = "dbSettings.charset"
	DBSettingsFilename                  = "dbSettings.filename"
	DefaultPadText                      = "defaultPadText"
	PadOptionsNoColors                  = "padOptions.noColors"
	PadOptionsShowControls              = "padOptions.showControls"
	PadOptionsShowChat                  = "padOptions.showChat"
	PadOptionsShowLineNumbers           = "padOptions.showLineNumbers"
	PadOptionsUseMonospaceFont          = "padOptions.useMonospaceFont"
	PadOptionsUserName                  = "padOptions.userName"
	PadOptionsUserColor                 = "padOptions.userColor"
	PadOptionsRtl                       = "padOptions.rtl"
	PadOptionsAlwaysShowChat            = "padOptions.alwaysShowChat"
	PadOptionsChatAndUsers              = "padOptions.chatAndUsers"
	PadOptionsLang                      = "padOptions.lang"
	PadShortcutEnabledAltF9             = "padShortcutEnabled.altF9"
	PadShortcutEnabledAltC              = "padShortcutEnabled.altC"
	PadShortcutEnabledCmdShift2         = "padShortcutEnabled.cmdShift2"
	PadShortcutEnabledDelete            = "padShortcutEnabled.delete"
	PadShortcutEnabledReturn            = "padShortcutEnabled.return"
	PadShortcutEnabledEsc               = "padShortcutEnabled.esc"
	PadShortcutEnabledCmdS              = "padShortcutEnabled.cmdS"
	PadShortcutEnabledTab               = "padShortcutEnabled.tab"
	PadShortcutEnabledCmdZ              = "padShortcutEnabled.cmdZ"
	PadShortcutEnabledCmdY              = "padShortcutEnabled.cmdY"
	PadShortcutEnabledCmdI              = "padShortcutEnabled.cmdI"
	PadShortcutEnabledCmdB              = "padShortcutEnabled.cmdB"
	PadShortcutEnabledCmdU              = "padShortcutEnabled.cmdU"
	PadShortcutEnabledCmd5              = "padShortcutEnabled.cmd5"
	PadShortcutEnabledCmdShiftL         = "padShortcutEnabled.cmdShiftL"
	PadShortcutEnabledCmdShiftN         = "padShortcutEnabled.cmdShiftN"
	PadShortcutEnabledCmdShift1         = "padShortcutEnabled.cmdShift1"
	PadShortcutEnabledCmdShiftC         = "padShortcutEnabled.cmdShiftC"
	PadShortcutEnabledCmdH              = "padShortcutEnabled.cmdH"
	PadShortcutEnabledCtrlHome          = "padShortcutEnabled.ctrlHome"
	PadShortcutEnabledPageUp            = "padShortcutEnabled.pageUp"
	PadShortcutEnabledPageDown          = "padShortcutEnabled.pageDown"
	SuppressErrorsInPadText             = "suppressErrorsInPadText"
	RequireSession                      = "requireSession"
	EditOnly                            = "editOnly"
	Minify                              = "minify"
	MaxAge                              = "maxAge"
	Abiword                             = "abiword"
	Soffice                             = "soffice"
	AllowUnknownFileEnds                = "allowUnknownFileEnds"
	RequireAuthentication               = "requireAuthentication"
	RequireAuthorization                = "requireAuthorization"
	TrustProxy                          = "trustProxy"
	CookieExpr                          = "cookie"
	CookieKeyRotationInterval           = "cookie.keyRotationInterval"
	CookieSameSite                      = "cookie.sameSite"
	CookieSessionLifetime               = "cookie.sessionLifetime"
	CookieSessionRefreshInterval        = "cookie.sessionRefreshInterval"
	DisableIPlogging                    = "disableIPlogging"
	AutomaticReconnectionTimeout        = "automaticReconnectionTimeout"
	ScrollWhenFocusPercentage           = "scrollWhenFocusLineIsOutOfViewport.percentage"
	ScrollWhenFocusEditionAboveViewport = "scrollWhenFocusLineIsOutOfViewport.percentage.editionAboveViewport"
	ScrollWhenFocusEditionBelowViewport = "scrollWhenFocusLineIsOutOfViewport.percentage.editionBelowViewport"
	ScrollWhenFocusDuration             = "scrollWhenFocusLineIsOutOfViewport.duration"
	ScrollWhenFocusCaretScroll          = "scrollWhenFocusLineIsOutOfViewport.scrollWhenCaretIsInTheLastLineOfViewport"
	ScrollWhenFocusPercentageArrowUp    = "scrollWhenFocusLineIsOutOfViewport.percentageToScrollWhenUserPressesArrowUp"
	Users                               = "users"
	SocketIoMaxHttpBufferSize           = "socketIo.maxHttpBufferSize"
	LoadTest                            = "loadTest"
	DumpOnUncleanExit                   = "dumpOnUncleanExit"
	ImportExportRateLimitingWindowMs    = "importExportRateLimiting.windowMs"
	ImportExportRateLimitingMax         = "importExportRateLimiting.max"
	ImportMaxFileSize                   = "importMaxFileSize"
	CommitRateLimitingDuration          = "commitRateLimiting.duration"
	CommitRateLimitingPoints            = "commitRateLimiting.points"
	ExposeVersion                       = "exposeVersion"
	Loglevel                            = "loglevel"
	CustomLocaleStrings                 = "customLocaleStrings"
	EnableAdminUITests                  = "enableAdminUITests"
	LowerCasePadIds                     = "lowerCasePadIds"
	DevMode                             = "devMode"
	SsoIssuer                           = "sso.issuer"
	SsoClients                          = "sso.clients"

	// plugins
	EpAlignEnabled      = "plugins.ep_align.enabled"
	EpSpellcheckEnabled = "plugins.ep_spellcheck.enabled"
	EpMarkdownEnabled   = "plugins.ep_markdown.enabled"
	EpRSSFeedEnabled    = "plugins.ep_rss.enabled"
)

Variables

View Source
var Registry = []ConfigKey{}/* 102 elements not displayed */

Functions

func ApplyRegistryDefaults added in v0.0.4

func ApplyRegistryDefaults()

func BuildInfo added in v0.0.5

func BuildInfo() (version, releaseID string)

func EnvVar added in v0.0.4

func EnvVar(key string) string

func GetGitCommit added in v0.0.2

func GetGitCommit(setting *Settings) string

func GitVersion added in v0.0.2

func GitVersion() string

func HandleConfigCommand added in v0.0.4

func HandleConfigCommand(logger *zap.SugaredLogger)

func InitSettings added in v0.0.3

func InitSettings(logger *zap.SugaredLogger)

Types

type Cleanup added in v0.0.2

type Cleanup struct {
	Enabled       bool `json:"enabled" mapstructure:"enabled"`
	KeepRevisions int  `json:"keepRevisions" mapstructure:"keepRevisions"`
}

type CommitRateLimiting added in v0.0.2

type CommitRateLimiting struct {
	Duration int  `json:"duration" mapstructure:"duration"`
	Points   int  `json:"points" mapstructure:"points"`
	LoadTest bool `json:"loadTest" mapstructure:"loadTest"`
}

type ConfigKey added in v0.0.4

type ConfigKey struct {
	Key         string
	Default     any
	Description string
}
type Cookie struct {
	KeyRotationInterval    int64  `json:"keyRotationInterval" mapstructure:"keyRotationInterval"`
	SameSite               string `json:"sameSite" mapstructure:"sameSite"`
	SessionLifetime        int64  `json:"sessionLifetime" mapstructure:"sessionLifetime"`
	SessionRefreshInterval int64  `json:"sessionRefreshInterval" mapstructure:"sessionRefreshInterval"`
}

type DBSettings

type DBSettings struct {
	Filename string `mapstructure:"filename"`
	Host     string `mapstructure:"host"`
	Port     string `mapstructure:"port"`
	Database string `mapstructure:"database"`
	User     string `mapstructure:"user"`
	Password string `mapstructure:"password"`
	Charset  string `mapstructure:"charset"`
}

type IDBType added in v0.0.2

type IDBType string
const (
	SQLITE   IDBType = "sqlite"
	MEMORY   IDBType = "memory"
	POSTGRES IDBType = "postgres"
	MYSQL    IDBType = "mysql"
)

func ParseDBType added in v0.0.2

func ParseDBType(s string) (IDBType, error)

func (IDBType) String added in v0.0.2

func (dbType IDBType) String() string

type ImportExportRateLimiting added in v0.0.2

type ImportExportRateLimiting struct {
	WindowMS int `json:"windowMS" mapstructure:"windowMs"`
	Max      int `json:"max" mapstructure:"max"`
}

type OidcConfig added in v0.0.2

type OidcConfig struct {
	Authority   string   `json:"authority"`
	ClientId    string   `json:"clientId"`
	JwksUri     string   `json:"jwksUri"`
	RedirectUri string   `json:"redirectUri"`
	Scope       []string `json:"scope"`
}

type Options added in v0.0.2

type Options struct {
	Whitespace     bool
	TrailingCommas bool
}

type PadOptions

type PadOptions struct {
	NoColors         bool    `mapstructure:"noColors"`
	ShowControls     bool    `mapstructure:"showControls"`
	ShowChat         bool    `mapstructure:"showChat"`
	ShowLineNumbers  bool    `mapstructure:"showLineNumbers"`
	UseMonospaceFont bool    `mapstructure:"useMonospaceFont"`
	UserName         *bool   `mapstructure:"userName"`
	UserColor        *bool   `mapstructure:"userColor"`
	RTL              bool    `mapstructure:"rtl"`
	AlwaysShowChat   bool    `mapstructure:"alwaysShowChat"`
	ChatAndUsers     bool    `mapstructure:"chatAndUsers"`
	Lang             *string `mapstructure:"lang"`
}

type PadShortcutEnabled added in v0.0.2

type PadShortcutEnabled struct {
	AltF9     bool `json:"altF9" mapstructure:"altF9"`
	AltC      bool `json:"altC" mapstructure:"altC"`
	Delete    bool `json:"delete" mapstructure:"delete"`
	CmdShift2 bool `json:"cmdShift2" mapstructure:"cmdShift2"`
	Return    bool `json:"return" mapstructure:"return"`
	Esc       bool `json:"esc" mapstructure:"esc"`
	CmdS      bool `json:"cmdS" mapstructure:"cmdS"`
	Tab       bool `json:"tab" mapstructure:"tab"`
	CmdZ      bool `json:"cmdZ" mapstructure:"cmdZ"`
	CmdY      bool `json:"cmdY" mapstructure:"cmdY"`
	CmdB      bool `json:"cmdB" mapstructure:"cmdB"`
	CmdI      bool `json:"cmdI" mapstructure:"cmdI"`
	CmdU      bool `json:"cmdU" mapstructure:"cmdU"`
	Cmd5      bool `json:"cmd5" mapstructure:"cmd5"`
	CmdShiftL bool `json:"cmdShiftL" mapstructure:"cmdShiftL"`
	CmdShiftN bool `json:"cmdShiftN" mapstructure:"cmdShiftN"`
	CmdShift1 bool `json:"cmdShift1" mapstructure:"cmdShift1"`
	CmdShiftC bool `json:"cmdShiftC" mapstructure:"cmdShiftC"`
	CmdH      bool `json:"cmdH" mapstructure:"cmdH"`
	CtrlHome  bool `json:"ctrlHome" mapstructure:"ctrlHome"`
	PageUp    bool `json:"pageUp" mapstructure:"pageUp"`
	PageDown  bool `json:"pageDown" mapstructure:"pageDown"`
}

type PluginPublicSettings added in v0.0.5

type PluginPublicSettings struct {
	Enabled bool   `json:"enabled"`
	Name    string `json:"name"`
}

type PluginSettings added in v0.0.4

type PluginSettings struct {
	Enabled bool `json:"enabled" mapstructure:"enabled"`
}

PluginSettings definiert die Einstellungen für einzelne Plugins

type PublicSettings added in v0.0.2

type PublicSettings struct {
	GitVersion          string  `json:"gitVersion"`
	Toolbar             Toolbar `json:"toolbar"`
	ExposeVersion       bool    `json:"exposeVersion"`
	RandomVersionString string  `json:"randomVersionString"`
	Title               string  `json:"title"`
	SkinName            string  `json:"skinName"`
	SkinVariants        string  `json:"skinVariants"`
}

type SSLSettings added in v0.0.2

type SSLSettings struct {
	Key  string   `json:"key" mapstructure:"key"`
	Cert string   `json:"cert" mapstructure:"cert"`
	Ca   []string `json:"ca" mapstructure:"ca"`
}

type SSO added in v0.0.2

type SSO struct {
	Issuer  string      `json:"issuer" mapstructure:"issuer"`
	Clients []SSOClient `json:"clients" mapstructure:"clients"`
}

func (*SSO) GetAdminClient added in v0.0.2

func (s *SSO) GetAdminClient() *SSOClient

type SSOClient added in v0.0.2

type SSOClient struct {
	ClientId      string   `json:"client_id" mapstructure:"client_id"`
	ClientSecret  *string  `json:"client_secret" mapstructure:"client_secret"`
	GrantTypes    []string `json:"grant_types" mapstructure:"grant_types"`
	ResponseTypes []string `json:"response_types" mapstructure:"response_types"`
	RedirectUris  []string `json:"redirect_uris" mapstructure:"redirect_uris"`
	DisplayName   string   `json:"display_name" mapstructure:"display_name"`
	Type          string   `json:"type" mapstructure:"type"`
}

type Settings

type Settings struct {
	Title          string  `json:"title" mapstructure:"title"`
	ShowRecentPads bool    `json:"showRecentPads" mapstructure:"showRecentPads"`
	Favicon        *string `json:"favicon" mapstructure:"favicon"`

	TTL            TTL    `json:"ttl" mapstructure:"ttl"`
	UpdateServer   string `json:"updateServer" mapstructure:"updateServer"`
	EnableDarkMode bool   `json:"enableDarkMode" mapstructure:"enableDarkMode"`

	SkinName     string `json:"skinName" mapstructure:"skinName"`
	SkinVariants string `json:"skinVariants" mapstructure:"skinVariants"`
	IP           string `json:"ip" mapstructure:"ip"`
	Port         string `json:"port" mapstructure:"port"`

	SuppressErrorsInPadText bool `json:"suppressErrorsInPadText" mapstructure:"suppressErrorsInPadText"`

	SSL        SSLSettings `json:"ssl" mapstructure:"ssl"`
	DBType     IDBType     `json:"dbType" mapstructure:"dbType"`
	DBSettings *DBSettings `json:"dbSettings" mapstructure:"dbSettings"`

	DefaultPadText string `json:"defaultPadText" mapstructure:"defaultPadText"`

	PadOptions         PadOptions         `json:"padOptions" mapstructure:"padOptions"`
	PadShortcutEnabled PadShortcutEnabled `json:"padShortcutEnabled" mapstructure:"padShortcutEnabled"`

	EnableMetrics bool `json:"enableMetrics" mapstructure:"enableMetrics"`

	RequireSession bool `json:"requireSession" mapstructure:"requireSession"`
	EditOnly       bool `json:"editOnly" mapstructure:"editOnly"`
	MaxAge         int  `json:"maxAge" mapstructure:"maxAge"`
	Minify         bool `json:"minify" mapstructure:"minify"`

	AllowUnknownFileEnds bool `json:"allowUnknownFileEnds" mapstructure:"allowUnknownFileEnds"`

	LogLevel                     string `json:"loglevel" mapstructure:"loglevel"`
	DisableIPLogging             bool   `json:"disableIPLogging" mapstructure:"disableIPLogging"`
	AutomaticReconnectionTimeout int    `json:"automaticReconnectionTimeout" mapstructure:"automaticReconnectionTimeout"`

	LoadTest        bool `json:"loadTest" mapstructure:"loadTest"`
	DumpOnCleanExit bool `json:"dumpOnUncleanExit" mapstructure:"dumpOnUncleanExit"`

	TrustProxy bool `json:"trustProxy" mapstructure:"trustProxy"`

	Cookie Cookie `json:"cookie" mapstructure:"cookie"`

	RequireAuthentication bool `json:"requireAuthentication" mapstructure:"requireAuthentication"`
	RequireAuthorization  bool `json:"requireAuthorization" mapstructure:"requireAuthorization"`

	Users map[string]User `json:"users" mapstructure:"users"`

	ShowSettingsInAdminPage bool `json:"showSettingsInAdminPage" mapstructure:"showSettingsInAdminPage"`

	ScrollWhenFocusLineIsOutOfViewport clientVars2.ScrollWhenFocusLineIsOutOfViewport `json:"scrollWhenFocusLineIsOutOfViewport" mapstructure:"scrollWhenFocusLineIsOutOfViewport"`

	SocketIo SocketIoSettings `json:"socketIo" mapstructure:"socketIo"`

	AuthenticationMethod string `json:"authenticationMethod" mapstructure:"authenticationMethod"`

	SSO *SSO `json:"sso" mapstructure:"sso"`

	Toolbar Toolbar `json:"toolbar" mapstructure:"toolbar"`

	Cleanup Cleanup `json:"cleanup" mapstructure:"cleanup"`

	ExposeVersion bool `json:"exposeVersion" mapstructure:"exposeVersion"`

	CustomLocaleStrings map[string]map[string]string `json:"customLocaleStrings" mapstructure:"customLocaleStrings"`

	ImportExportRateLimiting ImportExportRateLimiting `json:"importExportRateLimiting" mapstructure:"importExportRateLimiting"`
	CommitRateLimiting       CommitRateLimiting       `json:"commitRateLimiting" mapstructure:"commitRateLimiting"`

	ImportMaxFileSize  int64 `json:"importMaxFileSize" mapstructure:"importMaxFileSize"`
	EnableAdminUITests bool  `json:"enableAdminUITests" mapstructure:"enableAdminUITests"`
	LowerCasePadIDs    bool  `json:"lowerCasePadIds" mapstructure:"lowerCasePadIds"`

	DevMode bool `json:"devMode" mapstructure:"devMode"`

	AvailableExports     []string `json:"availableExports" mapstructure:"availableExports"`
	IndentationOnNewLine bool     `json:"indentationOnNewLine" mapstructure:"indentationOnNewLine"`

	Plugins map[string]PluginSettings `json:"plugins" mapstructure:"plugins"`

	// Untracked fields
	Root                string `json:"-"`
	GitVersion          string `json:"-"`
	RandomVersionString string `json:"-"`
}
var Displayed Settings

func ReadConfig added in v0.0.2

func ReadConfig() (*Settings, error)

func (*Settings) GetAllPlugins added in v0.0.5

func (s *Settings) GetAllPlugins() []PluginPublicSettings

func (*Settings) GetPublicSettings added in v0.0.2

func (s *Settings) GetPublicSettings() PublicSettings

func (*Settings) IsPluginEnabled added in v0.0.4

func (s *Settings) IsPluginEnabled(pluginName string) bool

type SocketIoSettings added in v0.0.2

type SocketIoSettings struct {
	MaxHttpBufferSize int64 `json:"maxHttpBufferSize"`
}

type TTL added in v0.0.2

type TTL struct {
	AccessToken       int `mapstructure:"accessToken"`
	AuthorizationCode int `mapstructure:"authorizationCode"`
	ClientCredentials int `mapstructure:"clientCredentials"`
	IdToken           int `mapstructure:"idToken"`
	RefreshToken      int `mapstructure:"refreshToken"`
}

type Toolbar

type Toolbar struct {
	Left       [][]string `mapstructure:"left"`
	Right      [][]string `mapstructure:"right"`
	TimeSlider [][]string `mapstructure:"timeSlider"`
}

type User

type User struct {
	Password *string `json:"password" mapstructure:"password"`
	IsAdmin  *bool   `json:"is_admin" mapstructure:"is_admin"`
	Username *string `json:"username" mapstructure:"username"`
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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