Since v1.2, GraphDB Workbench features a plugin system which allows components to be plugged in without introducing coupling between new and existing components. The new system allows extending or replacing existing components, introduction of new single or compositional components. All this could be achieved without any changes in the rest of the system.
Currently the new system is integrated in the workbench main components registration. These are the
components which implement the main workbench views (extension point route) and their respective
main menu entries (extension point main.menu). In next versions more extension points might be
introduced.
- Features
- Installation
- Usage
- Available npm Scripts
- Development Workflow
- Project Structure
- Plugin Manifest
- Contributing
- Documentation
- License
- Plugin-based architecture for GraphDB Workbench
- Extend or replace existing components without modifying core code
- Easy integration and validation of plugins
Clone the repository and install dependencies:
git clone <repository-url>
cd graphdb-workbench-plugins
npm installTo build the plugins for production:
npm run buildThe output will be in the dist/ directory.
For development with automatic rebuild on changes:
npm run devTo check code style and find problems:
npm run lintTo automatically fix linting issues:
npm run lint:fixTo generate documentation using JSDoc:
npm run documentThe documentation will be generated in the docs/ directory.
| Script | Description |
|---|---|
dev |
Watch plugin files and rebuild on changes |
build |
Validate manifest and build plugins using webpack |
validate-manifest |
Validate the plugins manifest file |
lint |
Run ESLint on the codebase |
lint:fix |
Run ESLint and automatically fix problems |
document |
Generate documentation using JSDoc |
install:ci |
Install dependencies in CI mode (clean install) |
prepare |
Prepare git hooks using Husky |
- Clone and install dependencies as described above.
- Develop plugins in the
plugins/directory. - Run in development mode with
npm run devfor live rebuilding. - Validate and build with
npm run build. - Lint and fix code with
npm run lintandnpm run lint:fix. - Generate documentation with
npm run document.
graphdb-workbench-plugins/
├── dist/ # Compiled plugin output
├── docs/ # Generated documentation
├── plugins/ # Source code for plugins
├── scripts/ # Utility scripts (e.g., manifest validation)
├── plugins-manifest.json # Manifest describing available plugins
├── package.json # Project configuration and scripts
├── webpack.config.js # Webpack build configuration
├── jsdoc.config.json # JSDoc configuration
└── README.md # Project documentation
The plugins-manifest.json file describes all available plugins and their extension points. It is validated automatically during the build process.
Please follow these steps:
- Fork the repository and create your branch.
- Make your changes and ensure all lint checks pass.
- Submit a pull request with a clear description of your changes.
This project is licensed under the Apache-2.0 License.