Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type FabricBrokerConfig ¶
type FabricBrokerConfig struct {
FabricEndpoint string `json:"fabric_endpoint"` // URI to WebSocket endpoint
EndpointConfig *bus.EndpointConfig `json:"endpoint_config"` // STOMP configuration
}
FabricBrokerConfig defines the endpoint for WebSocket as well as detailed endpoint configuration
type NoDirFileSystem ¶
type NoDirFileSystem struct {
// contains filtered or unexported fields
}
type PlatformServer ¶
type PlatformServer interface {
StartServer(syschan chan os.Signal) // start server
StopServer() // stop server
RegisterService(svc service.FabricService, svcChannel string) error // register a new service at given channel
SetHttpChannelBridge(bridgeConfig *service.RESTBridgeConfig) // set up a REST bridge for a service
SetStaticRoute(prefix, fullpath string) // set up a static content route
CustomizeTLSConfig(tls *tls.Config) error // used to replace default tls.Config for HTTP server with a custom config
GetRestBridgeSubRoute(uri, method string) (*mux.Route, error) // get *mux.Route that maps to the provided uri and method
GetMiddlewareManager() middleware.MiddlewareManager // get middleware manager
}
PlatformServer exposes public API methods that control the behavior of the Plank instance.
func NewPlatformServer ¶
func NewPlatformServer(config *PlatformServerConfig) PlatformServer
NewPlatformServer configures and returns a new platformServer instance
func NewPlatformServerFromConfig ¶
func NewPlatformServerFromConfig(configPath string) (PlatformServer, error)
NewPlatformServerFromConfig returns a new instance of PlatformServer based on the config JSON file provided as configPath
type PlatformServerConfig ¶
type PlatformServerConfig struct {
RootDir string `json:"root_dir"` // root directory the server should base itself on
StaticDir []string `json:"static_dir"` // static content folders that HTTP server should serve
SpaConfig *SpaConfig `json:"spa_config"` // single page application configuration
Host string `json:"host"` // hostname for the server
Port int `json:"port"` // port for the server
LogConfig *utils.LogConfig `json:"log_config"` // log configuration (plank, http access and error logs)
FabricConfig *FabricBrokerConfig `json:"fabric_config"` // fabric (websocket) configuration
TLSCertConfig *TLSCertConfig `json:"tls_config"` // TLS certificate configuration
EnablePrometheus bool `json:"enable_prometheus"` // whether to enable Prometheus for runtime metrics
Debug bool `json:"debug"` // enable debug logging
NoBanner bool `json:"no_banner"` // start server without displaying the banner
ShutdownTimeoutInMinutes time.Duration `json:"shutdown_timeout_in_minutes"` // graceful server shutdown timeout in minutes
RestBridgeTimeoutInMinutes time.Duration `json:"rest_bridge_timeout_in_minutes"` // rest bridge timeout in minutes
}
PlatformServerConfig holds all the core configuration needed for the functionality of Plank
func CreateServerConfig ¶
func CreateServerConfig() (*PlatformServerConfig, error)
CreateServerConfig creates a new instance of PlatformServerConfig and returns the pointer to it.
func CreateServerConfigForCobraCommand ¶
func CreateServerConfigForCobraCommand(cmd *cobra.Command) (*PlatformServerConfig, error)
CreateServerConfigForCobraCommand performs the same as CreateServerConfig but loads the flags to the provided cobra Command's *pflag.FlagSet instead of the global FlagSet instance.
type SpaConfig ¶
type SpaConfig struct {
RootFolder string `json:"root_folder"` // location where Plank will serve SPA
BaseUri string `json:"base_uri"` // base URI for the SPA
StaticAssets []string `json:"static_assets"` // locations for static assets used by the SPA
}
SpaConfig shorthand for SinglePageApplication Config is used to configure routes for your SPAs like Angular or React. for example if your app index.html is served at /app and static contents like JS/CSS are served from /app/static, BaseUri can be set to /app and StaticAssets to "/app/assets". see config.json for details.
func NewSpaConfig ¶
NewSpaConfig takes location to where the SPA content is as an input and returns a sanitized instance of *SpaConfig.
type TLSCertConfig ¶
type TLSCertConfig struct {
CertFile string `json:"cert_file"` // path to certificate file
KeyFile string `json:"key_file"` // path to private key file
SkipCertificateValidation bool `json:"skip_certificate_validation"` // whether to skip certificate validation (useful for self-signed cert)
}
TLSCertConfig wraps around key information for TLS configuration