Documentation
¶
Overview ¶
Package restapi MinIO Console Server
Schemes: http ws Host: localhost BasePath: /api/v1 Version: 0.1.0 Consumes: - application/json Produces: - application/octet-stream - application/json
swagger:meta
Index ¶
- Constants
- Variables
- func DifferenceArrays(a, b []string) []string
- func FileExists(filename string) bool
- func FileServerMiddleware(next http.Handler) http.Handler
- func GetClaimsFromJWT(jwt string) (*auth.DecryptedClaims, error)
- func GetHostname() string
- func GetPort() int
- func GetSSLHostname() string
- func GetSSLPort() int
- func IsElementInArray(a []string, b string) bool
- func NewAdminClient(url, accessKey, secretKey string) (*madmin.AdminClient, *probe.Error)
- func PrepareSTSClient() *http.Client
- func UniqueKeys(a []string) []string
- type MCS3Client
- type MCSCredentials
- type MCSWebsocket
- type MCSWebsocketAdmin
- type MinioAdmin
- type MinioClient
- type Server
- func (s *Server) ConfigureAPI()
- func (s *Server) ConfigureFlags()
- func (s *Server) Fatalf(f string, args ...interface{})
- func (s *Server) GetHandler() http.Handler
- func (s *Server) HTTPListener() (net.Listener, error)
- func (s *Server) Listen() error
- func (s *Server) Logf(f string, args ...interface{})
- func (s *Server) Serve() (err error)
- func (s *Server) SetAPI(api *operations.McsAPI)
- func (s *Server) SetHandler(handler http.Handler)
- func (s *Server) Shutdown() error
- func (s *Server) TLSListener() (net.Listener, error)
- func (s *Server) UnixListener() (net.Listener, error)
- type WSConn
Constants ¶
const ( // consts for common configuration McsVersion = `0.1.0` McsAccessKey = "MCS_ACCESS_KEY" McsSecretKey = "MCS_SECRET_KEY" McsMinIOServer = "MCS_MINIO_SERVER" McsMinIOServerTLSRootCAs = "MCS_MINIO_SERVER_TLS_ROOT_CAS" McsProductionMode = "MCS_PRODUCTION_MODE" McsHostname = "MCS_HOSTNAME" McsPort = "MCS_PORT" McsTLSHostname = "MCS_TLS_HOSTNAME" McsTLSPort = "MCS_TLS_PORT" // consts for Secure middleware McsSecureAllowedHosts = "MCS_SECURE_ALLOWED_HOSTS" McsSecureAllowedHostsAreRegex = "MCS_SECURE_ALLOWED_HOSTS_ARE_REGEX" McsSecureFrameDeny = "MCS_SECURE_FRAME_DENY" McsSecureContentTypeNoSniff = "MCS_SECURE_CONTENT_TYPE_NO_SNIFF" McsSecureBrowserXSSFilter = "MCS_SECURE_BROWSER_XSS_FILTER" McsSecureContentSecurityPolicy = "MCS_SECURE_CONTENT_SECURITY_POLICY" McsSecureContentSecurityPolicyReportOnly = "MCS_SECURE_CONTENT_SECURITY_POLICY_REPORT_ONLY" McsSecureHostsProxyHeaders = "MCS_SECURE_HOSTS_PROXY_HEADERS" McsSecureSTSSeconds = "MCS_SECURE_STS_SECONDS" McsSecureSTSIncludeSubdomains = "MCS_SECURE_STS_INCLUDE_SUB_DOMAINS" McsSecureSTSPreload = "MCS_SECURE_STS_PRELOAD" McsSecureSSLRedirect = "MCS_SECURE_SSL_REDIRECT" McsSecureSSLHost = "MCS_SECURE_SSL_HOST" McsSecureSSLTemporaryRedirect = "MCS_SECURE_SSL_TEMPORARY_REDIRECT" McsSecureForceSTSHeader = "MCS_SECURE_FORCE_STS_HEADER" McsSecurePublicKey = "MCS_SECURE_PUBLIC_KEY" McsSecureReferrerPolicy = "MCS_SECURE_REFERRER_POLICY" McsSecureFeaturePolicy = "MCS_SECURE_FEATURE_POLICY" McsSecureExpectCTHeader = "MCS_SECURE_EXPECT_CT_HEADER" )
Variables ¶
var ( // SwaggerJSON embedded version of the swagger document used at generation time SwaggerJSON json.RawMessage // FlatSwaggerJSON embedded flattened version of the swagger document used at generation time FlatSwaggerJSON json.RawMessage )
var Hostname = "localhost"
Hostname mcs hostname
var Port = "9090"
Port mcs default port
var STSClient = PrepareSTSClient()
STSClient contains http.client configuration need it by STSAssumeRole
var TLSHostname = "localhost"
TLSHostname mcs tls hostname
var TLSPort = "9443"
TLSPort mcs tls port
var TLSRedirect = "off"
TLSRedirect mcs tls redirect rule
Functions ¶
func DifferenceArrays ¶
DifferenceArrays returns the elements in `a` that aren't in `b`.
func FileExists ¶ added in v0.0.4
FileExists verifies if a file exist on the desired location and its not a folder
func FileServerMiddleware ¶
FileServerMiddleware serves files from the static folder
func GetClaimsFromJWT ¶ added in v0.0.5
func GetClaimsFromJWT(jwt string) (*auth.DecryptedClaims, error)
GetClaimsFromJWT decrypt and returns the claims associated to a provided jwt
func GetHostname ¶
func GetHostname() string
GetHostname gets mcs hostname set on env variable, default one or defined on run command
func GetSSLHostname ¶
func GetSSLHostname() string
GetSSLHostname gets mcs ssl hostname set on env variable or default one
func GetSSLPort ¶
func GetSSLPort() int
GetSSLPort gets mcs ssl port set on env variable or default one
func IsElementInArray ¶
IsElementInArray returns true if the string belongs to the slice
func NewAdminClient ¶
func NewAdminClient(url, accessKey, secretKey string) (*madmin.AdminClient, *probe.Error)
NewAdminClient gives a new client interface
func PrepareSTSClient ¶ added in v0.0.4
PrepareSTSClient returns an http.Client with custom configurations need it by *credentials.STSAssumeRole custom configurations include skipVerification flag, and root CA certificates
func UniqueKeys ¶
UniqueKeys returns an array without duplicated keys
Types ¶
type MCS3Client ¶
type MCS3Client interface {
// contains filtered or unexported methods
}
MCS3Client interface with all functions to be implemented by mock when testing, it should include all mc/S3Client respective api calls that are used within this project.
type MCSCredentials ¶
type MCSCredentials interface {
Get() (credentials.Value, error)
Expire()
}
MCSCredentials interface with all functions to be implemented by mock when testing, it should include all needed minioCredentials.Credentials api calls that are used within this project.
type MCSWebsocket ¶
type MCSWebsocket interface {
// contains filtered or unexported methods
}
MCSWebsocket interface of a Websocket Client
type MCSWebsocketAdmin ¶ added in v0.0.4
type MCSWebsocketAdmin interface {
// contains filtered or unexported methods
}
MCSWebsocketAdmin interface of a Websocket Client
type MinioAdmin ¶
type MinioAdmin interface {
// contains filtered or unexported methods
}
MinioAdmin interface with all functions to be implemented by mock when testing, it should include all MinioAdmin respective api calls that are used within this project.
type MinioClient ¶
type MinioClient interface {
// contains filtered or unexported methods
}
MinioClient interface with all functions to be implemented by mock when testing, it should include all MinioClient respective api calls that are used within this project.
type Server ¶
type Server struct {
EnabledListeners []string `long:"scheme" description:"the listeners to enable, this can be repeated and defaults to the schemes in the swagger spec"`
CleanupTimeout time.Duration `long:"cleanup-timeout" description:"grace period for which to wait before killing idle connections" default:"10s"`
GracefulTimeout time.Duration `long:"graceful-timeout" description:"grace period for which to wait before shutting down the server" default:"15s"`
MaxHeaderSize flagext.ByteSize `` /* 231-byte string literal not displayed */
SocketPath flags.Filename `long:"socket-path" description:"the unix socket to listen on" default:"/var/run/mcs.sock"`
Host string `long:"host" description:"the IP to listen on" default:"localhost" env:"HOST"`
Port int `long:"port" description:"the port to listen on for insecure connections, defaults to a random value" env:"PORT"`
ListenLimit int `long:"listen-limit" description:"limit the number of outstanding requests"`
KeepAlive time.Duration `` /* 169-byte string literal not displayed */
ReadTimeout time.Duration `long:"read-timeout" description:"maximum duration before timing out read of the request" default:"30s"`
WriteTimeout time.Duration `long:"write-timeout" description:"maximum duration before timing out write of the response" default:"60s"`
TLSHost string `long:"tls-host" description:"the IP to listen on for tls, when not specified it's the same as --host" env:"TLS_HOST"`
TLSPort int `long:"tls-port" description:"the port to listen on for secure connections, defaults to a random value" env:"TLS_PORT"`
TLSCertificate flags.Filename `long:"tls-certificate" description:"the certificate to use for secure connections" env:"TLS_CERTIFICATE"`
TLSCertificateKey flags.Filename `long:"tls-key" description:"the private key to use for secure connections" env:"TLS_PRIVATE_KEY"`
TLSCACertificate flags.Filename `long:"tls-ca" description:"the certificate authority file to be used with mutual tls auth" env:"TLS_CA_CERTIFICATE"`
TLSListenLimit int `long:"tls-listen-limit" description:"limit the number of outstanding requests"`
TLSKeepAlive time.Duration `` /* 160-byte string literal not displayed */
TLSReadTimeout time.Duration `long:"tls-read-timeout" description:"maximum duration before timing out read of the request"`
TLSWriteTimeout time.Duration `long:"tls-write-timeout" description:"maximum duration before timing out write of the response"`
// contains filtered or unexported fields
}
Server for the mcs API
func NewServer ¶
func NewServer(api *operations.McsAPI) *Server
NewServer creates a new api mcs server but does not configure it
func (*Server) ConfigureAPI ¶
func (s *Server) ConfigureAPI()
ConfigureAPI configures the API and handlers.
func (*Server) ConfigureFlags ¶
func (s *Server) ConfigureFlags()
ConfigureFlags configures the additional flags defined by the handlers. Needs to be called before the parser.Parse
func (*Server) Fatalf ¶
Fatalf logs message either via defined user logger or via system one if no user logger is defined. Exits with non-zero status after printing
func (*Server) GetHandler ¶
GetHandler returns a handler useful for testing
func (*Server) HTTPListener ¶
HTTPListener returns the http listener
func (*Server) Logf ¶
Logf logs message either via defined user logger or via system one if no user logger is defined.
func (*Server) SetAPI ¶
func (s *Server) SetAPI(api *operations.McsAPI)
SetAPI configures the server with the specified API. Needs to be called before Serve
func (*Server) SetHandler ¶
SetHandler allows for setting a http handler on this server
func (*Server) TLSListener ¶
TLSListener returns the https listener
Source Files
¶
- admin_arns.go
- admin_config.go
- admin_console.go
- admin_groups.go
- admin_info.go
- admin_notification_endpoints.go
- admin_policies.go
- admin_profiling.go
- admin_service.go
- admin_trace.go
- admin_users.go
- client-admin.go
- client.go
- config.go
- configure_mcs.go
- consts.go
- doc.go
- embedded_spec.go
- server.go
- tls.go
- user_buckets.go
- user_buckets_events.go
- user_login.go
- user_logout.go
- user_service_accounts.go
- user_session.go
- user_watch.go
- utils.go
- ws_handle.go