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 ¶ added in v0.4.0
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 ¶ added in v0.5.0
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 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 which contains authenticated data
type Handler ¶ added in v0.9.0
type Handler struct { Plugin *Plugin Name string AccessKeyRequired bool UserRequired bool PreprocessorList router.PreprocessorRegistry // contains filtered or unexported fields }
func NewPluginHandler ¶ added in v0.9.0
func NewPluginHandler(info pluginHandlerInfo, ppreg router.PreprocessorRegistry, p *Plugin) *Handler
func (*Handler) GetPreprocessors ¶ added in v0.9.0
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 ¶ added in v0.3.0
func (c *InitContext) AddPluginConfiguration(name string, path string, args []string) *Plugin
func (*InitContext) InitPlugins ¶ added in v0.3.0
func (c *InitContext) InitPlugins()
func (*InitContext) IsReady ¶ added in v0.3.0
func (c *InitContext) IsReady() bool
IsReady returns true if all the configured plugins are available
type LambdaHandler ¶ added in v0.4.0
type LambdaHandler struct { Plugin *Plugin Name string AccessKeyRequired bool UserRequired bool PreprocessorList router.PreprocessorRegistry // contains filtered or unexported fields }
func NewLambdaHandler ¶ added in v0.4.1
func NewLambdaHandler(info map[string]interface{}, ppreg router.PreprocessorRegistry, p *Plugin) *LambdaHandler
func (*LambdaHandler) GetPreprocessors ¶ added in v0.4.1
func (h *LambdaHandler) GetPreprocessors() []router.Processor
func (*LambdaHandler) Handle ¶ added in v0.4.0
func (h *LambdaHandler) Handle(payload *router.Payload, response *router.Response)
Handle executes lambda function implemented by the plugin.
func (*LambdaHandler) Setup ¶ added in v0.4.1
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 ¶ added in v0.3.0
type TransportState ¶ added in v0.3.0
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 ¶ added in v0.6.0
func (i TransportState) String() string