settings

package
v0.0.4 Latest Latest
Warning

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

Go to latest
Published: Jan 26, 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"
)

Variables

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

Functions

func ApplyRegistryDefaults added in v0.0.4

func ApplyRegistryDefaults()

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 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) 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

IsPluginEnabled prüft, ob ein Plugin in den Settings aktiviert ist

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