Crate mockforge_plugin_sdk

Crate mockforge_plugin_sdk 

Source
Expand description

§MockForge Plugin SDK

Official SDK for developing MockForge plugins with ease.

This SDK provides:

  • Helper macros for plugin creation
  • Builder patterns for manifests
  • Testing utilities
  • Type-safe plugin development

§Quick Start

use mockforge_plugin_sdk::{export_plugin, prelude::*, Result as PluginCoreResult};
use std::collections::HashMap;

#[derive(Debug, Default)]
pub struct MyPlugin;

#[async_trait]
impl AuthPlugin for MyPlugin {
    fn capabilities(&self) -> PluginCapabilities {
        PluginCapabilities::default()
    }

    async fn initialize(&self, _config: &AuthPluginConfig) -> PluginCoreResult<()> {
        Ok(())
    }

    async fn authenticate(
        &self,
        _context: &PluginContext,
        _request: &AuthRequest,
        _config: &AuthPluginConfig,
    ) -> PluginCoreResult<PluginResult<AuthResponse>> {
        let identity = UserIdentity::new("user123");
        let response = AuthResponse::success(identity, HashMap::new());
        Ok(PluginResult::success(response, 0))
    }

    fn validate_config(&self, _config: &AuthPluginConfig) -> PluginCoreResult<()> {
        Ok(())
    }

    fn supported_schemes(&self) -> Vec<String> {
        vec!["basic".to_string()]
    }

    async fn cleanup(&self) -> PluginCoreResult<()> {
        Ok(())
    }
}

export_plugin!(MyPlugin);

Modules§

async_trait
Async Token Resolver Trait Definition
auth
Authentication plugin interface
builders
Builder patterns for plugin manifests and configurations
datasource
Data source plugin interface
error
Plugin error types and result handling
macros
Helper macros for plugin development
manifest
Plugin manifest and metadata handling
prelude
Prelude module for convenient imports
response
Response generator plugin interface
runtime
WebAssembly runtime for plugin execution
template
Template plugin interface
testing
Testing utilities for plugin development
types
Common types and interfaces used across all plugin types

Macros§

assert_plugin_err
Assert that a plugin result is an error
assert_plugin_ok
Assert that a plugin result is successful
export_plugin
Export a plugin with boilerplate
mock_context
Create a mock plugin context for testing
plugin_config
Generate a plugin configuration struct
plugin_test
Quick test macro for plugin functions

Structs§

AuthPluginConfig
Authentication plugin configuration
AuthPluginEntry
Authentication plugin registry entry
AuthRequest
Authentication request information
AuthResponse
Authentication response
DataConnection
Data connection handle
DataQuery
Data query specification
DataResult
Query result data
DataSourcePluginConfig
Data source plugin configuration
FilesystemPermissions
File system access permissions
FunctionParameter
Function parameter definition
NetworkPermissions
Network access permissions
PluginAuthor
Plugin author information
PluginCapabilities
Plugin capabilities (permissions and features)
PluginContext
Plugin execution context
PluginHealth
Plugin health status
PluginId
Plugin identifier (unique across all plugins)
PluginInfo
Plugin information
PluginInstance
Base plugin instance
PluginManifest
Plugin manifest
PluginMetadata
Plugin metadata container
PluginMetrics
Plugin performance metrics
PluginResult
Plugin execution result
PluginVersion
Plugin version following semantic versioning
RequestMetadata
Request metadata for token resolution
ResolutionContext
Token resolution context
ResourceLimits
Resource limits for plugin execution
ResponseData
Response data structure
ResponseModifierConfig
Response modifier plugin configuration
ResponsePluginConfig
Response plugin configuration
ResponseRequest
Response request information
TemplateExecutionContext
Template execution context
TemplateFunction
Template function metadata
TemplateFunctionEntry
Template function registry entry
TemplatePluginConfig
Template plugin configuration
UserIdentity
User identity information

Enums§

PluginError
Core plugin error types
PluginState
Plugin lifecycle state
SdkError
SDK-specific errors

Constants§

SDK_VERSION
SDK version
WASM_TARGET
Recommended WASM target

Traits§

AuthPlugin
Authentication plugin trait
AuthPluginFactory
Helper trait for creating authentication plugins
DataSourcePlugin
Data source plugin trait
ResponseModifierPlugin
Response modifier plugin trait
ResponsePlugin
Response generator plugin trait
TemplatePlugin
Template plugin trait
TemplatePluginFactory
Helper trait for creating template plugins
TokenResolver
Async token resolver trait for plugins

Type Aliases§

Result
Result type alias for plugin operations
SdkResult
Plugin SDK result type