Skip to main content

Plugin

Trait Plugin 

Source
pub trait Plugin: Send + Sync {
Show 13 methods // Required method fn name(&self) -> &str; // Provided methods fn on_init(&self, _ctx: &PluginContext) { ... } fn routes(&self) -> Vec<PluginRoute> { ... } fn before_insert( &self, _entity: &str, _data: &mut Value, _auth: &AuthContext, ) -> Result<(), PluginError> { ... } fn after_insert( &self, _entity: &str, _id: &str, _data: &Value, _auth: &AuthContext, ) { ... } fn before_update( &self, _entity: &str, _id: &str, _data: &mut Value, _auth: &AuthContext, ) -> Result<(), PluginError> { ... } fn after_update( &self, _entity: &str, _id: &str, _data: &Value, _auth: &AuthContext, ) { ... } fn before_delete( &self, _entity: &str, _id: &str, _auth: &AuthContext, ) -> Result<(), PluginError> { ... } fn after_delete(&self, _entity: &str, _id: &str, _auth: &AuthContext) { ... } fn on_request( &self, _method: &str, _path: &str, _auth: &AuthContext, ) -> Result<(), PluginError> { ... } fn on_request_with_meta( &self, method: &str, path: &str, auth: &AuthContext, _meta: &RequestMeta<'_>, ) -> Result<(), PluginError> { ... } fn on_session_create(&self, _user_id: &str, _token: &str) { ... } fn entities(&self) -> Vec<ManifestEntity> { ... }
}
Expand description

A plugin extends pylon with custom routes, lifecycle hooks, and entities.

Required Methods§

Source

fn name(&self) -> &str

Unique name for this plugin.

Provided Methods§

Source

fn on_init(&self, _ctx: &PluginContext)

Called once when the plugin is registered.

Source

fn routes(&self) -> Vec<PluginRoute>

Custom API routes this plugin handles.

Source

fn before_insert( &self, _entity: &str, _data: &mut Value, _auth: &AuthContext, ) -> Result<(), PluginError>

Called before an entity insert. Return Err to reject.

Source

fn after_insert( &self, _entity: &str, _id: &str, _data: &Value, _auth: &AuthContext, )

Called after a successful insert.

Source

fn before_update( &self, _entity: &str, _id: &str, _data: &mut Value, _auth: &AuthContext, ) -> Result<(), PluginError>

Called before an entity update. Return Err to reject.

Source

fn after_update( &self, _entity: &str, _id: &str, _data: &Value, _auth: &AuthContext, )

Called after a successful update.

Source

fn before_delete( &self, _entity: &str, _id: &str, _auth: &AuthContext, ) -> Result<(), PluginError>

Called before an entity delete. Return Err to reject.

Source

fn after_delete(&self, _entity: &str, _id: &str, _auth: &AuthContext)

Called after a successful delete.

Source

fn on_request( &self, _method: &str, _path: &str, _auth: &AuthContext, ) -> Result<(), PluginError>

Called on every incoming request (middleware).

Source

fn on_request_with_meta( &self, method: &str, path: &str, auth: &AuthContext, _meta: &RequestMeta<'_>, ) -> Result<(), PluginError>

Richer variant of [on_request] that also receives per-request metadata (peer IP today; more fields may be added later). The default implementation delegates to on_request so existing plugins keep working without changes. Plugins that care about IP — notably rate limiting — override this hook.

Source

fn on_session_create(&self, _user_id: &str, _token: &str)

Called when a new session is created.

Source

fn entities(&self) -> Vec<ManifestEntity>

Additional manifest entities this plugin contributes.

Implementors§