Documentation
¶
Index ¶
- func ContextMap(ctx context.Context) map[string]interface{}
- func CreateHookFunc(p *Plugin, hookInfo pluginHookInfo) hook.Func
- func RegisterTransport(name string, transport TransportFactory)
- func SupportedTransports() []string
- type AuthProvider
- func (p *AuthProvider) Info(authData map[string]interface{}) (newAuthData map[string]interface{}, err error)
- func (p *AuthProvider) Login(authData map[string]interface{}) (principalID string, newAuthData map[string]interface{}, err error)
- func (p *AuthProvider) Logout(authData map[string]interface{}) (newAuthData map[string]interface{}, err error)
- type AuthRequest
- type AuthResponse
- type Handler
- type InitContext
- type LambdaHandler
- type Plugin
- type Transport
- type TransportFactory
- type TransportInitHandler
- type TransportState
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ContextMap ¶
ContextMap returns a map of the user request context.
func CreateHookFunc ¶
CreateHookFunc returns a hook.HookFunc that run the hook registered by a plugin
func RegisterTransport ¶
func RegisterTransport(name string, transport TransportFactory)
RegisterTransport registers a transport factory by name.
func SupportedTransports ¶
func SupportedTransports() []string
Types ¶
type AuthProvider ¶
type AuthProvider struct {
Name string
// contains filtered or unexported fields
}
AuthProvider is implemented by plugin to provider user authentication functionality to Skygear.
func NewAuthProvider ¶
func NewAuthProvider(providerName string, plugin *Plugin) *AuthProvider
NewAuthProvider creates a new AuthProvider.
func (*AuthProvider) Info ¶
func (p *AuthProvider) Info(authData map[string]interface{}) (newAuthData map[string]interface{}, err error)
Info calls the AuthProvider implemented by plugin to request for user information.
type AuthRequest ¶
AuthRequest is sent by Skygear Server to plugin which contains data for authentication
type AuthResponse ¶
type AuthResponse struct {
PrincipalID string `json:"principal_id"`
AuthData map[string]interface{} `json:"auth_data"`
}
AuthResponse is sent by plugin to Skygear Server which contains authenticated data
type Handler ¶
type Handler struct {
Plugin *Plugin
Name string
AccessKeyRequired bool
UserRequired bool
PreprocessorList router.PreprocessorRegistry
// contains filtered or unexported fields
}
func NewPluginHandler ¶
func NewPluginHandler(info pluginHandlerInfo, ppreg router.PreprocessorRegistry, p *Plugin) *Handler
func (*Handler) GetPreprocessors ¶
type InitContext ¶
type InitContext struct {
Router *router.Router
Mux *http.ServeMux
Preprocessors router.PreprocessorRegistry
HookRegistry *hook.Registry
ProviderRegistry *provider.Registry
Scheduler *cron.Cron
Config skyconfig.Configuration
// contains filtered or unexported fields
}
InitContext contains reference to structs that will be initialized by plugin.
func (*InitContext) AddPluginConfiguration ¶
func (c *InitContext) AddPluginConfiguration(name string, path string, args []string) *Plugin
func (*InitContext) InitPlugins ¶
func (c *InitContext) InitPlugins()
func (*InitContext) IsReady ¶
func (c *InitContext) IsReady() bool
IsReady returns true if all the configured plugins are available
type LambdaHandler ¶
type LambdaHandler struct {
Plugin *Plugin
Name string
AccessKeyRequired bool
UserRequired bool
PreprocessorList router.PreprocessorRegistry
// contains filtered or unexported fields
}
func NewLambdaHandler ¶
func NewLambdaHandler(info map[string]interface{}, ppreg router.PreprocessorRegistry, p *Plugin) *LambdaHandler
func (*LambdaHandler) GetPreprocessors ¶
func (h *LambdaHandler) GetPreprocessors() []router.Processor
func (*LambdaHandler) Handle ¶
func (h *LambdaHandler) Handle(payload *router.Payload, response *router.Response)
Handle executes lambda function implemented by the plugin.
func (*LambdaHandler) Setup ¶
func (h *LambdaHandler) Setup()
type Plugin ¶
type Plugin struct {
// contains filtered or unexported fields
}
Plugin represents a collection of handlers, hooks and lambda functions that extends or modifies functionality provided by skygear.
func (*Plugin) Init ¶
func (p *Plugin) Init(context *InitContext)
Init instantiates a plugin. This sets up hooks and handlers.
type Transport ¶
type Transport interface {
State() TransportState
SetInitHandler(TransportInitHandler)
RequestInit()
RunInit() ([]byte, error)
RunLambda(ctx context.Context, name string, in []byte) ([]byte, error)
RunHandler(ctx context.Context, name string, in []byte) ([]byte, error)
// RunHook runs the hook with a name recognized by plugin, passing in
// record as a parameter. Transport may not modify the record passed in.
//
// A skydb.Record is returned as a result of invocation. Such record must be
// a newly allocated instance, and may not share any reference type values
// in any of its memebers with the record being passed in.
RunHook(ctx context.Context, hookName string, record *skydb.Record, oldRecord *skydb.Record) (*skydb.Record, error)
RunTimer(name string, in []byte) ([]byte, error)
// RunProvider runs the auth provider with the specified AuthRequest.
RunProvider(request *AuthRequest) (*AuthResponse, error)
}
A Transport represents the interface of data transfer between skygear and remote process.
type TransportFactory ¶
type TransportFactory interface {
Open(path string, args []string, config skyconfig.Configuration) Transport
}
A TransportFactory is a generic interface to instantiates different kinds of Plugin Transport.
type TransportInitHandler ¶
type TransportState ¶
type TransportState int
TransportState refers to the operation state of the transport
const ( // TransportStateUninitialized is the state when the transport has not // been initialized TransportStateUninitialized TransportState = iota // TransportStateReady is the state when the transport is ready for // requests TransportStateReady // for the transport is not available TransportStateWorkerUnavailable // TransportStateError is the state when an error has occurred // in the transport and it is not able to serve requests TransportStateError )
func (TransportState) String ¶
func (i TransportState) String() string