Plugin Overview
IDAH's plugin system allows you to extend the platform with custom annotation tools, media processors, and data exporters.
What are Plugins?
Plugins in IDAH are modular components that can add new functionality to the platform. Each plugin can include:
Frontend Components
Custom UI elements, annotation tools, and visualizations built with SvelteKit.
Media Service Backend
Process and transform media files (images, videos, audio) during import.
Sync Service Backend
Export and synchronize dataset data with external systems.
Plugin Types
Frontend-Only Plugins
Plugins that consist only of UI components. These are ideal for:
- Custom annotation tools and editors
- Data visualizations and dashboards
- UI widgets and utilities
- Custom dataset views
Full-Stack Plugins
Plugins with both frontend and backend components. These can:
- Process media files during import
- Transform and convert media formats
- Export data in custom formats
- Integrate with external APIs and services
Plugin Paths
IDAH supports two plugin directories for different environments:
Development Plugins
Path: ./plugins_dev/plugins
- Purpose: Development and testing
- Environment: Local development only
- Loading: Automatically loaded when running IDAH in development mode
- Not included: These plugins are not loaded in production
- Use for: Experimental plugins, work-in-progress features, testing
Production Plugins
Path: ./plugins
- Purpose: Production-ready plugins
- Environment: Both development and production
- Loading: Always loaded in all environments
- Use for: Stable, production-ready plugins
Recommendation: Start developing in ./plugins_dev/plugins, and move to ./plugins when ready for production.
Plugin Structure
A typical IDAH plugin follows this structure:
<plugin_name>/ ├─ manifest.json # Plugin metadata ├─ README.md # Plugin documentation ├─ Gemfile # Ruby dependencies (backends) ├─ Rakefile # Build tasks ├─ backends/ # Optional backend services │ ├─ media/ # Media processing │ └─ sync/ # Data export └─ frontend/ # SvelteKit UI ├─ package.json └─ src/
Manifest File
The manifest.json file contains plugin metadata:
{
"name": "my-plugin",
"display_name": "My Plugin",
"description": "A custom annotation plugin",
"version": "1.0.0",
"author": "Your Name"
} Built-in Plugins
IDAH comes with a built-in video annotation plugin:
idah-video
A full-stack plugin for video annotation with frame-by-frame processing, object tracking, and timeline-based annotations.
Location: ./plugins/idah-video/
Plugin Lifecycle
- Development
Create and test your plugin in./plugins_dev/plugins - Testing
Write and run tests for both frontend and backend components - Building
Build the frontend for production deployment - Deployment
Move to./pluginsfor production use
🔌 Ready to extend IDAH? Start by creating your first plugin!