Documentation ¶
Overview ¶
Package http implements the HTTP service for Flow.
Index ¶
Constants ¶
const ServiceName = "http"
ServiceName defines the name used for the HTTP service.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Arguments ¶ added in v0.37.0
type Arguments struct {
TLS *TLSArguments `river:"tls,block,optional"`
}
Arguments holds runtime settings for the HTTP service.
type ClientAuth ¶ added in v0.37.0
type ClientAuth tls.ClientAuthType
ClientAuth configures the type of TLS client authentication to use.
func (ClientAuth) MarshalText ¶ added in v0.37.0
func (c ClientAuth) MarshalText() ([]byte, error)
MarshalText marshals the ID of a client auth type to its name.
func (*ClientAuth) UnmarshalText ¶ added in v0.37.0
func (c *ClientAuth) UnmarshalText(text []byte) error
UnmarshalText unmarshals the name of a client auth type to its ID.
type Component ¶ added in v0.36.0
type Component interface { component.Component // Handler should return a valid HTTP handler for the component. // All requests to the component will have the path trimmed such that the component is at the root. // For example, f a request is made to `/component/{id}/metrics`, the component // will receive a request to just `/metrics`. Handler() http.Handler }
Component is a Flow component which also contains a custom HTTP handler.
type Data ¶
type Data struct { // Address that the HTTP service is configured to listen on. HTTPListenAddr string // Address that the HTTP service is configured to listen on for in-memory // traffic when [DialFunc] is used to establish a connection. MemoryListenAddr string // BaseHTTPPath is the base path where component HTTP routes are exposed. BaseHTTPPath string // DialFunc is a function which establishes in-memory network connection when // address is MemoryListenAddr. If address is not MemoryListenAddr, DialFunc // establishes an outbound network connection. DialFunc func(ctx context.Context, network, address string) (net.Conn, error) }
Data includes information associated with the HTTP service.
func (Data) HTTPPathForComponent ¶ added in v0.36.0
HTTPPathForComponent returns the full HTTP path for a given global component ID.
type Options ¶
type Options struct { Logger log.Logger // Where to send logs. Tracer trace.TracerProvider // Where to send traces. Gatherer prometheus.Gatherer // Where to collect metrics from. ReadyFunc func() bool ReloadFunc func() (*flow.Source, error) HTTPListenAddr string // Address to listen for HTTP traffic on. MemoryListenAddr string // Address to accept in-memory traffic on. EnablePProf bool // Whether pprof endpoints should be exposed. }
Options are used to configure the HTTP service. Options are constant for the lifetime of the HTTP service.
type Service ¶
type Service struct {
// contains filtered or unexported fields
}
func (*Service) Data ¶
Data returns an instance of Data. Calls to Data are cachable by the caller.
Data must only be called after parsing command-line flags.
func (*Service) Definition ¶
func (s *Service) Definition() service.Definition
Definition returns the definition of the HTTP service.
type ServiceHandler ¶ added in v0.36.0
type ServiceHandler interface { service.Service // ServiceHandler returns the base route and HTTP handlers to register for // the provided service. // // This method is only called for services that declare a dependency on // the http service. // // The http service prioritizes longer base routes. Given two base routes of // /foo and /foo/bar, an HTTP URL of /foo/bar/baz will be routed to the // longer base route (/foo/bar). ServiceHandler(host service.Host) (base string, handler http.Handler) }
ServiceHandler is a Service which exposes custom HTTP handlers.
type TLSArguments ¶ added in v0.37.0
type TLSArguments struct { Cert string `river:"cert_pem,attr,optional"` CertFile string `river:"cert_file,attr,optional"` Key rivertypes.Secret `river:"key_pem,attr,optional"` KeyFile string `river:"key_file,attr,optional"` ClientCA string `river:"client_ca_pem,attr,optional"` ClientCAFile string `river:"client_ca_file,attr,optional"` ClientAuth ClientAuth `river:"client_auth_type,attr,optional"` CipherSuites []TLSCipher `river:"cipher_suites,attr,optional"` CurvePreferences []TLSCurve `river:"curve_preferences,attr,optional"` MinVersion TLSVersion `river:"min_version,attr,optional"` MaxVersion TLSVersion `river:"max_version,attr,optional"` // Windows Certificate Filter WindowsFilter *WindowsCertificateFilter `river:"windows_certificate_filter,block,optional"` }
TLSArguments configures TLS settings for the HTTP service.
func (*TLSArguments) Validate ¶ added in v0.37.0
func (args *TLSArguments) Validate() error
Validate returns whether args is valid.
type TLSCipher ¶ added in v0.37.0
type TLSCipher uint16
TLSCipher holds the ID of a TLS cipher suite.
func (TLSCipher) MarshalText ¶ added in v0.37.0
MarshalText marshals the ID of a cipher suite to its name.
func (*TLSCipher) UnmarshalText ¶ added in v0.37.0
UnmarshalText unmarshals the name of a cipher suite to its ID.
type TLSCurve ¶ added in v0.37.0
TLSCurve holds the ID of a tls.CurveID.
func (TLSCurve) MarshalText ¶ added in v0.37.0
MarshalText marshals the ID of a curve to its name.
func (*TLSCurve) UnmarshalText ¶ added in v0.37.0
UnmarshalText unmarshals the name of a curve to its ID.
type TLSVersion ¶ added in v0.37.0
type TLSVersion uint16
TLSVersion holds the ID of a TLS version.
func (TLSVersion) MarshalText ¶ added in v0.37.0
func (v TLSVersion) MarshalText() ([]byte, error)
MarshalText marshals the ID of a TLS version to its name.
func (*TLSVersion) UnmarshalText ¶ added in v0.37.0
func (v *TLSVersion) UnmarshalText(text []byte) error
UnmarshalText unmarshals the name of a TLS version to its ID.
type WindowsCertificateFilter ¶ added in v0.37.0
type WindowsCertificateFilter struct { Server *WindowsServerFilter `river:"server,block"` Client *WindowsClientFilter `river:"client,block"` }
WindowsCertificateFilter represents the configuration for accessing the Windows store
type WindowsClientFilter ¶ added in v0.37.0
type WindowsClientFilter struct { IssuerCommonNames []string `river:"issuer_common_names,attr,optional"` SubjectRegEx string `river:"subject_regex,attr,optional"` TemplateID string `river:"template_id,attr,optional"` }
WindowsClientFilter is used to select a client root CA certificate
type WindowsServerFilter ¶ added in v0.37.0
type WindowsServerFilter struct { Store string `river:"store,attr,optional"` SystemStore string `river:"system_store,attr,optional"` IssuerCommonNames []string `river:"issuer_common_names,attr,optional"` TemplateID string `river:"template_id,attr,optional"` RefreshInterval time.Duration `river:"refresh_interval,attr,optional"` }
WindowsServerFilter is used to select a server certificate
func (*WindowsServerFilter) SetToDefault ¶ added in v0.37.0
func (wcf *WindowsServerFilter) SetToDefault()
SetToDefault sets the default for WindowsServerFilter