Plugins
Stately plugins provide additional capabilities for your application. Each plugin includes coordinated backend (Rust) and frontend (TypeScript) packages.
Available Plugins
Files Plugin
File upload, versioning, and management capabilities.
Key Features:
- Multipart and JSON file uploads
- Automatic UUID v7 versioning
- Directory listing and navigation
- RelativePath field type for entity forms
- File manager page component
Arrow Plugin
Data connectivity and SQL query execution via Apache Arrow.
Key Features:
- Multiple backend connectors (S3, GCS, Azure, ClickHouse)
- SQL query execution with DataFusion
- Streaming Arrow IPC responses
- Catalog and schema discovery
- High-performance data table component
- Plans to build out the most performant large-data arrow viewer available
Installing Plugins
Backend
Add the plugin crate to your Cargo.toml. Verify versions as docs can become outdated:
Frontend
Install the npm package:
Integrating Plugins
Backend Integration
- Implement state extraction for the plugin
- Add the plugin router to your application
Frontend Integration
- Add schema and UI plugins to your runtime
- Configure the API path prefix
Plugin Architecture
Plugins follow a consistent architecture:
Backend:
- Router factory function generic over application state
- State definition and state extraction via Axum's
FromReftrait - OpenAPI generation for type codegen
- Request, Response, and Parameter types
Frontend:
- Schema plugin and types for type system extensions
- UI plugin and types for component registration, route navigation, and utilities
- Typed API client and hooks
- Pre-built components, views, and pages
See Plugin Development for details on creating your own plugins.