diff --git a/docs/api-reference/endpoints/app-connections/hashicorp-vault/available.mdx b/docs/api-reference/endpoints/app-connections/hashicorp-vault/available.mdx
new file mode 100644
index 000000000..ff52a325a
--- /dev/null
+++ b/docs/api-reference/endpoints/app-connections/hashicorp-vault/available.mdx
@@ -0,0 +1,4 @@
+---
+title: "Available"
+openapi: "GET /api/v1/app-connections/hashicorp-vault/available"
+---
diff --git a/docs/api-reference/endpoints/app-connections/hashicorp-vault/create.mdx b/docs/api-reference/endpoints/app-connections/hashicorp-vault/create.mdx
new file mode 100644
index 000000000..6a978e780
--- /dev/null
+++ b/docs/api-reference/endpoints/app-connections/hashicorp-vault/create.mdx
@@ -0,0 +1,8 @@
+---
+title: "Create"
+openapi: "POST /api/v1/app-connections/hashicorp-vault"
+---
+
+
+ Check out the configuration docs for [Hashicorp Vault Connections](/integrations/app-connections/hashicorp-vault) to learn how to obtain the required credentials.
+
diff --git a/docs/api-reference/endpoints/app-connections/hashicorp-vault/delete.mdx b/docs/api-reference/endpoints/app-connections/hashicorp-vault/delete.mdx
new file mode 100644
index 000000000..aaf378fb5
--- /dev/null
+++ b/docs/api-reference/endpoints/app-connections/hashicorp-vault/delete.mdx
@@ -0,0 +1,4 @@
+---
+title: "Delete"
+openapi: "DELETE /api/v1/app-connections/hashicorp-vault/{connectionId}"
+---
diff --git a/docs/api-reference/endpoints/app-connections/hashicorp-vault/get-by-id.mdx b/docs/api-reference/endpoints/app-connections/hashicorp-vault/get-by-id.mdx
new file mode 100644
index 000000000..39366f508
--- /dev/null
+++ b/docs/api-reference/endpoints/app-connections/hashicorp-vault/get-by-id.mdx
@@ -0,0 +1,4 @@
+---
+title: "Get by ID"
+openapi: "GET /api/v1/app-connections/hashicorp-vault/{connectionId}"
+---
diff --git a/docs/api-reference/endpoints/app-connections/hashicorp-vault/get-by-name.mdx b/docs/api-reference/endpoints/app-connections/hashicorp-vault/get-by-name.mdx
new file mode 100644
index 000000000..9f3c41783
--- /dev/null
+++ b/docs/api-reference/endpoints/app-connections/hashicorp-vault/get-by-name.mdx
@@ -0,0 +1,4 @@
+---
+title: "Get by Name"
+openapi: "GET /api/v1/app-connections/hashicorp-vault/connection-name/{connectionName}"
+---
diff --git a/docs/api-reference/endpoints/app-connections/hashicorp-vault/list.mdx b/docs/api-reference/endpoints/app-connections/hashicorp-vault/list.mdx
new file mode 100644
index 000000000..474c70fd8
--- /dev/null
+++ b/docs/api-reference/endpoints/app-connections/hashicorp-vault/list.mdx
@@ -0,0 +1,4 @@
+---
+title: "List"
+openapi: "GET /api/v1/app-connections/hashicorp-vault"
+---
diff --git a/docs/api-reference/endpoints/app-connections/hashicorp-vault/update.mdx b/docs/api-reference/endpoints/app-connections/hashicorp-vault/update.mdx
new file mode 100644
index 000000000..e155c8e67
--- /dev/null
+++ b/docs/api-reference/endpoints/app-connections/hashicorp-vault/update.mdx
@@ -0,0 +1,8 @@
+---
+title: "Update"
+openapi: "PATCH /api/v1/app-connections/hashicorp-vault/{connectionId}"
+---
+
+
+ Check out the configuration docs for [Hashicorp Vault Connections](/integrations/app-connections/hashicorp-vault) to learn how to obtain the required credentials.
+
diff --git a/docs/api-reference/endpoints/secret-syncs/hashicorp-vault/create.mdx b/docs/api-reference/endpoints/secret-syncs/hashicorp-vault/create.mdx
new file mode 100644
index 000000000..ab9171f7b
--- /dev/null
+++ b/docs/api-reference/endpoints/secret-syncs/hashicorp-vault/create.mdx
@@ -0,0 +1,4 @@
+---
+title: "Create"
+openapi: "POST /api/v1/secret-syncs/hashicorp-vault"
+---
diff --git a/docs/api-reference/endpoints/secret-syncs/hashicorp-vault/delete.mdx b/docs/api-reference/endpoints/secret-syncs/hashicorp-vault/delete.mdx
new file mode 100644
index 000000000..700438ba5
--- /dev/null
+++ b/docs/api-reference/endpoints/secret-syncs/hashicorp-vault/delete.mdx
@@ -0,0 +1,4 @@
+---
+title: "Delete"
+openapi: "DELETE /api/v1/secret-syncs/hashicorp-vault/{syncId}"
+---
diff --git a/docs/api-reference/endpoints/secret-syncs/hashicorp-vault/get-by-id.mdx b/docs/api-reference/endpoints/secret-syncs/hashicorp-vault/get-by-id.mdx
new file mode 100644
index 000000000..7017416c1
--- /dev/null
+++ b/docs/api-reference/endpoints/secret-syncs/hashicorp-vault/get-by-id.mdx
@@ -0,0 +1,4 @@
+---
+title: "Get by ID"
+openapi: "GET /api/v1/secret-syncs/hashicorp-vault/{syncId}"
+---
diff --git a/docs/api-reference/endpoints/secret-syncs/hashicorp-vault/get-by-name.mdx b/docs/api-reference/endpoints/secret-syncs/hashicorp-vault/get-by-name.mdx
new file mode 100644
index 000000000..a817732f1
--- /dev/null
+++ b/docs/api-reference/endpoints/secret-syncs/hashicorp-vault/get-by-name.mdx
@@ -0,0 +1,4 @@
+---
+title: "Get by Name"
+openapi: "GET /api/v1/secret-syncs/hashicorp-vault/sync-name/{syncName}"
+---
diff --git a/docs/api-reference/endpoints/secret-syncs/hashicorp-vault/import-secrets.mdx b/docs/api-reference/endpoints/secret-syncs/hashicorp-vault/import-secrets.mdx
new file mode 100644
index 000000000..3ee2c479c
--- /dev/null
+++ b/docs/api-reference/endpoints/secret-syncs/hashicorp-vault/import-secrets.mdx
@@ -0,0 +1,4 @@
+---
+title: "Import Secrets"
+openapi: "POST /api/v1/secret-syncs/hashicorp-vault/{syncId}/import-secrets"
+---
diff --git a/docs/api-reference/endpoints/secret-syncs/hashicorp-vault/list.mdx b/docs/api-reference/endpoints/secret-syncs/hashicorp-vault/list.mdx
new file mode 100644
index 000000000..e3c08f125
--- /dev/null
+++ b/docs/api-reference/endpoints/secret-syncs/hashicorp-vault/list.mdx
@@ -0,0 +1,4 @@
+---
+title: "List"
+openapi: "GET /api/v1/secret-syncs/hashicorp-vault"
+---
diff --git a/docs/api-reference/endpoints/secret-syncs/hashicorp-vault/remove-secrets.mdx b/docs/api-reference/endpoints/secret-syncs/hashicorp-vault/remove-secrets.mdx
new file mode 100644
index 000000000..7b54e94d6
--- /dev/null
+++ b/docs/api-reference/endpoints/secret-syncs/hashicorp-vault/remove-secrets.mdx
@@ -0,0 +1,4 @@
+---
+title: "Remove Secrets"
+openapi: "POST /api/v1/secret-syncs/hashicorp-vault/{syncId}/remove-secrets"
+---
diff --git a/docs/api-reference/endpoints/secret-syncs/hashicorp-vault/sync-secrets.mdx b/docs/api-reference/endpoints/secret-syncs/hashicorp-vault/sync-secrets.mdx
new file mode 100644
index 000000000..24f58d802
--- /dev/null
+++ b/docs/api-reference/endpoints/secret-syncs/hashicorp-vault/sync-secrets.mdx
@@ -0,0 +1,4 @@
+---
+title: "Sync Secrets"
+openapi: "POST /api/v1/secret-syncs/hashicorp-vault/{syncId}/sync-secrets"
+---
diff --git a/docs/api-reference/endpoints/secret-syncs/hashicorp-vault/update.mdx b/docs/api-reference/endpoints/secret-syncs/hashicorp-vault/update.mdx
new file mode 100644
index 000000000..58ddc5a2b
--- /dev/null
+++ b/docs/api-reference/endpoints/secret-syncs/hashicorp-vault/update.mdx
@@ -0,0 +1,4 @@
+---
+title: "Update"
+openapi: "PATCH /api/v1/secret-syncs/hashicorp-vault/{syncId}"
+---
diff --git a/docs/images/app-connections/hashicorp-vault/vault-access.png b/docs/images/app-connections/hashicorp-vault/vault-access.png
new file mode 100644
index 000000000..b6b6504fe
Binary files /dev/null and b/docs/images/app-connections/hashicorp-vault/vault-access.png differ
diff --git a/docs/images/app-connections/hashicorp-vault/vault-approle.png b/docs/images/app-connections/hashicorp-vault/vault-approle.png
new file mode 100644
index 000000000..89cff90fe
Binary files /dev/null and b/docs/images/app-connections/hashicorp-vault/vault-approle.png differ
diff --git a/docs/images/app-connections/hashicorp-vault/vault-authentication-methods.png b/docs/images/app-connections/hashicorp-vault/vault-authentication-methods.png
new file mode 100644
index 000000000..fd9d607b9
Binary files /dev/null and b/docs/images/app-connections/hashicorp-vault/vault-authentication-methods.png differ
diff --git a/docs/images/integrations/hashicorp-vault/integrations-hashicorp-vault-cluster-url.png b/docs/images/app-connections/hashicorp-vault/vault-cluster-urls.png
similarity index 100%
rename from docs/images/integrations/hashicorp-vault/integrations-hashicorp-vault-cluster-url.png
rename to docs/images/app-connections/hashicorp-vault/vault-cluster-urls.png
diff --git a/docs/images/app-connections/hashicorp-vault/vault-create-policy.png b/docs/images/app-connections/hashicorp-vault/vault-create-policy.png
new file mode 100644
index 000000000..5d429fcc3
Binary files /dev/null and b/docs/images/app-connections/hashicorp-vault/vault-create-policy.png differ
diff --git a/docs/images/app-connections/hashicorp-vault/vault-enable-method.png b/docs/images/app-connections/hashicorp-vault/vault-enable-method.png
new file mode 100644
index 000000000..c034995ac
Binary files /dev/null and b/docs/images/app-connections/hashicorp-vault/vault-enable-method.png differ
diff --git a/docs/images/app-connections/hashicorp-vault/vault-infisical-connect-modal.png b/docs/images/app-connections/hashicorp-vault/vault-infisical-connect-modal.png
new file mode 100644
index 000000000..e7abf62c4
Binary files /dev/null and b/docs/images/app-connections/hashicorp-vault/vault-infisical-connect-modal.png differ
diff --git a/docs/images/app-connections/hashicorp-vault/vault-infisical-connect-page.png b/docs/images/app-connections/hashicorp-vault/vault-infisical-connect-page.png
new file mode 100644
index 000000000..4a91f8dbb
Binary files /dev/null and b/docs/images/app-connections/hashicorp-vault/vault-infisical-connect-page.png differ
diff --git a/docs/images/app-connections/hashicorp-vault/vault-infisical-connect-success.png b/docs/images/app-connections/hashicorp-vault/vault-infisical-connect-success.png
new file mode 100644
index 000000000..90d562e11
Binary files /dev/null and b/docs/images/app-connections/hashicorp-vault/vault-infisical-connect-success.png differ
diff --git a/docs/images/app-connections/hashicorp-vault/vault-policies-navigate.png b/docs/images/app-connections/hashicorp-vault/vault-policies-navigate.png
new file mode 100644
index 000000000..05cab30eb
Binary files /dev/null and b/docs/images/app-connections/hashicorp-vault/vault-policies-navigate.png differ
diff --git a/docs/images/app-connections/hashicorp-vault/vault-policies-page.png b/docs/images/app-connections/hashicorp-vault/vault-policies-page.png
new file mode 100644
index 000000000..3a84b86ee
Binary files /dev/null and b/docs/images/app-connections/hashicorp-vault/vault-policies-page.png differ
diff --git a/docs/images/app-connections/hashicorp-vault/vault-profile-token.png b/docs/images/app-connections/hashicorp-vault/vault-profile-token.png
new file mode 100644
index 000000000..aca3b7f0a
Binary files /dev/null and b/docs/images/app-connections/hashicorp-vault/vault-profile-token.png differ
diff --git a/docs/images/app-connections/hashicorp-vault/vault-shell-output.png b/docs/images/app-connections/hashicorp-vault/vault-shell-output.png
new file mode 100644
index 000000000..a5d654110
Binary files /dev/null and b/docs/images/app-connections/hashicorp-vault/vault-shell-output.png differ
diff --git a/docs/images/app-connections/hashicorp-vault/vault-shell.png b/docs/images/app-connections/hashicorp-vault/vault-shell.png
new file mode 100644
index 000000000..ca3ff0bc4
Binary files /dev/null and b/docs/images/app-connections/hashicorp-vault/vault-shell.png differ
diff --git a/docs/images/app-connections/hashicorp-vault/vault-token.png b/docs/images/app-connections/hashicorp-vault/vault-token.png
new file mode 100644
index 000000000..aca3b7f0a
Binary files /dev/null and b/docs/images/app-connections/hashicorp-vault/vault-token.png differ
diff --git a/docs/images/integrations/hashicorp-vault/integrations-hashicorp-vault-access-1.png b/docs/images/integrations/hashicorp-vault/integrations-hashicorp-vault-access-1.png
deleted file mode 100644
index 367386709..000000000
Binary files a/docs/images/integrations/hashicorp-vault/integrations-hashicorp-vault-access-1.png and /dev/null differ
diff --git a/docs/images/integrations/hashicorp-vault/integrations-hashicorp-vault-access-2.png b/docs/images/integrations/hashicorp-vault/integrations-hashicorp-vault-access-2.png
deleted file mode 100644
index 80de8df26..000000000
Binary files a/docs/images/integrations/hashicorp-vault/integrations-hashicorp-vault-access-2.png and /dev/null differ
diff --git a/docs/images/integrations/hashicorp-vault/integrations-hashicorp-vault-access-3.png b/docs/images/integrations/hashicorp-vault/integrations-hashicorp-vault-access-3.png
deleted file mode 100644
index d51142541..000000000
Binary files a/docs/images/integrations/hashicorp-vault/integrations-hashicorp-vault-access-3.png and /dev/null differ
diff --git a/docs/images/integrations/hashicorp-vault/integrations-hashicorp-vault-auth.png b/docs/images/integrations/hashicorp-vault/integrations-hashicorp-vault-auth.png
deleted file mode 100644
index b587777f9..000000000
Binary files a/docs/images/integrations/hashicorp-vault/integrations-hashicorp-vault-auth.png and /dev/null differ
diff --git a/docs/images/integrations/hashicorp-vault/integrations-hashicorp-vault-create.png b/docs/images/integrations/hashicorp-vault/integrations-hashicorp-vault-create.png
deleted file mode 100644
index 7fdef0d4a..000000000
Binary files a/docs/images/integrations/hashicorp-vault/integrations-hashicorp-vault-create.png and /dev/null differ
diff --git a/docs/images/integrations/hashicorp-vault/integrations-hashicorp-vault-engine-1.png b/docs/images/integrations/hashicorp-vault/integrations-hashicorp-vault-engine-1.png
deleted file mode 100644
index a65870b44..000000000
Binary files a/docs/images/integrations/hashicorp-vault/integrations-hashicorp-vault-engine-1.png and /dev/null differ
diff --git a/docs/images/integrations/hashicorp-vault/integrations-hashicorp-vault-engine-2.png b/docs/images/integrations/hashicorp-vault/integrations-hashicorp-vault-engine-2.png
deleted file mode 100644
index 34b03768f..000000000
Binary files a/docs/images/integrations/hashicorp-vault/integrations-hashicorp-vault-engine-2.png and /dev/null differ
diff --git a/docs/images/integrations/hashicorp-vault/integrations-hashicorp-vault-engine-3.png b/docs/images/integrations/hashicorp-vault/integrations-hashicorp-vault-engine-3.png
deleted file mode 100644
index 624fdc574..000000000
Binary files a/docs/images/integrations/hashicorp-vault/integrations-hashicorp-vault-engine-3.png and /dev/null differ
diff --git a/docs/images/integrations/hashicorp-vault/integrations-hashicorp-vault-policy-1.png b/docs/images/integrations/hashicorp-vault/integrations-hashicorp-vault-policy-1.png
deleted file mode 100644
index e2a77654a..000000000
Binary files a/docs/images/integrations/hashicorp-vault/integrations-hashicorp-vault-policy-1.png and /dev/null differ
diff --git a/docs/images/integrations/hashicorp-vault/integrations-hashicorp-vault-policy-2.png b/docs/images/integrations/hashicorp-vault/integrations-hashicorp-vault-policy-2.png
deleted file mode 100644
index 719659014..000000000
Binary files a/docs/images/integrations/hashicorp-vault/integrations-hashicorp-vault-policy-2.png and /dev/null differ
diff --git a/docs/images/integrations/hashicorp-vault/integrations-hashicorp-vault-policy-3.png b/docs/images/integrations/hashicorp-vault/integrations-hashicorp-vault-policy-3.png
deleted file mode 100644
index 76fe2de35..000000000
Binary files a/docs/images/integrations/hashicorp-vault/integrations-hashicorp-vault-policy-3.png and /dev/null differ
diff --git a/docs/images/integrations/hashicorp-vault/integrations-hashicorp-vault-shell.png b/docs/images/integrations/hashicorp-vault/integrations-hashicorp-vault-shell.png
deleted file mode 100644
index 7d63bde40..000000000
Binary files a/docs/images/integrations/hashicorp-vault/integrations-hashicorp-vault-shell.png and /dev/null differ
diff --git a/docs/images/integrations/hashicorp-vault/integrations-hashicorp-vault.png b/docs/images/integrations/hashicorp-vault/integrations-hashicorp-vault.png
deleted file mode 100644
index e556ffc6b..000000000
Binary files a/docs/images/integrations/hashicorp-vault/integrations-hashicorp-vault.png and /dev/null differ
diff --git a/docs/images/secret-syncs/hashicorp-vault/select-option.png b/docs/images/secret-syncs/hashicorp-vault/select-option.png
new file mode 100644
index 000000000..3ed6ce079
Binary files /dev/null and b/docs/images/secret-syncs/hashicorp-vault/select-option.png differ
diff --git a/docs/images/secret-syncs/hashicorp-vault/sync-created.png b/docs/images/secret-syncs/hashicorp-vault/sync-created.png
new file mode 100644
index 000000000..6fc827f2c
Binary files /dev/null and b/docs/images/secret-syncs/hashicorp-vault/sync-created.png differ
diff --git a/docs/images/secret-syncs/hashicorp-vault/sync-destination.png b/docs/images/secret-syncs/hashicorp-vault/sync-destination.png
new file mode 100644
index 000000000..42ec57273
Binary files /dev/null and b/docs/images/secret-syncs/hashicorp-vault/sync-destination.png differ
diff --git a/docs/images/secret-syncs/hashicorp-vault/sync-details.png b/docs/images/secret-syncs/hashicorp-vault/sync-details.png
new file mode 100644
index 000000000..61f045db0
Binary files /dev/null and b/docs/images/secret-syncs/hashicorp-vault/sync-details.png differ
diff --git a/docs/images/secret-syncs/hashicorp-vault/sync-options.png b/docs/images/secret-syncs/hashicorp-vault/sync-options.png
new file mode 100644
index 000000000..fd96843f0
Binary files /dev/null and b/docs/images/secret-syncs/hashicorp-vault/sync-options.png differ
diff --git a/docs/images/secret-syncs/hashicorp-vault/sync-review.png b/docs/images/secret-syncs/hashicorp-vault/sync-review.png
new file mode 100644
index 000000000..f95a12e0c
Binary files /dev/null and b/docs/images/secret-syncs/hashicorp-vault/sync-review.png differ
diff --git a/docs/images/secret-syncs/hashicorp-vault/sync-source.png b/docs/images/secret-syncs/hashicorp-vault/sync-source.png
new file mode 100644
index 000000000..b3440a8df
Binary files /dev/null and b/docs/images/secret-syncs/hashicorp-vault/sync-source.png differ
diff --git a/docs/integrations/app-connections/hashicorp-vault.mdx b/docs/integrations/app-connections/hashicorp-vault.mdx
new file mode 100644
index 000000000..c468876d8
--- /dev/null
+++ b/docs/integrations/app-connections/hashicorp-vault.mdx
@@ -0,0 +1,190 @@
+---
+title: "Hashicorp Vault Connection"
+description: "Learn how to configure a Hashicorp Vault Connection for Infisical."
+---
+
+
+ The Hashicorp Vault UI may vary based on whether you're self-hosting or using HCP, but the written directions should still be universal.
+
+
+Infisical supports two methods for connecting to Hashicorp Vault.
+
+
+
+
+
+ 
+
+
+ In the **Authentication Methods** tab, click on **Enable new method**.
+
+ 
+
+
+ 
+
+
+ You may change the name of the method, but we suggest keeping it as `approle`.
+
+ 
+
+
+ From the home page, navigate to **Policies**.
+
+ 
+
+
+ 
+
+
+ You may name your policy whatever you want, but remember the name as it will be used in future steps.
+
+
+ Ensure that you replace the policy path so that it matches with an existing KV Secrets Engine mount and path.
+
+
+ ```hcl
+ path "demo_mount/data/demo_path/demo_subpath" {
+ capabilities = [ "create", "read", "update" ]
+ }
+
+ path "sys/mounts" {
+ capabilities = ["read"]
+ }
+ ```
+
+ 
+
+
+ **Open Vault Shell**
+
+ 
+
+
+ If you used custom approle or policy names in previous steps, you'll need to customize the following commands.
+
+
+ **Create Infisical Role**
+
+ ```hcl
+ vault write auth/approle/role/infisical token_policies="infisical-policy" token_ttl=30s token_max_ttl=2m
+ ```
+
+ **Read RoleID**
+
+ ```hcl
+ vault read auth/approle/role/infisical/role-id
+ ```
+
+ **Generate New SecretID**
+
+ ```hcl
+ vault write -force auth/approle/role/infisical/secret-id
+ ```
+
+ Your shell output should look similar to the image below. Save the RoleID and SecretID values for later steps.
+
+ 
+
+
+
+
+ ## Get a Hashicorp Vault Access Token
+
+ Open your profile dropdown and click **Copy token**. This token will be used in later steps.
+
+ 
+
+
+
+## Getting Vault Instance URL
+
+
+
+ On self-hosted instances, simply copy your vault's base URL. (Ex. `https://vault.mycompany.com`)
+
+ Save this value for later steps.
+
+
+ On HCP instances, you may need to navigate to **Cluster Overview** to see your cluster URL. Save this value for later steps.
+
+ 
+
+
+
+## Setup Vault Connection in Infisical
+
+
+
+
+
+ In your Infisical dashboard, go to **Organization Settings** and select the **App Connections** tab.
+
+ 
+
+
+ Click the **+ Add Connection** button and select the **Hashicorp Vault Connection** option.
+
+ 
+
+
+ Configure your Vault Connection using the Instance URL and credentials from the steps above. **Depending on if you chose to authenticate with an Access Token or AppRole, you may need to input different information.**
+
+ 
+
+ - **Name**: The name of the connection being created. Must be slug-friendly.
+ - **Description**: An optional description to provide details about this connection.
+ - **Instance URL**: The URL of your Hashicorp Vault instance.
+ - **Access Token**: The Access Token generated in the steps above (if using Access Token authentication method).
+ - **Role ID**: The Role ID generated in the steps above (if using AppRole authentication method).
+ - **Secret ID**: The Secret ID generated in the steps above (if using AppRole authentication method).
+
+
+ Your Vault Connection is now available for use.
+ 
+
+
+
+
+ To create a Vault Connection, make an API request to the [Create Hashicorp Vault
+ Connection](/api-reference/endpoints/app-connections/hashicorp-vault/create) API endpoint.
+
+ ### Sample request
+
+ ```bash Request
+ curl --request POST \
+ --url https://app.infisical.com/api/v1/app-connections/hashicorp-vault \
+ --header 'Content-Type: application/json' \
+ --data '{
+ "name": "my-vault-connection",
+ "method": "app-role",
+ "credentials": {
+ "instanceUrl": "https://vault.mycompany.com",
+ "roleId": "4797c4fa-7794-71f0-c8b1-7c87759df5bf",
+ "secretId": "ad24df93-19c8-c865-9997-6b8513253d3a"
+ }
+ }'
+ ```
+
+ ### Sample response
+
+ ```bash Response
+ {
+ "appConnection": {
+ "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
+ "name": "my-vault-connection",
+ "version": 1,
+ "orgId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
+ "createdAt": "2025-04-01T05:31:56Z",
+ "updatedAt": "2025-04-01T05:31:56Z",
+ "app": "hashicorp-vault",
+ "method": "app-role",
+ "credentials": {
+ "instanceUrl": "https://vault.mycompany.com",
+ "roleId": "4797c4fa-7794-71f0-c8b1-7c87759df5bf"
+ }
+ }
+ }
+ ```
+
+
diff --git a/docs/integrations/cloud/hashicorp-vault.mdx b/docs/integrations/cloud/hashicorp-vault.mdx
index 51a66f3ff..df2542ce7 100644
--- a/docs/integrations/cloud/hashicorp-vault.mdx
+++ b/docs/integrations/cloud/hashicorp-vault.mdx
@@ -4,158 +4,5 @@ description: "How to sync secrets from Infisical to HashiCorp Vault"
---
- Infisical connects to Vault via the AppRole auth method.
-
- Currently, each Infisical project can only point and sync secrets to one Vault cluster / namespace
- but with unlimited integrations to different paths within it.
-
- This tutorial makes use of Vault's UI but, in principle, instructions can executed via
- Vault CLI or API call.
-
- Lastly, you should note that we provide a simple use-case and, in practice, you should adapt and extend it to your own Vault use-case and follow best practices, for instance when defining fine-grained ACL policies.
+ The Hashicorp Vault Native Integration will be deprecated in 2026. Please migrate to our new [Hashicorp Vault Sync](../secret-syncs/hashicorp-vault).
-
-Prerequisites:
-
-- Set up and add envars to [Infisical Cloud](https://app.infisical.com)
-- Have experience with [HashiCorp Vault](https://www.vaultproject.io/).
-
-## Navigate to your project's integrations tab
-
-
-
-## Prepare Vault
-
-This section mirrors the latter parts of the [Vault quickstart](https://developer.hashicorp.com/vault/tutorials/cloud/getting-started-intro) provided by HashiCorp and uses sample names/values for demonstration.
-
-To begin, navigate to the cluster / namespace that you want to sync secrets to in Vault; we'll use the default `admin` namespace (in practice, we recommend creating a namespace and not using the default `admin` namespace).
-
-### Enable KV Secrets Engine
-
-In Secrets, enable a KV Secrets Engine at a path for Infisical to sync secrets to; we'll use the path `kv`.
-
-
-
-
-
-### Enable the AppRole auth method
-
-In Access > Auth Methods, enable the AppRole auth method.
-
-
-
-
-
-### Create an ACL Policy
-
-Now in Policies, create a new ACL policy scoped to the path(s) you wish Infisical to be able to sync secrets to.
-
-We'll call the policy `test` and have it grant access to the `dev` path in the KV Secrets Engine where we will be syncing secrets to from Infisical.
-
-```console
-path "kv/data/dev" {
- capabilities = [ "create", "read", "update" ]
-}
-
-path "sys/namespaces/*" {
- capabilities = [ "create", "read", "update", "delete", "list" ]
-}
-```
-
-
- `kv` comes from the path of the KV Secrets Engine that we enabled and `dev` is the chosen path within it
- that we want to sync secrets to.
-
-
-
-
-
-
-### Create a role with the policy attached
-
-We now create a `infisical` role with the generated token's time-to-live (TTL) set to 1 hour and can be renewed for up to 4 hours from the time of its creation.
-
-1. Click the Vault CLI shell icon (`>_`) to open a command shell in the browser.
-
-
-
-2. Copy the command below.
-
-```console
-vault write auth/approle/role/infisical token_policies="test" token_ttl=1h token_max_ttl=4h
-```
-
-3. Paste the command into the command shell in the browser and press the enter button.
-
-### Generate a RoleID and SecretID
-
-Finally, we need to generate a **RoleID** and **SecretID** (like a username and password) that Infisical can use
-to authenticate with Vault.
-
-1. Click the Vault CLI shell icon (>_) again to open a command shell.
-
-2. Read the RoleID.
-
-```console
-vault read auth/approle/role/infisical/role-id
-```
-
-Example output:
-
-```console
-Key Value
-role_id b6ccdcca-183b-ce9c-6b98-b556b9a0edb9
-```
-
-3. Generate a new SecretID of the `infisical` role.
-
-```console
-vault write -force auth/approle/role/infisical/secret-id
-```
-
-Example output:
-
-
-```console
-Key Value
-secret_id 735a47cc-7a98-77cc-0128-12b1e96a4157
-secret_id_accessor 3ab305d1-1eab-df4b-4079-ef7135635c49
-...snip...
-```
-
-Great. We're now ready to connect Infisical to Vault!
-
-## Enter your Vault instance and authentication details
-
-Back in Infisical, press on the HashiCorp Vault tile and input your Vault instance and `infisical` role RoleID and SecretID.
-
-
-
-For additional details on each field:
-
-- Vault Cluster URL: The address of your cluster, either HCP or self-hosted.
-
-If using HCP, you can copy your Cluster URL in the Cluster Overview:
-
-
-
-- Vault Namespace: The Vault namespace you wish to connect to.
-- Vault RoleID: The RoleID previously created for the `infisical` role.
-- Vault SecretID: The SecretID previously created for the `infisical` role.
-
-## Start integration
-
-Select which Infisical environment secrets you want to sync to Vault.
-
-For additional details on each field:
-
-- Vault KV Secrets Engine Path: the path at which you enabled the intended KV Secrets Engine; in this demonstration, we used `kv`.
-- Vault Secret(s) Path: the path in the KV Secrets Engine that you wish to sync secrets to.
-
-Press create integration to start syncing secrets to Vault.
-
-
-
-
-
-
diff --git a/docs/integrations/secret-syncs/hashicorp-vault.mdx b/docs/integrations/secret-syncs/hashicorp-vault.mdx
new file mode 100644
index 000000000..d958085c5
--- /dev/null
+++ b/docs/integrations/secret-syncs/hashicorp-vault.mdx
@@ -0,0 +1,156 @@
+---
+title: "Hashicorp Vault Sync"
+description: "Learn how to configure a Hashicorp Vault Sync for Infisical."
+---
+
+**Prerequisites:**
+ - Set up and add secrets to [Infisical Cloud](https://app.infisical.com)
+ - Create a [Hashicorp Vault Connection](/integrations/app-connections/hashicorp-vault)
+
+
+
+
+
+ Navigate to **Project** > **Integrations** and select the **Secret Syncs** tab. Click on the **Add Sync** button.
+
+ 
+
+
+ 
+
+
+ Configure the **Source** from where secrets should be retrieved, then click **Next**.
+
+ 
+
+ - **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).
+
+
+
+ Configure the **Destination** to where secrets should be deployed.
+
+ 
+
+ - **Hashicorp Vault Connection**: The Vault Connection to authenticate with.
+ - **Secrets Engine Mount**: The Secrets Engine Mount to sync secrets to.
+ - **Path**: The Secrets Engine Mount path to sync secrets to.
+
+ After configuring these parameters, click the **Next** button to continue to the Sync Options step.
+
+
+ Configure the **Sync Options** to specify how secrets should be synced, then click **Next**.
+
+ 
+
+ - **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 Hashicorp Vault when keys conflict.
+ - **Import Secrets (Prioritize Hashicorp Vault)**: Imports secrets from the destination endpoint before syncing, prioritizing values from Hashicorp Vault 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.
+
+
+ Configure the **Details** of your Hashicorp Vault Sync, then click **Next**.
+
+ 
+
+ - **Name**: The name of your sync. Must be slug-friendly.
+ - **Description**: An optional description for your sync.
+
+
+ Review your Hashicorp Vault Sync configuration, then click **Create Sync**.
+
+ 
+
+
+ If enabled, your Hashicorp Vault Sync will begin syncing your secrets to the destination endpoint.
+
+ 
+
+
+
+
+ To create an **Hashicorp Vault Sync**, make an API request to the [Create Hashicorp Vault Sync](/api-reference/endpoints/secret-syncs/hashicorp-vault/create) API endpoint.
+
+ ### Sample request
+
+ ```bash Request
+ curl --request POST \
+ --url https://app.infisical.com/api/v1/secret-syncs/hashicorp-vault \
+ --header 'Content-Type: application/json' \
+ --data '{
+ "name": "my-vault-sync",
+ "projectId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
+ "description": "an example sync",
+ "connectionId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
+ "environment": "dev",
+ "secretPath": "/",
+ "isEnabled": true,
+ "syncOptions": {
+ "initialSyncBehavior": "overwrite-destination"
+ },
+ "destinationConfig": {
+ "mount": "secret",
+ "path": "dev/nested"
+ }
+ }'
+ ```
+
+ ### Sample response
+
+ ```bash Response
+ {
+ "secretSync": {
+ "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
+ "name": "my-vault-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": "hashicorp-vault",
+ "name": "my-vault-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": "/"
+ },
+ "destination": "hashicorp-vault",
+ "destinationConfig": {
+ "mount": "secret",
+ "path": "dev/nested"
+ }
+ }
+ }
+ ```
+
+
diff --git a/docs/mint.json b/docs/mint.json
index 58e480451..9f5b3098e 100644
--- a/docs/mint.json
+++ b/docs/mint.json
@@ -429,7 +429,8 @@
"integrations/app-connections/postgres",
"integrations/app-connections/terraform-cloud",
"integrations/app-connections/vercel",
- "integrations/app-connections/windmill"
+ "integrations/app-connections/windmill",
+ "integrations/app-connections/hashicorp-vault"
]
}
]
@@ -452,7 +453,8 @@
"integrations/secret-syncs/humanitec",
"integrations/secret-syncs/terraform-cloud",
"integrations/secret-syncs/vercel",
- "integrations/secret-syncs/windmill"
+ "integrations/secret-syncs/windmill",
+ "integrations/secret-syncs/hashicorp-vault"
]
}
]
@@ -559,9 +561,7 @@
},
{
"group": "Others",
- "pages": [
- "integrations/external/backstage"
- ]
+ "pages": ["integrations/external/backstage"]
},
{
"group": "",
@@ -1073,6 +1073,18 @@
"api-reference/endpoints/app-connections/windmill/update",
"api-reference/endpoints/app-connections/windmill/delete"
]
+ },
+ {
+ "group": "Hashicorp Vault",
+ "pages": [
+ "api-reference/endpoints/app-connections/hashicorp-vault/list",
+ "api-reference/endpoints/app-connections/hashicorp-vault/available",
+ "api-reference/endpoints/app-connections/hashicorp-vault/get-by-id",
+ "api-reference/endpoints/app-connections/hashicorp-vault/get-by-name",
+ "api-reference/endpoints/app-connections/hashicorp-vault/create",
+ "api-reference/endpoints/app-connections/hashicorp-vault/update",
+ "api-reference/endpoints/app-connections/hashicorp-vault/delete"
+ ]
}
]
},
@@ -1243,6 +1255,20 @@
"api-reference/endpoints/secret-syncs/windmill/import-secrets",
"api-reference/endpoints/secret-syncs/windmill/remove-secrets"
]
+ },
+ {
+ "group": "Hashicorp Vault",
+ "pages": [
+ "api-reference/endpoints/secret-syncs/hashicorp-vault/list",
+ "api-reference/endpoints/secret-syncs/hashicorp-vault/get-by-id",
+ "api-reference/endpoints/secret-syncs/hashicorp-vault/get-by-name",
+ "api-reference/endpoints/secret-syncs/hashicorp-vault/create",
+ "api-reference/endpoints/secret-syncs/hashicorp-vault/update",
+ "api-reference/endpoints/secret-syncs/hashicorp-vault/delete",
+ "api-reference/endpoints/secret-syncs/hashicorp-vault/sync-secrets",
+ "api-reference/endpoints/secret-syncs/hashicorp-vault/import-secrets",
+ "api-reference/endpoints/secret-syncs/hashicorp-vault/remove-secrets"
+ ]
}
]
},