datakurre / camunda-cockpit-plugins Goto Github PK
View Code? Open in Web Editor NEWMinimal "history plugins" for Camunda Cockpit
License: Apache License 2.0
Minimal "history plugins" for Camunda Cockpit
License: Apache License 2.0
There are two things that are not properly working on the plugins. We run Camunda engine on sprinboot. Platform version is 7.16.
Issue 1:
If the process is big, the history tab will not load at all
Issue 2:
Some processes do not show variables at all when the process is complete.
The upstream component is not perfect and has not been updated for React 1.18. Still looking for replacement... (or looking into fix the upstream).
This no longer works on Camunda 7.15.0
$ git clone https://github.com/datakurre/camunda-cockpit-plugins.git
$ docker run --rm -p 8080:8080 -v $(pwd)/camunda-cockpit-plugins:/camunda/webapps/camunda/app/cockpit/scripts/:ro camunda/camunda-bpm-platform:latest
because it would override the default camunda-cockpit-ui.js
located now at scripts
.
I welcome the second best option to try out these plugins on 7.15.0.
Options:
a) Add Dockerfile and instruct building a custom image
b) Instruct to start the default image, copy camunda-cockpit-ui.js
from it and then use the old instructions
c) Instruct to mount every file with separate mount to prevent overriding camunda-cockpit-ui.js
After using this super useful plugin, I have a little feedback.
Super, life saver plugin. Thanks!
Variables 'Created' column inside process instance history view should be in local timezone like in other tabs.
Right now it's displayed as is in UTC
When GET /process-definition/{id}
response contains Content-Type: application/json;charset=UTF-8
History and Statistic tabs are empty because another header expected - Content-Type: application/json
(https://github.com/datakurre/camunda-cockpit-plugins/blob/master/src/utils/api.ts#L31).
Because of it 'definition' is undefined (https://github.com/datakurre/camunda-cockpit-plugins/blob/master/src/instance-route-history.tsx#L31) => definition.key is undefined too (https://github.com/datakurre/camunda-cockpit-plugins/blob/master/src/instance-route-history.tsx#L33) => history queried with 'undefined' processDefinitionKey: GET /process-instance?processDefinitionKey=undefined
Currently, the plugins do not show history of ended processes on camudna 7.16.
Are you planning to add support for 7.16?
Hi,
This might be tricky to fix. I was getting ready to deploy your plugin to our Camunda instances, but when I tried to push the plugin *.js files to my git repo, I got a bunch security related output and my repo refused to accept the push. See error messages below.
Any ideas on how to fix or what is being complained about?
Thanks
remote: ECS Custom Password vulnerability detected in file src/main/resources/home/camunda/camunda/server/apache-tomcat-9.0.36/webapps/camunda/app/cockpit/scripts/camunda-cockpit-ui.js (0b9d64e6bea6a4eda324b1f86643ea98c1246361) on line 18.
remote: ECS Custom Password vulnerability detected in file src/main/resources/home/camunda/camunda/server/apache-tomcat-9.0.36/webapps/camunda/app/cockpit/scripts/camunda-cockpit-ui.js (0b9d64e6bea6a4eda324b1f86643ea98c1246361) on line 40.
remote: ECS Custom Password vulnerability detected in file src/main/resources/home/camunda/camunda/server/apache-tomcat-9.0.36/webapps/camunda/app/cockpit/scripts/camunda-cockpit-ui.js (0b9d64e6bea6a4eda324b1f86643ea98c1246361) on line 72.
remote: ECS Custom Password vulnerability detected in file src/main/resources/home/camunda/camunda/server/apache-tomcat-9.0.36/webapps/camunda/app/cockpit/scripts/camunda-cockpit-ui.js (0b9d64e6bea6a4eda324b1f86643ea98c1246361) on line 80.
remote: ECS Custom Password vulnerability detected in file src/main/resources/home/camunda/camunda/server/apache-tomcat-9.0.36/webapps/camunda/app/cockpit/scripts/definition-historic-activities.js (0b9d64e6bea6a4eda324b1f86643ea98c1246361) on line 346.
remote: ECS Custom Password vulnerability detected in file src/main/resources/home/camunda/camunda/server/apache-tomcat-9.0.36/webapps/camunda/app/cockpit/scripts/definition-historic-activities.js (0b9d64e6bea6a4eda324b1f86643ea98c1246361) on line 747.
remote: ECS Custom Password vulnerability detected in file src/main/resources/home/camunda/camunda/server/apache-tomcat-9.0.36/webapps/camunda/app/cockpit/scripts/definition-historic-activities.js (0b9d64e6bea6a4eda324b1f86643ea98c1246361) on line 826.
remote: ECS Custom Password vulnerability detected in file src/main/resources/home/camunda/camunda/server/apache-tomcat-9.0.36/webapps/camunda/app/cockpit/scripts/definition-historic-activities.js (0b9d64e6bea6a4eda324b1f86643ea98c1246361) on line 827.
remote: ECS Custom Password vulnerability detected in file src/main/resources/home/camunda/camunda/server/apache-tomcat-9.0.36/webapps/camunda/app/cockpit/scripts/definition-historic-activities.js (0b9d64e6bea6a4eda324b1f86643ea98c1246361) on line 829.
remote: ECS Custom Password vulnerability detected in file src/main/resources/home/camunda/camunda/server/apache-tomcat-9.0.36/webapps/camunda/app/cockpit/scripts/definition-historic-activities.js (0b9d64e6bea6a4eda324b1f86643ea98c1246361) on line 978.
remote: ECS Custom Password vulnerability detected in file src/main/resources/home/camunda/camunda/server/apache-tomcat-9.0.36/webapps/camunda/app/cockpit/scripts/definition-historic-activities.js (0b9d64e6bea6a4eda324b1f86643ea98c1246361) on line 10209.
remote: ECS Custom Password vulnerability detected in file src/main/resources/home/camunda/camunda/server/apache-tomcat-9.0.36/webapps/camunda/app/cockpit/scripts/definition-historic-activities.js (0b9d64e6bea6a4eda324b1f86643ea98c1246361) on line 10365.
remote: ECS Custom Password vulnerability detected in file src/main/resources/home/camunda/camunda/server/apache-tomcat-9.0.36/webapps/camunda/app/cockpit/scripts/instance-historic-activities.js (0b9d64e6bea6a4eda324b1f86643ea98c1246361) on line 340.
remote: ECS Custom Password vulnerability detected in file src/main/resources/home/camunda/camunda/server/apache-tomcat-9.0.36/webapps/camunda/app/cockpit/scripts/instance-historic-activities.js (0b9d64e6bea6a4eda324b1f86643ea98c1246361) on line 6343.
remote: ECS Custom Password vulnerability detected in file src/main/resources/home/camunda/camunda/server/apache-tomcat-9.0.36/webapps/camunda/app/cockpit/scripts/instance-route-history.js (0b9d64e6bea6a4eda324b1f86643ea98c1246361) on line 377.
remote: ECS Custom Password vulnerability detected in file src/main/resources/home/camunda/camunda/server/apache-tomcat-9.0.36/webapps/camunda/app/cockpit/scripts/instance-route-history.js (0b9d64e6bea6a4eda324b1f86643ea98c1246361) on line 778.
remote: ECS Custom Password vulnerability detected in file src/main/resources/home/camunda/camunda/server/apache-tomcat-9.0.36/webapps/camunda/app/cockpit/scripts/instance-route-history.js (0b9d64e6bea6a4eda324b1f86643ea98c1246361) on line 857.
remote: ECS Custom Password vulnerability detected in file src/main/resources/home/camunda/camunda/server/apache-tomcat-9.0.36/webapps/camunda/app/cockpit/scripts/instance-route-history.js (0b9d64e6bea6a4eda324b1f86643ea98c1246361) on line 858.
remote: ECS Custom Password vulnerability detected in file src/main/resources/home/camunda/camunda/server/apache-tomcat-9.0.36/webapps/camunda/app/cockpit/scripts/instance-route-history.js (0b9d64e6bea6a4eda324b1f86643ea98c1246361) on line 860.
remote: ECS Custom Password vulnerability detected in file src/main/resources/home/camunda/camunda/server/apache-tomcat-9.0.36/webapps/camunda/app/cockpit/scripts/instance-route-history.js (0b9d64e6bea6a4eda324b1f86643ea98c1246361) on line 1009.
remote: ECS Custom Password vulnerability detected in file src/main/resources/home/camunda/camunda/server/apache-tomcat-9.0.36/webapps/camunda/app/cockpit/scripts/instance-route-history.js (0b9d64e6bea6a4eda324b1f86643ea98c1246361) on line 10119.
remote: ECS Custom Password vulnerability detected in file src/main/resources/home/camunda/camunda/server/apache-tomcat-9.0.36/webapps/camunda/app/cockpit/scripts/instance-route-history.js (0b9d64e6bea6a4eda324b1f86643ea98c1246361) on line 62525.
remote: ECS Custom Password vulnerability detected in file src/main/resources/home/camunda/camunda/server/apache-tomcat-9.0.36/webapps/camunda/app/cockpit/scripts/instance-tab-modify.js (0b9d64e6bea6a4eda324b1f86643ea98c1246361) on line 313.
remote: ECS Custom Password vulnerability detected in file src/main/resources/home/camunda/camunda/server/apache-tomcat-9.0.36/webapps/camunda/app/cockpit/scripts/tasklist-audit-log.js (0b9d64e6bea6a4eda324b1f86643ea98c1246361) on line 330.
remote: ECS Custom Password vulnerability detected in file src/main/resources/home/camunda/camunda/server/apache-tomcat-9.0.36/webapps/camunda/app/cockpit/scripts/tasklist-audit-log.js (0b9d64e6bea6a4eda324b1f86643ea98c1246361) on line 6333.
remote:
To ssh://itec-stash.fmr.com/pr172363/camunda_ami_artifacts.git
! [remote rejected] feature/2866-cockpit-history-plugin -> feature/2866-cockpit-history-plugin (pre-receive hook declined)
error: failed to push some refs to 'ssh://itec-stash.fmr.com/pr172363/camunda_ami_art
Hi,
is it possible to connect docker with camundat-coockpit-plugin to existed Camunda API?
say I already have a running camunda - and wish to create a new webapp with histo plugin which will use existed camunda as a backand ?
thanks
Great job!!! Awesome work!
I've just noticed that with the new Camunda release of Platform Run 7.15 the instructions from
https://datakurre.pandala.org/2021/01/camunda-cockpit-history-plugin/
don't work anymore.
So I downloaded the whole package from https://github.com/datakurre/camunda-cockpit-plugins and did the following to get it working. It seems only some .js files (instance-tab-modify.js, robot-module.js, rollup.config.js) have to be included, because of your new version. So I did a:
cp *.js [DirOfCamBPMRun7150]/META-INF/resources/webjars/camunda/app/cockpit/scripts/
jar uf internal/webapps/camunda-webapp-webjar-7.15.0.jar META-INF
That works for me.
“Could you elaborate more. What do you mean with “decision map” and when it is not available?”
new Map(decisions.map(function (decision) { return [decision.activityInstanceId, decision.id]; }));
It is not available if the DMN engine is not enabled.
I get a HTTP status code 500 for /decision-instance , /decision-definition and /decision-requirements-definition
Clicking on process -> redirect to cockpit home
nginx log: GET /camunda/api/engine/engine/https://site/camunda/app/cockpit/default/ HTTP/2.0" 401 669 GET
It seems there is wrong path to engine on new camunda version
I have successfully installed your cockpit plugin in version 7.16 of the Camunda/Tomcat distribution, but the same installation procedure in version 7.14 isn't successful, that is, the plugin tabs don't show up. Would you mind specifying the 7.14 installation procedure? I see that you have some instructions for a 7.14 docker installation, but I'm not a Docker guy yet. If you could just tell me where to put which files, it would be a huge help. Thanks
It would be nice to have the Sequence Flow permanently active once i have activated it on one instance.
We do have the use case to link to a specific Process Instance from outside and to enable the Sequence Flow in that url, it would be nice to have a URL option that enables it.
Like:
And it would also be nice to have, once activated it still active, when i switch to a different instance or refreshed the page.
This could also be realised by storing this state in the localStorage..
Camunda is enforcing pagination on some of the GET endpoints. When you do not pass the maxResults parameter, the endpoint will return a 400 status code with the following response body:
{"type":"BadUserRequestException","message":"An unbound number of results is forbidden!"}
The following 3 endpoints (which now require maxResults) are all being called after selecting an instance on the History tab and failing:
These errors are preventing me from seeing the process history.
To install the plugin into a Camunda Tomcat distribution, do you just copy all of the *.js files in in the GitHub project:
https://github.com/datakurre/camunda-cockpit-plugins
to \camunda-bpm-tomcat-7.16.0\server\apache-tomcat-9.0.52\webapps\camunda\app\cockpit\scripts
Or, are there additional files that need to be copied as well?
What ever the correct installation procedure, it would be useful to mention this in the Try It section of the GitHub project README.md file.
In the diagram below notice that the "No" path is annotated as the execution path taken. Also, notice that the flow out of "CompleteAuth" is annotated as the execution path. In fact, the actual execution path out of the gate is the unlabeled flow. The condition on the "No" path is ${ ! executeCompleteAuth }
and on the unlabeled flow the condition is ${ executeCompleteAuth }.
The value of executeCompleteAuth is true. Let me know if you need any additional information.
Hello
Can I customize authorizations to make history available to certain users for their own tasks only?
So far I managed to give history permission to that user for all tasks for a certain process definition.
Thank you.
Hi @datakurre 👋 ,
I'm currently creating a Camunda PoC leveraging the Spring Boot Starter. I stumbled over your blog post describing your work on this plugin. I would love to try it out, but I'm not very familiar with the plugin system of the Camunda Cockpit.
Could you guide me into the right direction on how to install the plugin into my PoC application using Spring Boot?
I started my PoC using the camunda Initializr , so beside a different process model and custom task code, nothing is different from the defaults.
Cheers,
Marvin
How to use this plugin with Camunda WebApp embeded in Spring Boot?
Hello and thank you for the work you've done.
Is it possible to view/download the uploaded files under the variables tab just like any other variable that's shown?
Currently I can view all variables for a process instance, but the value for files is set to null.
First of all, great plugin idea! It can definitely be very useful, when stabilized.
I noticed two issues with the definitionDiagramHistoricActivities plugin:
const definitions = await get(api, '/process-definition', { key: definition.key });
let activities: any[] = [];
for (const version of definitions) {
const batch = await get(api, '/history/activity-instance', {
sortBy: 'endTime',
sortOrder: 'desc',
maxResults: '100',
processDefinitionId: version.id,
});
activities = activities.concat(batch);
}
It causes massive performance problems, because there will be as many requests as process definition versions, which can be even in thousands in older production applications, there is no limit here.
Besides, process definition view in cockpit reflects only one particular version of process definition, so visualizing data spanning across different versions breaks the convention.
I believe these statistics should be based only on currently selected process definition version.
2. Even if only activities for selected process definition version are fetched, it's still inefficient to count occurrences on frontend. It will be usable only if amount of historical data is very low.
Did you consider implementing a backend plugin, that would expose these statistics via api endpoint, based on custom sql query?
Please tell me your thoughts about these ideas :)
If so, plz give me some comments on how to do this.
Cheers, Lijie
There is new feature in History Audit log: User can press link and show activity Sybprocess.
But when clicking a link, only diagram above is updated, but audit table still from parent process. And I have to refresh browser window to make changes in table below.
Any idea why your example work ok with docker port mapping "-P" but not with "-p 8080:8080"?
shoisko@DuuniWin10:~/tmp$ git clone https://github.com/datakurre/camunda-cockpit-plugins.git
Cloning into 'camunda-cockpit-plugins'...
remote: Enumerating objects: 313, done.
remote: Counting objects: 100% (313/313), done.
remote: Compressing objects: 100% (157/157), done.
remote: Total 313 (delta 204), reused 249 (delta 147), pack-reused 0
Receiving objects: 100% (313/313), 2.79 MiB | 4.87 MiB/s, done.
Resolving deltas: 100% (204/204), done.
shoisko@DuuniWin10:~/tmp$ docker run -d --rm -P -v $(pwd)/camunda-cockpit-plugins:/camunda/webapps/camunda/app/cockpit/scripts/:ro camunda/camunda-bpm-platform:latest
a20fa695b0270e866e87881f3efbb96aec57b3935ffbf5eae57918ac276108b1
shoisko@DuuniWin10:~/tmp$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a20fa695b027 camunda/camunda-bpm-platform:latest "/sbin/tini -- ./cam…" 4 seconds ago Up 4 seconds 0.0.0.0:49190->8000/tcp, 0.0.0.0:49189->8080/tcp, 0.0.0.0:49188->9404/tcp boring_perlman
shoisko@DuuniWin10:~/tmp$ docker run -d --rm -p 8080:8080 -v $(pwd)/camunda-cockpit-plugins:/camunda/webapps/camunda/app/cockpit/scripts/:ro camunda/camunda-bpm-platform:latest
29454c204e626a98b590def0d761e6ec3d873b664969b9829befb6346f400866
shoisko@DuuniWin10:~/tmp$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
29454c204e62 camunda/camunda-bpm-platform:latest "/sbin/tini -- ./cam…" 6 seconds ago Up 5 seconds 8000/tcp, 9404/tcp, 0.0.0.0:8080->8080/tcp quizzical_bassi
hi
could we somehow add instruction on how-to add plugin into spring-boot-application?
I've created Proof Of concept by my own : https://github.com/bogdartysh/spring-boot-datakurre-plugins-webjar
so one could add it into maven using jitpack (as sources are on github only) and add as a dependency into maven
Hi, is there any way to integrate the plugin into the "Camunda Docker Run" image which can be found here:
docker pull camunda/camunda-bpm-platform:run-7.15.0
I tried it with a Dockerfile like this:
ARG base_image_version=run-7.15.0
FROM camunda/camunda-bpm-platform:${base_image_version}
COPY camunda-history-plugin/ /camunda/webapps/camunda/app/cockpit/scripts/
COPY camunda-cockpit-ui.js /camunda/webapps/camunda/app/cockpit/scripts/
with no success. Any hints? Interesting part: The file camunda-cockpit-ui.js is missing in the run image, so I suppose this image is stripped down not to support any plugins. Right?
I have just a quick question. I know there is a filter to limit the number of instances retrieved by the plugin, but I'm curious whether there is a default value?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.