Skip to content

Commit

Permalink
Merge pull request #762 from RizaFarheen/main
Browse files Browse the repository at this point in the history
Updates
  • Loading branch information
RizaFarheen authored Oct 3, 2024
2 parents 0b585e3 + 88e0d7b commit dfce61c
Show file tree
Hide file tree
Showing 20 changed files with 57 additions and 52 deletions.
9 changes: 5 additions & 4 deletions docs/access-control-and-security/rbac-overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,8 @@ import TabItem from '@theme/TabItem';

# Access Control and Security

Orkes Conductor provides a robust role-based access control (RBAC) mechanism for individual users on Orkes Platform, as well as for applications that use Conductor APIs. Conductor’s RBAC ensures fine-grained access to the following metadata resources:
Orkes Conductor provides a robust role-based access control (RBAC) mechanism for individual users and applications that use Conductor APIs. Conductor’s RBAC ensures fine-grained access to the following metadata resources:

* Workflows
* Tasks
* Secrets
Expand All @@ -25,7 +26,7 @@ Get started with using Orkes’ RBAC suite by understanding what are users, grou

## Users

A user represents a human user that interacts with Conductor via Orkes Platform. Users are authenticated using SSO providers or email/password. Each user has one or more roles assigned to them.
A user represents a human user that interacts with Conductor. Users are authenticated using SSO providers or email/password. Each user has one or more roles assigned to them.


## Groups
Expand Down Expand Up @@ -96,12 +97,12 @@ Besides the role-based permissions, you can add granular permissions to **groups

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.

Domain is used to grant access to all tasks under a particular domain. This is useful for mass-granting a worker application to execute all tasks under a specific domain, instead of having to add individual tasks and specifying its domain. Refer to [Routing Tasks](docs/developer-guides/task-to-domain.md) to learn more about domains.
Domain is used to grant access to all tasks under a particular domain. This is useful for mass-granting a worker application to execute all tasks under a specific domain, instead of having to add individual tasks and specifying its domain. Refer to [Routing Tasks](docs/developer-guides/task-to-domain.md) to learn more about domain mappings.


### Permission stacking

These granular permissions provide additional access on top of the user’s or application’s role-based permissions. For example, even though default Users can only access their own resources, they can also access other resources shared at the group level.
These granular permissions provide additional access on top of the user’s or application’s role-based permissions. For example, even though default users can only access their own resources, they can also access other resources shared at the group level.


## Guides for access control
Expand Down
8 changes: 4 additions & 4 deletions docs/access-control-and-security/users-and-groups.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ Create and manage users and groups on your Conductor cluster, so as to ensure se

## Users

A user represents a human user that interacts with Conductor via Orkes Platform. Users are authenticated using SSO providers or email/password. Each user has one or more roles assigned to them.
A user represents a human user that interacts with Conductor. Users are authenticated using SSO providers or email/password. Each user has one or more roles assigned to them.


### Adding users​
Expand All @@ -19,13 +19,13 @@ 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**.
3. Enter the following information:
3. Enter the following details:

| Field | Description |
| ------ |-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| User Id | The user’s email address. This cannot be changed later. |
| Name | The username. |
| Roles | The user’s role(s), which governs the basic access level for the user. The available roles are: <ul><li>**Admin**—Superuser. Full access to the system and resources. Can manage users and groups.</li> <li>**User**—Can only access resources that they created.</li> <li>**Metadata Manager**—Can read, update, and delete all metadata in the system.</li> <li>**Workflow Manager**—Can view and execute all workflows in the system.</li> <li>**Read Only User**—Can access all metadata and workflows in the system as read-only. Cannot modify or execute workflows.</li></ul> |
| Roles | The user’s role(s), which governs the basic access level for the user. The available roles are: <ul><li>**Admin**—Superuser. Full access to the system and resources. Can manage users and groups.</li> <li>**User**—Can only access resources created by them.</li> <li>**Metadata Manager**—Can read, update, and delete all metadata in the system.</li> <li>**Workflow Manager**—Can view and execute all workflows in the system.</li> <li>**Read Only User**—Can access all metadata and workflows in the system as read-only. Cannot modify or execute workflows.</li></ul> |
| Groups | The groups that the user should be part of. This provides additional group-level permissions to the user. |

4. Select **Save**.
Expand Down Expand Up @@ -75,7 +75,7 @@ Read Only Users cannot be added to any groups.
1. Create a group.
1. In the left navigation menu, go to **Access Control** > **Groups**.
2. Select **(+) Create group**.
3. Enter the following information:
3. Enter the following details:

| Field | Description |
| ------ |-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
Expand Down
4 changes: 2 additions & 2 deletions docs/developer-guides/debugging-workflows.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ Orkes Conductor provides a visual representation of workflows that aids in quick

## Searching and Viewing Workflow Executions​

All recent workflow executions are listed on the **Executions > Workflow** page. By default, users can only view executions of permitted workflows.
All workflow executions are listed on the **Executions > Workflow** page. By default, users can only view executions of permitted workflows.

<p align="center"><img src="/content/img/workflow-executions.png" alt="Workflow Executions page" width="90%"
height="auto"/></p>
Expand Down Expand Up @@ -50,7 +50,7 @@ The page consists of the following sub-tabs:
* **Workflow Input/Output** - Lists inputs and outputs of the workflow.
* **JSON** - Complete JSON representation of the workflow.
* **Variables** - Displays variables passed using the set variable task.
* **Task To Domain** - Mapping of tasks to domains used in the workflow execution.
* **Task-to-Domain** - Mapping of tasks to domains used in the workflow execution.

Each of these tabs gives the details that can help debug workflow issues.

Expand Down
4 changes: 1 addition & 3 deletions docs/developer-guides/enabling-cdc-on-conductor-workflows.md
Original file line number Diff line number Diff line change
Expand Up @@ -439,6 +439,4 @@ The workflow execution begins, and upon any workflow state change, the details a

## Verifying Changes in Eventing Systems

The final step is to verify that the workflow status changes are reflected in the configured eventing systems.

The settings for each of the eventing systems vary, so ensure to verify under the configured topic/queue name.
The final step is to verify that the workflow status changes are reflected in the configured eventing systems. The settings for each of the eventing systems vary, so ensure to verify under the configured topic/queue name.
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
# Getting Started with Orkes Template Explorer

Orkes Template Explorer offers a versatile collection of pre-designed templates designed to streamline your enterprise's processes. These templates are not only ready to use right out of the box but also highly customizable to align seamlessly with your specific enterprise needs.
Orkes Template Explorer offers a versatile collection of pre-designed templates. These templates are not only ready to use right out of the box but also highly customizable to align with your specific enterprise needs.

In this guide, we'll walk you through the process of getting started with Orkes Templates.

## Importing Workflow Using Templates

Follow these steps to import workflows using the template,

1. Navigate to **Template Explorer** from the left menu.
1. Navigate to **Template Explorer** from the left menu, on your Orkes Conductor cluster.
2. Browse through the templates and choose the one that fits your use case.
3. Click **Import**. You can also get the template repository link directly from here.

<p align="center"><img src="/content/img/workflow-template-explorer.png" alt="Workflow Template Explorer" width="100%" height="auto"/></p>

4. A pop-up displaying the chosen template's task names and workflow names appears. As a best practice, consider appending the workflow/task name to make it unique to you.
4. A pop-up displaying the chosen template's task names and workflow names appears. Append the workflow/task name to avoid any duplication.

<p align="center"><img src="/content/img/importing-workflows-in-workflow-template-explorer.png" alt="Importing Workflows via Workflow Template Explorer" width="40%" height="auto"/></p>

Expand All @@ -27,7 +27,16 @@ Follow these steps to import workflows using the template,
With these simple steps, you can generate and execute the workflow within seconds, saving you hours.

:::note
To execute certain templates, configuring workers may be necessary. The [Orkes Template](https://github.com/orkes-io/orkes-templates) repository includes these workers, and all you need to do is update the worker with your required credentials. Detailed instructions for updating the repository specific to your template can be found in our documentation.
To execute certain templates, configuring workers may be necessary. The [Orkes Template](https://github.com/orkes-io/orkes-templates) repository includes these workers, and all you need to do is update the worker with your required credentials. Detailed instructions for updating the repository specific to your template can be found in the corresponding documentation.
:::

For more comprehensive information about each of the templates, please refer to our [template docs](https://orkes.io/content/category/templates).
Refer to the corresponsing documentation for running the templates:
* [Automatic Subtitle Generator](https://orkes.io/content/templates/automatic-subtitle-generator)
* [StandUp Bot](https://orkes.io/blog/create-standup-bot-using-conductor-slack-integration/)
* [Availability Monitoring for HTTP(S) Endpoints](https://orkes.io/content/templates/availability-monitoring-for-http-endpoints)
* [Video Processing Workflow](https://orkes.io/content/templates/video-processing-workflows)
* [Video Transcoding](https://orkes.io/content/templates/video-processing-workflows)
* [Image Filter Effects](https://orkes.io/content/templates/image-effects)
* [Visual Image Search](https://orkes.io/content/templates/visual-image-search)
* [Document Classifier](https://orkes.io/content/templates/document-classifier)
* [Video Watermark](https://orkes.io/content/templates/video-processing-workflows)
8 changes: 4 additions & 4 deletions docs/developer-guides/integration-with-cicd.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import CodeBlock from '@theme/CodeBlock';
# CI/CD Best Practices
Conductor workflows are the core part of your application and should be versioned, controlled, and released similarly to the code.

### Conductor Workflows
## Conductor Workflows
Workflows have two main components:
1. Workflow definition that is maintained as a file (JSON or code)
2. Worker implementation used by the workflows
Expand All @@ -16,12 +16,12 @@ Workflow definitions should be maintained as an independent unit that can be uni

For details on how to unit test workflows, see [Unit and Regression Testing Workflows](/content/developer-guides/unit-and-regression-tests).

#### Steps to publish your workflows as part of the ci/cd
### Steps to publish your workflows as part of CI/CD
:::note Notes
See [Generating Tokens](/access-control-and-security/applications#generating-token) ([Video](https://www.youtube.com/watch?v=f1b5vZRKn2Q)) on how to generate an access token for the API requests below.
:::

#### Downloading workflows from Conductor server to check into your version control
#### Downloading workflows from Conductor cluster to check into your version control
1. Download the JSON from the Conductor UI (Use the download button on the definition page).
2. (Alternatively) Use the API to download JSON for the workflow.
```shell
Expand All @@ -32,7 +32,7 @@ See [Generating Tokens](/access-control-and-security/applications#generating-tok
# Retrieve all the workflows
GET -H "X-Authorization:<TOKEN>" /api/metadata/workflow/
```
#### Publish workflows to the Conductor server from your deployment scripts
#### Publish workflows to Conductor cluster from your deployment scripts
Inject `ORKES_ACCESS_KEY`, `ORKES_ACCESS_SECRET` and `ORKES_CONDUCTOR_SERVER_URL` variables with the appropriate values in your deployment pipeline.

The following script cycles through all the workflow definitions in the current folder and uploads it to the Conductor server.
Expand Down
2 changes: 1 addition & 1 deletion docs/developer-guides/metrics-and-observability.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ Orkes Conductor uses the popular platform Prometheus for recording a rich set of

In this document, we’ve included a sample dashboard set using Prometheus & Grafana.

1. To access your dashboard, navigate to **Metrics** from your Conductor console. If you cannot see this option on your Conductor console, [please reach out to our team](https://app.slack.com/client/T02KG20GJ1Z/C02KJ820XPW).
1. To access your dashboard, navigate to **Metrics** from your Conductor cluster. If you cannot see this option on your Conductor cluster, [please reach out to our team](https://app.slack.com/client/T02KG20GJ1Z/C02KJ820XPW).

<p align="center"><img src="/content/img/accessing-dashboard.png" alt="Accessing dashboard from Conductor Console" width="100%" height="auto"></img></p>

Expand Down
4 changes: 2 additions & 2 deletions docs/developer-guides/running-workflows.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@
# Running Conductor Workflows

There are many ways to run a Conductor workflow:
* Run in UI on Orkes Platform
* Set a schedule
* Run via Conductor SDK or API
* Set a schedule
* Run in UI on Orkes Platform

## Run in UI

Expand Down
4 changes: 2 additions & 2 deletions docs/developer-guides/scheduling-workflows.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ For creating a scheduler,
2. Click the **+ Define Schedule** button at the top right corner.
3. Configure the scheduler by providing the following parameters:

| Attribute | Description |
| Parameter | Description |
| ------------------------------------- | ------------------------------------ |
| Name | A unique name for the scheduler. Ensure the scheduler name contains no spaces or special characters.<br/><br/>**Note:** Renaming a scheduler creates a new scheduler. |
| Description | A description for the scheduler. |
Expand All @@ -40,7 +40,7 @@ For creating a scheduler,
| Idempotency key | A user-generated key to avoid conflicts with other workflows. Idempotency data is retained throughout the life of the workflow executions. |
| Schedule start | Choose the date and local time for the scheduler to start running. It should be in the format **yyyy-mm-dd hh:mm (a/p)m**. This field is optional. |
| Schedule end | Choose the date and local time for the scheduler to stop running. It should be in the format **yyyy-mm-dd hh:mm (a/p)m**. This field is optional. |
| Task to domain mapping | Use this to limit the workflow execution to specific domains. This field is optional. |
| Task-to-domain mapping | Use this to limit the workflow execution to specific domains. This field is optional. |
| Start schedule paused? | If selected, the schedule will be paused (so it will not run) upon creation. It is helpful when you don’t want to run the workflow scheduler, such as during maintenance. To resume the scheduled executions, this needs to be unpaused. |

3. Click **Save**.
Expand Down
2 changes: 1 addition & 1 deletion docs/developer-guides/unit-and-regression-tests.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ Java SDK provides the following method that allows testing a workflow definition
public abstract Workflow testWorkflow(WorkflowTestRequest testRequest);
```

The actual workflow is executed on a real Conductor server, ensuring you are testing the behavior that will match the ACTUAL execution of the server.
The actual workflow is executed on a real Conductor server, ensuring you are testing the behavior that will match the actual execution of the server.

## Setting up Conductor server for testing

Expand Down
4 changes: 2 additions & 2 deletions docs/developer-guides/webhook-integration.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ Once the workflow is created, the next step is to create a webhook.

1. Go to **Definitions > Webhooks** from the left menu on your Orkes Conductor cluster.
2. Click **+ New Webhook**.
3. Provide the following information:
3. Provide the following details:

<p align="center"><img src="/content/img/creating-webhook-in-orkes-conductor.png" alt="Creating Webhook in Orkes Conductor" width="100%" height="auto"></img></p>

Expand All @@ -58,7 +58,7 @@ Once the workflow is created, the next step is to create a webhook.

<p align="center"><img src="/content/img/Webhook-with-a-verified-URL-in-Conductor.png" alt="Webhook with a verified UR" width="100%" height="auto"></img></p>

This is the JSON schema for a webhook.
This is the task confoguration for a Wait for Webhook task.

```json
{
Expand Down
2 changes: 1 addition & 1 deletion docs/faqs/workflow-versioning.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ Workflow versioning is vital because it allows you to change a workflow without

To create a new version of a workflow, you can make changes to your existing workflow and then save those changes by updating the version number.

## How do I view previous versions of a workflow in Conductor?
## How do I view previous versions of a workflow?

You can view previous versions of a workflow from the Workflow Definitions page.

Expand Down
4 changes: 2 additions & 2 deletions docs/reference-docs/operators/human.md
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ For a full guide on how to use human-involved tasks, refer to the [Human Task Or
1. In Assignment policy, select **(+) New assignment**.
2. In Assign, select the **User type** for the assignee(s) and enter the corresponding user or group ID.
* **External User** or **Group**—Select this if the assignees are managed and verified in an external system, and access an external UI to complete the task.
* **Conductor User** or **Group**—Select this if the assignees are Conductor users, and access Orkes Platform to complete the task.
* **Conductor User** or **Group**—Select this if the assignees are Conductor users, and uses 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.
Expand All @@ -124,7 +124,7 @@ For a full guide on how to use human-involved tasks, refer to the [Human Task Or
* If the field is to be filled up by the assignee, you can leave the parameter value empty or pass in a default value that can be modified before submission.
* If the field is read-only and will be passed from somewhere in the workflow, enter a parameter value. The value can be passed as a variable.

<p><img src="/content/img/Task-References/human_task_reference.png" alt="Screenshot of Human Task in Orkes Platform"/></p>
<p><img src="/content/img/Task-References/human_task_reference.png" alt="Screenshot of Human Task in Orkes Conductor"/></p>


## Examples
Expand Down
Loading

0 comments on commit dfce61c

Please sign in to comment.