Documentation ¶
Overview ¶
Package restapi MinIO Console Server
Schemes: http ws Host: localhost BasePath: /api/v1 Version: 0.1.0 Consumes: - application/json - multipart/form-data Produces: - application/octet-stream - application/json
swagger:meta
Index ¶
- Constants
- Variables
- func AuthenticationMiddleware(next http.Handler) http.Handler
- func DifferenceArrays(a, b []string) []string
- func ExpireSessionCookie() http.Cookie
- func FileExists(filename string) bool
- func FileServerMiddleware(next http.Handler) http.Handler
- func GetConsoleSTSClient() *http.Client
- func GetHostname() string
- func GetParityInfo(nodes int64, disksPerNode int64) (models.ParityResponse, error)
- func GetPort() int
- func GetSubnetLicense() string
- func GetTLSHostname() string
- func GetTLSPort() int
- func GetTLSRedirect() string
- func GetTenantServiceURL(mi *miniov2.Tenant) (svcURL string)
- func IsElementInArray(a []string, b string) bool
- func NewAdminClient(url, accessKey, secretKey, sessionToken string) (*madmin.AdminClient, *probe.Error)
- func NewAdminClientWithInsecure(url, accessKey, secretKey, sessionToken string, insecure bool) (*madmin.AdminClient, *probe.Error)
- func NewSessionCookieForConsole(token string) http.Cookie
- func PrepareSTSClient(insecure bool) *http.Client
- func RandomCharString(n int) string
- func RandomCharStringWithAlphabet(n int, alphabet string) string
- func RefreshLicense() error
- func UniqueKeys(a []string) []string
- type ConsoleCredentialsI
- type ConsoleWebsocket
- type ConsoleWebsocketAdmin
- type DataResult
- type K8sClientI
- type LabelResponse
- type LabelResults
- type MCClient
- type Metric
- type MetricOptions
- type MinioAdmin
- type MinioClient
- type OperatorClientI
- type PromResp
- type PromRespData
- type ReduceOptions
- type RemoteBucketResult
- 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.ConsoleAPI)
- 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 Target
- type VersionState
- type WSConn
- type Widget
- type WidgetLabel
Constants ¶
const ( // Constants for common configuration ConsoleMinIOServer = "CONSOLE_MINIO_SERVER" ConsoleMinIORegion = "CONSOLE_MINIO_REGION" ConsoleProductionMode = "CONSOLE_PRODUCTION_MODE" ConsoleHostname = "CONSOLE_HOSTNAME" ConsolePort = "CONSOLE_PORT" ConsoleTLSHostname = "CONSOLE_TLS_HOSTNAME" ConsoleTLSPort = "CONSOLE_TLS_PORT" ConsoleSubnetLicense = "CONSOLE_SUBNET_LICENSE" // Constants for Secure middleware ConsoleSecureAllowedHosts = "CONSOLE_SECURE_ALLOWED_HOSTS" ConsoleSecureAllowedHostsAreRegex = "CONSOLE_SECURE_ALLOWED_HOSTS_ARE_REGEX" ConsoleSecureFrameDeny = "CONSOLE_SECURE_FRAME_DENY" ConsoleSecureContentTypeNoSniff = "CONSOLE_SECURE_CONTENT_TYPE_NO_SNIFF" ConsoleSecureBrowserXSSFilter = "CONSOLE_SECURE_BROWSER_XSS_FILTER" ConsoleSecureContentSecurityPolicy = "CONSOLE_SECURE_CONTENT_SECURITY_POLICY" ConsoleSecureContentSecurityPolicyReportOnly = "CONSOLE_SECURE_CONTENT_SECURITY_POLICY_REPORT_ONLY" ConsoleSecureHostsProxyHeaders = "CONSOLE_SECURE_HOSTS_PROXY_HEADERS" ConsoleSecureSTSSeconds = "CONSOLE_SECURE_STS_SECONDS" ConsoleSecureSTSIncludeSubdomains = "CONSOLE_SECURE_STS_INCLUDE_SUB_DOMAINS" ConsoleSecureSTSPreload = "CONSOLE_SECURE_STS_PRELOAD" ConsoleSecureTLSRedirect = "CONSOLE_SECURE_TLS_REDIRECT" ConsoleSecureTLSHost = "CONSOLE_SECURE_TLS_HOST" ConsoleSecureTLSTemporaryRedirect = "CONSOLE_SECURE_TLS_TEMPORARY_REDIRECT" ConsoleSecureForceSTSHeader = "CONSOLE_SECURE_FORCE_STS_HEADER" ConsoleSecurePublicKey = "CONSOLE_SECURE_PUBLIC_KEY" ConsoleSecureReferrerPolicy = "CONSOLE_SECURE_REFERRER_POLICY" ConsoleSecureFeaturePolicy = "CONSOLE_SECURE_FEATURE_POLICY" ConsoleSecureExpectCTHeader = "CONSOLE_SECURE_EXPECT_CT_HEADER" ConsoleOperatorSAToken = "CONSOLE_OPERATOR_SA_TOKEN" ConsoleOperatorConsoleImage = "CONSOLE_OPERATOR_CONSOLE_IMAGE" LogSearchURL = "CONSOLE_LOG_QUERY_URL" PrometheusURL = "CONSOLE_PROMETHEUS_URL" LogSearchQueryAuthToken = "LOGSEARCH_QUERY_AUTH_TOKEN" )
list of all console environment constants
const ( KESImageVersion = "minio/kes:v0.13.4" ConsoleImageDefaultVersion = "minio/console:v0.6.6" )
Image versions
const (
OperatorSubnetLicenseSecretName = "subnet-license"
)
Variables ¶
var ( MinioEndpoint = getMinIOServer() MinioRegion = getMinIORegion() )
var ( // Port console default port Port = "9090" // Hostname console hostname Hostname = "0.0.0.0" // TLSHostname console tls hostname TLSHostname = "0.0.0.0" // TLSPort console tls port TLSPort = "9443" // TLSRedirect console tls redirect rule TLSRedirect = "on" // SessionDuration cookie validity duration SessionDuration = 45 * time.Minute // LicenseKey in memory license key used by console ui LicenseKey = "" )
var ( // GlobalRootCAs is CA root certificates, a nil value means system certs pool will be used GlobalRootCAs *x509.CertPool // GlobalPublicCerts has certificates Console will use to serve clients GlobalPublicCerts []*x509.Certificate // GlobalTLSCertsManager custom TLS Manager for SNI support GlobalTLSCertsManager *certs.Manager )
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 (
ErrorGenericNotFound = errors.New("not found")
)
Functions ¶
func AuthenticationMiddleware ¶ added in v0.4.6
func DifferenceArrays ¶
DifferenceArrays returns the elements in `a` that aren't in `b`.
func ExpireSessionCookie ¶ added in v0.4.6
func FileExists ¶
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 GetConsoleSTSClient ¶ added in v0.4.6
GetConsoleSTSClient will initialize the console STS Client with Custom TLS Transport that with loads certs at .console/certs/CAs
func GetHostname ¶
func GetHostname() string
GetHostname gets console hostname set on env variable, default one or defined on run command
func GetParityInfo ¶ added in v0.3.26
func GetParityInfo(nodes int64, disksPerNode int64) (models.ParityResponse, error)
func GetSubnetLicense ¶ added in v0.5.0
func GetSubnetLicense() string
GetSubnetLicense returns the current subnet jwt license
func GetTLSHostname ¶ added in v0.3.11
func GetTLSHostname() string
GetTLSHostname gets console tls hostname set on env variable or default one
func GetTLSPort ¶ added in v0.3.11
func GetTLSPort() int
GetTLSPort gets console tls port set on env variable or default one
func GetTLSRedirect ¶ added in v0.6.0
func GetTLSRedirect() string
If GetTLSRedirect is set to true, then only allow HTTPS requests. Default is true.
func GetTenantServiceURL ¶ added in v0.3.25
GetTenantServiceURL gets tenant's service url with the proper scheme and port
func IsElementInArray ¶
IsElementInArray returns true if the string belongs to the slice
func NewAdminClient ¶
func NewAdminClient(url, accessKey, secretKey, sessionToken string) (*madmin.AdminClient, *probe.Error)
NewAdminClient gives a new madmin client interface
func NewAdminClientWithInsecure ¶ added in v0.3.5
func NewAdminClientWithInsecure(url, accessKey, secretKey, sessionToken string, insecure bool) (*madmin.AdminClient, *probe.Error)
NewAdminClientWithInsecure gives a new madmin client interface either secure or insecure based on parameter
func NewSessionCookieForConsole ¶ added in v0.4.6
func PrepareSTSClient ¶
PrepareSTSClient returns an http.Client with custom configurations need it by *credentials.STSAssumeRole custom configurations include the use of CA certificates
func RandomCharString ¶
func RefreshLicense ¶ added in v0.6.4
func RefreshLicense() error
RefreshLicense will check current subnet license and try to renew it
func UniqueKeys ¶
UniqueKeys returns an array without duplicated keys
Types ¶
type ConsoleCredentialsI ¶ added in v0.5.0
type ConsoleCredentialsI interface { Get() (credentials.Value, error) Expire() GetAccountAccessKey() string GetActions() []string }
ConsoleCredentialsI interface with all functions to be implemented by mock when testing, it should include all needed consoleCredentials.Login api calls that are used within this project.
type ConsoleWebsocket ¶
type ConsoleWebsocket interface {
// contains filtered or unexported methods
}
ConsoleWebsocket interface of a Websocket Client
type ConsoleWebsocketAdmin ¶
type ConsoleWebsocketAdmin interface {
// contains filtered or unexported methods
}
ConsoleWebsocketAdmin interface of a Websocket Client
type DataResult ¶ added in v0.5.0
type K8sClientI ¶ added in v0.3.19
type K8sClientI interface {
// contains filtered or unexported methods
}
K8sClientI interface with all functions to be implemented by mock when testing, it should include all K8sClientI respective api calls that are used within this project.
type LabelResponse ¶ added in v0.5.0
type LabelResults ¶ added in v0.5.0
type LabelResults struct { Label string Response LabelResponse }
type MCClient ¶ added in v0.3.1
type MCClient interface {
// contains filtered or unexported methods
}
MCClient 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 Metric ¶ added in v0.5.0
type Metric struct { Title string Type string Options MetricOptions Targets []Target }
type MetricOptions ¶ added in v0.5.0
type MetricOptions struct {
ReduceOptions ReduceOptions
}
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 OperatorClientI ¶ added in v0.3.19
type OperatorClientI interface { TenantDelete(ctx context.Context, namespace string, instanceName string, options metav1.DeleteOptions) error TenantGet(ctx context.Context, namespace string, instanceName string, options metav1.GetOptions) (*miniov2.Tenant, error) TenantPatch(ctx context.Context, namespace string, instanceName string, pt types.PatchType, data []byte, options metav1.PatchOptions) (*miniov2.Tenant, error) TenantList(ctx context.Context, namespace string, opts metav1.ListOptions) (*miniov2.TenantList, error) }
OperatorClientI interface with all functions to be implemented by mock when testing, it should include all OperatorClientI respective api calls that are used within this project.
type PromResp ¶ added in v0.5.0
type PromResp struct { Status string `json:"status"` Data PromRespData `json:"data"` }
type PromRespData ¶ added in v0.5.0
type PromRespData struct { ResultType string `json:"resultType"` Result []DataResult `json:"result"` }
type ReduceOptions ¶ added in v0.5.0
type ReduceOptions struct {
Calcs []string
}
type RemoteBucketResult ¶ added in v0.6.7
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/console.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 console API
func NewServer ¶
func NewServer(api *operations.ConsoleAPI) *Server
NewServer creates a new api console 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.ConsoleAPI)
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
type VersionState ¶ added in v0.6.4
type VersionState string
const ( VersionEnable VersionState = "enable" VersionSuspend = "suspend" )
type WSConn ¶
type WSConn interface {
// contains filtered or unexported methods
}
WSConn interface with all functions to be implemented by mock when testing, it should include all websocket.Conn respective api calls that are used within this project.
type WidgetLabel ¶ added in v0.5.0
type WidgetLabel struct {
Name string
}
Source Files ¶
- admin_arns.go
- admin_config.go
- admin_console.go
- admin_direct_csi.go
- admin_groups.go
- admin_heal.go
- admin_health_info.go
- admin_info.go
- admin_nodes.go
- admin_notification_endpoints.go
- admin_parity.go
- admin_policies.go
- admin_profiling.go
- admin_remote_buckets.go
- admin_service.go
- admin_subscription.go
- admin_tenants.go
- admin_tenants_helper.go
- admin_trace.go
- admin_users.go
- client-admin.go
- client.go
- config.go
- configure_console.go
- consts.go
- doc.go
- embedded_spec.go
- error.go
- integrations.go
- k8s_client.go
- minio_operator_mock.go
- operator_client.go
- resource_quota.go
- server.go
- tls.go
- user_account.go
- user_bucket_quota.go
- user_buckets.go
- user_buckets_events.go
- user_log_search.go
- user_login.go
- user_logout.go
- user_objects.go
- user_service_accounts.go
- user_session.go
- user_watch.go
- utils.go
- ws_handle.go