Skip to content

Commit

Permalink
Merge pull request #803 from RizaFarheen/riz-updates-nov26
Browse files Browse the repository at this point in the history
Updates
  • Loading branch information
RizaFarheen authored Nov 26, 2024
2 parents d359aa5 + 5c95a86 commit 2993fad
Show file tree
Hide file tree
Showing 11 changed files with 49 additions and 47 deletions.
8 changes: 4 additions & 4 deletions docs/access-control-and-security/applications.md
Original file line number Diff line number Diff line change
Expand Up @@ -59,12 +59,12 @@ Configure the application’s roles and permissions to control what your applica
3. Enter the application name.
4. Select **Save**.
The application has been created. You can proceed to add roles or permissions to the application.
2. Generate access keys.
1. In the Access Keys section, select **+ Create access key** to generate a unique keyId and keySecret. The Key Secret is shown only once, so make sure to copy and store it securely.
3. Add roles to the application.
2. Add roles to the application.
1. In the Application Roles or Unrestricted Roles section, toggle the different application roles for your application.
3. Generate access keys.
1. In the Access Keys section, select **+ Create access key** to generate a unique keyId and keySecret. The Key Secret is shown only once, so make sure to copy and store it securely.
4. Add permissions to grant application-level access to resources.
1. In the Permissions section, select **+ Add Permission**.
1. In the Permissions section, select **+ Add permission**.
2. Toggle between each resource type and select the resources to provide access to.
3. Toggle the access levels for your selected resource:
* **Read**—The application will be able to view the resource.
Expand Down
5 changes: 3 additions & 2 deletions docs/access-control-and-security/rbac-overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,7 @@ If multiple roles are granted, they will have all granted role-level permissions
| Metadata Manager | Can create, update, delete, and grant permissions to any workflow or task definition in the cluster. <br/> <br/> This role can only be granted by an Admin. |
| Workflow Manager | Can start, pause, resume, rerun, and delete any workflow execution in the cluster. <br/> <br/> This role can only be granted by an Admin. |
| Application Manager | Can create, update, and delete any application in the cluster. <br/> <br/> This role can only be granted by an Admin. |
| Admin | Can create, read, modify, delete, and execute this particular application. <br/> <br/> This role can only be granted by an Admin. |

</TabItem>
</Tabs>
Expand All @@ -91,10 +92,10 @@ Besides the role-based permissions, you can add granular permissions to **groups
* Tasks
* Secrets
* Environment variables
* Integrations
* Prompts
* Tags
* Domains
* Integrations
* Prompts

Unlike other permission targets, **tags** and **domains** provide bulk access to multiple resources. Tags can be used to grant resources across almost every resource type. When you grant access for a tag “x”, all resources with the tag “x” will be made available to the group or application.

Expand Down
2 changes: 1 addition & 1 deletion docs/access-control-and-security/tags.md
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ The application now has access to all resources under the tag. You can select th
</TabItem>
</Tabs>

Watch how to use tags to manage permissions in Orkes Platform.
Watch how to use tags to manage permissions in Orkes Conductor.

<center><iframe width="510" height="300" src="https://www.youtube.com/embed/qFHDwh2a_l4?si=DqWsT7_NgMv5ZZgx" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="allowfullscreen"
mozallowfullscreen="mozallowfullscreen"
Expand Down
2 changes: 1 addition & 1 deletion docs/access-control-and-security/users-and-groups.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ Users must be added to your Orkes Conductor cluster before they can sign up or l

**To add a user to your cluster:**
1. In the left navigation menu, go to **Access Control** > **Users**.
2. Select **(+) Create User**.
2. Select **(+) Create user**.
3. Enter the following details:

| Field | Description |
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,9 @@ The AI prompts can be created in the Orkes Conductor cluster and can be used in
## Creating AI Prompts in Orkes Conductor

:::note
Before creating AI prompts, ensure you have integrated your Orkes Conductor cluster with the required AI / LLM models.
Before creating AI prompts, ensure you have integrated your Orkes Conductor cluster with the required AI/LLM models.

If you haven’t configured your AI / LLM provider on your Orkes Conductor cluster, navigate to the **Integrations** tab and configure your required provider. Refer to this doc on [how to integrate the LLM providers with Orkes Conductor](/content/category/integrations/ai-llm).
If you haven’t configured your AI/LLM provider on your Orkes Conductor cluster, navigate to the **Integrations** tab and configure your required provider. Refer to this doc on [how to integrate the LLM providers with Orkes Conductor](/content/category/integrations/ai-llm).
:::

To create AI prompts,
Expand Down Expand Up @@ -65,7 +65,7 @@ To provide permissions to Groups:

1. Navigate to **Access Control > Groups** from the left menu on your Orkes Conductor cluster.
2. Create a new group or choose an existing one with the members needing access to prompts.
3. Under **Permissions** section, click +Add Permission.
3. Under **Permissions** section, click **+Add Permission**.
4. Under the **Prompt** tab, choose the required prompts with the required permissions.

<p align="center"><img src="/content/img/rbac-for-prompts.png" alt="RBAC for prompts" width="60%" height="auto"></img></p>
Expand Down
35 changes: 18 additions & 17 deletions docs/developer-guides/orchestrating-human-tasks.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ A Human task can be used for a variety of human-involved tasks, such as manual a

During workflow creation, the Human task can be configured for:
* **Assignment policy**—Define who can fill out the form, how long the form is assigned to them, and what to do if the assignment times out.
* **Trigger policy**—Trigger a workflow to start if the task state changes.
* **Trigger policy**—Trigger a workflow to start if the human task state changes.

During development, you can test and execute Human tasks internally on Orkes Conductor before integrating it with an external UI.

Expand Down Expand Up @@ -49,16 +49,18 @@ It is best practice to create forms using Orkes’ User Form studio, even if the

<p align="center"><img src="/content/img/creating-forms-human-task.png" alt="Creating user forms for human task in Orkes Conductor" width="100%" height="auto"></img></p>

#### Supported form components
#### Supported form layout and components

These are the pre-built form components available on Orkes Conductor:
Horizontal and vertical layouts are supported for user forms.

Following are the pre-built form components available on Orkes Conductor:
* Boolean
* Multiple Choice
* Date
* Date + Time
* Description Text
* Image
* Number
* Number Field
* Text
* Time
* Video
Expand All @@ -84,7 +86,7 @@ You can toggle to the Code tab to create custom components for your form. Howeve
| Boolean default value | Boolean. | Sets whether the default value is true or false. |
| Items split by commas | Multiple Choice and Radio. | Contains the list of selection items split by a comma. |
| Alignment | Description Text. | Sets the alignment of the description text. Supported values: <ul> <li>Left</li> <li>Center</li> <li>Right</li> <li>Justify</li> <li>inherit</li></ul> |
| Allow-decimal | Number. | Sets whether to allow decimal values as input. |
| Allow-decimal | Number Field. | Sets whether to allow decimal values as input. |
| Multiline | Text. | Sets whether the text input box is multiline. |
| Height | Image and Video. | Sets the height of the image or video. |
| Width | Image and Video. | Sets the width of the image or video. |
Expand Down Expand Up @@ -115,7 +117,7 @@ Add the Human task to your workflow and configure its assignment policy and trig

**To add a Human task:**
1. In your workflow, select the **(+)** icon and add a **Human** task.
2. In Task Definition, select a Human task definition.
2. In Task Definition, select the task definition created in the previous step.
3. Enter the **Task display name**, which will appear on the connected UI for the user. Use a unique human-friendly name, such as “Loan Approval” or “Booking Form”.
4. Select the **UI template** previously created in the User Form studio and its **Version**.
5. (Optional) Add an assignment policy to control who can fill out the form.
Expand All @@ -125,11 +127,11 @@ Add the Human task to your workflow and configure its assignment policy and trig
* **Conductor User** or **Group**—Select this if the assignees are Conductor users and will access Orkes Conductor to complete the task.
<p align="center"><img src="/content/img/assignment-policy-human-task.png" alt=" Assignment policy of human task" width="70%" height="auto"></img></p>
3. Enter the **SLA minutes** to specify the assignment duration before it times out. Use 0 minutes to set a non-expiring assignment.
4. In **After assignments**, select the strategy for when the assignment times out.
4. If needed, add another assignment to create a multi-level assignment chain.
<p align="center"><img src="/content/img/assignment-policy-human-task-hierarchy.png" alt="Assignment policy of human task in hierarchical order" width="90%" height="auto"></img></p>
5. In **After assignments**, select the strategy for when the assignment times out.
* **Leave open**—The Human task execution remains open to be picked up by anyone.
* **Terminate**—The Human task execution is terminated and marked as deleted, and the workflow fails with the error “Task terminated as no more assignments pending and completion strategy is TERMINATE”.
5. If needed, add another assignment to create a multi-level assignment chain.
<p align="center"><img src="/content/img/assignment-policy-human-task-hierarchy.png" alt="Assignment policy of human task in hierarchical order" width="90%" height="auto"></img></p>
6. (Optional) Add a trigger policy to start new workflows when the state of the Human task changes. The trigger policy works based on the human task state in the **Executions > Human Tasks** list.

<p align="center"><img src="/content/img/human-task-states.png" alt="States in Human tasks based on which trigger policies can be defined" width="90%" height="auto"></img></p>
Expand Down Expand Up @@ -171,12 +173,12 @@ When the Human task begins, the associated user form will be assigned to the use
Create an external UI to display the user form as desired. Some common display options include an action inbox that contains all pending approval items or a multi-page form, with each page corresponding to one Human task on the Conductor end.
</details>

<details><summary>2. Add the Human task to an application account and grant permissions for execution.</summary>
<details><summary>2. Add the Human task to an application and grant permissions for execution.</summary>

To use a Human task with an external UI, you need to add the Human task to an application account and grant Execute permission to the application.
To use a Human task with an external UI, you need to add the Human task to an application and grant Execute permission to the application.

**To add the Human task to application account:**
1. Go to the application account.
**To add the Human task to application:**
1. Go to the application.
1. In the left navigation menu, go to **Access Control** > **Applications**, on your Orkes Conductor cluster.
2. Select an application that you will be adding your worker to. Otherwise, create an application.
2. Grant Execute, Read, and Update permission to the application.
Expand All @@ -186,7 +188,7 @@ To use a Human task with an external UI, you need to add the Human task to an ap
4. (If Task-to-domain is used) In Domain, enter the domain name used in your workflow.
5. Select Add Permissions.

The application account can now execute the Human task.
The application can now execute the Human task.
</details>

<details><summary>3. Configure the Human task for external form assignment.</summary>
Expand All @@ -196,7 +198,7 @@ If the assignment policy in the Human task is not yet configured, go to the Huma

<details><summary>4. Integrate the UI with Conductor.</summary>

Use the Human Tasks APIs to integrate your external UI with your Conductor cluster. Get the API authentication tokens (key and secret) from your application account in Conductor.
Use the Human Tasks APIs to integrate your external UI with your Conductor cluster. Get the API authentication tokens ([key and secret](https://orkes.io/content/access-control-and-security/applications#configuring-applications)) from your application account in Conductor.

1. **Display all active Human task executions.**
Call `GET human/tasks/search` to list Human tasks with Assigned status and Assignee as External Group or External User.
Expand Down Expand Up @@ -272,8 +274,7 @@ In your selected Human task, select **Skip** to bypass it. Alternatively, select
* **External User** or **Group**—Select this if the assignees are managed and verified in an external system, and will access an external UI to complete the task.
* **Conductor User** or **Group**—Select this if the assignees are Conductor users and will access Orkes Conductor to complete the task.
3. Enter the **SLA minutes** to specify the assignment duration before it times out. Use 0 minutes to set a non-expiring assignment.
4. In **After assignments**, select the strategy for when the assignment times out.
5. If needed, add another assignment to create a multi-level assignment chain.
4. If needed, add another assignment to create a multi-level assignment chain.

<p align="center"><img src="/content/img/assign-to-different-subject.png" alt="Assigning to a different subject" width="60%" height="auto"></img></p>

Expand Down
2 changes: 1 addition & 1 deletion docs/developer-guides/scheduling-workflows.md
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,7 @@ Once the schedulers are defined, you can view the executions from the **Executio

<p align="center"><img src="/content/img/scheduler-executions.jpg" alt="Scheduler Executions View" width="100%" height="auto"></img></p>

The execution page lists the details of all the scheduler executions. It includes details such as scheduled time, execution time, execution ID, workflow ID, status, reason for failure, and error details. You can view the workflow execution by directly clicking on the workflow ID. You can also filter further information using the available options.
The execution page lists the details of all the scheduler executions. It includes details such as scheduled time, execution time, execution ID, schedule name, workflow name, workflow ID, status, reason for failure, and error details. You can view the workflow execution by directly clicking on the workflow ID. You can also filter further information using the available options.

In addition, you can view the scheduler execution as code directly from the UI. To do this, click the arrow in the Search button and choose “Show as code”.

Expand Down
10 changes: 5 additions & 5 deletions docs/developer-guides/task-to-domain.md
Original file line number Diff line number Diff line change
Expand Up @@ -264,13 +264,13 @@ The application/group can now execute all tasks under the specified domain.
A fallback domain is a secondary or backup domain that the system will use if the primary domain fails or is unreachable. These domains can only be specified when triggering a workflow, as clients polling for tasks can use only one domain at a time.
Conductor tracks each worker's last polling time. When assigning tasks, it first checks if any active workers are available for the primary domain. If no active workers are found, the Conductor tries the next domain in the fallback sequence.
Conductor tracks the last polling time for each worker. When assigning tasks, it first checks if any active workers are available for the primary domain. If no active workers are found, the Conductor tries the next domain in the fallback sequence.
:::note Notes
* A worker is considered active if the last time it has polled is within the active threshold, which defaults to 10 seconds
* Workers do not poll when they are busy doing work and resume polling once they have completed their tasks
* The active threshold can be adjusted using the configuration field `conductor.app.activeWorkerLastPollTimeout`. This applies to all worker tasks, so extending the duration slows down the fallback response bahaviour across all tasks.
* The domain of a task is determined at the point in time when the task is scheduled, so a domain worker becoming free after a task gets scheduled will not change the domain of a task that has already been scheduled
* A worker is considered active if the polled time is within the active threshold, which defaults to 10 seconds.
* Workers do not poll when they are busy doing work and resume polling after completing their tasks.
* The active threshold can be adjusted using the configuration field `conductor.app.activeWorkerLastPollTimeout`. This applies to all worker tasks, so extending the duration slows down the fallback response behavior across all tasks.
* The domain of a task is determined at the time when the task is scheduled. Therefore, a domain worker becoming available after a task is scheduled will not change the domain of the already scheduled task.
:::
A fallback mapping for `task_x’ is as follows:
Expand Down
Loading

0 comments on commit 2993fad

Please sign in to comment.