Skip to content
Draft
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
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,9 @@ When templates don't fit your needs, [Create Your Own](https://onenr.io/0OQM47Kg

This guide shows you how to build workflows using concepts and a complete example. Choose your learning path:

- **Learn core concepts first** Read [Core concepts](#core-concepts) and [Workflow patterns](#workflow-patterns) to understand the fundamentals, then apply them
- **Follow the example** Jump to [Example walkthrough](#example-walkthrough) to build an EC2 auto-resize workflow step-by-step
- **Reference patterns** Use the [Workflow patterns](#workflow-patterns) section as a quick reference when building your own workflows
- **Learn core concepts first**: Read [Core concepts](#core-concepts) and [Workflow patterns](#workflow-patterns) to understand the fundamentals, then apply them
- **Follow the example**: Jump to [Example walkthrough](#example-walkthrough) to build an EC2 auto-resize workflow step-by-step
- **Reference patterns**: Use the [Workflow patterns](#workflow-patterns) section as a quick reference when building your own workflows

<Callout variant="tip">
**New to workflows?** Start with core concepts, then follow the example. The EC2 workflow demonstrates all key patterns in a real-world scenario.
Expand Down Expand Up @@ -134,7 +134,7 @@ Understand these fundamentals before you build:
</td>

<td>
Mandatory field for loop functions to define iteration count
Required parameter for loop functions to define iteration count
</td>

<td>
Expand Down Expand Up @@ -242,7 +242,7 @@ Four essential patterns handle most automation scenarios. Each pattern is demons

### Approval gates and waiting

**Use approval gates when:** Human judgment needed before destructive operations or compliance sign-off required
**Use approval gates when:** Human judgment is needed before destructive operations or compliance sign-off is required

**Key syntax:**
```yaml
Expand Down Expand Up @@ -606,7 +606,7 @@ Now let's build each part of the workflow. Each step includes the specific actio
The workflow resizes the instance through AWS Systems Manager (SSM):

* **`createSsmDocument`**: Creates an SSM Automation document that stops the instance, modifies type, and restarts it.
* **`generateIdempotencyToken`**: Creates a unique UUID. Prevents duplicate resizes if the workflow runs twice.
* **`generateIdempotencyToken`**: Creates a unique UUID to prevent duplicate resizes if the workflow runs twice.
* **`startResizing`**: Executes the SSM document with instance ID and new type.
* **`progressLoop` (Loop)**: Posts Slack updates every 10 seconds (5 times total).
* **`waitForCompletion`**: Polls SSM status with 2-minute timeout.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,12 +40,22 @@ freshnessValidatedDate: never
<td>50KB</td>
</tr>
<tr>
<td>No of Workflow definitions (Including all versions)</td>
<td>No of Workflow definitions at account level(excluding versions count)</td>
<td></td>
<td>1000</td>
</tr>
<tr>
<td>No of Workflow definitions at org level (including all versions)</td>
<td>No of Workflow definitions at org level (excluding versions count)</td>
<td></td>
<td>1000</td>
</tr>
<tr>
<td>No of versions per workflow definition at account level</td>
<td></td>
<td>1000</td>
</tr>
<tr>
<td>No of versions per workflow definition at org level</td>
<td></td>
<td>1000</td>
</tr>
Expand All @@ -67,7 +77,7 @@ freshnessValidatedDate: never
<tr>
<td>Length of a workflow input value</td>
<td></td>
<td>1000 characters</td>
<td>1000 Characters</td>
</tr>
<tr>
<td>Workflow concurrent runs (per account)</td>
Expand Down

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,204 @@
---
title: "Auth JWT actions"
tags:
- workflow automation
- workflow
- workflow automation actions
- Auth actions
- Auth JWT actions
metaDescription: "A list of available auth jwt actions in the actions catalog for workflow definitions"
freshnessValidatedDate: never
---

<Callout title="preview">
We're still working on this feature, but we'd love for you to try it out!

This feature is currently provided as part of a preview program pursuant to our [pre-release policies](/docs/licenses/license-information/referenced-policies/new-relic-pre-release-policy).
</Callout>

This page provides a comprehensive reference for authentication actions available in the workflow automation actions catalog. These actions enable you to create and manage JSON Web Tokens (JWT) for secure authentication in your workflows.

## Authentication actions

<CollapserGroup>
<Collapser
id="auth.jwt.create"
title="Create a JSON Web Token"
>
Create a JSON Web Token

<Tabs>
<TabsBar>
<TabsBarItem id="authjwtcreateinputs">
Inputs
</TabsBarItem>

<TabsBarItem id="authjwtcreateoutputs">
Outputs
</TabsBarItem>

<TabsBarItem id="authjwtcreateexample">
Example
</TabsBarItem>
</TabsBar>

<TabsPages>
<TabsPageItem id="authjwtcreateinputs">
<table>
<thead>
<tr>
<th>Input Field</th>
<th>Type</th>
<th>Description</th>
<th>Example</th>
</tr>
</thead>
<tbody>
<tr>
<td>**algorithm**</td>
<td>String</td>
<td>Algorithm used to sign the token.</td>
<td>
RS256
<p>Supported algorithms: RS256 ,ES256</p>
</td>
</tr>
<tr>
<td>**privateKey**</td>
<td>String</td>
<td>
The private key for signing a JWT.
- RS256 supports private key in PKCS#8 & PKCS#1 format. ES256 supports private key in PKCS#8 (.p8) format.
- Private Key must be provided as a secret expression.
- PrivateKey must be stored as single line string in Secrets.
</td>
<td>`${{ :secrets:namespace:privateKey }}`</td>
</tr>
<tr>
<td>**headers**</td>
<td>Map</td>
<td>
Headers provides metadata for JWT
<p>
**UnSupported headers**: nested objects, arrays, null are not supported
</p>
</td>
<td>`{"kid": "key-2025-09"}`</td>
</tr>
<tr>
<td>**claims**</td>
<td>Map</td>
<td>
Claims are statements about an entity (typically, the user) and additional data
<p>
**Unsupported Claim Types**: null, Nested objects / arbitrary maps, Lists containing non-strings or mixed types.
</p>
</td>
<td>`{"role": "admin", "scope": "read:all"}`</td>
</tr>
<tr>
<td>**expirationTimeMinutes**</td>
<td>Int</td>
<td>
Expiration time in minutes
<p>
Expiration time should be greater than 0 and less than 30days.
</p>
</td>
<td>10</td>
</tr>
<tr>
<td>**includeIssuedAt**</td>
<td>Boolean</td>
<td>
Issued At timestamp
<p>
Default: true
</p>
</td>
<td>true</td>
</tr>
<tr>
<td>**selectors**</td>
<td>List</td>
<td></td>
<td>
```yaml
[name: token,

expression: .jwt

]
```
</td>
</tr>
</tbody>
</table>
</TabsPageItem>

<TabsPageItem id="authjwtcreateoutputs">
<table>
<thead>
<tr>
<th>Output Field</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>**success**</td>
<td>Boolean</td>
<td>`true/false`</td>
</tr>
<tr>
<td>**jwt**</td>
<td>String</td>
<td>"`xxxxx.yyyyy.zzzzz`“</td>
</tr>
<tr>
<td>**errorMessage**</td>
<td>String</td>
<td>`“Unsupported algorithm for creating jwt token"`</td>
</tr>
</tbody>
</table>
</TabsPageItem>

<TabsPageItem id="httpdeleteexample">
<table>
<thead>
<tr>
<th>Workflow definition</th>
</tr>
</thead>
<tbody>
<tr>
<td>
```yaml
name: create-json-web-token
description: ""
steps:
- name: auth_jwt_create_1
type: action
action: auth.jwt.create
version: "1"
inputs:
algorithm: RS256
privateKey: ${{ :secrets:namespace:privatekey}}
headers:
header1: value1
claims:
claim1: value1
expirationTimeMinutes: 10
next: end
```
</td>
</tr>
</tbody>
</table>
</TabsPageItem>
</TabsPages>
</Tabs>
</Collapser>
</CollapserGroup>
Original file line number Diff line number Diff line change
Expand Up @@ -1271,7 +1271,7 @@ See [Set up AWS credentials](/docs/workflow-automation/setup-and-configuration/s
</Collapser>

<Collapser
id="awsec2terminateinstances"
id="aws.ec2.terminateInstances"
title="Terminate instances"
>

Expand Down Expand Up @@ -1416,29 +1416,29 @@ See [Set up AWS credentials](/docs/workflow-automation/setup-and-configuration/s
<tbody>
<tr>
<td>
```yaml
name: ec2-terminate-test
description: ''
workflowInputs:
arnRole:
type: String
region:
type: String
defaultValue: us-west-2
instanceIds:
type: list
defaultValue: ["i-123456789abcdef0"]
steps:
- name: aws_ec2_terminateInstances_1
type: action
action: aws.ec2.terminateInstances
version: '1'
inputs:
awsRoleArn: ${{ .workflowInputs.arnRole }}
region: ${{ .workflowInputs.region }}
instanceIds: ${{ .workflowInputs.instanceIds }}
next: end
```
```yaml
name: ec2-terminate-test
description: ''
workflowInputs:
arnRole:
type: String
region:
type: String
defaultValue: us-west-2
instanceIds:
type: list
defaultValue: ["i-123456789abcdef0"]
steps:
- name: aws_ec2_terminateInstances_1
type: action
action: aws.ec2.terminateInstances
version: '1'
inputs:
awsRoleArn: ${{ .workflowInputs.arnRole }}
region: ${{ .workflowInputs.region }}
instanceIds: ${{ .workflowInputs.instanceIds }}
next: end
```
</td>
</tr>
</tbody>
Expand Down Expand Up @@ -1660,7 +1660,7 @@ See [Set up AWS credentials](/docs/workflow-automation/setup-and-configuration/s

<CollapserGroup>
<Collapser
id="awssystemsmanagerwritedocument"
id="aws.systemsManager.writeDocument"
title="Create document"
>
Writes a document to the AWS account based on the AWS credentials passed in the action input. See [AWS Systems Manager Documentation](https://docs.aws.amazon.com/systems-manager/?id=docs_gateway)
Expand Down Expand Up @@ -1843,7 +1843,7 @@ See [Set up AWS credentials](/docs/workflow-automation/setup-and-configuration/s
</Collapser>

<Collapser
id="awssystemsmanagerdeletedocument"
id="aws.systemsManager.deleteDocument"
title="Delete document"
>
Deletes an AWS document in the AWS account based on the credentials passed in the action input. See [AWS Systems Manager Documentation](https://docs.aws.amazon.com/systems-manager/latest/userguide/documents.html)
Expand Down Expand Up @@ -1985,7 +1985,7 @@ See [Set up AWS credentials](/docs/workflow-automation/setup-and-configuration/s
</Collapser>

<Collapser
id="awssystemsmanagerstartautomation"
id="aws.systemsManager.startAutomation"
title="Start automation"
>
Starts an automation using an AWS document. See [AWS Systems Manager Documentation](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_StartAutomationExecution.html)
Expand Down Expand Up @@ -2137,7 +2137,7 @@ See [Set up AWS credentials](/docs/workflow-automation/setup-and-configuration/s
</Collapser>

<Collapser
id="awssystemsmanagerwaitforautomationstatus"
id="aws.systemsManager.waitForAutomationStatus"
title="Wait for automation status"
>
Waits for an automation using an AWS document. See [AWS Systems Manager Documentation](https://docs.aws.amazon.com/systems-manager/?id=docs_gateway) for more information.
Expand Down Expand Up @@ -2341,7 +2341,7 @@ See [Set up AWS credentials](/docs/workflow-automation/setup-and-configuration/s

<CollapserGroup>
<Collapser
id="awsexecuteapi"
id="aws.execute.api"
title="Execute an AWS API"
>

Expand Down
Loading