45 lines
1.3 KiB
Markdown
45 lines
1.3 KiB
Markdown
|
# Frontend
|
||
|
|
||
|
spiffworkflow-frontend is a react application that relies on the spiffworkflow-backend REST API.
|
||
|
We try to keep library bloat to a minimum.
|
||
|
|
||
|
## Libaries
|
||
|
|
||
|
### bpmn-js
|
||
|
|
||
|
The bpmn-js library is used to render and edit BPMN diagrams.
|
||
|
This library is maintained by the Camunda team.
|
||
|
|
||
|
### bpmn-js-spiffworkflow
|
||
|
|
||
|
These are SpiffWorkflow extensions to bpmn-js to make for a better experience when executing BPMN diagrams using the SpiffWorkflow execution engine.
|
||
|
|
||
|
### rjsf/core, @rjsf/utils, etc
|
||
|
|
||
|
React JSON Schema Form is used to build forms from JSON schemas.
|
||
|
You can attach JSON schemas to tasks that are meant to be completed by people (User Tasks), and the frontend will render a form for that task.
|
||
|
You can specify what data is required as well as how the form should look.
|
||
|
|
||
|
### @tanstack/react-query
|
||
|
|
||
|
We haven't deeply integrated this library, but it is used by the system that caches permission calls.
|
||
|
## Layers
|
||
|
|
||
|
|
||
|
```mermaid
|
||
|
graph LR
|
||
|
Routes -- delegate work to --> Services
|
||
|
```
|
||
|
|
||
|
### Routes
|
||
|
When the browser sees a URL like /hithere, it will render a route component to handle the request.
|
||
|
|
||
|
|
||
|
### Services
|
||
|
|
||
|
The route component may or may not delegate some of its work to a service.
|
||
|
## Deployment
|
||
|
|
||
|
The generated docker image uses nginx to serve static html/css/js files that are generated by the vite build process.
|
||
|
These files can also be hosted on a CDN.
|