diff --git a/docs/images/integrations/azure-app-configuration/app-api-permissions.png b/docs/images/integrations/azure-app-configuration/app-api-permissions.png new file mode 100644 index 000000000..174d5ff98 Binary files /dev/null and b/docs/images/integrations/azure-app-configuration/app-api-permissions.png differ diff --git a/docs/images/integrations/azure-app-configuration/app-registration-redirect.png b/docs/images/integrations/azure-app-configuration/app-registration-redirect.png new file mode 100644 index 000000000..bd1edb3d7 Binary files /dev/null and b/docs/images/integrations/azure-app-configuration/app-registration-redirect.png differ diff --git a/docs/images/integrations/azure-app-configuration/azure-app-config-endpoint.png b/docs/images/integrations/azure-app-configuration/azure-app-config-endpoint.png new file mode 100644 index 000000000..7f8057578 Binary files /dev/null and b/docs/images/integrations/azure-app-configuration/azure-app-config-endpoint.png differ diff --git a/docs/images/integrations/azure-app-configuration/config-aad.png b/docs/images/integrations/azure-app-configuration/config-aad.png new file mode 100644 index 000000000..58c20c536 Binary files /dev/null and b/docs/images/integrations/azure-app-configuration/config-aad.png differ diff --git a/docs/images/integrations/azure-app-configuration/config-credentials-1.png b/docs/images/integrations/azure-app-configuration/config-credentials-1.png new file mode 100644 index 000000000..264c48341 Binary files /dev/null and b/docs/images/integrations/azure-app-configuration/config-credentials-1.png differ diff --git a/docs/images/integrations/azure-app-configuration/config-credentials-2.png b/docs/images/integrations/azure-app-configuration/config-credentials-2.png new file mode 100644 index 000000000..087e00468 Binary files /dev/null and b/docs/images/integrations/azure-app-configuration/config-credentials-2.png differ diff --git a/docs/images/integrations/azure-app-configuration/config-credentials-3.png b/docs/images/integrations/azure-app-configuration/config-credentials-3.png new file mode 100644 index 000000000..08481bb84 Binary files /dev/null and b/docs/images/integrations/azure-app-configuration/config-credentials-3.png differ diff --git a/docs/images/integrations/azure-app-configuration/config-new-app.png b/docs/images/integrations/azure-app-configuration/config-new-app.png new file mode 100644 index 000000000..fa9abd08c Binary files /dev/null and b/docs/images/integrations/azure-app-configuration/config-new-app.png differ diff --git a/docs/images/integrations/azure-app-configuration/create-integration-form.png b/docs/images/integrations/azure-app-configuration/create-integration-form.png new file mode 100644 index 000000000..58a935d8f Binary files /dev/null and b/docs/images/integrations/azure-app-configuration/create-integration-form.png differ diff --git a/docs/images/integrations/azure-app-configuration/new-infisical-integration.png b/docs/images/integrations/azure-app-configuration/new-infisical-integration.png new file mode 100644 index 000000000..f33ee5569 Binary files /dev/null and b/docs/images/integrations/azure-app-configuration/new-infisical-integration.png differ diff --git a/docs/integrations/cloud/azure-app-configuration.mdx b/docs/integrations/cloud/azure-app-configuration.mdx new file mode 100644 index 000000000..d015f5cae --- /dev/null +++ b/docs/integrations/cloud/azure-app-configuration.mdx @@ -0,0 +1,75 @@ +--- +title: "Azure App Configuration" +description: "How to sync secrets from Infisical to Azure App Configuration" +--- + + + + Prerequisites: + + - Set up and add envars to [Infisical Cloud](https://app.infisical.com). + - Set up Azure and have an existing App Configuration instance. + - User setting up the integration on Infisical must have the `App Configuration Data Owner` role for the intended Azure App Configuration instance. + - Azure App Configuration instance must be reachable by Infisical. + + + + Navigate to your project's integrations tab + + ![integrations](../../images/integrations/azure-app-configuration/new-infisical-integration.png) + + Press on the Azure App Configuration tile and grant Infisical access to App Configuration. + + + Obtain the Azure App Configuration endpoint from the overview tab. + ![integrations](../../images/integrations/azure-app-configuration/azure-app-config-endpoint.png) + + Select which Infisical environment secrets you want to sync to your Azure App Configuration. Then, input your App Configuration instance endpoint. Optionally, you can define a prefix for your secrets which will be appended to the keys upon syncing. + + ![integrations](../../images/integrations/azure-app-configuration/create-integration-form.png) + + Press create integration to start syncing secrets to Azure App Configuration. + + + + + + Using the Azure App Configuration integration on a self-hosted instance of Infisical requires configuring an application in Azure + and registering your instance with it. + + + + Navigate to Azure Active Directory > App registrations to create a new application. + + + Azure Active Directory is now Microsoft Entra ID. + + ![integrations Azure app config](../../images/integrations/azure-app-configuration/config-aad.png) + ![integrations Azure app config](../../images/integrations/azure-app-configuration/config-new-app.png) + + Create the application. As part of the form, set the **Redirect URI** to `https://your-domain.com/integrations/azure-app-configuration/oauth2/callback`. + + ![integrations Azure app config](../../images/integrations/azure-app-configuration/app-registration-redirect.png) + + After registration, set the API permissions of the app to include the following Azure App Configuration permissions: KeyValue.Delete, KeyValue.Read, and KeyValue.Write. + ![integrations Azure app config](../../images/integrations/azure-app-configuration/app-api-permissions.png) + + + + Obtain the **Application (Client) ID** in Overview and generate a **Client Secret** in Certificate & secrets for your Azure application. + + ![integrations Azure app config](../../images/integrations/azure-app-configuration/config-credentials-1.png) + ![integrations Azure app config](../../images/integrations/azure-app-configuration/config-credentials-2.png) + ![integrations Azure app config](../../images/integrations/azure-app-configuration/config-credentials-3.png) + + Back in your Infisical instance, add two new environment variables for the credentials of your Azure application. + + - `CLIENT_ID_AZURE`: The **Application (Client) ID** of your Azure application. + - `CLIENT_SECRET_AZURE`: The **Client Secret** of your Azure application. + + Once added, restart your Infisical instance and use the Azure App Configuration integration. + + + + + diff --git a/docs/mint.json b/docs/mint.json index 662d008ff..33e5f5c9f 100644 --- a/docs/mint.json +++ b/docs/mint.json @@ -357,6 +357,7 @@ }, "integrations/cloud/vercel", "integrations/cloud/azure-key-vault", + "integrations/cloud/azure-app-configuration", "integrations/cloud/azure-devops", "integrations/cloud/gcp-secret-manager", { diff --git a/frontend/src/pages/integrations/azure-app-configuration/create.tsx b/frontend/src/pages/integrations/azure-app-configuration/create.tsx index 77e922ca9..52781fab4 100644 --- a/frontend/src/pages/integrations/azure-app-configuration/create.tsx +++ b/frontend/src/pages/integrations/azure-app-configuration/create.tsx @@ -137,7 +137,10 @@ export default function AzureAppConfigurationCreateIntegration() { /> Azure App Configuration - +
diff --git a/frontend/src/views/IntegrationsPage/components/IntegrationsSection/IntegrationsSection.tsx b/frontend/src/views/IntegrationsPage/components/IntegrationsSection/IntegrationsSection.tsx index 46037dfb4..2fbcca15d 100644 --- a/frontend/src/views/IntegrationsPage/components/IntegrationsSection/IntegrationsSection.tsx +++ b/frontend/src/views/IntegrationsPage/components/IntegrationsSection/IntegrationsSection.tsx @@ -83,6 +83,11 @@ export const IntegrationsSection = ({ }?`} onChange={(isOpen) => handlePopUpToggle("deleteConfirmation", isOpen)} deleteKey={ + ((popUp?.deleteConfirmation?.data as TIntegration)?.integration === + "azure-app-configuration" && + (popUp?.deleteConfirmation?.data as TIntegration)?.app + ?.split("//")[1] + ?.split(".")[0]) || (popUp?.deleteConfirmation?.data as TIntegration)?.app || (popUp?.deleteConfirmation?.data as TIntegration)?.owner || (popUp?.deleteConfirmation?.data as TIntegration)?.path ||