Documentation
¶
Overview ¶
Package httpd implements REST API and Web interface for SFTPGo. The OpenAPI 3 schema for the supported API can be found inside the source tree: https://github.com/drakkan/sftpgo/blob/main/openapi/openapi.yaml
Index ¶
- Constants
- func GetHTTPRouter(b Binding) (http.Handler, error)
- func ReloadCertificateMgr() error
- func RestoreAPIKeys(apiKeys []dataprovider.APIKey, inputFile string, mode int, ...) error
- func RestoreAdmins(admins []dataprovider.Admin, inputFile string, mode int, ...) error
- func RestoreConfigs(configs *dataprovider.Configs, mode int, ...) error
- func RestoreEventActions(actions []dataprovider.BaseEventAction, inputFile string, mode int, ...) error
- func RestoreEventRules(rules []dataprovider.EventRule, inputFile string, mode int, ...) error
- func RestoreFolders(folders []vfs.BaseVirtualFolder, inputFile string, mode, scanQuota int, ...) error
- func RestoreGroups(groups []dataprovider.Group, inputFile string, mode int, ...) error
- func RestoreIPListEntries(entries []dataprovider.IPListEntry, inputFile string, mode int, ...) error
- func RestoreRoles(roles []dataprovider.Role, inputFile string, mode int, ...) error
- func RestoreShares(shares []dataprovider.Share, inputFile string, mode int, ...) error
- func RestoreUsers(users []dataprovider.User, inputFile string, mode, scanQuota int, ...) error
- func SetInstallationCodeResolver(fn FnInstallationCodeResolver)
- type Binding
- type Branding
- type Conf
- type Connection
- func (c *Connection) Disconnect() (err error)
- func (c *Connection) GetClientVersion() string
- func (c *Connection) GetCommand() string
- func (c *Connection) GetLocalAddress() string
- func (c *Connection) GetRemoteAddress() string
- func (c *Connection) ReadDir(name string) (vfs.DirLister, error)
- func (c *Connection) Stat(name string, mode int) (os.FileInfo, error)
- type CorsConfig
- type FnInstallationCodeResolver
- type HTTPSProxyHeader
- type OAuth2Config
- type OIDC
- type OIDCTokenVerifier
- type SecurityConf
- type ServicesStatus
- type SetupConfig
- type UIBranding
- type WebClientIntegration
Constants ¶
const ( // MaxRestoreSize defines the max size for the loaddata input file MaxRestoreSize = 20 * 1048576 // 20 MB )
Variables ¶
This section is empty.
Functions ¶
func GetHTTPRouter ¶
GetHTTPRouter returns an HTTP handler suitable to use for test cases
func ReloadCertificateMgr ¶
func ReloadCertificateMgr() error
ReloadCertificateMgr reloads the certificate manager
func RestoreAPIKeys ¶
func RestoreAPIKeys(apiKeys []dataprovider.APIKey, inputFile string, mode int, executor, ipAddress, role string) error
RestoreAPIKeys restores the specified API keys
func RestoreAdmins ¶
func RestoreAdmins(admins []dataprovider.Admin, inputFile string, mode int, executor, ipAddress, role string) error
RestoreAdmins restores the specified admins
func RestoreConfigs ¶ added in v2.5.0
func RestoreConfigs(configs *dataprovider.Configs, mode int, executor, ipAddress, executorRole string, ) error
RestoreConfigs restores the specified provider configs
func RestoreEventActions ¶
func RestoreEventActions(actions []dataprovider.BaseEventAction, inputFile string, mode int, executor, ipAddress, role string) error
RestoreEventActions restores the specified event actions
func RestoreEventRules ¶
func RestoreEventRules(rules []dataprovider.EventRule, inputFile string, mode int, executor, ipAddress, role string, dumpVersion int, ) error
RestoreEventRules restores the specified event rules
func RestoreFolders ¶
func RestoreFolders(folders []vfs.BaseVirtualFolder, inputFile string, mode, scanQuota int, executor, ipAddress, role string) error
RestoreFolders restores the specified folders
func RestoreGroups ¶
func RestoreGroups(groups []dataprovider.Group, inputFile string, mode int, executor, ipAddress, role string) error
RestoreGroups restores the specified groups
func RestoreIPListEntries ¶ added in v2.5.0
func RestoreIPListEntries(entries []dataprovider.IPListEntry, inputFile string, mode int, executor, ipAddress, executorRole string, ) error
RestoreIPListEntries restores the specified IP list entries
func RestoreRoles ¶ added in v2.5.0
func RestoreRoles(roles []dataprovider.Role, inputFile string, mode int, executor, ipAddress, executorRole string) error
RestoreRoles restores the specified roles
func RestoreShares ¶
func RestoreShares(shares []dataprovider.Share, inputFile string, mode int, executor, ipAddress, role string, ) error
RestoreShares restores the specified shares
func RestoreUsers ¶
func RestoreUsers(users []dataprovider.User, inputFile string, mode, scanQuota int, executor, ipAddress, role string) error
RestoreUsers restores the specified users
func SetInstallationCodeResolver ¶
func SetInstallationCodeResolver(fn FnInstallationCodeResolver)
SetInstallationCodeResolver sets a function to call to resolve the installation code
Types ¶
type Binding ¶
type Binding struct {
// The address to listen on. A blank value means listen on all available network interfaces.
Address string `json:"address" mapstructure:"address"`
// The port used for serving requests
Port int `json:"port" mapstructure:"port"`
// Enable the built-in admin interface.
// You have to define TemplatesPath and StaticFilesPath for this to work
EnableWebAdmin bool `json:"enable_web_admin" mapstructure:"enable_web_admin"`
// Enable the built-in client interface.
// You have to define TemplatesPath and StaticFilesPath for this to work
EnableWebClient bool `json:"enable_web_client" mapstructure:"enable_web_client"`
// Enable REST API
EnableRESTAPI bool `json:"enable_rest_api" mapstructure:"enable_rest_api"`
// Defines the login methods available for the WebAdmin and WebClient UIs:
//
// - 0 means any configured method: username/password login form and OIDC, if enabled
// - 1 means OIDC for the WebAdmin UI
// - 2 means OIDC for the WebClient UI
// - 4 means login form for the WebAdmin UI
// - 8 means login form for the WebClient UI
//
// You can combine the values. For example 3 means that you can only login using OIDC on
// both WebClient and WebAdmin UI.
// Deprecated because it is not extensible, use DisabledLoginMethods
EnabledLoginMethods int `json:"enabled_login_methods" mapstructure:"enabled_login_methods"`
// Defines the login methods disabled for the WebAdmin and WebClient UIs:
//
// - 1 means OIDC for the WebAdmin UI
// - 2 means OIDC for the WebClient UI
// - 4 means login form for the WebAdmin UI
// - 8 means login form for the WebClient UI
// - 16 means basic auth for admin REST API
// - 32 means basic auth for user REST API
// - 64 means API key auth for admins
// - 128 means API key auth for users
// You can combine the values. For example 12 means that you can only login using OIDC on
// both WebClient and WebAdmin UI.
DisabledLoginMethods int `json:"disabled_login_methods" mapstructure:"disabled_login_methods"`
// you also need to provide a certificate for enabling HTTPS
EnableHTTPS bool `json:"enable_https" mapstructure:"enable_https"`
// Certificate and matching private key for this specific binding, if empty the global
// ones will be used, if any
CertificateFile string `json:"certificate_file" mapstructure:"certificate_file"`
CertificateKeyFile string `json:"certificate_key_file" mapstructure:"certificate_key_file"`
// Defines the minimum TLS version. 13 means TLS 1.3, default is TLS 1.2
MinTLSVersion int `json:"min_tls_version" mapstructure:"min_tls_version"`
// set to 1 to require client certificate authentication in addition to basic auth.
// You need to define at least a certificate authority for this to work
ClientAuthType int `json:"client_auth_type" mapstructure:"client_auth_type"`
// TLSCipherSuites is a list of supported cipher suites for TLS version 1.2.
// If CipherSuites is nil/empty, a default list of secure cipher suites
// is used, with a preference order based on hardware performance.
// Note that TLS 1.3 ciphersuites are not configurable.
// The supported ciphersuites names are defined here:
//
// https://github.com/golang/go/blob/master/src/crypto/tls/cipher_suites.go#L53
//
// any invalid name will be silently ignored.
// The order matters, the ciphers listed first will be the preferred ones.
TLSCipherSuites []string `json:"tls_cipher_suites" mapstructure:"tls_cipher_suites"`
// HTTP protocols in preference order. Supported values: http/1.1, h2
Protocols []string `json:"tls_protocols" mapstructure:"tls_protocols"`
// Defines whether to use the common proxy protocol configuration or the
// binding-specific proxy header configuration.
ProxyMode int `json:"proxy_mode" mapstructure:"proxy_mode"`
// List of IP addresses and IP ranges allowed to set client IP proxy headers and
// X-Forwarded-Proto header.
ProxyAllowed []string `json:"proxy_allowed" mapstructure:"proxy_allowed"`
// Allowed client IP proxy header such as "X-Forwarded-For", "X-Real-IP"
ClientIPProxyHeader string `json:"client_ip_proxy_header" mapstructure:"client_ip_proxy_header"`
// Some client IP headers such as "X-Forwarded-For" can contain multiple IP address, this setting
// define the position to trust starting from the right. For example if we have:
// "10.0.0.1,11.0.0.1,12.0.0.1,13.0.0.1" and the depth is 0, SFTPGo will use "13.0.0.1"
// as client IP, if depth is 1, "12.0.0.1" will be used and so on
ClientIPHeaderDepth int `json:"client_ip_header_depth" mapstructure:"client_ip_header_depth"`
// If both web admin and web client are enabled each login page will show a link
// to the other one. This setting allows to hide this link:
// - 0 login links are displayed on both admin and client login page. This is the default
// - 1 the login link to the web client login page is hidden on admin login page
// - 2 the login link to the web admin login page is hidden on client login page
// The flags can be combined, for example 3 will disable both login links.
HideLoginURL int `json:"hide_login_url" mapstructure:"hide_login_url"`
// Enable the built-in OpenAPI renderer
RenderOpenAPI bool `json:"render_openapi" mapstructure:"render_openapi"`
// Languages defines the list of enabled translations for the WebAdmin and WebClient UI.
Languages []string `json:"languages" mapstructure:"languages"`
// Defining an OIDC configuration the web admin and web client UI will use OpenID to authenticate users.
OIDC OIDC `json:"oidc" mapstructure:"oidc"`
// Security defines security headers to add to HTTP responses and allows to restrict allowed hosts
Security SecurityConf `json:"security" mapstructure:"security"`
// Branding defines customizations to suit your brand
Branding Branding `json:"branding" mapstructure:"branding"`
// contains filtered or unexported fields
}
Binding defines the configuration for a network listener
func (*Binding) GetAddress ¶
GetAddress returns the binding address
type Branding ¶
type Branding struct {
WebAdmin UIBranding `json:"web_admin" mapstructure:"web_admin"`
WebClient UIBranding `json:"web_client" mapstructure:"web_client"`
}
Branding defines the branding-related customizations supported
type Conf ¶
type Conf struct {
// Addresses and ports to bind to
Bindings []Binding `json:"bindings" mapstructure:"bindings"`
// Path to the HTML web templates. This can be an absolute path or a path relative to the config dir
TemplatesPath string `json:"templates_path" mapstructure:"templates_path"`
// Path to the static files for the web interface. This can be an absolute path or a path relative to the config dir.
// If both TemplatesPath and StaticFilesPath are empty the built-in web interface will be disabled
StaticFilesPath string `json:"static_files_path" mapstructure:"static_files_path"`
// Path to the backup directory. This can be an absolute path or a path relative to the config dir
//BackupsPath string `json:"backups_path" mapstructure:"backups_path"`
// Path to the directory that contains the OpenAPI schema and the default renderer.
// This can be an absolute path or a path relative to the config dir
OpenAPIPath string `json:"openapi_path" mapstructure:"openapi_path"`
// Defines a base URL for the web admin and client interfaces. If empty web admin and client resources will
// be available at the root ("/") URI. If defined it must be an absolute URI or it will be ignored.
WebRoot string `json:"web_root" mapstructure:"web_root"`
// If files containing a certificate and matching private key for the server are provided you can enable
// HTTPS connections for the configured bindings.
// Certificate and key files can be reloaded on demand sending a "SIGHUP" signal on Unix based systems and a
// "paramchange" request to the running service on Windows.
CertificateFile string `json:"certificate_file" mapstructure:"certificate_file"`
CertificateKeyFile string `json:"certificate_key_file" mapstructure:"certificate_key_file"`
// CACertificates defines the set of root certificate authorities to be used to verify client certificates.
CACertificates []string `json:"ca_certificates" mapstructure:"ca_certificates"`
// CARevocationLists defines a set a revocation lists, one for each root CA, to be used to check
// if a client certificate has been revoked
CARevocationLists []string `json:"ca_revocation_lists" mapstructure:"ca_revocation_lists"`
// SigningPassphrase defines the passphrase to use to derive the signing key for JWT and CSRF tokens.
// If empty a random signing key will be generated each time SFTPGo starts. If you set a
// signing passphrase you should consider rotating it periodically for added security
SigningPassphrase string `json:"signing_passphrase" mapstructure:"signing_passphrase"`
SigningPassphraseFile string `json:"signing_passphrase_file" mapstructure:"signing_passphrase_file"`
// TokenValidation allows to define how to validate JWT tokens, cookies and CSRF tokens.
// By default all the available security checks are enabled. Set to 1 to disable the requirement
// that a token must be used by the same IP for which it was issued.
TokenValidation int `json:"token_validation" mapstructure:"token_validation"`
// CookieLifetime defines the duration of cookies for WebAdmin and WebClient
CookieLifetime int `json:"cookie_lifetime" mapstructure:"cookie_lifetime"`
ShareCookieLifetime int `json:"share_cookie_lifetime" mapstructure:"share_cookie_lifetime"`
// JWTLifetime defines the duration of JWT tokens used in REST API
JWTLifetime int `json:"jwt_lifetime" mapstructure:"jwt_lifetime"`
// MaxUploadFileSize Defines the maximum request body size, in bytes, for Web Client/API HTTP upload requests.
// 0 means no limit
MaxUploadFileSize int64 `json:"max_upload_file_size" mapstructure:"max_upload_file_size"`
// CORS configuration
Cors CorsConfig `json:"cors" mapstructure:"cors"`
// Initial setup configuration
Setup SetupConfig `json:"setup" mapstructure:"setup"`
// If enabled, the link to the sponsors section will not appear on the setup screen page
HideSupportLink bool `json:"hide_support_link" mapstructure:"hide_support_link"`
// contains filtered or unexported fields
}
Conf httpd daemon configuration
func (*Conf) Initialize ¶
Initialize configures and starts the HTTP server
func (*Conf) ShouldBind ¶
ShouldBind returns true if there is at least a valid binding
type Connection ¶
type Connection struct {
*common.BaseConnection
// contains filtered or unexported fields
}
Connection details for a HTTP connection used to inteact with an SFTPGo filesystem
func (*Connection) Disconnect ¶
func (c *Connection) Disconnect() (err error)
Disconnect closes the active transfer
func (*Connection) GetClientVersion ¶
func (c *Connection) GetClientVersion() string
GetClientVersion returns the connected client's version.
func (*Connection) GetCommand ¶
func (c *Connection) GetCommand() string
GetCommand returns the request method
func (*Connection) GetLocalAddress ¶
func (c *Connection) GetLocalAddress() string
GetLocalAddress returns local connection address
func (*Connection) GetRemoteAddress ¶
func (c *Connection) GetRemoteAddress() string
GetRemoteAddress returns the connected client's address
type CorsConfig ¶
type CorsConfig struct {
AllowedOrigins []string `json:"allowed_origins" mapstructure:"allowed_origins"`
AllowedMethods []string `json:"allowed_methods" mapstructure:"allowed_methods"`
AllowedHeaders []string `json:"allowed_headers" mapstructure:"allowed_headers"`
ExposedHeaders []string `json:"exposed_headers" mapstructure:"exposed_headers"`
AllowCredentials bool `json:"allow_credentials" mapstructure:"allow_credentials"`
Enabled bool `json:"enabled" mapstructure:"enabled"`
MaxAge int `json:"max_age" mapstructure:"max_age"`
OptionsPassthrough bool `json:"options_passthrough" mapstructure:"options_passthrough"`
OptionsSuccessStatus int `json:"options_success_status" mapstructure:"options_success_status"`
AllowPrivateNetwork bool `json:"allow_private_network" mapstructure:"allow_private_network"`
}
CorsConfig defines the CORS configuration
type FnInstallationCodeResolver ¶
FnInstallationCodeResolver defines a method to get the installation code. If the installation code cannot be resolved the provided default must be returned
type HTTPSProxyHeader ¶
HTTPSProxyHeader defines an HTTPS proxy header as key/value. For example Key could be "X-Forwarded-Proto" and Value "https"
type OAuth2Config ¶
type OAuth2Config interface {
AuthCodeURL(state string, opts ...oauth2.AuthCodeOption) string
Exchange(ctx context.Context, code string, opts ...oauth2.AuthCodeOption) (*oauth2.Token, error)
TokenSource(ctx context.Context, t *oauth2.Token) oauth2.TokenSource
}
OAuth2Config defines an interface for OAuth2 methods, so we can mock them
type OIDC ¶
type OIDC struct {
// ClientID is the application's ID
ClientID string `json:"client_id" mapstructure:"client_id"`
// ClientSecret is the application's secret
ClientSecret string `json:"client_secret" mapstructure:"client_secret"`
ClientSecretFile string `json:"client_secret_file" mapstructure:"client_secret_file"`
// ConfigURL is the identifier for the service.
// SFTPGo will try to retrieve the provider configuration on startup and then
// will refuse to start if it fails to connect to the specified URL
ConfigURL string `json:"config_url" mapstructure:"config_url"`
// RedirectBaseURL is the base URL to redirect to after OpenID authentication.
// The suffix "/web/oidc/redirect" will be added to this base URL, adding also the
// "web_root" if configured
RedirectBaseURL string `json:"redirect_base_url" mapstructure:"redirect_base_url"`
// ID token claims field to map to the SFTPGo username
UsernameField string `json:"username_field" mapstructure:"username_field"`
// Optional ID token claims field to map to a SFTPGo role.
// If the defined ID token claims field is set to "admin" the authenticated user
// is mapped to an SFTPGo admin.
// You don't need to specify this field if you want to use OpenID only for the
// Web Client UI
RoleField string `json:"role_field" mapstructure:"role_field"`
// If set, the `RoleField` is ignored and the SFTPGo role is assumed based on
// the login link used
ImplicitRoles bool `json:"implicit_roles" mapstructure:"implicit_roles"`
// Scopes required by the OAuth provider to retrieve information about the authenticated user.
// The "openid" scope is required.
// Refer to your OAuth provider documentation for more information about this
Scopes []string `json:"scopes" mapstructure:"scopes"`
// Custom token claims fields to pass to the pre-login hook
CustomFields []string `json:"custom_fields" mapstructure:"custom_fields"`
// InsecureSkipSignatureCheck causes SFTPGo to skip JWT signature validation.
// It's intended for special cases where providers, such as Azure, use the "none"
// algorithm. Skipping the signature validation can cause security issues
InsecureSkipSignatureCheck bool `json:"insecure_skip_signature_check" mapstructure:"insecure_skip_signature_check"`
// Debug enables the OIDC debug mode. In debug mode, the received id_token will be logged
// at the debug level
Debug bool `json:"debug" mapstructure:"debug"`
// contains filtered or unexported fields
}
OIDC defines the OpenID Connect configuration
type OIDCTokenVerifier ¶
type OIDCTokenVerifier interface {
Verify(ctx context.Context, rawIDToken string) (*oidc.IDToken, error)
}
OIDCTokenVerifier defines an interface for OpenID token verifier, so we can mock them
type SecurityConf ¶
type SecurityConf struct {
// Set to true to enable the security configurations
Enabled bool `json:"enabled" mapstructure:"enabled"`
// AllowedHosts is a list of fully qualified domain names that are allowed.
// Default is empty list, which allows any and all host names.
AllowedHosts []string `json:"allowed_hosts" mapstructure:"allowed_hosts"`
// AllowedHostsAreRegex determines if the provided allowed hosts contains valid regular expressions
AllowedHostsAreRegex bool `json:"allowed_hosts_are_regex" mapstructure:"allowed_hosts_are_regex"`
// HostsProxyHeaders is a set of header keys that may hold a proxied hostname value for the request.
HostsProxyHeaders []string `json:"hosts_proxy_headers" mapstructure:"hosts_proxy_headers"`
// Set to true to redirect HTTP requests to HTTPS
HTTPSRedirect bool `json:"https_redirect" mapstructure:"https_redirect"`
// HTTPSHost defines the host name that is used to redirect HTTP requests to HTTPS.
// Default is "", which indicates to use the same host.
HTTPSHost string `json:"https_host" mapstructure:"https_host"`
// HTTPSProxyHeaders is a list of header keys with associated values that would indicate a valid https request.
HTTPSProxyHeaders []HTTPSProxyHeader `json:"https_proxy_headers" mapstructure:"https_proxy_headers"`
// STSSeconds is the max-age of the Strict-Transport-Security header.
// Default is 0, which would NOT include the header.
STSSeconds int64 `json:"sts_seconds" mapstructure:"sts_seconds"`
// If STSIncludeSubdomains is set to true, the "includeSubdomains" will be appended to the
// Strict-Transport-Security header. Default is false.
STSIncludeSubdomains bool `json:"sts_include_subdomains" mapstructure:"sts_include_subdomains"`
// If STSPreload is set to true, the `preload` flag will be appended to the
// Strict-Transport-Security header. Default is false.
STSPreload bool `json:"sts_preload" mapstructure:"sts_preload"`
// If ContentTypeNosniff is true, adds the X-Content-Type-Options header with the value "nosniff". Default is false.
ContentTypeNosniff bool `json:"content_type_nosniff" mapstructure:"content_type_nosniff"`
// ContentSecurityPolicy allows to set the Content-Security-Policy header value. Default is "".
ContentSecurityPolicy string `json:"content_security_policy" mapstructure:"content_security_policy"`
// PermissionsPolicy allows to set the Permissions-Policy header value. Default is "".
PermissionsPolicy string `json:"permissions_policy" mapstructure:"permissions_policy"`
// CrossOriginOpenerPolicy allows to set the Cross-Origin-Opener-Policy header value. Default is "".
CrossOriginOpenerPolicy string `json:"cross_origin_opener_policy" mapstructure:"cross_origin_opener_policy"`
// CrossOriginResourcePolicy allows to set the Cross-Origin-Resource-Policy header value. Default is "".
CrossOriginResourcePolicy string `json:"cross_origin_resource_policy" mapstructure:"cross_origin_resource_policy"`
// CrossOriginEmbedderPolicy allows to set the Cross-Origin-Embedder-Policy header value. Default is "".
CrossOriginEmbedderPolicy string `json:"cross_origin_embedder_policy" mapstructure:"cross_origin_embedder_policy"`
// CacheControl allows to set the Cache-Control header value.
CacheControl string `json:"cache_control" mapstructure:"cache_control"`
// ReferrerPolicy allows to set the Referrer-Policy header values.
ReferrerPolicy string `json:"referrer_policy" mapstructure:"referrer_policy"`
// contains filtered or unexported fields
}
SecurityConf allows to add some security related headers to HTTP responses and to restrict allowed hosts
type ServicesStatus ¶
type ServicesStatus struct {
SSH sftpd.ServiceStatus `json:"ssh"`
FTP ftpd.ServiceStatus `json:"ftp"`
WebDAV webdavd.ServiceStatus `json:"webdav"`
DataProvider dataprovider.ProviderStatus `json:"data_provider"`
Defender defenderStatus `json:"defender"`
MFA mfa.ServiceStatus `json:"mfa"`
AllowList allowListStatus `json:"allow_list"`
RateLimiters rateLimiters `json:"rate_limiters"`
}
ServicesStatus keep the state of the running services
type SetupConfig ¶
type SetupConfig struct {
// Installation code to require when creating the first admin account.
// As for the other configurations, this value is read at SFTPGo startup and not at runtime
// even if set using an environment variable.
// This is not a license key or similar, the purpose here is to prevent anyone who can access
// to the initial setup screen from creating an admin user
InstallationCode string `json:"installation_code" mapstructure:"installation_code"`
// Description for the installation code input field
InstallationCodeHint string `json:"installation_code_hint" mapstructure:"installation_code_hint"`
}
SetupConfig defines the configuration parameters for the initial web admin setup
type UIBranding ¶
type UIBranding struct {
// Name defines the text to show at the login page and as HTML title
Name string `json:"name" mapstructure:"name"`
// ShortName defines the name to show next to the logo image
ShortName string `json:"short_name" mapstructure:"short_name"`
// Path to your logo relative to "static_files_path".
// For example, if you create a directory named "branding" inside the static dir and
// put the "mylogo.png" file in it, you must set "/branding/mylogo.png" as logo path.
LogoPath string `json:"logo_path" mapstructure:"logo_path"`
// Path to your favicon relative to "static_files_path"
FaviconPath string `json:"favicon_path" mapstructure:"favicon_path"`
// DisclaimerName defines the name for the link to your optional disclaimer
DisclaimerName string `json:"disclaimer_name" mapstructure:"disclaimer_name"`
// Path to the HTML page for your disclaimer relative to "static_files_path"
// or an absolute http/https URL.
DisclaimerPath string `json:"disclaimer_path" mapstructure:"disclaimer_path"`
// Path to custom CSS files, relative to "static_files_path", which replaces
// the default CSS files
DefaultCSS []string `json:"default_css" mapstructure:"default_css"`
// Additional CSS file paths, relative to "static_files_path", to include
ExtraCSS []string `json:"extra_css" mapstructure:"extra_css"`
DefaultLogoPath string `json:"-" mapstructure:"-"`
DefaultFaviconPath string `json:"-" mapstructure:"-"`
}
UIBranding defines the supported customizations for the web UIs
type WebClientIntegration ¶
type WebClientIntegration struct {
// Files with these extensions can be sent to the configured URL
FileExtensions []string `json:"file_extensions" mapstructure:"file_extensions"`
// URL that will receive the files
URL string `json:"url" mapstructure:"url"`
}
WebClientIntegration defines the configuration for an external Web Client integration
Source Files
¶
- api_admin.go
- api_configs.go
- api_defender.go
- api_eventrule.go
- api_events.go
- api_folder.go
- api_group.go
- api_http_user.go
- api_iplist.go
- api_keys.go
- api_maintenance.go
- api_mfa.go
- api_quota.go
- api_retention.go
- api_role.go
- api_shares.go
- api_user.go
- api_utils.go
- auth_utils.go
- file.go
- flash.go
- handler.go
- httpd.go
- middleware.go
- oauth2.go
- oidc.go
- oidcmanager.go
- resetcode.go
- resources.go
- server.go
- token.go
- web.go
- webadmin.go
- webclient.go
- webtask.go