Documentation
¶
Overview ¶
Package notifications provides webhook delivery with retry and delivery tracking. It demonstrates all plugin API patterns: host functions, HTTP routes, database migrations, and background workers.
Webhooks are HTTP POST deliveries with HMAC-SHA256 signing. Retries use exponential backoff (1m, 5m, 15m, 1h) up to 10 attempts, at which point the delivery is marked as failed.
Index ¶
- func New() plugin.Plugin
- type Config
- type Plugin
- func (p *Plugin) Info() plugin.PluginInfo
- func (p *Plugin) Init(ctx context.Context, env *plugin.Environment) error
- func (p *Plugin) Migrations() []plugin.Migration
- func (p *Plugin) RegisterHostFunctions(scope plugin.FuncRegistry) error
- func (p *Plugin) RegisterRoutes(mux *http.ServeMux) error
- func (p *Plugin) Run(ctx context.Context) error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Plugin ¶
type Plugin struct {
// contains filtered or unexported fields
}
Plugin implements webhook delivery with retry and delivery tracking.
func (*Plugin) Info ¶
func (p *Plugin) Info() plugin.PluginInfo
Info returns plugin metadata for discovery and documentation.
func (*Plugin) Init ¶
Init initializes the plugin with the given environment. It parses optional configuration and creates an HTTP client with a 30-second timeout.
func (*Plugin) Migrations ¶
Migrations returns the database schema for webhook storage and delivery tracking. Tables are idempotent (IF NOT EXISTS) and safe to run multiple times.
func (*Plugin) RegisterHostFunctions ¶
func (p *Plugin) RegisterHostFunctions(scope plugin.FuncRegistry) error
RegisterHostFunctions registers workflow-callable functions on the scoped function registry. The plugin name is implicit -- each plugin gets its own scope, so function names need not be globally unique.