Skip to content

Package & Publish

Learn how to package and publish your ElasticView plugin to make it available to users.

Overview

Publishing your plugin involves packaging the code, creating proper documentation, and distributing it through the ElasticView plugin marketplace or other channels.

Pre-Publication Checklist

Code Quality

  • [ ] All features are implemented and tested
  • [ ] Code follows ElasticView plugin standards
  • [ ] No security vulnerabilities
  • [ ] Performance is optimized
  • [ ] Error handling is comprehensive

Documentation

  • [ ] README.md is complete and clear
  • [ ] API documentation is accurate
  • [ ] Configuration options are documented
  • [ ] Installation instructions are provided
  • [ ] Troubleshooting guide is included

Testing

  • [ ] Unit tests pass
  • [ ] Integration tests pass
  • [ ] Manual testing completed
  • [ ] Performance testing done
  • [ ] Security testing performed

Packaging Your Plugin

Build Process

bash
# Build frontend
cd frontend
npm run build

# Build backend
cd ..
go build -o plugin-binary main.go

# Create assets directory structure
mkdir -p dist/assets
cp -r frontend/dist/* dist/
cp plugin-binary dist/
cp plugin.yaml dist/
cp README.md dist/
cp LICENSE dist/

Plugin Manifest

Ensure your plugin.yaml is complete:

yaml
# Plugin Identity
name: "my-awesome-plugin"
version: "1.0.0"
description: "A comprehensive data visualization plugin"
author: "Your Name"
email: "your.email@example.com"
homepage: "https://github.com/yourname/my-awesome-plugin"

# Plugin Metadata
category: "visualization"
tags: ["charts", "analytics", "dashboard", "reports"]
license: "MIT"
icon: "assets/icon.png"

# Compatibility
min_ev_version: "1.0.0"
max_ev_version: "2.0.0"

# Dependencies
dependencies:
  - name: "elasticsearch"
    version: ">=7.0.0"

# Permissions
permissions:
  - "data.read"
  - "data.query"
  - "ui.dashboard"
  - "ui.menu"

# Configuration Schema
config_schema:
  type: "object"
  properties:
    api_key:
      type: "string"
      description: "API key for external service"
      required: true
    refresh_interval:
      type: "integer"
      description: "Data refresh interval in seconds"
      default: 60
      minimum: 10
      maximum: 3600
    enable_notifications:
      type: "boolean"
      description: "Enable email notifications"
      default: false

# Plugin Screenshots
screenshots:
  - "assets/screenshot1.png"
  - "assets/screenshot2.png"
  - "assets/screenshot3.png"

Create Plugin Archive

bash
# Create the plugin package
zip -r my-awesome-plugin-v1.0.0.zip \
  plugin.yaml \
  plugin-binary \
  assets/ \
  frontend/dist/ \
  README.md \
  LICENSE \
  CHANGELOG.md

# Verify package contents
unzip -l my-awesome-plugin-v1.0.0.zip

Documentation

README.md Template

markdown
# My Awesome Plugin

A comprehensive data visualization plugin for ElasticView.

## Features

- Real-time data visualization
- Multiple chart types
- Custom dashboards
- Export capabilities
- Mobile responsive

## Installation

1. Download the plugin package
2. Go to ElasticView Admin → Plugin Management
3. Click "Upload Plugin"
4. Select the plugin file
5. Configure the plugin settings
6. Enable the plugin

## Configuration

### Required Settings

- **API Key**: Your external service API key
- **Refresh Interval**: How often to refresh data (seconds)

### Optional Settings

- **Enable Notifications**: Receive email alerts
- **Custom Theme**: Use custom color scheme

## Usage

### Basic Usage

1. Navigate to the plugin dashboard
2. Configure your data sources
3. Create visualizations
4. Share with your team

### Advanced Features

- Custom query builder
- Scheduled reports
- API integration
- Webhook notifications

## API Reference

### Endpoints

- `GET /api/data` - Retrieve data
- `POST /api/data` - Create new data
- `PUT /api/config` - Update configuration

### Authentication

All API calls require authentication via Bearer token.

## Troubleshooting

### Common Issues

#### Plugin Won't Load
- Check ElasticView version compatibility
- Verify all dependencies are installed
- Review plugin logs for errors

#### Data Not Displaying
- Verify data source configuration
- Check API connectivity
- Review permission settings

## Support

- Email: support@yourplugin.com
- Documentation: https://docs.yourplugin.com
- Issues: https://github.com/yourname/plugin/issues

## License

MIT License - see LICENSE file for details

## Changelog

### v1.0.0
- Initial release
- Basic visualization features
- Dashboard support

CHANGELOG.md

markdown
# Changelog

All notable changes to this project will be documented in this file.

## [1.0.0] - 2023-12-01

### Added
- Initial plugin release
- Data visualization dashboard
- Multiple chart types support
- Configuration management
- API integration

### Features
- Real-time data updates
- Responsive design
- Export functionality
- Custom themes

### Security
- Input validation
- Authentication required
- Secure API endpoints

Publishing Channels

Official Plugin Marketplace

  1. Create Developer Account

    • Register at the ElasticView Developer Portal
    • Verify your email address
    • Complete profile information
  2. Submit Plugin

    • Upload plugin package
    • Provide description and screenshots
    • Set pricing (if applicable)
    • Submit for review
  3. Review Process

    • Automated security scan
    • Code quality review
    • Functionality testing
    • Documentation review
  4. Publication

    • Plugin approved and published
    • Available in marketplace
    • Users can install directly

GitHub Releases

bash
# Create a new release
git tag v1.0.0
git push origin v1.0.0

# Upload plugin package to GitHub releases
# Include release notes and installation instructions

Direct Distribution

bash
# Host on your own server
# Provide download link and installation instructions
# Include verification checksums

# Example download page
curl -O https://yoursite.com/plugins/my-plugin-v1.0.0.zip
sha256sum my-plugin-v1.0.0.zip

Version Management

Semantic Versioning

Follow semantic versioning (semver) principles:

  • MAJOR (1.0.0): Breaking changes
  • MINOR (1.1.0): New features, backward compatible
  • PATCH (1.0.1): Bug fixes, backward compatible

Release Process

bash
# Update version in plugin.yaml
# Update CHANGELOG.md
# Create git tag
# Build and package
# Upload to distribution channels
# Update documentation

Migration Guide

When releasing breaking changes, provide migration instructions:

markdown
## Migrating from v1.x to v2.0

### Breaking Changes

1. Configuration format changed
2. API endpoints renamed
3. Database schema updated

### Migration Steps

1. Backup your current configuration
2. Update to v2.0
3. Run migration script: `./migrate.sh`
4. Update configuration format
5. Test functionality

Marketing and Promotion

Plugin Description

Write compelling descriptions for the marketplace:

markdown
**Transform Your Data into Insights**

My Awesome Plugin brings powerful data visualization capabilities to ElasticView. Create stunning dashboards, generate automated reports, and share insights with your team.

**Key Features:**
✅ Real-time data visualization
✅ 20+ chart types
✅ Drag-and-drop dashboard builder
✅ Automated report generation
✅ Mobile-responsive design

**Perfect For:**
- Data analysts
- Business intelligence teams
- Operations monitoring
- Executive reporting

**Get Started in Minutes:**
1. Install the plugin
2. Connect your data sources
3. Create your first dashboard
4. Share with your team

Screenshots and Videos

Prepare high-quality promotional materials:

  • Dashboard screenshots
  • Feature demonstrations
  • Setup tutorials
  • Use case examples

Maintenance and Support

Update Process

bash
# Regular update cycle
1. Gather user feedback
2. Plan new features
3. Implement changes
4. Test thoroughly
5. Release update
6. Notify users

Support Channels

  • Documentation: Comprehensive guides
  • Email Support: Direct help
  • Community Forum: User discussions
  • Issue Tracker: Bug reports and feature requests

Analytics and Feedback

Track plugin usage and gather feedback:

  • Download statistics
  • User reviews and ratings
  • Feature usage analytics
  • Support ticket analysis

Licensing

Choose appropriate license:

  • MIT: Permissive, allows commercial use
  • GPL: Copyleft, requires open source derivatives
  • Commercial: Proprietary, paid licensing

Terms of Service

Include clear terms:

  • Usage restrictions
  • Support limitations
  • Liability disclaimers
  • Privacy policy

Compliance

Ensure compliance with:

  • Data protection regulations (GDPR, CCPA)
  • Export control laws
  • Industry standards
  • Platform requirements

Best Practices

Quality Assurance

  • Comprehensive testing before release
  • Regular security updates
  • Performance monitoring
  • User feedback integration

Documentation

  • Keep documentation up to date
  • Provide clear examples
  • Include troubleshooting guides
  • Offer multiple formats

Community

  • Engage with users
  • Respond to feedback promptly
  • Build a community around your plugin
  • Collaborate with other developers

Next Steps