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.
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
| Node | What is under it |
|---|---|
| Processes | Every process, with the processes it calls and is called by. With Pro: its tests and how much of it they cover. |
| Tests Pro | Every process test, by class, with what each covers. |
| Workers | What each task needs to run: a job type, topic, class or bean. A worker nothing implements is marked. See Check Workers. |
| Variables | Every 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'? |
| Messages | Every message, with who catches and who throws it. |
| Errors | Every error code, where it is caught and thrown. Marks a code that is thrown but never caught, and an error event nothing throws. |
| Decisions | Every decision, and the tasks that call it. A decision the project does not have is marked not in project. |
| Forms | Every form, and the tasks that use it. A form the project does not have is marked not in project. |
| Deployment | Each profile with its address and the last deploy. You can deploy every diagram to a profile, after a confirmation. |
| Files | The files, in folders. |
| Debug | Only while a debugger is stopped in a worker: the task it is in. |
| Migrate to Camunda 8 | Only 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
- A tree with a count beside each node.
- A warning on a worker that nothing implements, a variable that is read but never set, and a call to a process the project does not have.
- Folders that hold build output, such as
node_modules,build,target,outanddist, are skipped.
Common problems
- The model is empty.
- The project has no
.bpmn,.dmnor.formfiles 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.