Documentation ¶
Index ¶
- func ErrBadRequest(c echo.Context, err error) error
- func ErrConflict(c echo.Context, err error) error
- func ErrEntityTooLarge(c echo.Context, err error) error
- func ErrForbidden(c echo.Context, err error) error
- func ErrNotFound(c echo.Context, err error) error
- func ErrResponse(c echo.Context, status int, msg string) error
- func ErrUnauthorized(c echo.Context, err error) error
- func ErrorHandler(err error, c echo.Context)
- func JSON(c echo.Context, status int, i interface{}) error
- func NewHandler(s *Server) http.Handler
- func NewPubSubHandler(s *PubSubServer) http.Handler
- type Access
- type AccessAction
- type AccessContext
- type AccessFn
- type AccessResource
- type Fire
- type LogLevel
- type Logger
- type MemCache
- type PubSub
- type PubSubServer
- type Server
- type Tasks
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ErrEntityTooLarge ¶
ErrEntityTooLarge response.
func ErrResponse ¶
ErrResponse is a generate error response.
func ErrUnauthorized ¶
ErrUnauthorized response.
func ErrorHandler ¶
func ErrorHandler(err error, c echo.Context)
ErrorHandler returns error handler that returns in the format: {"error": {"message": "error message", status: 500}}".
func NewHandler ¶
NewHandler returns http.Handler for Server.
func NewPubSubHandler ¶
func NewPubSubHandler(s *PubSubServer) http.Handler
NewPubSubHandler returns http.Handler for Server.
Types ¶
type Access ¶
type Access struct { Allow bool Message string // StatusCode (optional) for custom HTTP status (if denied) StatusCode int }
Access returns whether to allow or deny.
func AccessDenyErrored ¶
AccessDenyErrored deny access (an error occurred trying to determine access).
func AccessDenyTooManyRequests ¶
AccessDenyTooManyRequests deny access (too many requests).
type AccessAction ¶
type AccessAction string
AccessAction is action for access control.
const ( // Put action. Put AccessAction = "put" // Post action. Post AccessAction = "post" )
type AccessContext ¶
AccessContext is context for request.
type AccessFn ¶
type AccessFn func(c AccessContext, resource AccessResource, action AccessAction) Access
AccessFn returns access to resource. If error message begins with an integer, it will use that as the http status code. For example, "429: too many requests".
type AccessResource ¶
type AccessResource string
AccessResource is resource for access control.
const ( // SigchainResource for sigchain. SigchainResource AccessResource = "sigchain" )
func (AccessResource) String ¶
func (r AccessResource) String() string
type Fire ¶
type Fire interface { ds.DocumentStore ds.Changes }
Fire defines interface for remote store (like Firestore).
type Logger ¶
type Logger interface { Debugf(format string, args ...interface{}) Infof(format string, args ...interface{}) Errorf(format string, args ...interface{}) }
Logger compatible with GCP.
type MemCache ¶
type MemCache interface { // Get returns value at key. Get(ctx context.Context, k string) (string, error) // Put puts a value at key. Set(ctx context.Context, k string, v string) error // Delete key. Delete(ctx context.Context, k string) error // Expire key. Expire(ctx context.Context, k string, dt time.Duration) error // Increment value at key. Increment(ctx context.Context, k string) (int64, error) }
MemCache defines interface for memcache. Used to prevent nonce re-use for authenticated requests.
func NewMemTestCache ¶
NewMemTestCache returns in memory MemCache (for testing).
type PubSub ¶
type PubSub interface { Publish(ctx context.Context, name string, b []byte) error Subscribe(ctx context.Context, name string, receiveFn func(b []byte)) error }
PubSub ...
type PubSubServer ¶
type PubSubServer struct { URL string // contains filtered or unexported fields }
PubSubServer implements PubSub.
func NewPubSubServer ¶
func NewPubSubServer(pubSub PubSub, mc MemCache, logger Logger) *PubSubServer
NewPubSubServer creates a PubSubServer.
func (*PubSubServer) AddRoutes ¶
func (s *PubSubServer) AddRoutes(e *echo.Echo)
AddRoutes adds routes to an Echo instance.
func (*PubSubServer) SetNowFn ¶
func (s *PubSubServer) SetNowFn(nowFn func() time.Time)
SetNowFn sets clock Now function.
type Server ¶
type Server struct { // URL (base) of form http(s)://host:port with no trailing slash to help // authorization checks in testing where the host is ambiguous. URL string // contains filtered or unexported fields }
Server ...
func (*Server) AddRoutes ¶
func (s *Server) AddRoutes(e *echo.Echo)
AddRoutes adds routes to an Echo instance.
func (*Server) SetAccessFn ¶
SetAccessFn sets access control.
func (*Server) SetInternalAuth ¶
SetInternalAuth for authorizing internal requests, like tasks.