diff --git a/docs/images/secret-syncs/render/render-sync-created.png b/docs/images/secret-syncs/render/render-sync-created.png new file mode 100644 index 000000000..726cd14f6 Binary files /dev/null and b/docs/images/secret-syncs/render/render-sync-created.png differ diff --git a/docs/images/secret-syncs/render/render-sync-destination.png b/docs/images/secret-syncs/render/render-sync-destination.png new file mode 100644 index 000000000..67fd1af85 Binary files /dev/null and b/docs/images/secret-syncs/render/render-sync-destination.png differ diff --git a/docs/images/secret-syncs/render/render-sync-details.png b/docs/images/secret-syncs/render/render-sync-details.png new file mode 100644 index 000000000..ff50b26cd Binary files /dev/null and b/docs/images/secret-syncs/render/render-sync-details.png differ diff --git a/docs/images/secret-syncs/render/render-sync-options.png b/docs/images/secret-syncs/render/render-sync-options.png new file mode 100644 index 000000000..25cc9dad5 Binary files /dev/null and b/docs/images/secret-syncs/render/render-sync-options.png differ diff --git a/docs/images/secret-syncs/render/render-sync-review.png b/docs/images/secret-syncs/render/render-sync-review.png new file mode 100644 index 000000000..ab39faf20 Binary files /dev/null and b/docs/images/secret-syncs/render/render-sync-review.png differ diff --git a/docs/images/secret-syncs/render/render-sync-source.png b/docs/images/secret-syncs/render/render-sync-source.png new file mode 100644 index 000000000..436e1d621 Binary files /dev/null and b/docs/images/secret-syncs/render/render-sync-source.png differ diff --git a/docs/images/secret-syncs/render/select-render-option.png b/docs/images/secret-syncs/render/select-render-option.png new file mode 100644 index 000000000..6e47be640 Binary files /dev/null and b/docs/images/secret-syncs/render/select-render-option.png differ diff --git a/docs/integrations/secret-syncs/render.mdx b/docs/integrations/secret-syncs/render.mdx new file mode 100644 index 000000000..341d84ad5 --- /dev/null +++ b/docs/integrations/secret-syncs/render.mdx @@ -0,0 +1,135 @@ +--- +title: "Render Sync" +description: "Learn how to configure a Render Sync for Infisical." +--- + +**Prerequisites:** + +- Set up and add secrets to [Infisical Cloud](https://app.infisical.com) +- Create a [Render Connection](/integrations/app-connections/render) + + + + 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 **Render** option. + ![Select Render](/images/secret-syncs/render/select-render-option.png) + + 3. Configure the **Source** from where secrets should be retrieved, then click **Next**. + ![Configure Source](/images/secret-syncs/render/render-sync-source.png) + + - **Environment**: The project environment to retrieve secrets from. + - **Secret Path**: The folder path to retrieve secrets from. + + + If you need to sync secrets from multiple folder locations, check out [secret imports](/documentation/platform/secret-reference#secret-imports). + + + 4. Configure the **Destination** to where secrets should be deployed, then click **Next**. + ![Configure Destination](/images/secret-syncs/render/render-sync-destination.png) + + - **Render Connection**: The Render Connection to authenticate with. + - **Scope**: Select **Service**. + - **Service**: Choose the Render service you want to sync secrets to. + + 5. Configure the **Sync Options** to specify how secrets should be synced, then click **Next**. + ![Configure Options](/images/secret-syncs/render/render-sync-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 Render service before syncing, prioritizing values from Infisical over Render when keys conflict. + - **Import Secrets (Prioritize Render)**: Imports secrets from the Render service before syncing, prioritizing values from Render over Infisical when keys conflict. + - **Key Schema**: Template that determines how secret names are transformed when syncing, using `{{secretKey}}` as a placeholder for the original secret name and `{{environment}}` for the environment. + - **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 Render Sync, then click **Next**. + ![Configure Details](/images/secret-syncs/render/render-sync-details.png) + + - **Name**: The name of your sync. Must be slug-friendly. + - **Description**: An optional description for your sync. + + 7. Review your Render Sync configuration, then click **Create Sync**. + ![Confirm Configuration](/images/secret-syncs/render/render-sync-review.png) + + 8. If enabled, your Render Sync will begin syncing your secrets to the destination endpoint. + ![Sync Secrets](/images/secret-syncs/render/render-sync-created.png) + + + + To create a **Render Sync**, make an API request to the [Create Render Sync](/api-reference/endpoints/secret-syncs/render/create) API endpoint. + + ### Sample request + + ```bash Request + curl --request POST \ + --url https://app.infisical.com/api/v1/secret-syncs/render \ + --header 'Content-Type: application/json' \ + --data '{ + "name": "my-render-sync", + "projectId": "your-project-id", + "description": "an example sync", + "connectionId": "your-render-connection-id", + "environment": "production", + "secretPath": "/my-secrets", + "isEnabled": true, + "syncOptions": { + "initialSyncBehavior": "overwrite-destination" + }, + "destinationConfig": { + "scope": "service", + "serviceId": "your-render-service-id", + "type": "env" + } + }' + ``` + + ### Sample response + + ```bash Response + { + "secretSync": { + "id": "your-sync-id", + "name": "my-render-sync", + "description": "an example sync", + "isEnabled": true, + "version": 1, + "folderId": "your-folder-id", + "connectionId": "your-render-connection-id", + "createdAt": "2024-05-01T12:00:00Z", + "updatedAt": "2024-05-01T12:00:00Z", + "syncStatus": "succeeded", + "lastSyncJobId": "123", + "lastSyncMessage": null, + "lastSyncedAt": "2024-05-01T12:00:00Z", + "syncOptions": { + "initialSyncBehavior": "overwrite-destination" + }, + "projectId": "your-project-id", + "connection": { + "app": "render", + "name": "my-render-connection", + "id": "your-render-connection-id" + }, + "environment": { + "slug": "production", + "name": "Production", + "id": "your-env-id" + }, + "folder": { + "id": "your-folder-id", + "path": "/my-secrets" + }, + "destination": "render", + "destinationConfig": { + "scope": "service", + "serviceId": "your-render-service-id", + "type": "env" + } + } + } + ``` + + + diff --git a/docs/mint.json b/docs/mint.json index fa0fb2b2d..85a9cd5cc 100644 --- a/docs/mint.json +++ b/docs/mint.json @@ -546,7 +546,8 @@ "integrations/secret-syncs/teamcity", "integrations/secret-syncs/terraform-cloud", "integrations/secret-syncs/vercel", - "integrations/secret-syncs/windmill" + "integrations/secret-syncs/windmill", + "integrations/secret-syncs/render" ] } ]