Official plugin repository for StreamSpace.
This repository contains official and community-contributed plugins that extend StreamSpace functionality. Plugins can add new features, integrate with external services, customize workflows, and enhance the user interface.
streamspace-plugins/
├── streamspace-slack/ # Slack integration plugin
├── streamspace-teams/ # Microsoft Teams plugin
├── streamspace-discord/ # Discord integration plugin
├── streamspace-pagerduty/ # PagerDuty integration plugin
├── streamspace-email/ # SMTP email plugin
├── streamspace-calendar/ # Calendar integration plugin
├── streamspace-datadog/ # Datadog monitoring plugin
├── streamspace-newrelic/ # New Relic monitoring plugin
├── streamspace-sentry/ # Sentry error tracking plugin
├── streamspace-elastic-apm/ # Elastic APM plugin
├── streamspace-honeycomb/ # Honeycomb observability plugin
├── streamspace-compliance/ # Compliance framework plugin
├── streamspace-dlp/ # Data loss prevention plugin
├── streamspace-audit-advanced/ # Advanced audit logging plugin
├── streamspace-recording/ # Session recording plugin
├── streamspace-snapshots/ # Session snapshots plugin
├── streamspace-multi-monitor/ # Multi-monitor support plugin
├── streamspace-workflows/ # Workflow automation plugin
├── streamspace-analytics-advanced/ # Advanced analytics plugin
├── streamspace-auth-saml/ # SAML authentication plugin
├── streamspace-auth-oauth/ # OAuth/OIDC authentication plugin
├── streamspace-storage-s3/ # S3 storage backend plugin
├── streamspace-storage-azure/ # Azure storage backend plugin
├── streamspace-storage-gcs/ # Google Cloud Storage plugin
├── streamspace-billing/ # Billing & usage tracking plugin
├── streamspace-node-manager/ # Kubernetes node manager plugin
├── catalog.yaml # Plugin discovery metadata
├── claude.md # AI context documentation
├── README.md # This file
└── CONTRIBUTING.md # Contribution guidelines
Official plugins are maintained by the StreamSpace team and follow strict quality standards:
- session-recorder: Record and replay user sessions
- audit-logger: Enhanced audit logging with external storage
- slack-integration: Slack notifications for session events
- metrics-exporter: Export metrics to external monitoring systems
Community plugins are contributed by users and may have varying levels of support:
- github-integration: GitHub issue creation from sessions
- custom-theme: Example custom UI theme
- jira-integration: Create Jira tickets from sessions
- ldap-sync: Sync users from LDAP/Active Directory
StreamSpace can automatically sync plugins from this repository:
# In Helm values.yaml
repositories:
plugins:
enabled: true
url: https://github.com/JoshuaAFerguson/streamspace-plugins
branch: main
syncInterval: "1h"# Using StreamSpace CLI
streamspace plugin install streamspace-recording
# Or manually
kubectl apply -f https://raw.githubusercontent.com/JoshuaAFerguson/streamspace-plugins/main/streamspace-recording/manifest.yaml# Via API
curl https://streamspace.local/api/plugins/catalog
# Or view catalog.yaml
curl https://raw.githubusercontent.com/JoshuaAFerguson/streamspace-plugins/main/catalog.yamlStreamSpace supports several plugin types:
Add new features and UI components to the platform.
Example: Custom dashboard widgets, new session actions
React to system events in real-time.
Example: Send notifications on session creation, log user activity
Available Events:
session.created,session.started,session.stopped,session.deleteduser.created,user.updated,user.deleted,user.logintemplate.created,template.updated,template.deletedplugin.installed,plugin.enabled,plugin.disabled,plugin.uninstalledsystem.startup,system.shutdown,audit.violation
Connect StreamSpace to external services.
Example: Slack, GitHub, Jira, PagerDuty integrations
Customize the web interface appearance.
Example: Dark theme, company branding, accessibility themes
Each plugin must follow this structure:
my-plugin/
├── manifest.json # Plugin metadata (required)
├── index.js # Entry point (required)
├── README.md # Documentation (required)
├── config.schema.json # Configuration schema (optional)
├── package.json # Node.js dependencies (if needed)
└── assets/ # Images, icons, etc.
└── icon.png
{
"name": "my-plugin",
"version": "1.0.0",
"displayName": "My Plugin",
"description": "Brief description",
"type": "extension",
"author": "Your Name",
"license": "MIT",
"permissions": ["read:sessions"],
"entrypoints": {
"main": "index.js"
}
}module.exports = {
async onLoad() {
console.log('Plugin loaded!');
},
async onUnload() {
console.log('Plugin unloaded!');
}
};# Clone this repository
git clone https://github.com/JoshuaAFerguson/streamspace-plugins.git
cd streamspace-plugins
# Create plugin directory
mkdir streamspace-my-plugin
cd streamspace-my-plugin
# Initialize
npm init -y
# Create manifest
cat > manifest.json <<EOF
{
"name": "my-plugin",
"version": "1.0.0",
"displayName": "My Plugin",
"description": "My custom StreamSpace plugin",
"type": "extension",
"author": "Your Name",
"license": "MIT",
"permissions": ["read:sessions"],
"entrypoints": {
"main": "index.js"
}
}
EOF
# Create entry point
cat > index.js <<EOF
module.exports = {
async onLoad() {
console.log('My plugin loaded!');
}
};
EOF# Package plugin
tar -czf my-plugin.tar.gz manifest.json index.js
# Upload to StreamSpace
curl -X POST https://streamspace.local/api/plugins/upload \
-H "Authorization: Bearer $TOKEN" \
-F "file=@my-plugin.tar.gz"
# Enable plugin
curl -X POST https://streamspace.local/api/plugins/my-plugin/enable \
-H "Authorization: Bearer $TOKEN"- Fork this repository
- Add your plugin directory (e.g.,
streamspace-my-plugin/) - Update
catalog.yaml - Submit a pull request
See CONTRIBUTING.md for detailed guidelines.
Plugins have access to the StreamSpace API:
module.exports = {
async onLoad({ api, config }) {
// List sessions
const sessions = await api.sessions.list();
// Get user info
const user = await api.users.get('username');
// Access plugin config
const setting = config.get('mySetting');
// Register webhook
api.webhooks.on('session.created', async (event) => {
console.log('New session:', event.data.session);
});
}
};api.sessions- Session managementapi.users- User managementapi.templates- Template operationsapi.plugins- Plugin managementapi.webhooks- Event subscriptionsapi.metrics- Metrics collectionapi.logs- Logging utilities
See API Reference for complete documentation.
Plugins must declare required permissions:
read:sessions- View session informationwrite:sessions- Create/modify sessionsread:users- View user informationwrite:users- Create/modify usersread:templates- View templateswrite:templates- Create/modify templatesadmin- Administrative accessnetwork- Make external HTTP requests
All plugins are:
- ✅ Sandboxed in isolated environments
- ✅ Rate-limited to prevent abuse
- ✅ Audited for security issues
- ✅ Reviewed before inclusion in official catalog
See Security Guidelines for details.
// streamspace-slack/index.js
module.exports = {
async onLoad({ api, config }) {
const webhookUrl = config.get('slackWebhookUrl');
api.webhooks.on('session.created', async (event) => {
await fetch(webhookUrl, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
text: `New session created: ${event.data.session.name}`
})
});
});
}
};// community/custom-widget/index.js
module.exports = {
async onLoad({ api, ui }) {
ui.registerWidget({
id: 'my-widget',
title: 'My Custom Widget',
component: 'MyWidget.vue',
location: 'dashboard'
});
}
};- Documentation: Plugin Development Guide
- API Reference: Plugin API
- Discussions: GitHub Discussions
- Issues: GitHub Issues
MIT License - see LICENSE
- Main Project: StreamSpace
- Template Repository: streamspace-templates
- Documentation: StreamSpace Docs