{"id":21994804,"url":"https://github.com/allow2/allow2automate-plugin","last_synced_at":"2026-05-03T23:37:28.073Z","repository":{"id":146494180,"uuid":"345997035","full_name":"Allow2/allow2automate-plugin","owner":"Allow2","description":"Template project you can use to write and publish your own allow2automate plugin.","archived":false,"fork":false,"pushed_at":"2022-09-07T23:50:01.000Z","size":100,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-01-28T10:43:51.101Z","etag":null,"topics":["allow2","allow2automate"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Allow2.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-03-09T12:23:09.000Z","updated_at":"2022-09-07T23:50:05.000Z","dependencies_parsed_at":"2023-07-14T05:15:33.871Z","dependency_job_id":null,"html_url":"https://github.com/Allow2/allow2automate-plugin","commit_stats":null,"previous_names":[],"tags_count":0,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Allow2%2Fallow2automate-plugin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Allow2%2Fallow2automate-plugin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Allow2%2Fallow2automate-plugin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Allow2%2Fallow2automate-plugin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Allow2","download_url":"https://codeload.github.com/Allow2/allow2automate-plugin/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245052660,"owners_count":20553172,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["allow2","allow2automate"],"created_at":"2024-11-29T21:10:51.047Z","updated_at":"2026-05-03T23:37:28.068Z","avatar_url":"https://github.com/Allow2.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Plugin Template\n\nBase template to build your own Allow2Automate plugins quickly and easily.\n\n## Description\n\nThis is the official template for creating custom Allow2Automate plugins. It provides a complete development environment with build tools, example code, and best practices to help you create professional plugins that integrate with the Allow2 parental control ecosystem.\n\n## Features\n\n- Complete plugin development scaffold\n- Pre-configured build system with Rollup\n- React component examples\n- Material-UI integration\n- Babel transpilation for modern JavaScript\n- Example actions and triggers\n- Development server with hot reload\n- Production-ready build configuration\n- Comprehensive documentation structure\n\n## Installation\n\n### Via NPM\n\n```bash\nnpm install @allow2/allow2automate-plugin\n```\n\n### Via Git\n\n```bash\ngit clone https://github.com/Allow2/allow2automate-plugin.git\ncd allow2automate-plugin\nnpm install\nnpm run build\n```\n\n## Getting Started\n\n### Creating Your Plugin\n\n1. Clone this template repository\n2. Update `package.json` with your plugin details\n3. Modify the `allow2automate` section with your plugin metadata\n4. Implement your plugin logic in `src/index.js`\n5. Create UI components in `src/components/`\n6. Build and test your plugin\n\n### Project Structure\n\n```\nallow2automate-plugin/\n├── src/\n│   ├── index.js          # Main plugin entry point\n│   ├── components/       # React components\n│   └── utils/           # Utility functions\n├── dist/                # Built plugin files\n├── examples/            # Example usage\n├── package.json         # Plugin metadata\n└── rollup.config.js     # Build configuration\n```\n\n## Configuration\n\n### Plugin Metadata\n\nUpdate the `allow2automate` section in `package.json`:\n\n```json\n{\n  \"allow2automate\": {\n    \"plugin\": true,\n    \"pluginId\": \"your-plugin-id\",\n    \"displayName\": \"Your Plugin Name\",\n    \"category\": \"Your Category\",\n    \"permissions\": [\"permission1\", \"permission2\"],\n    \"minAppVersion\": \"2.0.0\",\n    \"api\": {\n      \"actions\": [...],\n      \"triggers\": [...]\n    }\n  }\n}\n```\n\n### Required Permissions\n\nThis template includes:\n\n- **configuration**: To read and modify plugin settings\n\nCustomize permissions based on your plugin's needs:\n- **network**: For external API calls\n- **filesystem**: For file operations\n- **system**: For system-level operations\n\n## Usage\n\n### Implementing Actions\n\n```javascript\nexport const actions = {\n  myAction: async (params) =\u003e {\n    // Your action logic here\n    return { success: true };\n  }\n};\n```\n\n### Implementing Triggers\n\n```javascript\nexport const triggers = {\n  myTrigger: {\n    subscribe: (callback) =\u003e {\n      // Set up event listener\n      // Call callback(data) when event occurs\n    },\n    unsubscribe: () =\u003e {\n      // Clean up event listener\n    }\n  }\n};\n```\n\n### Creating UI Components\n\n```javascript\nimport React from 'react';\nimport { Button } from '@material-ui/core';\n\nexport const ConfigPanel = () =\u003e {\n  return (\n    \u003cdiv\u003e\n      \u003ch2\u003ePlugin Configuration\u003c/h2\u003e\n      \u003cButton variant=\"contained\" color=\"primary\"\u003e\n        Configure\n      \u003c/Button\u003e\n    \u003c/div\u003e\n  );\n};\n```\n\n## API Documentation\n\n### Default Actions\n\n#### `configure`\n- **Name**: Configure Plugin\n- **Description**: Configure plugin settings\n- **Parameters**:\n  - `settings` (object): Plugin configuration object\n\n### Default Triggers\n\n#### `stateChanged`\n- **Name**: State Changed\n- **Description**: Triggered when plugin state changes\n- **Payload**:\n  - `state` (object): New plugin state\n  - `previousState` (object): Previous plugin state\n\n## Development Setup\n\n```bash\n# Clone the template\ngit clone https://github.com/Allow2/allow2automate-plugin.git your-plugin-name\ncd your-plugin-name\n\n# Install dependencies\nnpm install\n\n# Start development server with hot reload\nnpm start\n\n# Build for production\nnpm run build\n\n# Run tests\nnpm test\n\n# Deploy example\nnpm run deploy\n```\n\n## Building Your Plugin\n\nThe template includes a complete build pipeline:\n\n1. **Development**: `npm start` - Watch mode with hot reload\n2. **Production**: `npm run build` - Optimized build\n3. **Testing**: `npm test` - Run test suite\n\n### Build Output\n\nThe build process generates:\n- `dist/index.js` - CommonJS module\n- `dist/index.es.js` - ES6 module\n\n## Publishing Your Plugin\n\n1. Update version in `package.json`\n2. Build the plugin: `npm run build`\n3. Publish to npm: `npm publish`\n4. Submit to Allow2 plugin directory\n\n## Best Practices\n\n- Follow the existing code structure\n- Write comprehensive tests\n- Document all actions and triggers\n- Use meaningful error messages\n- Implement proper error handling\n- Keep dependencies minimal\n- Follow semantic versioning\n\n## Requirements\n\n- Node.js 12.0 or higher\n- Allow2Automate 2.0.0 or higher\n- React 16.12.0 or higher\n- Material-UI 4.11.3 or higher\n\n## License\n\nMIT - See [LICENSE](LICENSE) file for details\n\n## Support\n\n- **Issues**: [GitHub Issues](https://github.com/Allow2/allow2automate-plugin/issues)\n- **Documentation**: [Allow2 Documentation](https://www.allow2.com/docs)\n- **Plugin Development Guide**: [Allow2 Plugin Guide](https://www.allow2.com/docs/plugins)\n- **Community**: [Allow2 Community Forums](https://community.allow2.com)\n\n## Contributing\n\nContributions to improve this template are welcome! Please submit pull requests with improvements.\n\n## Author\n\nAllow2\n\n## Keywords\n\nallow2automate, allow2, template, plugin, starter, development\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fallow2%2Fallow2automate-plugin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fallow2%2Fallow2automate-plugin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fallow2%2Fallow2automate-plugin/lists"}