Documentation ¶
Index ¶
- func ContextMap(ctx context.Context) map[string]interface{}
- func CreateHookFunc(p *Plugin, hookInfo pluginHookInfo) hook.Func
- func RegisterTransport(name string, transport TransportFactory)
- 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 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.
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 InitContext ¶
type InitContext struct { Router *router.Router Preprocessors router.PreprocessorRegistry HookRegistry *hook.Registry ProviderRegistry *provider.Registry Scheduler *cron.Cron // 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 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(name string, in []byte) ([]byte, error) // RunHook runs the hook specified by recordType and trigger, 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, recordType string, trigger string, record *skydb.Record, oldRecord *skydb.Record) (*skydb.Record, error) RunTimer(name string, n []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 ¶
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 )