Documentation
¶
Index ¶
- type Client
- type ClientOption
- func WithAuthenticateFirebaseIDTokenPath(x string) ClientOption
- func WithAuthenticateOIDCTokenPath(x string) ClientOption
- func WithAuthenticationTimeout(x time.Duration) ClientOption
- func WithAuthenticationURL(x *url.URL) ClientOption
- func WithAuthorizationTimeout(x time.Duration) ClientOption
- func WithAuthorizationURL(x *url.URL) ClientOption
- func WithAuthorizePath(x string) ClientOption
- func WithIdempotencyHeaderKey(x string) ClientOption
- func WithIdempotencyKeyTTL(x time.Duration) ClientOption
- func WithIdempotencyTimeout(x time.Duration) ClientOption
- func WithLoaded(x Loaded) ClientOption
- func WithUserIDHeaderKey(x string) ClientOption
- type ClientOptions
- type DefaultTool
- func (d *DefaultTool) AuthenticateFirebaseIDToken(ctx context.Context, next contract.HandlerFunc) contract.HandlerFunc
- func (d *DefaultTool) AuthenticateOIDCToken(ctx context.Context, next contract.HandlerFunc) contract.HandlerFunc
- func (d *DefaultTool) Chain(ctx context.Context, fns ...contract.MiddlewareFunc) contract.MiddlewareFunc
- func (d *DefaultTool) CheckHeaders(ctx context.Context, next contract.HandlerFunc) contract.HandlerFunc
- func (d *DefaultTool) CleanURLPath(ctx context.Context, next contract.HandlerFunc) contract.HandlerFunc
- func (d *DefaultTool) EnforceHTTPS(ctx context.Context, next contract.HandlerFunc) contract.HandlerFunc
- func (d *DefaultTool) Gzip(ctx context.Context, next contract.HandlerFunc) contract.HandlerFunc
- func (d *DefaultTool) IdempotentPOST(ctx context.Context, next contract.HandlerFunc) contract.HandlerFunc
- func (d *DefaultTool) RequireOwner(ctx context.Context, next contract.HandlerFunc) contract.HandlerFunc
- func (d *DefaultTool) RequireReader(ctx context.Context, next contract.HandlerFunc) contract.HandlerFunc
- func (d *DefaultTool) RequireWriter(ctx context.Context, next contract.HandlerFunc) contract.HandlerFunc
- type Dependencies
- type Loaded
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Client ¶
type Client interface {
contract.MiddlewareOperator
}
func NewClient ¶
func NewClient(d Dependencies, opts ClientOptions) (Client, error)
type ClientOption ¶
type ClientOption func(*ClientOptions)
func WithAuthenticateFirebaseIDTokenPath ¶ added in v0.1.120
func WithAuthenticateFirebaseIDTokenPath(x string) ClientOption
func WithAuthenticateOIDCTokenPath ¶ added in v0.1.120
func WithAuthenticateOIDCTokenPath(x string) ClientOption
func WithAuthenticationTimeout ¶
func WithAuthenticationTimeout(x time.Duration) ClientOption
func WithAuthenticationURL ¶ added in v0.1.120
func WithAuthenticationURL(x *url.URL) ClientOption
func WithAuthorizationTimeout ¶
func WithAuthorizationTimeout(x time.Duration) ClientOption
func WithAuthorizationURL ¶
func WithAuthorizationURL(x *url.URL) ClientOption
func WithAuthorizePath ¶ added in v0.1.118
func WithAuthorizePath(x string) ClientOption
func WithIdempotencyHeaderKey ¶
func WithIdempotencyHeaderKey(x string) ClientOption
func WithIdempotencyKeyTTL ¶
func WithIdempotencyKeyTTL(x time.Duration) ClientOption
func WithIdempotencyTimeout ¶
func WithIdempotencyTimeout(x time.Duration) ClientOption
func WithLoaded ¶ added in v0.1.163
func WithLoaded(x Loaded) ClientOption
func WithUserIDHeaderKey ¶
func WithUserIDHeaderKey(x string) ClientOption
type ClientOptions ¶
type ClientOptions struct {
Loaded
AuthorizePath string
AuthenticateFirebaseIDTokenPath string
AuthenticateOIDCTokenPath string
IdempotencyTimeout time.Duration
IdempotencyKeyTTL time.Duration
AuthorizationTimeout time.Duration
AuthenticationTimeout time.Duration
AuthorizationURL *url.URL
AuthenticationURL *url.URL
}
func ApplyClientOptions ¶
func ApplyClientOptions(opts *ClientOptions, modifiers ...ClientOption) ClientOptions
type DefaultTool ¶ added in v0.1.24
func NewTool ¶
func NewTool(c Client, opts contract.ToolOptions[Client]) *DefaultTool
func (*DefaultTool) AuthenticateFirebaseIDToken ¶ added in v0.1.24
func (d *DefaultTool) AuthenticateFirebaseIDToken(ctx context.Context, next contract.HandlerFunc) contract.HandlerFunc
AuthenticateFirebaseIDToken validates a Firebase ID token.
func (*DefaultTool) AuthenticateOIDCToken ¶ added in v0.1.24
func (d *DefaultTool) AuthenticateOIDCToken(ctx context.Context, next contract.HandlerFunc) contract.HandlerFunc
AuthenticateOIDCToken validates an OIDC token.
func (*DefaultTool) Chain ¶ added in v0.1.24
func (d *DefaultTool) Chain(ctx context.Context, fns ...contract.MiddlewareFunc) contract.MiddlewareFunc
Chain combines multiple middleware into a single handler.
func (*DefaultTool) CheckHeaders ¶ added in v0.1.24
func (d *DefaultTool) CheckHeaders(ctx context.Context, next contract.HandlerFunc) contract.HandlerFunc
CheckHeaders ensures essential headers are present and sets default ones.
func (*DefaultTool) CleanURLPath ¶ added in v0.1.24
func (d *DefaultTool) CleanURLPath(ctx context.Context, next contract.HandlerFunc) contract.HandlerFunc
CleanURLPath ensures that URL paths are clean and well-formed.
func (*DefaultTool) EnforceHTTPS ¶ added in v0.1.24
func (d *DefaultTool) EnforceHTTPS(ctx context.Context, next contract.HandlerFunc) contract.HandlerFunc
EnforceHTTPS redirects HTTP requests to HTTPS unless running locally.
func (*DefaultTool) Gzip ¶ added in v0.1.24
func (d *DefaultTool) Gzip(ctx context.Context, next contract.HandlerFunc) contract.HandlerFunc
Gzip compresses HTTP responses when supported by the client.
func (*DefaultTool) IdempotentPOST ¶ added in v0.1.24
func (d *DefaultTool) IdempotentPOST(ctx context.Context, next contract.HandlerFunc) contract.HandlerFunc
IdempotentPOST ensures a POST request is only processed once.
func (*DefaultTool) RequireOwner ¶ added in v0.1.24
func (d *DefaultTool) RequireOwner(ctx context.Context, next contract.HandlerFunc) contract.HandlerFunc
RequireOwner enforces the owner permission on the request.
func (*DefaultTool) RequireReader ¶ added in v0.1.24
func (d *DefaultTool) RequireReader(ctx context.Context, next contract.HandlerFunc) contract.HandlerFunc
RequireReader enforces the reader permission on the request.
func (*DefaultTool) RequireWriter ¶ added in v0.1.24
func (d *DefaultTool) RequireWriter(ctx context.Context, next contract.HandlerFunc) contract.HandlerFunc
RequireWriter enforces the writer permission on the request.
type Dependencies ¶
type Dependencies struct {
C contract.CacheOperator
RS contract.HTTPResponder
HR contract.HTTPRequester
HU contract.HTTPUtil
HD contract.HTTPDoer
}