> ## Documentation Index
> Fetch the complete documentation index at: https://infisical.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Cloudflare Pages sync

> Learn how to configure a Cloudflare Pages Sync for Infisical.

**Prerequisites:**

* Set up and add secrets to [Infisical Cloud](https://app.infisical.com)
* Create a [Cloudflare Connection](https://infisical.com/docs/integrations/app-connections/cloudflare.md)

> [tab] Infisical UI
>
> 1. Navigate to **Project** > **Integrations** and select the **Secret Syncs** tab. Select the **Add Sync** button.
>
>    ![Secret Syncs Tab](https://mintlify.s3.us-west-1.amazonaws.com/infisical/images/secret-syncs/general/secret-sync-tab.png)
>
> 2. Select the **Cloudflare Pages** option.
>
>    ![Select Cloudflare Pages](https://mintlify.s3.us-west-1.amazonaws.com/infisical/images/secret-syncs/cloudflare-pages/select-cloudflare-pages-option.png)
>
> 3. Configure the **Source** from where secrets should be retrieved, then click **Next**.
>
>    ![Configure Source](https://mintlify.s3.us-west-1.amazonaws.com/infisical/images/secret-syncs/cloudflare-pages/cloudflare-pages-sync-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](https://infisical.com/docs/documentation/platform/secret-reference.md#secret-imports).
>
> 4. Configure the **Destination** to where secrets should be deployed, then click **Next**.
>
>    ![Configure Destination](https://mintlify.s3.us-west-1.amazonaws.com/infisical/images/secret-syncs/cloudflare-pages/cloudflare-pages-sync-destination.png)
>
> * **Cloudflare Connection**: The Cloudflare Connection to authenticate with.
>
> * **Cloudflare Pages Project**: Choose the Cloudflare Pages project you want to sync secrets to.
>
> * **Environment**: Select the deployment environment (preview or production).
>
> 5. Configure the **Sync Options** to specify how secrets should be synced, then click **Next**.
>
>    ![Configure Options](https://mintlify.s3.us-west-1.amazonaws.com/infisical/images/secret-syncs/cloudflare-pages/cloudflare-pages-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.
> * **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.
> * **Variable type**: How Cloudflare stores each synced secret
>   * **Secret**: Encrypted, so you can't read the value in the Cloudflare dashboard
>   * **Text**: Plain text that you can read in the Cloudflare dashboard
>
> If a secret already exists in the environment as the other type, the sync fails with an error that names it, and nothing in Cloudflare changes. To sync it, delete the variable in Cloudflare or change the sync's variable type. Syncs created before the variable type option existed skip those secrets rather than failing.
>
> > [!TIP]
> >
> > To sync both secrets and text variables to one environment, create one sync of each type from different folders. Each sync only deletes variables of its own type. When you create the second sync, Infisical warns that the destination is already in use. If your organization blocks duplicate destinations, you can't create the second sync.
>
> 6. Configure the **Details** of your Cloudflare Pages Sync, then click **Next**.
>
>    ![Configure Details](https://mintlify.s3.us-west-1.amazonaws.com/infisical/images/secret-syncs/cloudflare-pages/cloudflare-pages-sync-details.png)
>
> * **Name**: The name of your sync. Must be slug-friendly.
>
> * **Description**: An optional description for your sync.
>
> 7. Review your Cloudflare Pages Sync configuration, then click **Create Sync**.
>
>    ![Confirm Configuration](https://mintlify.s3.us-west-1.amazonaws.com/infisical/images/secret-syncs/cloudflare-pages/cloudflare-pages-sync-review.png)
>
> 8. If enabled, your Cloudflare Pages Sync will begin syncing your secrets to the destination endpoint.
>
>    ![Sync Secrets](https://mintlify.s3.us-west-1.amazonaws.com/infisical/images/secret-syncs/cloudflare-pages/cloudflare-pages-sync-created.png)

> [tab] API
>
> To create a **Cloudflare Pages Sync**, make an API request to the [Create Cloudflare Pages Sync](https://infisical.com/docs/api-reference/endpoints/secret-syncs/cloudflare-pages/create.md) API endpoint.
>
> ### Sample request
>
> ```bash Request theme={"dark"}
> curl --request POST \
>   --url https://app.infisical.com/api/v1/secret-syncs/cloudflare-pages \
>   --header 'Content-Type: application/json' \
>   --data '{
>     "name": "my-cloudflare-pages-sync",
>     "projectId": "your-project-id",
>     "description": "an example sync",
>     "connectionId": "your-cloudflare-connection-id",
>     "environment": "production",
>     "secretPath": "/my-secrets",
>     "isEnabled": true,
>     "syncOptions": {
>       "initialSyncBehavior": "overwrite-destination"
>     },
>     "destinationConfig": {
>       "projectId": "your-cloudflare-pages-project-id",
>       "projectName": "my-pages-project",
>       "environment": "production"
>     }
>   }'
> ```
>
> ### Sample response
>
> ```bash Response theme={"dark"}
> {
>   "secretSync": {
>     "id": "your-sync-id",
>     "name": "my-cloudflare-pages-sync",
>     "description": "an example sync",
>     "isEnabled": true,
>     "version": 1,
>     "folderId": "your-folder-id",
>     "connectionId": "your-cloudflare-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": "cloudflare",
>       "name": "my-cloudflare-connection",
>       "id": "your-cloudflare-connection-id"
>     },
>     "environment": {
>       "slug": "production",
>       "name": "Production",
>       "id": "your-env-id"
>     },
>     "folder": {
>       "id": "your-folder-id",
>       "path": "/my-secrets"
>     },
>     "destination": "cloudflare-pages",
>     "destinationConfig": {
>       "projectId": "your-cloudflare-pages-project-id",
>       "projectName": "my-pages-project",
>       "environment": "production"
>     }
>   }
> }
> ```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.