Penstock

Guide / Set up a project

Your project as a model

Penstock reads your diagrams, decisions, forms and code and shows the project as a model: processes, the workers they need, variables, messages, errors, decisions and forms, and how they connect.

Free The links to your code need Pro

What it is

A folder of files hides how a project fits together. Which task needs which worker? Which variable is set where? Who throws this message? Penstock answers by reading every diagram, decision and form and, with Pro, your code. The result is the project model: a tree, with a count beside each node.

Where to see it

JetBrains

The Penstock tool window on the left of the IDE shows it as a tree. Double-click a node to open it. On a diagram element it selects the element on the canvas.

VS Code

The Penstock view in the Activity Bar shows it as a tree: processes, workers, variables, messages, errors, decisions, forms, templates, deployment, files, and Migrate to Camunda 8. Click or press Enter on a node to open it. See Code links in VS Code.

Command line

There is no tree. The commands read the same model: penstock show lists a diagram, penstock code compares diagrams with code, penstock scenarios list lists ways through a process. See Every command.

What the model shows

NodeWhat is under it
ProcessesEvery process, with the processes it calls and is called by. With Pro: its tests and how much of it they cover.
Tests ProEvery process test, by class, with what each covers.
WorkersWhat each task needs to run: a job type, topic, class or bean. A worker nothing implements is marked. See Check Workers.
VariablesEvery process variable, where it is set and read, and a warning for one that is read but never set, or one that is set a letter away: set as 'approved'?
MessagesEvery message, with who catches and who throws it.
ErrorsEvery error code, where it is caught and thrown. Marks a code that is thrown but never caught, and an error event nothing throws.
DecisionsEvery decision, and the tasks that call it. A decision the project does not have is marked not in project.
FormsEvery form, and the tasks that use it. A form the project does not have is marked not in project.
DeploymentEach profile with its address and the last deploy. You can deploy every diagram to a profile, after a confirmation.
FilesThe files, in folders.
DebugOnly while a debugger is stopped in a worker: the task it is in.
Migrate to Camunda 8Only in a Camunda 7 family project. See Camunda 7 to 8.

Without Pro the model of your diagrams is still shown. The links from a task to the code that runs it need Pro. See Code links.

Group by files

The model can be turned round: file by file, with each process's elements and what runs them. The choice, and the choice between folders and a flat list, are kept in ~/.penstock/preferences.json.

What you see

Common problems

The model is empty.
The project has no .bpmn, .dmn or .form files that Penstock can see. Build folders are skipped.
There is no link to the code.
Code links are a Pro feature, and nothing in the project implements the worker.