Address PR comment for terraform sync integration

This commit is contained in:
carlosmonastyrski
2025-04-11 16:23:07 -03:00
parent e19c3630d9
commit 4b0e5fa05b
91 changed files with 1463 additions and 40 deletions

View File

@@ -0,0 +1,4 @@
---
title: "Available"
openapi: "GET /api/v1/app-connections/camunda/available"
---

View File

@@ -0,0 +1,4 @@
---
title: "Create"
openapi: "POST /api/v1/app-connections/camunda"
---

View File

@@ -0,0 +1,4 @@
---
title: "Delete"
openapi: "DELETE /api/v1/app-connections/camunda/{connectionId}"
---

View File

@@ -0,0 +1,4 @@
---
title: "Get by ID"
openapi: "GET /api/v1/app-connections/camunda/{connectionId}"
---

View File

@@ -0,0 +1,4 @@
---
title: "Get by Name"
openapi: "GET /api/v1/app-connections/camunda/connection-name/{connectionName}"
---

View File

@@ -0,0 +1,4 @@
---
title: "List"
openapi: "GET /api/v1/app-connections/camunda"
---

View File

@@ -0,0 +1,4 @@
---
title: "Update"
openapi: "PATCH /api/v1/app-connections/camunda/{connectionId}"
---

View File

@@ -0,0 +1,4 @@
---
title: "Create"
openapi: "POST /api/v1/secret-syncs/camunda"
---

View File

@@ -0,0 +1,4 @@
---
title: "Delete"
openapi: "DELETE /api/v1/secret-syncs/camunda/{syncId}"
---

View File

@@ -0,0 +1,4 @@
---
title: "Get by ID"
openapi: "GET /api/v1/secret-syncs/camunda/{syncId}"
---

View File

@@ -0,0 +1,4 @@
---
title: "Get by Name"
openapi: "GET /api/v1/secret-syncs/camunda/sync-name/{syncName}"
---

View File

@@ -0,0 +1,4 @@
---
title: "List"
openapi: "GET /api/v1/secret-syncs/camunda"
---

View File

@@ -0,0 +1,4 @@
---
title: "Remove Secrets"
openapi: "POST /api/v1/secret-syncs/camunda/{syncId}/remove-secrets"
---

View File

@@ -0,0 +1,4 @@
---
title: "Sync Secrets"
openapi: "POST /api/v1/secret-syncs/camunda/{syncId}/sync-secrets"
---

View File

@@ -0,0 +1,4 @@
---
title: "Update"
openapi: "PATCH /api/v1/secret-syncs/camunda/{syncId}"
---

View File

@@ -1,4 +1,4 @@
---
title: "Create"
openapi: "POST /api/v1/secret-syncs/humanitec"
openapi: "POST /api/v1/secret-syncs/terraform-cloud"
---

Binary file not shown.

After

Width:  |  Height:  |  Size: 964 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 532 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 656 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 304 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 268 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 303 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 288 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 225 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 626 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 616 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 667 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 656 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 615 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 640 KiB

View File

@@ -0,0 +1,77 @@
---
title: "Camunda Connection"
description: "Learn how to configure a Camunda Connection for Infisical."
---
Infisical supports connecting to Camunda APIs using [client credentials](https://docs.camunda.io/docs/apis-tools/administration-api/authentication/#client-credentials-and-scopes).
## Configure Client Credentials for Infisical
<Steps>
<Step title="Navigate to Organization Management">
In your Camunda Cloud Console, navigate to the **Organization** tab in the top navigation menu.
![Organization Management](/images/app-connections/camunda/camunda-console.png)
</Step>
<Step title="Access Administration API">
From the Organization Management tabs, click on **Administration API** to manage your API credentials and click the **Create client credentials** button.
![Create Client Credentials](/images/app-connections/camunda/camunda-organization-page.png)
</Step>
<Step title="Name Your Client">
Enter a recognizable name for your client, such as "my-infisical-client". The name can contain letters, dashes, underscores, and digits.
</Step>
<Step title="Set Credential Permissions">
In the "Create new client credentials" modal, select the following permissions required for secret syncs:
- **Cluster**: Enable read access (Get)
- **Connector secrets**: Enable all operations (Get, Create, Update, Delete)
These specific permissions are required for Infisical to properly sync and manage your Camunda secrets.
![Set Permissions](/images/app-connections/camunda/camunda-create-client-1.png)
![Set Permissions 2](/images/app-connections/camunda/camunda-create-client-2.png)
</Step>
<Step title="Complete Creation">
Click the **Create** button to generate your client credentials.
</Step>
<Step title="Save Your Credentials">
After creation, you'll be shown your client credentials. For the Infisical connection, you'll need:
- **Client ID** (`CAMUNDA_CONSOLE_CLIENT_ID`)
- **Client Secret** (`CAMUNDA_CONSOLE_CLIENT_SECRET`)
**IMPORTANT**: Make sure to securely save the Client Secret, as it will not be shown again after you close this dialog.
You can download these credentials or copy them to use in the next section.
![Client Credentials](/images/app-connections/camunda/camunda-client-credentials.png)
</Step>
</Steps>
## Setup Camunda Connection in Infisical
<Steps>
<Step title="Navigate to App Connections">
Navigate to the **App Connections** tab on the **Organization Settings**
page. ![App Connections
Tab](/images/app-connections/general/add-connection.png)
</Step>
<Step title="Add Connection">
Select the **Camunda Connection** option from the connection options modal.
![Select Camunda
Connection](/images/app-connections/camunda/camunda-app-connection-select.png)
</Step>
<Step title="Input Credentials">
Select the **Client Credentials** method and enter the Camunda client
credentials you created:
- **Client ID**: Your `CAMUNDA_CONSOLE_CLIENT_ID` value
- **Client Secret**: Your `CAMUNDA_CONSOLE_CLIENT_SECRET` value
Infisical will automatically configure the connection using these credentials to access the Camunda API. Click **Connect to Camunda** to establish the connection. ![Connect to Camunda](/images/app-connections/camunda/camunda-app-connection-form.png)
</Step>
<Step title="Connection Created">
Your **Camunda Connection** is now available for use in your Infisical
projects. ![Camunda Connection
Created](/images/app-connections/camunda/camunda-app-connection-created.png)
</Step>
</Steps>

View File

@@ -0,0 +1,139 @@
---
title: "Camunda Sync"
description: "Learn how to configure a Camunda Sync for Infisical."
---
**Prerequisites:**
- Set up and add secrets to [Infisical Cloud](https://app.infisical.com)
- Create a [Camunda Connection](/integrations/app-connections/camunda)
<Tabs>
<Tab title="Infisical UI">
1. Navigate to **Project** > **Integrations** and select the **Secret Syncs** tab. Click on the **Add Sync** button.
![Secret Syncs Tab](/images/secret-syncs/general/secret-sync-tab.png)
2. Select the **Camunda** option.
![Select Camunda](/images/secret-syncs/camunda/select-camunda-option.png)
3. Configure the **Source** from where secrets should be retrieved, then click **Next**.
![Configure Source](/images/secret-syncs/camunda/camunda-source.png)
- **Environment**: The project environment to retrieve secrets from.
- **Secret Path**: The folder path to retrieve secrets from.
<Tip>
If you need to sync secrets from multiple folder locations, check out [secret imports](/documentation/platform/secret-reference#secret-imports).
</Tip>
4. Configure the **Destination** to where secrets should be deployed, then click **Next**.
![Configure Destination](/images/secret-syncs/camunda/camunda-destination.png)
- **Camunda Connection**: The Camunda Connection to authenticate with.
- **Cluster**: The Camunda cluster to sync connector secrets to.
5. Configure the **Sync Options** to specify how secrets should be synced, then click **Next**.
![Configure Options](/images/secret-syncs/camunda/camunda-options.png)
- **Initial Sync Behavior**: Determines how Infisical should resolve the initial sync.
- **Overwrite Destination Secrets**: Removes any secrets at the destination endpoint not present in Infisical.
- **Import Secrets (Prioritize Infisical)**: Imports secrets from the destination endpoint before syncing, prioritizing values from Infisical over Camunda when keys conflict.
- **Import Secrets (Prioritize Camunda)**: Imports secrets from the destination endpoint before syncing, prioritizing values from Camunda over Infisical when keys conflict.
- **Auto-Sync Enabled**: If enabled, secrets will automatically be synced from the source location when changes occur. Disable to enforce manual syncing only.
- **Disable Secret Deletion**: If enabled, Infisical will not remove secrets from the sync destination. Enable this option if you intend to manage some secrets manually outside of Infisical.
6. Configure the **Details** of your Camunda Sync, then click **Next**.
![Configure Details](/images/secret-syncs/camunda/camunda-details.png)
- **Name**: The name of your sync. Must be slug-friendly.
- **Description**: An optional description for your sync.
7. Review your Camunda Sync configuration, then click **Create Sync**.
![Confirm Configuration](/images/secret-syncs/camunda/camunda-review.png)
8. If enabled, your Camunda Sync will begin syncing your secrets to the destination endpoint.
![Sync Secrets](/images/secret-syncs/camunda/camunda-created.png)
</Tab>
<Tab title="API">
To create an **Camunda Sync**, make an API request to the [Create Camunda Sync](/api-reference/endpoints/secret-syncs/camunda/create) API endpoint.
### Sample request
```bash Request
curl --request POST \
--url https://app.infisical.com/api/v1/secret-syncs/camunda \
--header 'Content-Type: application/json' \
--data '{
"name": "my-camunda-sync",
"projectId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"description": "an example sync",
"connectionId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"environment": "dev",
"secretPath": "/my-secrets",
"isEnabled": true,
"syncOptions": {
"initialSyncBehavior": "overwrite-destination"
},
"destinationConfig": {
"scope": "cluster",
"clusterUUID": "cc4c8dae-dce9-4f4c-9882-132b2bd65fa5"
}
}'
```
### Sample response
```bash Response
{
"secretSync": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "my-camunda-sync",
"description": "an example sync",
"isEnabled": true,
"version": 1,
"folderId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"connectionId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"syncStatus": "succeeded",
"lastSyncJobId": "123",
"lastSyncMessage": null,
"lastSyncedAt": "2023-11-07T05:31:56Z",
"importStatus": null,
"lastImportJobId": null,
"lastImportMessage": null,
"lastImportedAt": null,
"removeStatus": null,
"lastRemoveJobId": null,
"lastRemoveMessage": null,
"lastRemovedAt": null,
"syncOptions": {
"initialSyncBehavior": "overwrite-destination"
},
"projectId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"connection": {
"app": "camunda",
"name": "my-camunda-connection",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"environment": {
"slug": "dev",
"name": "Development",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"folder": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"path": "/my-secrets"
},
"destination": "camunda",
"destinationConfig": {
"scope": "cluster",
"clusterUUID": "cc4c8dae-dce9-4f4c-9882-132b2bd65fa5"
}
}
}
```
</Tab>
</Tabs>

View File

@@ -417,14 +417,15 @@
"integrations/app-connections/aws",
"integrations/app-connections/azure-app-configuration",
"integrations/app-connections/azure-key-vault",
"integrations/app-connections/camunda",
"integrations/app-connections/databricks",
"integrations/app-connections/gcp",
"integrations/app-connections/github",
"integrations/app-connections/humanitec",
"integrations/app-connections/terraform-cloud",
"integrations/app-connections/vercel",
"integrations/app-connections/mssql",
"integrations/app-connections/postgres"
"integrations/app-connections/postgres",
"integrations/app-connections/terraform-cloud",
"integrations/app-connections/vercel"
]
}
]
@@ -440,6 +441,7 @@
"integrations/secret-syncs/aws-secrets-manager",
"integrations/secret-syncs/azure-app-configuration",
"integrations/secret-syncs/azure-key-vault",
"integrations/secret-syncs/camunda",
"integrations/secret-syncs/databricks",
"integrations/secret-syncs/gcp-secret-manager",
"integrations/secret-syncs/github",
@@ -916,6 +918,18 @@
"api-reference/endpoints/app-connections/azure-key-vault/delete"
]
},
{
"group": "Camunda",
"pages": [
"api-reference/endpoints/app-connections/camunda/list",
"api-reference/endpoints/app-connections/camunda/available",
"api-reference/endpoints/app-connections/camunda/get-by-id",
"api-reference/endpoints/app-connections/camunda/get-by-name",
"api-reference/endpoints/app-connections/camunda/create",
"api-reference/endpoints/app-connections/camunda/update",
"api-reference/endpoints/app-connections/camunda/delete"
]
},
{
"group": "Databricks",
"pages": [
@@ -964,30 +978,6 @@
"api-reference/endpoints/app-connections/humanitec/delete"
]
},
{
"group": "Terraform Cloud",
"pages": [
"api-reference/endpoints/app-connections/terraform-cloud/list",
"api-reference/endpoints/app-connections/terraform-cloud/available",
"api-reference/endpoints/app-connections/terraform-cloud/get-by-id",
"api-reference/endpoints/app-connections/terraform-cloud/get-by-name",
"api-reference/endpoints/app-connections/terraform-cloud/create",
"api-reference/endpoints/app-connections/terraform-cloud/update",
"api-reference/endpoints/app-connections/terraform-cloud/delete"
]
},
{
"group": "Vercel",
"pages": [
"api-reference/endpoints/app-connections/vercel/list",
"api-reference/endpoints/app-connections/vercel/available",
"api-reference/endpoints/app-connections/vercel/get-by-id",
"api-reference/endpoints/app-connections/vercel/get-by-name",
"api-reference/endpoints/app-connections/vercel/create",
"api-reference/endpoints/app-connections/vercel/update",
"api-reference/endpoints/app-connections/vercel/delete"
]
},
{
"group": "Microsoft SQL Server",
"pages": [
@@ -1011,6 +1001,30 @@
"api-reference/endpoints/app-connections/postgres/update",
"api-reference/endpoints/app-connections/postgres/delete"
]
},
{
"group": "Terraform Cloud",
"pages": [
"api-reference/endpoints/app-connections/terraform-cloud/list",
"api-reference/endpoints/app-connections/terraform-cloud/available",
"api-reference/endpoints/app-connections/terraform-cloud/get-by-id",
"api-reference/endpoints/app-connections/terraform-cloud/get-by-name",
"api-reference/endpoints/app-connections/terraform-cloud/create",
"api-reference/endpoints/app-connections/terraform-cloud/update",
"api-reference/endpoints/app-connections/terraform-cloud/delete"
]
},
{
"group": "Vercel",
"pages": [
"api-reference/endpoints/app-connections/vercel/list",
"api-reference/endpoints/app-connections/vercel/available",
"api-reference/endpoints/app-connections/vercel/get-by-id",
"api-reference/endpoints/app-connections/vercel/get-by-name",
"api-reference/endpoints/app-connections/vercel/create",
"api-reference/endpoints/app-connections/vercel/update",
"api-reference/endpoints/app-connections/vercel/delete"
]
}
]
},
@@ -1075,6 +1089,19 @@
"api-reference/endpoints/secret-syncs/azure-key-vault/remove-secrets"
]
},
{
"group": "Camunda",
"pages": [
"api-reference/endpoints/secret-syncs/camunda/list",
"api-reference/endpoints/secret-syncs/camunda/get-by-id",
"api-reference/endpoints/secret-syncs/camunda/get-by-name",
"api-reference/endpoints/secret-syncs/camunda/create",
"api-reference/endpoints/secret-syncs/camunda/update",
"api-reference/endpoints/secret-syncs/camunda/delete",
"api-reference/endpoints/secret-syncs/camunda/sync-secrets",
"api-reference/endpoints/secret-syncs/camunda/remove-secrets"
]
},
{
"group": "Databricks",
"pages": [