Skip to content

Commit

Permalink
Merge pull request #776 from RizaFarheen/main
Browse files Browse the repository at this point in the history
Developer Edition updates
  • Loading branch information
RizaFarheen authored Nov 29, 2024
2 parents 971ebca + 84b64c9 commit 82a55fe
Show file tree
Hide file tree
Showing 26 changed files with 62 additions and 68 deletions.
20 changes: 10 additions & 10 deletions docs/developer-guides/quickstart-ai-orchestration.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,16 @@ Orkes Conductor provides you the ability to build applications that leverage gen

The example we will be using is to build a document classifier that identifies the type of document passed (e.g. a driver’s license, a W2 form, a mortgage application etc). The associated workflow in Conductor takes in as the input parameter a document file, checks that it is a pdf document, extracts the content from it, sends that information alongside a prompt to a LLM and obtains the classification result from the LLM.

This workflow is available as a [template in the Template Explorer](https://orkes.io/content/templates/document-classifier) in Orkes Conductor and in this guide we will be using the free Orkes Playground (you can use this example with your own Orkes Conductor cluster as well).
This workflow is available as a [template in the Template Explorer](https://orkes.io/content/templates/document-classifier) in Orkes Conductor and in this guide we will be using the Orkes Developer Edition (you can use this example with your own Orkes Conductor cluster as well).

## Command Line

1. Obtain a token from the Orkes Playground.
- Login to https://play.orkes.io/ - you can bookmark this URL for easy access.
1. Obtain a token from the Orkes Developer Edition.
- Login to https://developer.orkescloud.com/ - you can bookmark this URL for easy access.
- Obtain the access token by clicking on the **Copy Token** link at the bottom of the left hand navigation.
2. Obtain an API key from Open AI by going [here](https://platform.openai.com/account/api-keys).
3. Setup Environment Variables.
- export CONDUCTOR_ACCESS_TOKEN=(The key you copied from Playground)
- export CONDUCTOR_ACCESS_TOKEN=(The key you copied from Developer Edition)
- export OPEN_AI_KEY=(Your OPENAI API KEY)
4. Run the shell script below to create your document classifier application, execute it and view the output:

Expand All @@ -27,9 +27,9 @@ curl -s https://raw.githubusercontent.com/orkes-io/orkes-templates/main/document

## Conductor UI

### Step 1: Login to Orkes Playground
### Step 1: Login to Orkes Developer Edition

1. Login to https://play.orkes.io/ - you can bookmark this URL for easy access.
1. Login to https://developer.orkescloud.com/ - you can bookmark this URL for easy access.

### Step 2: Create an LLM integration

Expand Down Expand Up @@ -139,7 +139,7 @@ Important: Copy and store the secret in a safe location, as it is displayed only

```shell
curl -s -X 'POST' \
'https://play.orkes.io/api/token' \
'https://developer.orkescloud.com/api/token' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
Expand All @@ -152,7 +152,7 @@ curl -s -X 'POST' \

```shell
curl -s -X 'POST' \
'https://play.orkes.io/api/workflow/<WORKFLOW_NAME>?priority=0' \
'https://developer.orkescloud.com/api/workflow/<WORKFLOW_NAME>?priority=0' \
-H 'accept: text/plain' \
-H 'X-Authorization: <YOUR_JWT_TOKEN>' \
-H 'Content-Type: application/json' \
Expand All @@ -167,7 +167,7 @@ The command will return a workflow id. Note it down for use in the next step.

```shell
curl -s -X 'GET' \
'https://play.orkes.io/api/workflow/<WORKFLOW_EXECUTION_ID>/status?includeOutput=true&includeVariables=false' \
'https://developer.orkescloud.com/api/workflow/<WORKFLOW_EXECUTION_ID>/status?includeOutput=true&includeVariables=false' \
-H 'accept: */*' \
-H 'X-Authorization: <YOUR_JWT_TOKEN>'
```
Expand All @@ -182,5 +182,5 @@ You can pipe the output of above to the command below (requires [installing of j
4. You can view the execution visually by going to the Conductor UI and searching for it or directly via the URL below (make sure to replace the placeholder with your workflow execution id).

```json
https://play.orkes.io/execution/<WORKFLOW_EXECUTION_ID>
https://developer.orkescloud.com/execution/<WORKFLOW_EXECUTION_ID>
```
2 changes: 1 addition & 1 deletion docs/developer-guides/task-to-domain.md
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,7 @@ def startTaskRunnerWorkers():
key_id='key',
key_secret='secret'
),
server_api_url='https://play.orkes.io/api',
server_api_url='https://developer.orkescloud.com/api',
debug=True
)

Expand Down
2 changes: 1 addition & 1 deletion docs/faqs/general-faqs.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ export const faqs = [

### Is it possible to pull data from multiple endpoints simultaneously rather than sequentially?

Yes, it’s possible to pull data from multiple endpoints simultaneously. Have a look at this [workflow execution](https://play.orkes.io/execution/7f438f95-e907-11ed-b7d4-364566de507d). You can see that the parallel execution, which is the construct supported in Conductor, can run 10s of thousands of parallel executions.
Yes, it’s possible to pull data from multiple endpoints simultaneously, using [Fork/Join](https://orkes.io/content/reference-docs/operators/fork-join) task, which is the construct supported in Conductor, that can run 10s of thousands of parallel executions.

### Can we start a workflow not from the start but from any steps within the workflow?

Expand Down
2 changes: 1 addition & 1 deletion docs/get-orkes-conductor.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ There are two hosting options:
* Orkes-hosted - End-to-end hosting managed by Orkes.
* Customer-hosted - Deploy within your own infrastructure (Azure, AWS, GCP, or private cloud).

You can try [Orkes Playground](https://play.orkes.io/?utm_campaign=set-up-orkes-conductor&utm_source=orkes-doc&utm_medium=web) for immediate testing. A [14-day free trial of Orkes Cloud](https://cloud.orkes.io/signupset-up-orkes-conductororkes-doc&utm_medium=web) is also available for setting up custom Conductor clusters.
You can try [Orkes Developer Edition](https://developer.orkescloud.com/?utm_campaign=set-up-orkes-conductor&utm_source=orkes-doc&utm_medium=web) for immediate testing. A [14-day free trial of Orkes Cloud](https://cloud.orkes.io/signupset-up-orkes-conductororkes-doc&utm_medium=web) is also available for setting up custom Conductor clusters.

## Orkes Conductor - Local Setup

Expand Down
10 changes: 5 additions & 5 deletions docs/getting-started/adding-custom-code-worker.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,8 @@ webkitallowfullscreen="webkitallowfullscreen"></iframe></div>
</TabItem>
</Tabs>

We can see that when we run this workflow for amounts >= $10,000, it runs a fraud check. If we named the task `fraud-check`, we'd notice that it is actually executed (in playground env), but how?
That's because there is a pre-defined task that is polling and running all the tasks named `fraud-check`. We also have the required permissions in the playground for this task.
We can see that when we run this workflow for amounts >= $10,000, it runs a fraud check. If we named the task `fraud-check`, we'd notice that it is actually executed (in Developer Edition env), but how?
That's because there is a pre-defined task that is polling and running all the tasks named `fraud-check`. We also have the required permissions in the Developer Edition for this task.

So how can we implement this task for ourselves? First, let's rename the task to a new unique name for ourselves - for ex: `fraud-check-<replace-with-a-unique-value>`. And now, let’s see how this custom fraud check can be implemented:

Expand Down Expand Up @@ -67,7 +67,7 @@ from multiprocessing import set_start_method
set_start_method("fork")
#############################################

SERVER_API_URL = 'https://play.orkes.io/api'
SERVER_API_URL = 'https://developer.orkescloud.com/api'
KEY_ID = '<KEY_ID>'
KEY_SECRET = '<KEY_SECRET>'

Expand Down Expand Up @@ -187,13 +187,13 @@ with TaskHandler(workers, configuration, scan_for_annotated_workers=True) as tas
</Tabs>


Once we have cloned the repo or copied the required elements to our local machines, we can run this locally by connecting to the playground server.
Once we have cloned the repo or copied the required elements to our local machines, we can run this locally by connecting to the Conductor server.
To do this, we must give the required permissions to our application.
Refer to this [video](https://www.youtube.com/watch?v=PY34TcVzof0) to add permission to execute the custom worker we just created above (`fraud-check-<replace-with-a-unique-value>`).
After providing the permissions, we can change the definition to run our worker (`fraud-check-<replace-with-a-unique-value>`) and start the application.
We can see that now our worker is picking up the task.

This is the **first example** of how a distributed worker is executed in Conductor; **without** exposing an endpoint or creating any sort of inbound connectivity, we were able to execute the task directly from our local machine pointing to the playground server.
This is the **first example** of how a distributed worker is executed in Conductor; **without** exposing an endpoint or creating any sort of inbound connectivity, we were able to execute the task directly from our local machine pointing to the Developer Edition server.

:::tip Distributed workers in Conductor
We can run similar workflows in production, too, workers could live in **any applications** or even **third-party services** and we can connect them all together using
Expand Down
6 changes: 3 additions & 3 deletions docs/getting-started/executing-tasks-in-parallel.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,15 +41,15 @@ webkitallowfullscreen="webkitallowfullscreen"></iframe></div>
</TabItem>
</Tabs>

If we named the task `retrieve-deposit-batch`, we'd notice that it is actually executed (in playground env), but how?
That's because there is a pre-defined task that is polling and running all the tasks named `retrieve-deposit-batch`. We also have the required permissions in the playground for this task.
If we named the task `retrieve-deposit-batch`, we'd notice that it is actually executed (in Developer Edition env), but how?
That's because there is a pre-defined task that is polling and running all the tasks named `retrieve-deposit-batch`. We also have the required permissions in the Developer Edition for this task.

Here is the code reference for this worker:

```java dynamic https://github.com/conductor-sdk/orkes-java-springboot2-example/blob/main/src/main/java/io/orkes/example/banking/workers/ConductorWorkers.java section=2 .../workers/ConductorWorkers.java
```

By default, it would return a random value between __5-10 tasks__. If we supply an input called __`batchCount`__ - we can retrieve up to 100 transactions. This is a limitation of the playground. In a dedicated
By default, it would return a random value between __5-10 tasks__. If we supply an input called __`batchCount`__ - we can retrieve up to 100 transactions. This is a limitation of the Developer Edition. In a dedicated
cluster, you can run parallel tasks into the thousands or tens of thousands depending on the cluster's capacity.

:::note Try out a larger batch
Expand Down
8 changes: 4 additions & 4 deletions docs/getting-started/quickstart-1.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ from conductor.client.workflow.conductor_workflow import ConductorWorkflow
from conductor.client.workflow.executor.workflow_executor import WorkflowExecutor

configuration = Configuration(
server_api_url=SERVER_API_URL, // eg: https://play.orkes.io/api
server_api_url=SERVER_API_URL, // eg: https://developer.orkescloud.com/api
debug=False,
authentication_settings=AuthenticationSettings(key_id=KEY_ID, key_secret=KEY_SECRET)
)
Expand Down Expand Up @@ -205,7 +205,7 @@ import {
const clientPromise = orkesConductorClient({
keyId: "XXX",
keySecret: "XXXX",
serverUrl: "SERVER_URL", // eg: https://play.orkes.io/api
serverUrl: "SERVER_URL", // eg: https://developer.orkescloud.com/api
});

const client = await clientPromise;
Expand Down Expand Up @@ -293,7 +293,7 @@ apiClient := client.NewAPIClient(
SECRET,
),
settings.NewHttpSettings(
"https://play.orkes.io/api",
"https://developer.orkescloud.com/api",
))

// Create new workflow executor
Expand Down Expand Up @@ -393,7 +393,7 @@ workflowId, err := executor.StartWorkflow(&model.StartWorkflowRequest{
Use the visual workflow editor in Orkes Platform to create your workflows.

**To create a workflow:**
1. Log in to your Orkes cluster or the [Orkes Playground](https://play.orkes.io/).
1. Log in to your Orkes cluster or the [Orkes Developer Edition](https://developer.orkescloud.com/).
2. In the left navigation menu, go to **Definitions** > **Workflow**.
3. Select **(+) Define workflow**.
4. Enter a Name and Description for your workflow.
Expand Down
6 changes: 3 additions & 3 deletions docs/getting-started/quickstart-2.md
Original file line number Diff line number Diff line change
Expand Up @@ -198,7 +198,7 @@ import {
const clientPromise = orkesConductorClient({
keyId: "XXX",
keySecret: "XXXX",
serverUrl: "SERVER_URL", // eg: https://play.orkes.io/api
serverUrl: "SERVER_URL", // eg: https://developer.orkescloud.com/api
});

const client = await clientPromise;
Expand Down Expand Up @@ -305,7 +305,7 @@ apiClient := client.NewAPIClient(
SECRET,
),
settings.NewHttpSettings(
"https://play.orkes.io/api",
"https://developer.orkescloud.com/api",
))

taskRunner := worker.NewTaskRunnerWithApiClient(apiClient)
Expand Down Expand Up @@ -493,7 +493,7 @@ Finally, your worker application requires programmatic access to the Conductor s
3. Generate the application access key and set the Key ID and Key Secret in your project environment variables.

```
export CONDUCTOR_SERVER_URL=<SERVER_URL> // eg: https://play.orkes.io/api
export CONDUCTOR_SERVER_URL=<SERVER_URL> // eg: https://developer.orkescloud.com/api
export CONDUCTOR_AUTH_KEY=<KEY_ID>
export CONDUCTOR_AUTH_SECRET=<KEY_SECRET>
```
Expand Down
2 changes: 1 addition & 1 deletion docs/getting-started/quickstart-index.md
Original file line number Diff line number Diff line change
Expand Up @@ -198,7 +198,7 @@ Get the Conductor Clojure package from [clojars](https://clojars.org/io.orkes/co
Once your development environment is set up, you need to configure your access to the Conductor server. In Orkes, programmatic access to Conductor is enabled by application-based access keys. To get authenticated, you must first create an application in Orkes Platform, then create an access key for your application.

**To create an application:**
1. Log in to your Orkes cluster or the [Orkes Playground](https://play.orkes.io/).
1. Log in to your Orkes cluster or the [Orkes Developer Edition](https://developer.orkescloud.com/).
2. In the left navigation menu, go to **Access Control** > **Applications**.
3. Select **(+) Create application**.
4. Enter the application name, such as “myFirstWorkflow”. Use this application while following along with the quickstarts.
Expand Down
2 changes: 1 addition & 1 deletion docs/reference-docs/operators/get-workflow.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ This is the task configuration for a Get Workflow task.
```

## Task output
The Get Workflow task will return all the details of the retrieved workflow. View an example [here](https://play.orkes.io/execution/35d05a0f-0856-11ef-84f1-2e15deb1615b?tab=workflowInputOutput).
The Get Workflow task will return all the details of the retrieved workflow.

## Adding a Get Workflow task in UI
**To add a Get Workflow task:**
Expand Down
4 changes: 2 additions & 2 deletions docs/reference-docs/operators/sub-workflow.md
Original file line number Diff line number Diff line change
Expand Up @@ -96,8 +96,8 @@ You can add this as a sub-workflow in your required workflow whenever a payment
<p align="center"><img src="/content/img/payment-sub-workflow-in-main-workflow.png" alt="Payment workflow as sub-workflow in a subscription flow" width="50%" height="auto" style={{paddingBottom: 40, paddingTop: 40}} /></p>

This is a subscription workflow with multiple instances where payment flow is to be implemented. Here, the previously-created payment workflow is added as sub-workflows.
The above image is a simplified version of the subscription workflow. You can view the entire version in Playground
[here](https://play.orkes.io/workflowDef/Subscription/).
The above image is a simplified version of the subscription workflow. You can view the entire version in Developer Edition
[here](https://developer.orkescloud.com/workflowDef/Subscription/).

</p>
</details>
Expand Down
2 changes: 1 addition & 1 deletion docs/reference-docs/operators/switch.md
Original file line number Diff line number Diff line change
Expand Up @@ -202,6 +202,6 @@ The script below returns `OLDER` or `NEWER` depending on whether the input date
))();
```

Check out the [sample workflow execution that runs this switch case](https://play.orkes.io/execution/9be8fb4d-e991-11ed-bb41-9e017806b678) in our Playground.

</p>
</details>
4 changes: 2 additions & 2 deletions docs/reference-docs/system-tasks/http.md
Original file line number Diff line number Diff line change
Expand Up @@ -145,9 +145,9 @@ The asyncComplete option in the HTTP task configuration allows tasks to be marke
}
```

Now, let’s run this in the Playground.
Now, let’s run this in the Developer Edition.

[Run in Orkes Playground](https://play.orkes.io/runWorkflow)
[Run in Orkes Developer Edition](https://developer.orkescloud.com/runWorkflow)

1. Under **Workflow Name**, choose **async_complete_example**.
2. Click **Run Workflow**.
Expand Down
2 changes: 1 addition & 1 deletion docs/sdks/authentication.md
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ Use the JWT token in the X-Authorization header for all your API calls.
``` shell
// API call to a workflow called super_weather

curl -X "POST" "https://play.orkes.io/api/workflow/super_weather" \
curl -X "POST" "https://developer.orkescloud.com/api/workflow/super_weather" \
-H 'Content-Type: application/json; charset=utf-8' \
-H 'X-Authorization: <YOUR_JWT>'\
-d '{
Expand Down
4 changes: 2 additions & 2 deletions docs/sdks/golang.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ Everything related to server settings should be done within the `client.NewAPICl
apiClient := client.NewAPIClient(
nil,
settings.NewHttpSettings(
"https://play.orkes.io",
"https://developer.orkescloud.com",
),
)

Expand All @@ -38,7 +38,7 @@ Once we have a key and secret, we can configure the app from properties or envir
SECRET,
),
settings.NewHttpSettings(
"https://play.orkes.io",
"https://developer.orkescloud.com",
),
)

Expand Down
6 changes: 3 additions & 3 deletions docs/sdks/python.md
Original file line number Diff line number Diff line change
Expand Up @@ -227,10 +227,10 @@ For running the workflow in Orkes Conductor,
export CONDUCTOR_SERVER_URL=https://[cluster-name].orkesconductor.io/api
```

- If you want to run the workflow on the Orkes Conductor Playground, set the Conductor Server variable as follows:
- If you want to run the workflow on the Orkes Developer Edition, set the Conductor Server variable as follows:

```shell
export CONDUCTOR_SERVER_URL=https://play.orkes.io/api
export CONDUCTOR_SERVER_URL=https://developer.orkescloud.com/api
```

- Orkes Conductor requires authentication. [Obtain the key and secret from the Conductor server](https://www.youtube.com/watch?v=f1b5vZRKn2Q) and set the following environment variables.
Expand Down Expand Up @@ -528,7 +528,7 @@ def send_email(email: str, subject: str, body: str):
def main():

# defaults to reading the configuration using following env variables
# CONDUCTOR_SERVER_URL : conductor server e.g. https://play.orkes.io/api
# CONDUCTOR_SERVER_URL : conductor server e.g. https://developer.orkescloud.com/api
# CONDUCTOR_AUTH_KEY : API Authentication Key
# CONDUCTOR_AUTH_SECRET: API Auth Secret
api_config = Configuration()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ We can also pass *correlationIds* and *freeText* just like on the Orkes workflow
{
"result": {
"count": 1,
"workflowsUrl": "https://play.orkes.io?rowsPerPage=200&startFrom=1696447143843&startTo=1696448043843&status=FAILED&status=TERMINATED&workflowType=TestFailedWorkflow&workflowType=TestTerminatedWorkflow",
"workflowsUrl": "https://developer.orkescloud.com?rowsPerPage=200&startFrom=1696447143843&startTo=1696448043843&status=FAILED&status=TERMINATED&workflowType=TestFailedWorkflow&workflowType=TestTerminatedWorkflow",
"workflows": [
{
"updateTime": "2023-10-04T19:30:39.105Z",
Expand Down Expand Up @@ -93,7 +93,7 @@ This system task sends the alert to Opsgenie using the API integration key store
```json
{
"alias": "SomeAlias",
"description": "https://play.orkes.io/rowsPerPage=200&startFrom=1696447143843&startTo=1696448043843&status=FAILED&workflowType=TestFailedWorkflow",
"description": "https://developer.orkescloud.com/rowsPerPage=200&startFrom=1696447143843&startTo=1696448043843&status=FAILED&workflowType=TestFailedWorkflow",
"visibleTo": [
{
"id": "6e771bf9-8a72-47c2-897d-ccab90df66e2/main",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ how the above logic is implemented.

<p align="center"><img src="/content/img/alert-workflow.png" alt="Alert Workflow" width="80%" height="auto" style={{paddingBottom: 40, paddingTop: 40}} /></p>

| [View in Playground](https://play.orkes.io/workflowDef/track_workflow_failures) |
| [View in Developer Edition](https://developer.orkescloud.com/workflowDef/track_workflow_failures) |
|---------------------------------------------------------------------------------|


Expand Down Expand Up @@ -123,7 +123,7 @@ how the above logic is implemented.
}
```

In this example, we are looking to find failure instances of the workflow **sample_tracker_workflow** on the playground
In this example, we are looking to find failure instances of the workflow **sample_tracker_workflow** on the Developer Edition
environment of Orkes Conductor in a 10-minute window.

An example payload for Pagerduty integration could look like:
Expand Down
Loading

0 comments on commit 82a55fe

Please sign in to comment.