-
Notifications
You must be signed in to change notification settings - Fork 512
Plugin system
|-cloudbeaver
|-webapp # all frontend code is here
|-configs # core/plugin/product build configs (webpack, babel)
|-packages # yarn workspaces managed by lerna
|-core # core package with common modules like GraphQL,
| dependency injection, and common app services
|-administration # administration API
|-di # dependency injection module
|-blocks # the module with basic components - buttons, tabs, tables, lists
|-sdk # GraphQL wrapping services
|-dialogs # menus, context menus, modal windows
|-... # other modules
|-plugin
|-authentication
|-connection-custom
|-connection-template
|-data-export
|-etc... # other plugins
|-product-default # default application product package (with all plugins)
common folder structure:
package_name
|-node_modules # dependencies
|-lib # after the build will contain the artifact
|-public # put static assets to this folder
|-src # keep source files here
|-package.json
|-tsconfig.json
execute from cloudbeaver/webapp
yarn run bootstrap
load all dependencies and init workspaces
yarn run build
build all packages (plugins and the application) the result will be placed in packages/{package-name}/lib folder
yarn run lint
lint all code
yarn run lint-fix
lint all code and fix
To build a single plugin execute
lerna run build --stream --scope=@cloudbeaver/plugin-name
|-packages
|-cloudbeaver
|-node_modules # dependencies
|-lib # after the build will contain the artifact
|-public # put static assets to this folder
|-src # keep source files here
|-package.json
|-tsconfig.json
only difference in build command: "build": "webpack --config ../../configs/webpack.product.config", it uses product config, also contains dev command for starting development local build "dev": "webpack-dev-server --progress --config=../../configs/webpack.product.dev.config --port=3100",
The application package simple defines the list of plugins that should be included into the build
Execute command to build only application without rebuilding plugins
lerna run build --stream --scope=@cloudbeaver/product-name
-
To run development build that watches file changed and rebuilds you can use the
devcommand:lerna run dev --stream --scope=@cloudbeaver/product-default -- -- --server=http://backend.server:8095it starts dev server forproduct-defaultand proxies backend requests tohttp://backend.server:8095 -
Navigate
localhost:3100to open the application
You can keep static assets like images, favicon, etc in public folder in plugin packages or app package
All such assets will be copied to application distributive. Assets with the same name will overwrite one another but it is known that Application public assets win.
See the example in the core-administration AdministrationLocaleService.ts and locales folder
- Getting started
- Create connection
- Connection network options
- Supported databases
-
Drivers management
- Database authentication methods
- Database navigator
- Properties editor
- Data editor
- SQL editor
-
Entity relation diagrams
- Cloud services
-
AI Smart assistance
- Data transfer
- General user guide
- Administration
- Server configuration
-
Server security and access configuration
- Authentication methods
- Access management
- Proxy configuration
-
Secret management
- Logs
-
Query manager
- Workspace location
- Command line parameters
-
Session manager
- Deployment options
- CloudBeaver Editions
- FAQ
- Development