Kogito is the next generation of Business Automation platform focused on cloud-native development, deployment and execution.
Homepage: http://kogito.kie.org
Wiki: https://github.com/kiegroup/kogito-tooling/wiki
JIRA: https://issues.jboss.org/projects/KOGITO
jBPM: https://www.jbpm.org/
Drools: https://www.drools.org/
This module contains a number of examples that you can take a look at and try out yourself. Please take a look at the readme of each individual example for more details on how the example works and how to run it yourself (either locally or on Kubernetes):
- Process + Quarkus: README.md
- Process + Spring Boot: README.md
- Process + Rules + Quarkus: README.md - Onboarding example combining one process and two decision services
- Rules + Quarkus: README.md
- Rule Unit + Quarkus: README.md
In Kogito Tooling releases page you will find extensions and released tooling packages.
NOTE: We recommend using Node 16 when developing this project. Our CI uses Node
16.2.0
, Yarn1.22.10
, and Lerna4.0.0
.
-
Check out the source:
git clone git@github.com:kiegroup/kogito-tooling.git
If you don't have a GitHub account use this command instead:
git clone https://github.com/kiegroup/kogito-tooling.git
-
Install NodeJs, Yarn and Lerna:
For NodeJs follow any chosen way for your operating system https://nodejs.org/en/download/package-manager/ or download and install as guided at https://github.com/nodejs/help/wiki/Installation.
Yarn installation command:
npm install -g yarn
Lerna installation command:
npm install -g lerna@4.0.0
-
Build with Yarn:
cd kogito-tooling yarn bootstrap #prod yarn build:prod # dev yarn build:dev
NOTE: It's necessary to have the Git tags fetched when building with
build:prod
.Final artifacts will be on
packages/*/dist
directories.
NOTE: We recommend using Node 16 when developing this project. Our CI uses Node
16.2.0
, Yarn1.22.10
, and Lerna4.0.0
.
NOTE: This repository contains several packages each with its own custom configurations. Here's a list of every environment variables you can use to customize the build.
KOGITO_TOOLING_BUILD_test
: Runs or skips the unit tests on all packages. Runs the tests if empty. Can be"true"
or"false"
.KOGITO_TOOLING_BUILD_lint
: Runs or skips ESLint on all projects. Runs the linter if empty. Can be"true"
or"false"
.WEBPACK_TS_LOADER_transpileOnly
: Configurests-loader
with its value. See defaultWEBPACK_minimize
: Configures Webpack to minimize the bundles or not. See defaultDOWNLOAD_HUB_linuxUrl
: Used inpackages/online-editor
. Configures the URL to download the Linux Hub on the Online Editor. See default -DOWNLOAD_HUB_macOsUrl
: Used inpackages/online-editor
. Configures the URL to download the macOS Hub on the Online Editor. See default -DOWNLOAD_HUB_windowsUrl
: Used inpackages/online-editor
. Configures the URL to download the Windows Hub on the Online Editor. See default -ROUTER_targetOrigin
: Used inpackages/chrome-extension-pack-kogito-kie-editors
. Configures the origin from which the Editor envelopes will be fetched. See defaultROUTER_relativePath
: Used inpackages/chrome-extension-pack-kogito-kie-editors
. Configures the URI from which the Editor envelopes will be fetched. See defaultONLINEEDITOR_url
: Used inpackages/chrome-extension-pack-kogito-kie-editors
. Configures the URL of the Online Editor to be used on the "Open in ..." button. See defaultEXTERNAL_RESOURCE_PATH__bpmnEditor
: Used in several packages. Configures the local path from which the BPMN Editor files will be copied. See defaultEXTERNAL_RESOURCE_PATH__dmnEditor
: Used in several packages. Configures the local path from which the DMN Editor files will be copied. See defaultEXTERNAL_RESOURCE_PATH__scesimEditor
: Used in several packages. Configures the local path from which the SceSim Editor files will be copied. See defaultEXTERNAL_RESOURCE_PATH__quarkusRunner
: Used inpackages/vscode-extension-backend
. Configures the local path from which the Quarkus Runner files will be copied. See defaultKIE_TOOLING_EXTENDED_SERVICES__linuxDownloadUrl
: Used inpackages/online-editor
. Configures the URL to download the Linux KIE Tooling Extended Services on the Online Editor. See defaultKIE_TOOLING_EXTENDED_SERVICES__macOsDownloadUrl
: Used inpackages/online-editor
. Configures the URL to download the macOS KIE Tooling Extended Services on the Online Editor. See defaultKIE_TOOLING_EXTENDED_SERVICES__windowsDownloadUrl
: Used inpackages/online-editor
. Configures the URL to download the Windows KIE Tooling Extended Services on the Online Editor. See defaultKIE_TOOLING_EXTENDED_SERVICES__compatibleVersion
: Used inpackages/online-editor
. Configures the version of the KIE Tooling Extended Services on the Online Editor. See defaultExample:
$ export EXTERNAL_RESOURCE_PATH__bpmnEditor=/Users/tiago/redhat/kie-wb-common/kie-wb-common-stunner/kie-wb-common-stunner-sets/kie-wb-common-stunner-bpmn/kie-wb-common-stunner-bpmn-kogito-runtime/target/kie-wb-common-stunner-bpmn-kogito-runtime/
$ export EXTERNAL_RESOURCE_PATH__dmnEditor=/Users/tiago/redhat/kie-wb-common/kie-wb-common-dmn/kie-wb-common-dmn-webapp-kogito-runtime/target/kie-wb-common-dmn-webapp-kogito-runtime/
$ yarn bootstrap && yarn build:prod
This is only necessary for these GWT-based Editors.
- After you've successfully built the project following the instructions above, open the
packages/vscode-extension-pack-kogito-kie-editors
folder on VS Code. Use a new VS Code window so that thepackages/vscode-extension-pack-kogito-kie-editors
folder shows up as root in the VS Code explorer. - From there, you can Run the extension or the integration tests by using the
Debug
menu/section. You can also use the respective shortcuts (F5 to start debugging, for instance). - NOTE: To run the VS Code extension in development mode, you need
webpack
andwebpack-cli
to be globally installed on NPM. Normally you can do that withnpm install -g webpack@4.41.2 webpack-cli@3.3.10
, butsudo
may be required depending on your installation. - Remember! If you make changes to packages other than
packages/vscode-extension-pack-kogito-kie-editors
, you have to manually rebuild them before relaunching the extension on VS Code.
- After you've successfully built the project following the instructions above, open the
packages/chrome-extension-pack-kogito-kie-editors
folder on your favourite IDE. You can import the entire repo as well if you want to make changes to other packages. - Run
yarn build:dev
onpackages/chrome-extension-pack-kogito-kie-editors
. This will create a version of the Chrome Extension that fetches the envelope locally. - Open a terminal and run
yarn run serve-envelope
onpackages/chrome-extension-pack-kogito-kie-editors
. This will start awebpack serve
instance with the editors and their envelope. We use that because we don't pack the Chrome Extension bundle with the editors inside. Instead, we fetch them from GitHub pages. - You also have to enable invalid certificates for resources loaded from localhost in your browser. To do that, go to
chrome://flags/#allow-insecure-localhost
in your Chrome browser and enable this flag. Alternativelly, you can go tohttps://localhost:9001
and add an exception. - Open Chrome and go to
chrome://extensions
. Enable "Developer mode" in the top-right corner and click on "Load unpacked". Choose thepackages/chrome-extension-pack-kogito-kie-editors/dist
folder. - From now on you can use the development version of the extension. Remember! After each change, you have to rebuild the changed modules and hit the "Refresh" button of the extension card.
- After you've successfully built the project following the instructions above, go to
packages/online-editor
. - Open a terminal and run
yarn start
. This will start awebpack serve
instance with the Online Editor resources. - From now on you can use the development version of the Online Editor by accessing
https://localhost:9001
.
- After you've successfully built the project following the instructions above, go to
packages/desktop
orpackages/hub
. They work exactly the same. - To start the application in development mode, you can run
yarn start
. If you make changes and want to reload the app, runyarn run build:dev && yarn start
. This will recompile the module and restart the Electron app. Remember: if you make changes to other modules, you have to build them too! - To build and package the application for production (i.e. generating an executable), you can run
yarn run build:prod
. This will pack the application for the current OS. If you want to pack the application for a different OS, runyarn run pack:linux
, for example. Seepackage.json
for more details.
- After you've successfully built the project following the instructions above, go to
packages/kie-editors-standalone
. - Open a terminal and run
yarn start
. This will start awebpack serve
instance with the Standalone Editors test page. - From now on you can use the development version of the Standalone DMN Editor by accessing
https://localhost:9001/resources/dmn
and the Standalone BPMN Editor by accessinghttps://localhost:9001/resources/bpmn
.
- When opening PRs, please make sure to provide a detailed description of the issue along with the JIRA, if there's one.
- If you are a member of kiegroup and want to test a change you made in our tooling, you
can go to our Run FDB issue and make a comment following the
format
Build: {github-username}/{branch-name}
. This will trigger a job that will fetch the forks (1) of{github-username}
, merge{branch-name}
intomain
, and build them. In a few seconds you should see a new comment on the same issue, saying that a new build was triggered for you. The GitHub Actions bot will also provide a link so you can follow the build logs and download artifacts, and another link to access an Online Editor instance (2) containing your changes, once it's finished running. - Please use Prettier to format the code before submitting a PR.
(1) This process considers the following repositories: droolsjbpm-build-bootstrap
, kie-soup
, appformer
, kie-wb-common
, drools-wb
and kogito-tooling
.
(2) The Online Editor instance will be accessible for 30 days.
All contributions are welcome! Before you start please read the Developing Drools and jBPM guide.
Here are some of the most notable ones for quick reference:
- Quarkus - Using Kogito to add business automation capabilities to an application - This guide demonstrates how your Quarkus application can use Kogito to add business automation to power it up with business processes and rules.
- Quarkus - Getting Started - Quarkus Getting Started guide