Documentation ¶
Overview ¶
Package helpers provides building blocks for routegen configs. These helpers are shared across multiple RouteGenerators.
Index ¶
- func MaybeAddDeadlines(c *RouteDeadlineConfiger, routeAction *routepb.RouteAction, ...)
- func MaybeAddHSTSHeader(c *RouteHSTSConfiger, route *routepb.Route)
- func MaybeAddOperationNameHeader(c *RouteOperationNameConfiger, route *routepb.Route, operation string)
- func MaybeAddRetryPolicy(c *RouteRetryConfiger, routeAction *routepb.RouteAction) error
- type BackendRouteGenerator
- type MethodCfg
- type RouteDeadlineConfiger
- type RouteHSTSConfiger
- type RouteMatchWrapper
- type RouteOperationNameConfiger
- type RouteRetryConfiger
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func MaybeAddDeadlines ¶
func MaybeAddDeadlines(c *RouteDeadlineConfiger, routeAction *routepb.RouteAction, deadline time.Duration, isStreaming bool)
MaybeAddDeadlines adds the generated deadline config to the route action.
func MaybeAddHSTSHeader ¶
func MaybeAddHSTSHeader(c *RouteHSTSConfiger, route *routepb.Route)
MaybeAddHSTSHeader adds the generated HSTS config to the route.
func MaybeAddOperationNameHeader ¶
func MaybeAddOperationNameHeader(c *RouteOperationNameConfiger, route *routepb.Route, operation string)
MaybeAddOperationNameHeader adds the generated operation name config to the route.
func MaybeAddRetryPolicy ¶
func MaybeAddRetryPolicy(c *RouteRetryConfiger, routeAction *routepb.RouteAction) error
MaybeAddRetryPolicy adds the generated Retry config to the route action.
Types ¶
type BackendRouteGenerator ¶
type BackendRouteGenerator struct { DisallowColonInWildcardPathSegment bool RetryCfg *RouteRetryConfiger HSTSCfg *RouteHSTSConfiger OperationNameCfg *RouteOperationNameConfiger DeadlineCfg *RouteDeadlineConfiger }
BackendRouteGenerator generates routes that forward request to the backend. (i.e. NO direct response routes are generated)
This should NOT be used directly. Use it via an abstraction like RemoteBackendRoute or LocalBackendRoute.
func NewBackendRouteGeneratorFromOPConfig ¶
func NewBackendRouteGeneratorFromOPConfig(opts options.ConfigGeneratorOptions) *BackendRouteGenerator
NewBackendRouteGeneratorFromOPConfig creates a BackendRouteGenerator from ESPv2 options.
func (*BackendRouteGenerator) GenRoutesForMethod ¶
func (r *BackendRouteGenerator) GenRoutesForMethod(methodCfg *MethodCfg, filterGens []filtergen.FilterGenerator) ([]*routepb.Route, error)
GenRoutesForMethod generates the route config for the given URI template.
Forked from `route_generator.go: makeRoute()`
type MethodCfg ¶
type MethodCfg struct { OperationName string BackendClusterName string HostRewrite string Deadline time.Duration IsStreaming bool HTTPPattern *httppattern.Pattern }
MethodCfg is all the config needed to generate routes for a single One Platform operation (RPC method).
type RouteDeadlineConfiger ¶
RouteDeadlineConfiger is a helper to configure deadlines and timeouts on backend routes.
func NewRouteDeadlineConfigerFromOPConfig ¶
func NewRouteDeadlineConfigerFromOPConfig(opts options.ConfigGeneratorOptions) *RouteDeadlineConfiger
NewRouteDeadlineConfigerFromOPConfig creates a RouteDeadlineConfiger from ESPv2 options.
func (*RouteDeadlineConfiger) CalcIdleTimeout ¶
func (c *RouteDeadlineConfiger) CalcIdleTimeout(deadline time.Duration, isStreaming bool) (time.Duration, time.Duration)
CalcIdleTimeout will return the correct idle timeout based on method properties.
Forked from `service_info.go`
type RouteHSTSConfiger ¶
type RouteHSTSConfiger struct{}
RouteHSTSConfiger is a helper to enable strict transport security, preventing downstream from protocol downgrades to HTTP.
func NewRouteHSTSConfigerFromOPConfig ¶
func NewRouteHSTSConfigerFromOPConfig(opts options.ConfigGeneratorOptions) *RouteHSTSConfiger
NewRouteHSTSConfigerFromOPConfig creates a RouteHSTSConfiger from ESPv2 options.
func (*RouteHSTSConfiger) MakeHSTSConfig ¶
func (c *RouteHSTSConfiger) MakeHSTSConfig() []*corepb.HeaderValueOption
MakeHSTSConfig creates the response headers to add to the route.
Forked from `route_generator.go`
type RouteMatchWrapper ¶
type RouteMatchWrapper struct { *routepb.RouteMatch UriTemplate string }
func MakePerMethodRouteMatchers ¶
func MakePerMethodRouteMatchers(httpRule *httppattern.Pattern, disallowColonInWildcardPathSegment bool) ([]*RouteMatchWrapper, error)
MakePerMethodRouteMatchers creates all route matchers for a single HTTP rule.
func MakeRouteMatchers ¶
func MakeRouteMatchers(httpRule *httppattern.Pattern, disallowColonInWildcardPathSegment bool) ([]*RouteMatchWrapper, error)
MakeRouteMatchers creates all route matchers for a single HTTP rule. Does not add on :method matchers.
type RouteOperationNameConfiger ¶
type RouteOperationNameConfiger struct {
GeneratedHeaderPrefix string
}
RouteOperationNameConfiger is a helper to add the ESPv2 operation name to the upstream request.
func NewRouteOperationNameConfigerFromOPConfig ¶
func NewRouteOperationNameConfigerFromOPConfig(opts options.ConfigGeneratorOptions) *RouteOperationNameConfiger
NewRouteOperationNameConfigerFromOPConfig creates a RouteOperationNameConfiger from ESPv2 options.
func (*RouteOperationNameConfiger) MakeOperationNameConfig ¶
func (c *RouteOperationNameConfiger) MakeOperationNameConfig(operation string) []*corepb.HeaderValueOption
MakeOperationNameConfig creates the response headers to add to the route.
Forked from `route_generator.go`
type RouteRetryConfiger ¶
type RouteRetryConfiger struct { RetryOns string RetryNum uint RetryOnStatusCodes string PerTryTimeout time.Duration }
RouteRetryConfiger is a helper to add backend retry policy to the route.
func NewRouteRetryConfigerFromOPConfig ¶
func NewRouteRetryConfigerFromOPConfig(opts options.ConfigGeneratorOptions) *RouteRetryConfiger
NewRouteRetryConfigerFromOPConfig creates a RouteRetryConfiger from ESPv2 options.
func (*RouteRetryConfiger) MakeRetryConfig ¶
func (c *RouteRetryConfiger) MakeRetryConfig() (*routepb.RetryPolicy, error)
MakeRetryConfig creates the backend retry config.
Forked from `service_info.go` and `route_generator.go`