Documentation ¶
Index ¶
- type ACLPermissionChecker
- type BasicAuthValidator
- type Broker
- type Cache
- type Closer
- type GRPCHandler
- type GRPCMiddleware
- type GraphQLHandler
- type GraphQLMiddleware
- type HTTPMiddleware
- type Locker
- type Middleware
- type MongoDatabase
- type Publisher
- type RESTHandler
- type RESTRouter
- type RSAKey
- type RedisPool
- type SQLDatabase
- type ServerHandler
- type TokenValidator
- type Validator
- type WorkerHandler
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ACLPermissionChecker ¶
type ACLPermissionChecker interface {
CheckPermission(ctx context.Context, userID string, permissionCode string) (role string, err error)
}
ACLPermissionChecker abstraction for check acl permission with given permission code
type BasicAuthValidator ¶ added in v1.13.9
type BasicAuthValidator interface {
ValidateBasic(ctx context.Context, username, password string) error
}
BasicAuthValidator abstract interface for basic auth validator
type Broker ¶
type Broker interface { GetPublisher() Publisher GetName() types.Worker Health() map[string]error Closer }
Broker abstraction
type Cache ¶
type Cache interface { Get(ctx context.Context, key string) ([]byte, error) GetKeys(ctx context.Context, pattern string) ([]string, error) GetTTL(ctx context.Context, key string) (time.Duration, error) Set(ctx context.Context, key string, value any, expire time.Duration) error Exists(ctx context.Context, key string) (bool, error) Delete(ctx context.Context, key string) error DoCommand(ctx context.Context, isWrite bool, command string, args ...any) (reply any, err error) }
Cache abstract interface
type GRPCHandler ¶
type GRPCHandler interface {
Register(server *grpc.Server, middlewareGroup *types.MiddlewareGroup)
}
GRPCHandler delivery factory for GRPC handler
type GRPCMiddleware ¶
type GRPCMiddleware interface { GRPCBasicAuth(ctx context.Context) (context.Context, error) GRPCBearerAuth(ctx context.Context) (context.Context, error) GRPCMultipleAuth(ctx context.Context) (context.Context, error) // GRPCPermissionACL method. // This middleware required TokenValidator (GRPCBearerAuth middleware must executed before) for extract userID // default from `Subject` field in token claim payload // or you can custom extract user id with `SetUserIDExtractor` option when construct middleware in configs GRPCPermissionACL(permissionCode string) types.MiddlewareFunc }
GRPCMiddleware interface, common middleware for grpc handler
type GraphQLHandler ¶
GraphQLHandler delivery factory for GraphQL resolver handler
type GraphQLMiddleware ¶
type GraphQLMiddleware interface { GraphQLAuth(ctx context.Context, directive *gqltypes.Directive, input any) (context.Context, error) // GraphQLPermissionACL method. // This middleware required TokenValidator (GraphQLAuth middleware with BEARER must executed before) for extract userID // default from `Subject` field in token claim payload // or you can custom extract user id with `SetUserIDExtractor` option when construct middleware in configs GraphQLPermissionACL(ctx context.Context, directive *gqltypes.Directive, input any) (context.Context, error) }
GraphQLMiddleware interface, common middleware for graphql handler, as directive in graphql schema
type HTTPMiddleware ¶
type HTTPMiddleware interface { HTTPBasicAuth(next http.Handler) http.Handler HTTPBearerAuth(next http.Handler) http.Handler HTTPMultipleAuth(next http.Handler) http.Handler HTTPCache(next http.Handler) http.Handler // HTTPPermissionACL method. // This middleware required TokenValidator (HTTPBearerAuth middleware must executed before) for extract userID // default from `Subject` field in token claim payload // or you can custom extract user id with `SetUserIDExtractor` option when construct middleware in configs HTTPPermissionACL(permissionCode string) func(http.Handler) http.Handler }
HTTPMiddleware interface, common middleware for http handler
type Locker ¶ added in v1.14.8
type Locker interface { IsLocked(key string) bool IsLockedTTL(key string, ttl time.Duration) bool HasBeenLocked(key string) bool Unlock(key string) Reset(key string) Lock(key string, timeout time.Duration) (unlockFunc func(), err error) GetPrefixLocker() string GetTTLLocker() time.Duration Closer }
Locker abstraction, lock concurrent process
type Middleware ¶
type Middleware interface { Basic(ctx context.Context, authKey string) error Bearer(ctx context.Context, token string) (*candishared.TokenClaim, error) HTTPMiddleware GRPCMiddleware GraphQLMiddleware }
Middleware abstraction
type MongoDatabase ¶
type MongoDatabase interface { ReadDB() *mongo.Database WriteDB() *mongo.Database Health() map[string]error Closer }
MongoDatabase abstraction
type Publisher ¶
type Publisher interface {
PublishMessage(ctx context.Context, args *candishared.PublisherArgument) (err error)
}
Publisher abstract interface
type RESTHandler ¶
type RESTHandler interface {
Mount(group RESTRouter)
}
RESTHandler delivery factory for REST handler (default using echo rest framework)
type RESTRouter ¶ added in v1.15.0
type RESTRouter interface { Use(middlewares ...func(http.Handler) http.Handler) Group(pattern string, middlewares ...func(http.Handler) http.Handler) RESTRouter HandleFunc(pattern string, h http.HandlerFunc, middlewares ...func(http.Handler) http.Handler) CONNECT(pattern string, h http.HandlerFunc, middlewares ...func(http.Handler) http.Handler) DELETE(pattern string, h http.HandlerFunc, middlewares ...func(http.Handler) http.Handler) GET(pattern string, h http.HandlerFunc, middlewares ...func(http.Handler) http.Handler) HEAD(pattern string, h http.HandlerFunc, middlewares ...func(http.Handler) http.Handler) OPTIONS(pattern string, h http.HandlerFunc, middlewares ...func(http.Handler) http.Handler) PATCH(pattern string, h http.HandlerFunc, middlewares ...func(http.Handler) http.Handler) POST(pattern string, h http.HandlerFunc, middlewares ...func(http.Handler) http.Handler) PUT(pattern string, h http.HandlerFunc, middlewares ...func(http.Handler) http.Handler) TRACE(pattern string, h http.HandlerFunc, middlewares ...func(http.Handler) http.Handler) }
RESTRouter for REST routing abstraction
type RSAKey ¶
type RSAKey interface { PrivateKey() *rsa.PrivateKey PublicKey() *rsa.PublicKey }
RSAKey abstraction
type RedisPool ¶
type RedisPool interface { ReadPool() *redis.Pool WritePool() *redis.Pool Health() map[string]error Cache() Cache Closer }
RedisPool abstraction
type SQLDatabase ¶
SQLDatabase abstraction
type ServerHandler ¶ added in v1.6.1
type ServerHandler interface {
MountHandlers(group any) // why interface? cause every server is different type for grouping route handler
}
ServerHandler delivery factory for all additional server handler (rest framework, p2p, and many more)
type TokenValidator ¶
type TokenValidator interface {
ValidateToken(ctx context.Context, token string) (*candishared.TokenClaim, error)
}
TokenValidator abstract interface for jwt validator
type Validator ¶
type Validator interface { // ValidateDocument method using jsonschema with input is json source ValidateDocument(reference string, document any) error // ValidateStruct method, rules from struct tag using github.com/go-playground/validator ValidateStruct(data any) error }
Validator abstract interface
type WorkerHandler ¶
type WorkerHandler interface {
MountHandlers(group *types.WorkerHandlerGroup)
}
WorkerHandler delivery factory for all worker handler