Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewHandler ¶
func NewHandler( registry funcie.ApplicationRegistry, appClient ApplicationClient, consumer funcie.Consumer, hostTranslator HostTranslator, ) transports.MessageHandler
NewHandler creates a new Handler that can register and unregister applications and forward requests.
Types ¶
type ApplicationClient ¶
type ApplicationClient interface {
// ProcessRequest sends a request from the server bastion to the client.
ProcessRequest(ctx context.Context, application funcie.Application, request *funcie.Message) (*funcie.Response, error)
}
ApplicationClient allows communication between the client bastion and the client application.
func NewHTTPApplicationClient ¶
func NewHTTPApplicationClient(client *http.Client) ApplicationClient
NewHTTPApplicationClient creates a new ApplicationClient that uses the given HttpClient to communicate with the client application.
type Config ¶
type Config struct {
// RedisAddress is the address of the Redis server.
RedisAddress string `json:"redisAddress"`
// ListenAddress is the address to listen on for client requests.
ListenAddress string `json:"listenAddress"`
// BaseChannelName is the base name of the Redis channel keys to use.
BaseChannelName string `json:"baseChannelName"`
}
func NewConfigFromEnvironment ¶
func NewConfigFromEnvironment() *Config
NewConfigFromEnvironment creates a new Config from environment variables. The following environment variables are used:
FUNCIE_REDIS_ADDRESS (required) FUNCIE_LISTEN_ADDRESS (required) FUNCIE_BASE_CHANNEL_NAME (optional)
type HostTranslator ¶ added in v0.1.0
type HostTranslator interface {
// IsHostTranslationRequired indicates whether we need to translate localhost requests to an alternative host.
// For example, if we're running in MacOS, we need to translate localhost to host.docker.internal.
IsHostTranslationRequired(ctx context.Context) (bool, error)
// TranslateLocalHostToResolvedHost translates a local host (...such as localhost) to the resolved host.
// For example, if we're running in MacOS, this could translate localhost to host.docker.internal.
// If the host does not need to be translated, the original host is returned.
// This also handles scenarios where the host is an IP address, such as 0.0.0.0 or 127.0.0.1.
TranslateLocalHostToResolvedHost(ctx context.Context, host string) (string, error)
}
HostTranslator is an interface for translating hosts from an entered host to a resolved host. For example, this could translate local or unspecified IPs to the docker host when running in MacOS.
func NewDockerHostTranslator ¶ added in v0.1.0
func NewDockerHostTranslator() HostTranslator
Click to show internal directories.
Click to hide internal directories.