Documentation ¶
Index ¶
- Constants
- Variables
- func GetDefaultHoverflyHTTPClient(tlsVerification bool, upstreamProxy string) *http.Client
- func NewProxy(hoverfly *Hoverfly) *goproxy.ProxyHttpServer
- func NewWebserverProxy(hoverfly *Hoverfly) *goproxy.ProxyHttpServer
- type AdminApi
- type Configuration
- type Fields
- type Hoverfly
- func (this *Hoverfly) AddDiff(requestView v2.SimpleRequestDefinitionView, diffReport v2.DiffReport)
- func (this Hoverfly) ApplyMiddleware(pair models.RequestResponsePair) (models.RequestResponsePair, error)
- func (this *Hoverfly) ClearDiff()
- func (this *Hoverfly) ClearState()
- func (hf *Hoverfly) DeleteResponseDelays()
- func (this *Hoverfly) DeleteSimulation()
- func (hf *Hoverfly) DoRequest(request *http.Request) (*http.Response, error)
- func (hf Hoverfly) FlushCache() error
- func (this Hoverfly) GetCache() (v2.CacheView, error)
- func (this Hoverfly) GetDestination() string
- func (this *Hoverfly) GetDiff() map[v2.SimpleRequestDefinitionView][]v2.DiffReport
- func (hf Hoverfly) GetFilteredSimulation(urlPattern string) (v2.SimulationViewV5, error)
- func (hf Hoverfly) GetMiddleware() (string, string, string)
- func (this Hoverfly) GetMode() v2.ModeView
- func (hf Hoverfly) GetRequestCacheCount() (int, error)
- func (hf *Hoverfly) GetResponse(requestDetails models.RequestDetails) (*models.ResponseDetails, *matching.MatchingError)
- func (hf Hoverfly) GetSimulation() (v2.SimulationViewV5, error)
- func (this *Hoverfly) GetState() map[string]string
- func (hf Hoverfly) GetStats() metrics.Stats
- func (this Hoverfly) GetUpstreamProxy() string
- func (this Hoverfly) GetVersion() string
- func (hf *Hoverfly) Import(uri string) error
- func (hf *Hoverfly) ImportFromDisk(path string) error
- func (hf *Hoverfly) ImportFromURL(url string) error
- func (this Hoverfly) IsMiddlewareSet() bool
- func (this Hoverfly) IsWebServer() bool
- func (this *Hoverfly) PatchState(toPatch map[string]string)
- func (this *Hoverfly) PutSimulation(simulationView v2.SimulationViewV5) v2.SimulationImportResult
- func (hf *Hoverfly) Save(request *models.RequestDetails, response *models.ResponseDetails, ...) error
- func (hf *Hoverfly) SetDestination(destination string) (err error)
- func (hf *Hoverfly) SetMiddleware(binary, script, remote string) error
- func (this *Hoverfly) SetMode(mode string) error
- func (this *Hoverfly) SetModeWithArguments(modeView v2.ModeView) error
- func (hf *Hoverfly) SetResponseDelays(payloadView v1.ResponseDelayPayloadView) error
- func (this *Hoverfly) SetState(state map[string]string)
- func (hf *Hoverfly) StartProxy() error
- func (hf *Hoverfly) StopProxy()
- type StoppableListener
- type StoreLogsHook
Constants ¶
const ( HoverflyAuthEnabledEV = "HoverflyAuthEnabled" HoverflySecretEV = "HoverflySecret" HoverflyTokenExpirationEV = "HoverflyTokenExpiration" HoverflyAdminPortEV = "AdminPort" HoverflyProxyPortEV = "ProxyPort" HoverflyDBEV = "HoverflyDB" HoverflyMiddlewareEV = "HoverflyMiddleware" HoverflyTLSVerification = "HoverflyTlsVerification" HoverflyAdminUsernameEV = "HoverflyAdmin" HoverflyAdminPasswordEV = "HoverflyAdminPass" HoverflyImportRecordsEV = "HoverflyImport" HoverflyUpstreamProxyPortEV = "UpstreamProxy" )
Environment variables
const DefaultAdminPort = "8888"
DefaultAdminPort - default admin interface port
const DefaultDatabasePath = "requests.db"
DefaultDatabasePath - default database name that will be created or used by Hoverfly
const DefaultJWTExpirationDelta = 1 * 24 * 60 * 60
DefaultJWTExpirationDelta - default token expiration if environment variable is no provided
const DefaultListenOnHost = "127.0.0.1"
const DefaultPort = "8500"
DefaultPort - default proxy port
const URL string = `` /* 321-byte string literal not displayed */
URL is regexp to match http urls
Variables ¶
var ProxyAuthorizationHeader string
Functions ¶
func GetDefaultHoverflyHTTPClient ¶ added in v0.9.0
func NewProxy ¶
func NewProxy(hoverfly *Hoverfly) *goproxy.ProxyHttpServer
Creates goproxy.ProxyHttpServer and configures it to be used as a proxy for Hoverfly goproxy is given handlers that use the Hoverfly request processing
func NewWebserverProxy ¶
func NewWebserverProxy(hoverfly *Hoverfly) *goproxy.ProxyHttpServer
Creates goproxy.ProxyHttpServer and configures it to be used as a webserver for Hoverfly goproxy is given a non proxy handler that uses the Hoverfly request processing
Types ¶
type AdminApi ¶ added in v0.9.0
type AdminApi struct{}
func (*AdminApi) StartAdminInterface ¶ added in v0.9.0
Starts the Admin API on a new HTTP port. Port is chosen by hoverfly.Cfg.AdminPort.
type Configuration ¶
type Configuration struct { AdminPort string ProxyPort string ListenOnHost string Mode string Destination string Middleware middleware.Middleware DatabasePath string Webserver bool TLSVerification bool UpstreamProxy string Verbose bool DisableCache bool SecretKey []byte JWTExpirationDelta int AuthEnabled bool ProxyAuthorizationHeader string HttpsOnly bool PlainHttpTunneling bool ProxyControlWG sync.WaitGroup // contains filtered or unexported fields }
Configuration - initial structure of configuration
func InitSettings ¶
func InitSettings() *Configuration
InitSettings gets and returns initial configuration from env variables or sets defaults
func (*Configuration) GetMode ¶
func (c *Configuration) GetMode() string
GetMode - provides safe way to get current mode
func (*Configuration) SetMode ¶
func (c *Configuration) SetMode(mode string)
SetMode - provides safe way to set new mode
func (*Configuration) SetUpstreamProxy ¶ added in v0.10.1
func (c *Configuration) SetUpstreamProxy(upstreamProxy string)
type Hoverfly ¶
type Hoverfly struct { CacheMatcher matching.CacheMatcher Authentication backends.Authentication HTTP *http.Client Cfg *Configuration Counter *metrics.CounterByMode Proxy *goproxy.ProxyHttpServer SL *StoppableListener Simulation *models.Simulation StoreLogsHook *StoreLogsHook Journal *journal.Journal // contains filtered or unexported fields }
Hoverfly provides access to hoverfly - updating/starting/stopping proxy, http client and configuration, cache access
func GetNewHoverfly ¶
func GetNewHoverfly(cfg *Configuration, requestCache cache.Cache, authentication backends.Authentication) *Hoverfly
GetNewHoverfly returns a configured ProxyHttpServer and DBClient
func NewHoverfly ¶ added in v0.11.2
func NewHoverfly() *Hoverfly
func NewHoverflyWithConfiguration ¶ added in v0.11.0
func NewHoverflyWithConfiguration(cfg *Configuration) *Hoverfly
func (*Hoverfly) AddDiff ¶ added in v0.16.0
func (this *Hoverfly) AddDiff(requestView v2.SimpleRequestDefinitionView, diffReport v2.DiffReport)
func (Hoverfly) ApplyMiddleware ¶ added in v0.10.0
func (this Hoverfly) ApplyMiddleware(pair models.RequestResponsePair) (models.RequestResponsePair, error)
func (*Hoverfly) ClearState ¶ added in v0.14.0
func (this *Hoverfly) ClearState()
func (*Hoverfly) DeleteResponseDelays ¶ added in v0.9.0
func (hf *Hoverfly) DeleteResponseDelays()
func (*Hoverfly) DeleteSimulation ¶ added in v0.9.0
func (this *Hoverfly) DeleteSimulation()
func (*Hoverfly) DoRequest ¶ added in v0.10.0
DoRequest - performs request and returns response that should be returned to client and error
func (Hoverfly) FlushCache ¶ added in v0.11.0
func (Hoverfly) GetDestination ¶ added in v0.9.0
func (*Hoverfly) GetDiff ¶ added in v0.16.0
func (this *Hoverfly) GetDiff() map[v2.SimpleRequestDefinitionView][]v2.DiffReport
func (Hoverfly) GetFilteredSimulation ¶ added in v0.15.1
func (hf Hoverfly) GetFilteredSimulation(urlPattern string) (v2.SimulationViewV5, error)
func (Hoverfly) GetMiddleware ¶ added in v0.9.0
func (Hoverfly) GetRequestCacheCount ¶ added in v0.9.0
func (*Hoverfly) GetResponse ¶ added in v0.10.0
func (hf *Hoverfly) GetResponse(requestDetails models.RequestDetails) (*models.ResponseDetails, *matching.MatchingError)
GetResponse returns stored response from cache
func (Hoverfly) GetSimulation ¶ added in v0.9.0
func (hf Hoverfly) GetSimulation() (v2.SimulationViewV5, error)
func (Hoverfly) GetUpstreamProxy ¶ added in v0.10.1
func (Hoverfly) GetVersion ¶ added in v0.10.1
func (*Hoverfly) Import ¶
Import is a function that based on input decides whether it is a local resource or whether it should fetch it from remote server. It then imports given payload into the database or returns an error
func (*Hoverfly) ImportFromDisk ¶
ImportFromDisk - takes one string value and tries to open a file, then parse it into recordedRequests structure (which is default format in which Hoverfly exports captured requests) and imports those requests into the database
func (*Hoverfly) ImportFromURL ¶
ImportFromURL - takes one string value and tries connect to a remote server, then parse response body into recordedRequests structure (which is default format in which Hoverfly exports captured requests) and imports those requests into the database
func (Hoverfly) IsMiddlewareSet ¶ added in v0.10.0
func (Hoverfly) IsWebServer ¶ added in v0.15.0
func (*Hoverfly) PatchState ¶ added in v0.14.0
func (*Hoverfly) PutSimulation ¶ added in v0.9.0
func (this *Hoverfly) PutSimulation(simulationView v2.SimulationViewV5) v2.SimulationImportResult
func (*Hoverfly) Save ¶ added in v0.10.0
func (hf *Hoverfly) Save(request *models.RequestDetails, response *models.ResponseDetails, headersWhitelist []string, recordSequence bool) error
save gets request fingerprint, extracts request body, status code and headers, then saves it to cache
func (*Hoverfly) SetDestination ¶ added in v0.9.0
UpdateDestination - updates proxy with new destination regexp
func (*Hoverfly) SetMiddleware ¶ added in v0.8.0
func (*Hoverfly) SetModeWithArguments ¶ added in v0.11.0
func (*Hoverfly) SetResponseDelays ¶ added in v0.9.0
func (hf *Hoverfly) SetResponseDelays(payloadView v1.ResponseDelayPayloadView) error
func (*Hoverfly) StartProxy ¶
StartProxy - starts proxy with current configuration, this method is non blocking.
type StoppableListener ¶
type StoppableListener struct { *net.TCPListener // contains filtered or unexported fields }
StoppableListener - wrapper for tcp listener that can stop
func NewStoppableListener ¶
func NewStoppableListener(l net.Listener) (*StoppableListener, error)
NewStoppableListener returns new StoppableListener listener
type StoreLogsHook ¶ added in v0.11.0
func NewStoreLogsHook ¶ added in v0.11.0
func NewStoreLogsHook() *StoreLogsHook
func (*StoreLogsHook) Fire ¶ added in v0.11.0
func (hook *StoreLogsHook) Fire(entry *logrus.Entry) error
func (StoreLogsHook) Levels ¶ added in v0.11.0
func (hook StoreLogsHook) Levels() []logrus.Level