Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
693 changes: 400 additions & 293 deletions microtx-agentic-workflow/create/create.md

Large diffs are not rendered by default.

Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
Expand Up @@ -25,142 +25,140 @@ This lab assumes you have:

>**Note:** *When doing Copy/Paste using the convenient* **Copy** *function used throughout the guide, you must hit the* **ENTER** *key after pasting. Otherwise, the last line will remain in the buffer until you hit* **ENTER!**

## Task 1: Start the Oracle AI Database Instance
## Task 1: Set Up MicroTx Workflows

1. Click **Activities** in the remote desktop window to open a new terminal.

2. From your remote desktop session as an *oracle* user, run the following commands to start an instance of Oracle AI Database 26ai Free.
2. From your remote desktop session as an *oracle* user, run the following commands to set up MicroTx Workflows.

```
<copy>
cd $HOME/WorkflowScripts
./start_oracle_db.sh
./setup_microtx.sh
</copy>
```

Wait until the database starts. *This can take from 90 seconds to a couple of minutes.* When the database instance is ready, you will see the following message.
Wait until the MicroTx setup is complete. *This can take 5-6 minutes to deploy and start all the services.* Wait until all services are started. When the MicroTx setup is complete, the following messages are displayed.

**Example output**

```text
Status of the Oracle FREE 26ai service:
LISTENER status: RUNNING
FREE Database status: RUNNING
[2026-09-03 12:38:41] INFO ************************************************************
[2026-09-03 12:38:41] INFO === MicroTx setup completed successfully ===
[2026-09-03 12:38:41] INFO Oracle restart phase: completed
[2026-09-03 12:38:41] INFO Minikube profile: minikube
[2026-09-03 12:38:41] INFO Istio ingress address: 10.101.253.115
MicroTx Console URL: http://10.101.253.115/consoleui/
[2026-09-03 12:38:41] INFO Tunnel log: /home/oracle/WorkflowScripts/.microtx/tunnel.log
[2026-09-03 12:38:41] INFO Session log: /home/oracle/WorkflowScripts/.microtx/logs/setup_microtx_20260903_123644_383599.log
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
loan-app-demo otmm 1 2026-09-03 07:54:05.13585969 +0000 UTC deployed workflow-sample-microservices-0.1.0 1.0
otmm otmm 1 2026-09-02 15:15:15.304751328 +0000 UTC deployed microtx-26.1.2 26.1.2
NAME READY STATUS RESTARTS AGE
doc-process-mcp-server-7c99f589c-jn4bc 2/2 Running 0 4h44m
loan-compliance-service-5c8c8b474b-qpdcp 2/2 Running 0 4h44m
loan-processing-agent-7b8f6f4b5c-tzq8b 2/2 Running 0 4h44m
notification-service-586688b6cc-hshnf 2/2 Running 0 4h44m
ocr-service-59d499d5bf-j7hxq 2/2 Running 0 4h44m
otmm-console-d8b8ffc89-rhfj8 2/2 Running 0 21h
otmm-tcs-0 2/2 Running 0 21h
workflow-server-7659b6ff7-q4wtd 2/2 Running 0 21h
[2026-09-03 12:38:41] INFO Discovered Istio virtual-service routes:
otmm/microtx hosts= paths=/health /admin/v1 /api/v1 /metrics /config /workflow-server /workflow-ui/ws /workflow-ui /ws /workflow-fb /consoleui /consoleapi /oidc/logout /openid-connect/logout /console/oidc/redirect /console/
otmm/notification-service hosts= paths=/notification-service/
[2026-09-03 12:38:41] INFO ************************************************************
```

This Oracle AI Database 26ai Free instance is configured with two schemas. MicroTx Workflows uses one schema to store the workflow definitions and the execution state data. A SQL task uses the other schema, named `livelabsUser` which stores the loan application data. The Oracle MCP server connects to the `livelabsUser` schema.

## Task 2: Set the Password to Receive Email Notifications

The Thunderbird email client on your remote desktop has been pre-configured with the user name `microtx.user`. MicroTx Workflows sends emails notifications whenever a loan request requires approval.

1. Run the following command to reset the password for the `microtx.user` user who receives email notifications to approve a loan request.
3. Copy the following MicroTx Console URL to access the MicroTx Workflows GUI:

```
<copy>
sudo passwd microtx.user
http://10.101.253.115/consoleui/
</copy>
```

2. You are prompted to enter the password, and then confirm it. The following message is displayed when the password is reset.

```text
passwd: all authentication token updated successfully.
```

Remember the password as you must provide this password to access the SMTP server and also provide this password to log into the Thunderbird email client.

3. Click **Activities** in the remote desktop window, and then click **Show Applications**.
![View all applications](./images/thunderbird.png)

4. Click Thunderbird to open the Thunderbird email client on your remote desktop. You are prompted to enter a password for the `microtx.user`.

![Enter a new password for microtx.user](./images/email-password.png)

5. Enter the password that you had reset in the previous step, and then click OK.
>**Note:** *The IP address in this URL is a reference IP address. The IP address in your environment might be different. Use the MicroTx Console URL displayed in the setup output.*

You can now view your emails in the Thunderbird email client.
4. Click **Activities** in the remote desktop window, and then click the Chrome browser icon to launch the browser.

## Task 3: Configure Minikube
5. Paste the MicroTx Console URL in a browser tab to access the MicroTx Workflows GUI.

Click **Activities** in the remote desktop window, and then go back to the terminal window. Follow the instructions in this section to configure Minikube and start a tunnel between Minikube and MicroTx Workflows.
6. If the following options are displayed, then click **Workflow**.
![MicroTx Workflows UI Options](images/initial-screen-options.png)

1. In a new terminal tab, run the following commands to start Minikube and start a tunnel.
## Task 2: Create an API Key to Access OpenAI

```text
<copy>
cd $HOME/WorkflowScripts
./start_minikube.sh
</copy>
```
1. Create a new API key in the [API Keys page](https://platform.openai.com/api-keys) of the OpenAI Developer Platform or use the [OpenAI API](https://platform.openai.com/docs/api-reference/admin-api-keys/create). Use the default settings to create the API key. If you already have an API key or an API key has been provided, you can use that instead of creating a new key. Get an API key [here](https://github.com/oracle-samples/microtx-samples/blob/main/others/sharing.md).
>**Note:** *An OpenAI API Key has already been added to the default LLM Connector definition. You can skip this task.* In case the existing key has expired or does not work, you can come back and perform this task later.

After a few seconds, the following message is displayed.
2. Copy the name and value of the created/existing key and save it safely. You will need to provide this information later.

```text
Minikube started successfully.
```
You may now [proceed to the next lab](#next).

It also starts a Minikube tunnel in a new tab. *This can take from 90 seconds to a couple of minutes.*
## Informational: TxEventQ Setup

**Example output**
The *LOAN\_APPLICATION\_EVENTS* transactional event queue, queue startup, and *LOAN\_APP\_CONSUMER* subscriber are already configured on the LiveLabs VM database. No queue setup is required during this lab.

![Minikube tunnel in a new tab](./images/minikube-tunnel.png)
The queue is configured with *multiple_consumers => TRUE*, allowing multiple subscribers to receive the published events—for example, email, chat, SMS, or other notification services.

> [! WARNING]
> Do not close this tab. Keep this tab open for the entire duration of the workshop. Go back to the previous terminal tab, if you are on the tab running the minikube tunnel.
The following SQL statements are provided for reference only. They describe the existing TxEventQ configuration and should not be executed unless specifically instructed.

This command also returns the external IP address of the ngnix ingress controller.
1. Transactional Event Queue

2. Run the following command to verify that the external IP address of the load balancer which was returned in the previous step is correct.
The following statement creates the *LOAN\_APPLICATION\_EVENTS* transactional event queue. The queue accepts JSON payloads published by the Java application as JMS text messages.

```text
```sql
<copy>
kubectl get svc -n istio-system
BEGIN
DBMS_AQADM.CREATE_TRANSACTIONAL_EVENT_QUEUE(
queue_name => 'LOAN_APPLICATION_EVENTS',
multiple_consumers => TRUE,
queue_payload_type => DBMS_AQADM.JMS_TYPE,
comment => 'Loan application events - JSON payload via JMS'
);
END;
/
</copy>
```

**Example output**

![Sample response of the external IP address of the load balancer](./images/ip-address-response.png)

From the output note down the value of `EXTERNAL-IP` for the load balancer. You will use this value later to access MicroTx Workflows.

Let's consider that the value of the external IP in the above example is 10.107.38.138.

## Task 4: Start Services in MicroTx Workflows
2. Queue Status
The queue is started and available to receive and deliver loan application event messages.

1. From your remote desktop session, open a new terminal tab.

2. As an `oracle` user, run the following commands to deploy and start all the services that are required to run the Loan application processing workflow in MicroTx Workflows.

```
```sql
<copy>
cd $HOME/WorkflowScripts/
./deploy_services_on_minikube.sh
BEGIN
DBMS_AQADM.START_QUEUE(
queue_name => 'LOAN_APPLICATION_EVENTS'
);
END;
/
</copy>
```

When you run this script, it starts the following services or processes: document processing agent service, loan processing agent, loan compliance service, Optical Character Recognition (OCR) service, MicroTx Workflows server, and MicroTx Workflows UI.

*It can take 5-6 minutes to deploy and start all the services.* Wait until all services are started.

![MicroTx Workflows UI](images/deployed-workflow-services.png)

3. Click **Activities** in the remote desktop window, and then click the Chrome browser icon to launch the browser.
3. Queue Subscriber
The *LOAN\_APP\_CONSUMER* subscriber is registered to consume messages from the queue.

4. Open `http://10.107.38.138/consoleui/` in any browser tab to access the MicroTx Workflows GUI. Replace, `10.107.38.138` with the external IP address of the load balancer that you have copied in the previous step in case the external IP address is different.

5. If the following options are displayed, then click **Workflow**.
![MicroTx Workflows UI Options](images/initial-screen-options.png)

## Task 5: Create an API Key to Access OpenAI

1. Create a new API key in the [API Keys page](https://platform.openai.com/api-keys) of the OpenAI Developer Platform or use the [OpenAI API](https://platform.openai.com/docs/api-reference/admin-api-keys/create). Use the default settings to create the API key. If you already have an API key or an API key has been provided, you can use that instead of creating a new key. Get an API key [here](https://github.com/oracle-samples/microtx-samples/blob/main/others/sharing.md).
>**Note:** *An OpenAI API Key has already been added to the default LLM Connector definition. You can skip this task.* In case the existing key has expired or does not work, you can come back and perform this task later.
```sql
<copy>
BEGIN
DBMS_AQADM.ADD_SUBSCRIBER(
queue_name => 'LOAN_APPLICATION_EVENTS',
subscriber => SYS.AQ$_AGENT(
'LOAN_APP_CONSUMER',
NULL,
NULL
)
);
END;
/
</copy>
```

2. Copy the name and value of the created/existing key and save it safely. You will need to provide this information later.
These statements document the preconfigured environment. During the lab, use the queue to publish and inspect loan application event messages through TxEventQ.

You may now [proceed to the next lab](#next).

## Acknowledgements

* **Author** - Sylaja Kannan, Consulting User Assistance Developer
* **Contributors** - Brijesh Kumar Deo and Bharath MC
* **Last Updated By/Date** - Sylaja Kannan, February 2026
* **Last Updated By/Date** - Sylaja Kannan, September 2026
8 changes: 4 additions & 4 deletions microtx-agentic-workflow/introduction/introduction.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ You will learn how to build scalable, no-code agentic workflows using Oracle® T

The following diagram illustrates how an agentic workflow processes a loan application. This agentic workflow seamlessly blends automation with human oversight to ensure accurate, compliant, and efficient loan application processing.

![Loan application workflow](images/about.png)
![Loan application workflow](images/about-2.png)

1. Submission and data extraction: The process begins when a user submits a loan application. AI algorithms automatically extract all relevant details from the application, even if the information is provided in natural language.
2. Completeness check: The system checks whether all required information is present. If any details are missing, the applicant is immediately notified, and the process is paused pending their response.
Expand All @@ -19,7 +19,7 @@ The following diagram illustrates how an agentic workflow processes a loan appli
* Approval: If the application passes all checks, a final manual signoff is requested. Once confirmed, the system updates the application status to approved.
* Rejection: If any check fails, the applicant is promptly notified of the decision, and the process concludes.

Estimated Workshop Time: 1 hour 30 minutes
Estimated Workshop Time: 60 minutes

### Objectives

Expand All @@ -35,9 +35,9 @@ By the end of this LiveLab, you'll not only understand the architectural benefit

This lab assumes you have:
* An Oracle account
* At least 4 OCPUs, 24 GB memory, and 128 GB of bootable storage volume or more is available in your Oracle Cloud Infrastructure tenancy.
* At least 3 OCPUs, 32 GB memory, and 256 GB of bootable storage volume or more is available in your Oracle Cloud Infrastructure tenancy.

## Acknowledgements
* **Author** - Sylaja Kannan, Consulting User Assistance Developer
* **Contributors** - Brijesh Kumar Deo and Bharath MC
* **Last Updated By/Date** - Sylaja Kannan, September 2025
* **Last Updated By/Date** - Sylaja Kannan, September 2026
Loading
Loading