Custom Actions
Produce Custom Action Messages
You can use Custom Actions to enable communication between two Applications on either the same cluster or across different clusters.
Note
To understand the purpose of Custom Actions or view the overall structure of how they work, check out the documentation in the overview page here.
To ensure the Custom Action being sent is handled properly, the app.yaml outputs needs to be declared:
Note
You can choose any name for the type.
This is how the Custom Action Manager chooses which Consumer Application (Executor) will receive the Custom Action object.
| app.yaml Example | |
|---|---|
1 2 3 | |
The Custom Action Object in the main.py script supports the following attributes :
| Attribute | Required | Default Value | Description |
|---|---|---|---|
resource |
required | N/A | The KRNAsset that this Custom Action is meant for. |
type |
required | N/A | The name of Custom Action. |
title |
required | N/A | Title of the Custom Action |
description |
required | N/A | Description details of the Custom Action |
expiration_date |
required | N/A | Absolute datetime or a timedelta (from now) when the Control Change will expire. |
payload |
required | N/A | The custom information of the Custom Action that will be required by the Consumer Application |
trace_id |
optional | N/A | A custom id for tracking the Custom Action status |
Example
In this example we will create a Producer Application that will;
- Package the email details into a Custom Action Object
- Send the Custom Action object directly to the Consumer Application (Executor) for processing.
- Package the Custom Action object in a Recommendation and publish the "Recommendation with Custom Action" to the Kelvin UI for approval. (Typically, you would choose either direct sending or publishing with a Recommendation—not both.)
Check out the Consume Custom Actions documentation here to see how to receive this Custom Action in a Consumer Application (Executor).
app.yaml
| app.yaml Example | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
Publisher Application
| main.py Example | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | |