Skip to content

Commit 0965085

Browse files
authored
Merge branch 'main' into entra-docs-zeebe-tokenscope
2 parents 357c78e + 8a84078 commit 0965085

File tree

134 files changed

+3360
-927
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

134 files changed

+3360
-927
lines changed

docs/apis-tools/console-api/authentication.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ A client can have one or multiple permissions from the following groups:
3333
- **Cluster**: [Manage your clusters](/components/console/manage-clusters/create-cluster.md).
3434
- **Zeebe Client**: [Manage API clients](/components/console/manage-clusters/manage-api-clients.md) for your cluster.
3535
- **Web Modeler API**: Interact with the [Web Modeler API](/apis-tools/web-modeler-api/index.md).
36-
- **IP Whitelist**: Configure [IP-Whitelist](/components/console/manage-clusters/manage-ip-whitelists.md) rules.
36+
- **IP Allowlist**: Configure [IP-Allowlist](/components/console/manage-clusters/manage-ip-whitelists.md) rules.
3737
- **Connector Secrets**: [Manage secrets](/components/console/manage-clusters/manage-secrets.md) of your clusters.
3838
- **Members**: [Manage members](/components/console/manage-organization/manage-users.md) of your organization.
3939
- **Backups**: Manage [backups](https://docs.camunda.io/docs/components/concepts/backups) of your Camunda 8 clusters (only available to Enterprise customers).

docs/apis-tools/console-api/console-api-reference.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,6 @@ description: "Create and manage clusters, and interact with Camunda 8 management
66
sidebar_position: 1
77
---
88

9-
The Camunda 8 management API provides a programmatic interface for managing Camunda clusters and API clients. It offers endpoints for various operations, including cluster backup, creation, and deletion, as well as client and member management. The API also allows for IP whitelisting and secret management.
9+
The Camunda 8 management API provides a programmatic interface for managing Camunda clusters and API clients. It offers endpoints for various operations, including cluster backup, creation, and deletion, as well as client and member management. The API also allows for IP allowlisting and secret management.
1010

1111
A detailed API description can be found [here](https://console.cloud.camunda.io/customer-api/openapi/docs/#/) via Swagger. With a valid access token, this offers an interactive API experience against your Camunda 8 cluster.

docs/apis-tools/frontend-development/introduction-to-task-applications.md docs/apis-tools/frontend-development/01-introduction-to-task-applications.md

+8-11
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,6 @@ import styles from "./styles.module.css";
1212

1313
Task applications are the interface between humans and Camunda processes to orchestrate human work. Learn key concepts of the architecture of task applications before you build your own.
1414

15-
:::note
16-
If you are not familiar with the idea of human task management itself, read the [introduction to human task management](/components/best-practices/architecture/understanding-human-tasks-management.md) first.
17-
:::
18-
1915
## What are task applications?
2016

2117
Task applications are end-user applications that allow humans to perform work orchestrated with a process. A [user task](/components/modeler/bpmn/user-tasks/user-tasks.md/#user-task-forms) (also referred to as a **human task**) represents a single **work item** to be performed by an individual or a group. The jobs of a task application include:
@@ -28,7 +24,7 @@ Task applications are end-user applications that allow humans to perform work or
2824
- Aggregate information so users and their managers can assess the impact on process goals, such as KPIs and SLAs.
2925
- Ensure tasks are visible only to authorized users.
3026

31-
Task applications play a key role in the orchestration of business processes. They enable the orchestration of processes that still contain manual work instead of automating each process step in advance. This unlocks the potential for continuous improvement and for identifying opportunities for process optimization and automation.
27+
Task applications play a key role in the orchestration of business processes. They enable the orchestration of processes that still contain manual work without automating each process step in advance. This unlocks the potential for continuous improvement and for identifying opportunities for process optimization and automation.
3228

3329
:::tip
3430
Not sure if you should use Camunda Tasklist, build your custom task application, or use a third-party application? Read the [guide to understand human task management](/components/best-practices/architecture/understanding-human-tasks-management.md#deciding-about-your-task-list-frontend) first.
@@ -50,7 +46,7 @@ The task page is divided into two panels, similar to the layout of messaging cli
5046

5147
#### Task queue side panel
5248

53-
The **task queue side panel** lists all tasks \pending for a user or user group. It comes with filter and sort options that allow users to identify the right task to work on next. The tasks can be sorted by the creation date, due date, or follow-up date.
49+
The **task queue side panel** lists all tasks pending for a user or user group. It comes with filter and sort options that allow users to identify the right task to work on next. The tasks can be sorted by the creation date, due date, or follow-up date.
5450

5551
Learn more how to work with the task queue in the [Tasklist user guide](/components/tasklist/userguide/using-tasklist.md).
5652

@@ -127,15 +123,16 @@ Often, task applications support the collaborative work on tasks, generally done
127123

128124
Task applications are not limited to web applications to be worked on desktops. Camunda has been used successfully for the the development of omnichannel customer-facing applications, such as **mobile banking apps**, often via a **backend-for-frontend** implementation.
129125

130-
<!--
131-
TODO Section to be added once pages are available
132-
133126
## Next steps
134127

135128
You learned the basic concepts of a task application. Your possible next steps are:
136129

137-
* Learn how to utilize Camunda 8 APIs to query and execute tasks in your task application, and to enrich it with process execution data.
138-
* Learn how to embed or customize Camunda Forms to render unique, tailored forms that can be designed by business users.
130+
- Learn how to [embed or customize Camunda Forms](/apis-tools/frontend-development/03-forms/01-introduction-to-forms.md) to render tailored forms that can be designed by business users.
131+
- Learn how to utilize [Camunda 8 APIs](/apis-tools/tasklist-api-rest/tasklist-api-rest-overview.md) to query and execute tasks in your task application, and to enrich it with process execution data.
132+
133+
<!--
134+
TODO Section to be added once pages are available
135+
139136
* Run through a comprehensive guide on how to build your own task application.
140137
* Run throuh a guide on how to integrate with low-code tools to design your task application.
141138
-->
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
---
2+
id: introduction-to-forms
3+
title: "Introduction to forms"
4+
description: "Forms play a key role in guiding work processes, gathering necessary information, and aiding in decision-making for human tasks."
5+
---
6+
7+
import FormEditorImg from './img/form-editor.png';
8+
import GHIcon from "@site/src/mdx/GitHubInlineIcon";
9+
10+
Forms play a key role in giving work instructions, collecting information and making decisions on human tasks. Forms are lightweight user interfaces, tailored for focused data input in specific steps of a process, rendering the orchestration of human tasks more efficient than simply routing users to the applications that are orchestrated.
11+
12+
Forms are commonly used in [user tasks](/components/modeler/bpmn/user-tasks/user-tasks.md/#user-task-forms), but also as [start forms](/components/tasklist/userguide/starting-processes.md) to start a new process instance, or even as [public forms](/components/modeler/web-modeler/advanced-modeling/publish-public-processes.md), e.g. to capture user input at scale or to allow your customers to trigger a self-service process.
13+
14+
## Camunda Forms
15+
16+
In Camunda 8, you can design forms using a drag'n'drop editor. The form editor is available in both Desktop and Web Modeler. Learn more about Camunda Forms and available components in the [Camunda Forms reference documentation](/components/modeler/forms/camunda-forms-reference.md), and learn how to design a human workflow with forms in the [getting started guide](/guides/getting-started-orchestrate-human-tasks.md).
17+
18+
<img src={FormEditorImg} alt="Camunda Forms editor" />
19+
20+
## form-js
21+
22+
Camunda Forms present a flexible, open solution to form creation. Camunda Forms are based on the [form-js library](https://github.com/bpmn-io/form-js) <GHIcon />, maintained by Camunda. As a result, the form editor and renderer are non-proprietary, open-source technology, and can be used everywhere, also outside the context of Camunda 8. This unlocks a world of use cases, and eliminates any doubt around vendor lock-in or technical barriers.
23+
24+
Form-js is a vanilla JavaScript library with [Preact](https://preactjs.com/) in the background, and can be used in any framework, from Angular to React.
25+
26+
The resulting forms are serialized as a JSON document. The JSON document conforms to an open form schema that allows you to render the form using both the built-in form render, or even with a custom render. The form schema is extensible, allowing you to build your own extensions or custom components.
27+
28+
<!-- TODO link to dedicated form.js page -->
29+
30+
:::tip Want to Contribute?
31+
We welcome your contributions to form-js! Whether it's fixing a bug, adding a feature or a new component, your input is valuable. You can also provide your ideas by opening issues for us or the community.
32+
33+
**How to Contribute:**
34+
35+
1. 🌐 Visit our [GitHub Repository](https://github.com/bpmn-io/form-js).
36+
2. 🛠️ Check out the issues or open a new one.
37+
3. 💻 Fork the repository and submit a pull request.
38+
39+
Let's make form-js better together! 👩‍💻👨‍💻
40+
:::
41+
42+
Continue reading to learn how to setup, embed, and extend form-js to build form-based task applications for any use case.
43+
44+
<!-- TODO cards -->
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,148 @@
1+
---
2+
id: form-js-concepts
3+
title: "Concepts"
4+
description: "Understand the basic concepts of form-js"
5+
---
6+
7+
import clsx from "clsx";
8+
9+
import GHIcon from "@site/src/mdx/GitHubInlineIcon";
10+
import FormViewer from "@site/src/mdx/FormViewer";
11+
import FormPlaygroundImg from "./img/forms-playground.png";
12+
13+
import policyReviewForm from "./policyReviewForm.js";
14+
import simpleForm from "./simpleForm.js";
15+
16+
Use form-js, the open-source library that powers Camunda Forms, to embed forms anywhere from vanilla JavaScript to low-code application platforms. With form-js, you can view, visually edit, and simulate forms that are based on pure JSON.
17+
18+
## form-js basics
19+
20+
The form-js project is made of three core libraries: the [form editor](https://github.com/bpmn-io/form-js/tree/develop/packages/form-js-editor) <GHIcon />, the [form viewer](https://github.com/bpmn-io/form-js/tree/develop/packages/form-js-viewer) <GHIcon />, and the [form playground](https://github.com/bpmn-io/form-js/tree/develop/packages/form-js-playground) <GHIcon />.
21+
22+
### Form editor
23+
24+
The [form editor](https://github.com/bpmn-io/form-js/tree/develop/packages/form-js-editor) <GHIcon /> allows to design forms with a drag'n'drop interface, and uses [FEEL expressions](/components/modeler/feel/what-is-feel.md) to execute form logic, such as visibility conditions, in realtime. Learn more about using the form editor in the [getting started guide](/guides/utilizing-forms.md).
25+
26+
The form editor as it is shipped in Camunda 8 actually uses the [form playground](#form-playground), which provides realtime preview and validation functionality.
27+
28+
### Form viewer
29+
30+
The [form viewer](https://github.com/bpmn-io/form-js/tree/develop/packages/form-js-viewer) <GHIcon /> renders a form built using the form editor. It is versatile and can be embedded in any JavaScript application to render a form and capture user interactions. Learn more about embedding the form viewer on the following pages.
31+
32+
See the following example form using the form viewer, and interact with it:
33+
34+
<FormViewer schema={ policyReviewForm } />
35+
36+
### Form playground
37+
38+
The [form playground](https://github.com/bpmn-io/form-js/tree/develop/packages/form-js-playground) <GHIcon /> is a tool to preview forms, simulate their behavior, and explore form-js in a playful manner. It combines the [editor](#form-editor) and the [viewer](#form-viewer) with mock data input and output panels to test a form and form editor features instantly.
39+
40+
There is also a [Camunda-flavored version of the form playground](https://github.com/camunda/form-playground) <GHIcon />, which closely resembles the form editor experience in Camunda Web and Desktop Modeler, and supports rapid development.
41+
42+
The form playground mainly comprises the following areas:
43+
44+
- The **component palette** to search and add components.
45+
- The **editor canvas**, allowing to compose a form by dragging components.
46+
- The **preview pane**, which shows an interactive preview of the form. The preview updates in real-time when a change happens in the editor, properties panel, or mock input data.
47+
- The **properties panel**, which is used to configure the properties of a component.
48+
- The **data input panel**, which allows to simulate the form preview using mock input data.
49+
- The **output panel**, which calculates and shows the current form output in real-time, based on the interactions with the preview.
50+
51+
The input and output panel, together with the preview, come in handy to simulate the behavior of a form, and to validate or debug the configuration of one or multiple components, especially when using expressions extensively. Use the input data panel to simulate process variables, business objects, or static data used in your form.
52+
53+
<img src={FormPlaygroundImg} alt="Camunda Forms playground" />
54+
55+
<div style={{marginTop: '24px', marginBottom: '8px'}}>
56+
<a
57+
className={clsx(
58+
"button button--outline button--secondary button--lg"
59+
)}
60+
href="https://camunda-form-playground.netlify.app/">
61+
Try form playground
62+
</a>
63+
</div>
64+
65+
Try the form playground yourself directly on the web, no log in needed.
66+
67+
## The form schema
68+
69+
A form is serialized as plain JSON with a simple, flat structure to maximize flexibility and versatility. In the root, a form contains some metadata attributes. The main form is defined by a list of components, where the components carry their layout properties themselves (e.g. which row a component belongs to). This is in contrast to markup languages such as HTML, where the arrangement of the nodes determines the layout. This enables backward compatibility and compatibility with user-defined renderers.
70+
71+
See this simple form schema for example, and the resulting form:
72+
73+
```json
74+
{
75+
"components": [
76+
{
77+
"label": "First name",
78+
"type": "textfield",
79+
"layout": {
80+
"row": "Row_0hqc9xn",
81+
"columns": null
82+
},
83+
"id": "Field_05l2s7c",
84+
"key": "firstName"
85+
},
86+
{
87+
"label": "Last name",
88+
"type": "textfield",
89+
"layout": {
90+
"row": "Row_0hqc9xn",
91+
"columns": null
92+
},
93+
"id": "Field_0nw7e1c",
94+
"key": "lastName"
95+
},
96+
{
97+
"label": "Income",
98+
"type": "number",
99+
"layout": {
100+
"row": "Row_1ggwq2d",
101+
"columns": 8
102+
},
103+
"id": "Field_12yshuy",
104+
"key": "monthlyNetIncome",
105+
"description": "Monthly net income",
106+
"appearance": {
107+
"prefixAdorner": "USD"
108+
},
109+
"increment": "100",
110+
"validate": {
111+
"required": true,
112+
"min": 0
113+
}
114+
}
115+
],
116+
"type": "default",
117+
"id": "ExampleForm",
118+
"executionPlatform": "Camunda Cloud",
119+
"executionPlatformVersion": "8.4.0",
120+
"exporter": {
121+
"name": "Camunda Modeler",
122+
"version": "5.18.0"
123+
},
124+
"schemaVersion": 12
125+
}
126+
```
127+
128+
<FormViewer schema={ simpleForm } />
129+
130+
All form-js packages share the same [JSON schema](https://github.com/bpmn-io/form-js/tree/develop/packages/form-json-schema) <GHIcon /> for forms.
131+
132+
This enables the interoperability of the created forms between the form editor and the viewer and possibly also between custom-made form renderers, or translating from a Camunda Form to another form. Using the form schema, you can write extensions to existing components, while still receiving benefits from updates made to the core form-js libraries.
133+
134+
The schema abstracts the form model from the viewer, and allows you to inject another expression or templating language as an alternative to FEEL, since expressions are simply stored as strings.
135+
136+
The schema is built on top of and validated by [`json-schema@draft-07`](https://json-schema.org/draft-07/json-schema-release-notes.html).
137+
138+
:::tip
139+
You can use tools like this [JSON Schema Viewer](https://navneethg.github.io/jsonschemaviewer/) to explore the schema visually, or this [tool from Atlassian](https://json-schema.app/view/%23?url=https%3A%2F%2Funpkg.com%2F%40bpmn-io%2Fform-json-schema%401.6.0%2Fresources%2Fschema.json) to validate a form against the schema.
140+
:::
141+
142+
### Schema variables
143+
144+
Form-js comes with versatile methods to extract the expected input and output variables from a form schema. This makes it easy to validate the input and output of a form, and you can combine it with data validation libraries like [joi](https://github.com/hapijs/joi) <GHIcon /> to ensure type and schema safety. Learn more about schema variables in the [embedding guide](./02-embed-in-javascript.md).
145+
146+
## Examples
147+
148+
Visit the [form-js examples repository](https://github.com/bpmn-io/form-js-examples) <GHIcon /> to explore form-js by playing with the toolkit.

0 commit comments

Comments
 (0)