diff --git a/docs/api-reference/overview/examples/e2ee-disabled.mdx b/docs/api-reference/overview/examples/e2ee-disabled.mdx
deleted file mode 100644
index 1a9e57552..000000000
--- a/docs/api-reference/overview/examples/e2ee-disabled.mdx
+++ /dev/null
@@ -1,180 +0,0 @@
----
-title: "E2EE Disabled"
----
-
-Using Infisical's API to read/write secrets with E2EE disabled allows you to create, update, and retrieve secrets
-in plaintext. Effectively, this means each such secret operation only requires 1 HTTP call.
-
-
-
- Retrieve all secrets for an Infisical project and environment.
-
-
- ```bash
- curl --location --request GET 'https://app.infisical.com/api/v3/secrets/raw?environment=environment&workspaceId=workspaceId' \
- --header 'Authorization: Bearer serviceToken'
-
- ```
-
-
- ####
-
- When using a [service token](../../../documentation/platform/token) with access to a single environment and path, you don't need to provide request parameters because the server will automatically scope the request to the defined environment/secrets path of the service token used.
- For all other cases, request parameters are required.
-
- ####
-
- The ID of the workspace
-
-
- The environment slug
-
-
- Path to secrets in workspace
-
-
-
- Create a secret in Infisical.
-
-
-
- ```bash
- curl --location --request POST 'https://app.infisical.com/api/v3/secrets/raw/secretName' \
- --header 'Authorization: Bearer serviceToken' \
- --header 'Content-Type: application/json' \
- --data-raw '{
- "workspaceId": "workspaceId",
- "environment": "environment",
- "type": "shared",
- "secretValue": "secretValue",
- "secretPath": "/"
- }'
- ```
-
-
-
-
- Name of secret to create
-
-
- The ID of the workspace
-
-
- The environment slug
-
-
- Value of secret
-
-
- Comment of secret
-
-
- Path to secret in workspace
-
-
- The type of the secret. Valid options are “shared” or “personal”
-
-
-
- Retrieve a secret from Infisical.
-
-
-
- ```bash
- curl --location --request GET 'https://app.infisical.com/api/v3/secrets/raw/secretName?workspaceId=workspaceId&environment=environment' \
- --header 'Authorization: Bearer serviceToken'
- ```
-
-
-
-
- Name of secret to retrieve
-
-
- The ID of the workspace
-
-
- The environment slug
-
-
- Path to secrets in workspace
-
-
- The type of the secret. Valid options are “shared” or “personal”
-
-
-
- Update an existing secret in Infisical.
-
-
-
- ```bash
- curl --location --request PATCH 'https://app.infisical.com/api/v3/secrets/raw/secretName' \
- --header 'Authorization: Bearer serviceToken' \
- --header 'Content-Type: application/json' \
- --data-raw '{
- "workspaceId": "workspaceId",
- "environment": "environment",
- "type": "shared",
- "secretValue": "secretValue",
- "secretPath": "/"
- }'
- ```
-
-
-
-
- Name of secret to update
-
-
- The ID of the workspace
-
-
- The environment slug
-
-
- Value of secret
-
-
- Path to secret in workspace.
-
-
- The type of the secret. Valid options are “shared” or “personal”
-
-
-
- Delete a secret in Infisical.
-
-
-
- ```bash
- curl --location --request DELETE 'https://app.infisical.com/api/v3/secrets/raw/secretName' \
- --header 'Authorization: Bearer serviceToken' \
- --header 'Content-Type: application/json' \
- --data-raw '{
- "workspaceId": "workspaceId",
- "environment": "environment",
- "type": "shared",
- "secretPath": "/"
- }'
- ```
-
-
-
-
- Name of secret to update
-
-
- The ID of the workspace
-
-
- The environment slug
-
-
- Path to secret in workspace.
-
-
- The type of the secret. Valid options are “shared” or “personal”
-
-
-
\ No newline at end of file
diff --git a/docs/api-reference/overview/examples/e2ee-enabled.mdx b/docs/api-reference/overview/examples/e2ee-enabled.mdx
deleted file mode 100644
index 1de9c2290..000000000
--- a/docs/api-reference/overview/examples/e2ee-enabled.mdx
+++ /dev/null
@@ -1,862 +0,0 @@
----
-title: "E2EE Enabled"
----
-
-
- E2EE enabled mode only works with [Service Tokens](/documentation/platform/token) and cannot be used with [Identities](/documentation/platform/identities/overview).
-
-
-Using Infisical's API to read/write secrets with E2EE enabled allows you to create, update, and retrieve secrets
-but requires you to perform client-side encryption/decryption operations. For this reason, we recommend using one of the available
-SDKs instead.
-
-
-
-
-
- Retrieve all secrets for an Infisical project and environment.
-```js
-const crypto = require('crypto');
-const axios = require('axios');
-
-const BASE_URL = 'https://app.infisical.com';
-const ALGORITHM = 'aes-256-gcm';
-
-const decrypt = ({ ciphertext, iv, tag, secret}) => {
- const decipher = crypto.createDecipheriv(
- ALGORITHM,
- secret,
- Buffer.from(iv, 'base64')
- );
- decipher.setAuthTag(Buffer.from(tag, 'base64'));
-
- let cleartext = decipher.update(ciphertext, 'base64', 'utf8');
- cleartext += decipher.final('utf8');
-
- return cleartext;
-}
-
-const getSecrets = async () => {
- const serviceToken = 'your_service_token';
- const serviceTokenSecret = serviceToken.substring(serviceToken.lastIndexOf('.') + 1);
-
- // 1. Get your Infisical Token data
- const { data: serviceTokenData } = await axios.get(
- `${BASE_URL}/api/v2/service-token`,
- {
- headers: {
- Authorization: `Bearer ${serviceToken}`
- }
- }
- );
-
- // 2. Get secrets for your project and environment
- const { data } = await axios.get(
- `${BASE_URL}/api/v3/secrets?${new URLSearchParams({
- environment: serviceTokenData.environment,
- workspaceId: serviceTokenData.workspace
- })}`,
- {
- headers: {
- Authorization: `Bearer ${serviceToken}`
- }
- }
- );
-
- const encryptedSecrets = data.secrets;
-
- // 3. Decrypt the (encrypted) project key with the key from your Infisical Token
- const projectKey = decrypt({
- ciphertext: serviceTokenData.encryptedKey,
- iv: serviceTokenData.iv,
- tag: serviceTokenData.tag,
- secret: serviceTokenSecret
- });
-
- // 4. Decrypt the (encrypted) secrets
- const secrets = encryptedSecrets.map((secret) => {
- const secretKey = decrypt({
- ciphertext: secret.secretKeyCiphertext,
- iv: secret.secretKeyIV,
- tag: secret.secretKeyTag,
- secret: projectKey
- });
-
- const secretValue = decrypt({
- ciphertext: secret.secretValueCiphertext,
- iv: secret.secretValueIV,
- tag: secret.secretValueTag,
- secret: projectKey
- });
-
- return ({
- secretKey,
- secretValue
- });
- });
-
- console.log('secrets: ', secrets);
-}
-
-getSecrets();
-
-```
-
-
-
-```Python
-import requests
-import base64
-from Cryptodome.Cipher import AES
-
-
-BASE_URL = "http://app.infisical.com"
-
-
-def decrypt(ciphertext, iv, tag, secret):
- secret = bytes(secret, "utf-8")
- iv = base64.standard_b64decode(iv)
- tag = base64.standard_b64decode(tag)
- ciphertext = base64.standard_b64decode(ciphertext)
-
- cipher = AES.new(secret, AES.MODE_GCM, iv)
- cipher.update(tag)
- cleartext = cipher.decrypt(ciphertext).decode("utf-8")
- return cleartext
-
-
-def get_secrets():
- service_token = "your_service_token"
- service_token_secret = service_token[service_token.rindex(".") + 1 :]
-
- # 1. Get your Infisical Token data
- service_token_data = requests.get(
- f"{BASE_URL}/api/v2/service-token",
- headers={"Authorization": f"Bearer {service_token}"},
- ).json()
-
- # 2. Get secrets for your project and environment
- data = requests.get(
- f"{BASE_URL}/api/v3/secrets",
- params={
- "environment": service_token_data["environment"],
- "workspaceId": service_token_data["workspace"],
- },
- headers={"Authorization": f"Bearer {service_token}"},
- ).json()
-
- encrypted_secrets = data["secrets"]
-
- # 3. Decrypt the (encrypted) project key with the key from your Infisical Token
- project_key = decrypt(
- ciphertext=service_token_data["encryptedKey"],
- iv=service_token_data["iv"],
- tag=service_token_data["tag"],
- secret=service_token_secret,
- )
-
- # 4. Decrypt the (encrypted) secrets
- secrets = []
- for secret in encrypted_secrets:
- secret_key = decrypt(
- ciphertext=secret["secretKeyCiphertext"],
- iv=secret["secretKeyIV"],
- tag=secret["secretKeyTag"],
- secret=project_key,
- )
-
- secret_value = decrypt(
- ciphertext=secret["secretValueCiphertext"],
- iv=secret["secretValueIV"],
- tag=secret["secretValueTag"],
- secret=project_key,
- )
-
- secrets.append(
- {
- "secret_key": secret_key,
- "secret_value": secret_value,
- }
- )
-
- print("secrets:", secrets)
-
-
-get_secrets()
-
-```
-
-
-
-
-
-
-Create a secret in Infisical.
-```js
-const crypto = require('crypto');
-const axios = require('axios');
-const nacl = require('tweetnacl');
-
-const BASE_URL = 'https://app.infisical.com';
-const ALGORITHM = 'aes-256-gcm';
-const BLOCK_SIZE_BYTES = 16;
-
-const encrypt = ({ text, secret }) => {
- const iv = crypto.randomBytes(BLOCK_SIZE_BYTES);
- const cipher = crypto.createCipheriv(ALGORITHM, secret, iv);
-
- let ciphertext = cipher.update(text, 'utf8', 'base64');
- ciphertext += cipher.final('base64');
- return {
- ciphertext,
- iv: iv.toString('base64'),
- tag: cipher.getAuthTag().toString('base64')
- };
-}
-
-const decrypt = ({ ciphertext, iv, tag, secret}) => {
- const decipher = crypto.createDecipheriv(
- ALGORITHM,
- secret,
- Buffer.from(iv, 'base64')
- );
- decipher.setAuthTag(Buffer.from(tag, 'base64'));
-
- let cleartext = decipher.update(ciphertext, 'base64', 'utf8');
- cleartext += decipher.final('utf8');
-
- return cleartext;
-}
-
-const createSecrets = async () => {
- const serviceToken = '';
- const serviceTokenSecret = serviceToken.substring(serviceToken.lastIndexOf('.') + 1);
-
- const secretType = 'shared'; // 'shared' or 'personal'
- const secretKey = 'some_key';
- const secretValue = 'some_value';
- const secretComment = 'some_comment';
-
- // 1. Get your Infisical Token data
- const { data: serviceTokenData } = await axios.get(
- `${BASE_URL}/api/v2/service-token`,
- {
- headers: {
- Authorization: `Bearer ${serviceToken}`
- }
- }
- );
-
- // 2. Decrypt the (encrypted) project key with the key from your Infisical Token
- const projectKey = decrypt({
- ciphertext: serviceTokenData.encryptedKey,
- iv: serviceTokenData.iv,
- tag: serviceTokenData.tag,
- secret: serviceTokenSecret
- });
-
- // 3. Encrypt your secret with the project key
- const {
- ciphertext: secretKeyCiphertext,
- iv: secretKeyIV,
- tag: secretKeyTag
- } = encrypt({
- text: secretKey,
- secret: projectKey
- });
-
- const {
- ciphertext: secretValueCiphertext,
- iv: secretValueIV,
- tag: secretValueTag
- } = encrypt({
- text: secretValue,
- secret: projectKey
- });
-
- const {
- ciphertext: secretCommentCiphertext,
- iv: secretCommentIV,
- tag: secretCommentTag
- } = encrypt({
- text: secretComment,
- secret: projectKey
- });
-
- // 4. Send (encrypted) secret to Infisical
- await axios.post(
- `${BASE_URL}/api/v3/secrets/${secretKey}`,
- {
- workspaceId: serviceTokenData.workspace,
- environment: serviceTokenData.environment,
- type: secretType,
- secretKeyCiphertext,
- secretKeyIV,
- secretKeyTag,
- secretValueCiphertext,
- secretValueIV,
- secretValueTag,
- secretCommentCiphertext,
- secretCommentIV,
- secretCommentTag
- },
- {
- headers: {
- Authorization: `Bearer ${serviceToken}`
- }
- }
- );
-}
-
-createSecrets();
-```
-
-
-
-```Python
-import base64
-import requests
-from Cryptodome.Cipher import AES
-from Cryptodome.Random import get_random_bytes
-
-
-BASE_URL = "https://app.infisical.com"
-BLOCK_SIZE_BYTES = 16
-
-
-def encrypt(text, secret):
- iv = get_random_bytes(BLOCK_SIZE_BYTES)
- secret = bytes(secret, "utf-8")
- cipher = AES.new(secret, AES.MODE_GCM, iv)
- ciphertext, tag = cipher.encrypt_and_digest(text.encode("utf-8"))
- return {
- "ciphertext": base64.standard_b64encode(ciphertext).decode("utf-8"),
- "tag": base64.standard_b64encode(tag).decode("utf-8"),
- "iv": base64.standard_b64encode(iv).decode("utf-8"),
- }
-
-
-def decrypt(ciphertext, iv, tag, secret):
- secret = bytes(secret, "utf-8")
- iv = base64.standard_b64decode(iv)
- tag = base64.standard_b64decode(tag)
- ciphertext = base64.standard_b64decode(ciphertext)
-
- cipher = AES.new(secret, AES.MODE_GCM, iv)
- cipher.update(tag)
- cleartext = cipher.decrypt(ciphertext).decode("utf-8")
- return cleartext
-
-
-def create_secrets():
- service_token = "your_service_token"
- service_token_secret = service_token[service_token.rindex(".") + 1 :]
-
- secret_type = "shared" # "shared or "personal"
- secret_key = "some_key"
- secret_value = "some_value"
- secret_comment = "some_comment"
-
- # 1. Get your Infisical Token data
- service_token_data = requests.get(
- f"{BASE_URL}/api/v2/service-token",
- headers={"Authorization": f"Bearer {service_token}"},
- ).json()
-
- # 2. Decrypt the (encrypted) project key with the key from your Infisical Token
- project_key = decrypt(
- ciphertext=service_token_data["encryptedKey"],
- iv=service_token_data["iv"],
- tag=service_token_data["tag"],
- secret=service_token_secret,
- )
-
- # 3. Encrypt your secret with the project key
- encrypted_key_data = encrypt(text=secret_key, secret=project_key)
- encrypted_value_data = encrypt(text=secret_value, secret=project_key)
- encrypted_comment_data = encrypt(text=secret_comment, secret=project_key)
-
- # 4. Send (encrypted) secret to Infisical
- requests.post(
- f"{BASE_URL}/api/v3/secrets/{secret_key}",
- json={
- "workspaceId": service_token_data["workspace"],
- "environment": service_token_data["environment"],
- "type": secret_type,
- "secretKeyCiphertext": encrypted_key_data["ciphertext"],
- "secretKeyIV": encrypted_key_data["iv"],
- "secretKeyTag": encrypted_key_data["tag"],
- "secretValueCiphertext": encrypted_value_data["ciphertext"],
- "secretValueIV": encrypted_value_data["iv"],
- "secretValueTag": encrypted_value_data["tag"],
- "secretCommentCiphertext": encrypted_comment_data["ciphertext"],
- "secretCommentIV": encrypted_comment_data["iv"],
- "secretCommentTag": encrypted_comment_data["tag"]
- },
- headers={"Authorization": f"Bearer {service_token}"},
- )
-
-
-create_secrets()
-
-```
-
-
-
-
-
-
- Retrieve a secret from Infisical.
-```js
-const crypto = require('crypto');
-const axios = require('axios');
-
-const BASE_URL = 'https://app.infisical.com';
-const ALGORITHM = 'aes-256-gcm';
-
-const decrypt = ({ ciphertext, iv, tag, secret}) => {
- const decipher = crypto.createDecipheriv(
- ALGORITHM,
- secret,
- Buffer.from(iv, 'base64')
- );
- decipher.setAuthTag(Buffer.from(tag, 'base64'));
-
- let cleartext = decipher.update(ciphertext, 'base64', 'utf8');
- cleartext += decipher.final('utf8');
-
- return cleartext;
-}
-
-const getSecret = async () => {
- const serviceToken = 'your_service_token';
- const serviceTokenSecret = serviceToken.substring(serviceToken.lastIndexOf('.') + 1);
-
- const secretType = 'shared' // 'shared' or 'personal'
- const secretKey = 'some_key';
-
- // 1. Get your Infisical Token data
- const { data: serviceTokenData } = await axios.get(
- `${BASE_URL}/api/v2/service-token`,
- {
- headers: {
- Authorization: `Bearer ${serviceToken}`
- }
- }
- );
-
- // 2. Get the secret from your project and environment
- const { data } = await axios.get(
- `${BASE_URL}/api/v3/secrets/${secretKey}?${new URLSearchParams({
- environment: serviceTokenData.environment,
- workspaceId: serviceTokenData.workspace,
- type: secretType // optional, defaults to 'shared'
- })}`,
- {
- headers: {
- Authorization: `Bearer ${serviceToken}`
- }
- }
- );
-
- const encryptedSecret = data.secret;
-
- // 3. Decrypt the (encrypted) project key with the key from your Infisical Token
- const projectKey = decrypt({
- ciphertext: serviceTokenData.encryptedKey,
- iv: serviceTokenData.iv,
- tag: serviceTokenData.tag,
- secret: serviceTokenSecret
- });
-
- // 4. Decrypt the (encrypted) secret value
-
- const secretValue = decrypt({
- ciphertext: encryptedSecret.secretValueCiphertext,
- iv: encryptedSecret.secretValueIV,
- tag: encryptedSecret.secretValueTag,
- secret: projectKey
- });
-
- console.log('secret: ', ({
- secretKey,
- secretValue
- }));
-}
-
-getSecret();
-
-```
-
-
-
-```Python
-import requests
-import base64
-from Cryptodome.Cipher import AES
-
-
-BASE_URL = "http://app.infisical.com"
-
-
-def decrypt(ciphertext, iv, tag, secret):
- secret = bytes(secret, "utf-8")
- iv = base64.standard_b64decode(iv)
- tag = base64.standard_b64decode(tag)
- ciphertext = base64.standard_b64decode(ciphertext)
-
- cipher = AES.new(secret, AES.MODE_GCM, iv)
- cipher.update(tag)
- cleartext = cipher.decrypt(ciphertext).decode("utf-8")
- return cleartext
-
-
-def get_secret():
- service_token = "your_service_token"
- service_token_secret = service_token[service_token.rindex(".") + 1 :]
-
- secret_type = "shared" # "shared" or "personal"
- secret_key = "some_key"
-
- # 1. Get your Infisical Token data
- service_token_data = requests.get(
- f"{BASE_URL}/api/v2/service-token",
- headers={"Authorization": f"Bearer {service_token}"},
- ).json()
-
- # 2. Get secret from your project and environment
- data = requests.get(
- f"{BASE_URL}/api/v3/secrets/{secret_key}",
- params={
- "environment": service_token_data["environment"],
- "workspaceId": service_token_data["workspace"],
- "type": secret_type # optional, defaults to "shared"
- },
- headers={"Authorization": f"Bearer {service_token}"},
- ).json()
-
- encrypted_secret = data["secret"]
-
- # 3. Decrypt the (encrypted) project key with the key from your Infisical Token
- project_key = decrypt(
- ciphertext=service_token_data["encryptedKey"],
- iv=service_token_data["iv"],
- tag=service_token_data["tag"],
- secret=service_token_secret,
- )
-
- # 4. Decrypt the (encrypted) secret value
- secret_value = decrypt(
- ciphertext=encrypted_secret["secretValueCiphertext"],
- iv=encrypted_secret["secretValueIV"],
- tag=encrypted_secret["secretValueTag"],
- secret=project_key,
- )
-
- print("secret: ", {
- "secret_key": secret_key,
- "secret_value": secret_value
- })
-
-
-get_secret()
-
-```
-
-
-
-
-
-
-Update an existing secret in Infisical.
-```js
-const crypto = require('crypto');
-const axios = require('axios');
-
-const BASE_URL = 'https://app.infisical.com';
-const ALGORITHM = 'aes-256-gcm';
-const BLOCK_SIZE_BYTES = 16;
-
-const encrypt = ({ text, secret }) => {
- const iv = crypto.randomBytes(BLOCK_SIZE_BYTES);
- const cipher = crypto.createCipheriv(ALGORITHM, secret, iv);
-
- let ciphertext = cipher.update(text, 'utf8', 'base64');
- ciphertext += cipher.final('base64');
- return {
- ciphertext,
- iv: iv.toString('base64'),
- tag: cipher.getAuthTag().toString('base64')
- };
-}
-
-const decrypt = ({ ciphertext, iv, tag, secret}) => {
- const decipher = crypto.createDecipheriv(
- ALGORITHM,
- secret,
- Buffer.from(iv, 'base64')
- );
- decipher.setAuthTag(Buffer.from(tag, 'base64'));
-
- let cleartext = decipher.update(ciphertext, 'base64', 'utf8');
- cleartext += decipher.final('utf8');
-
- return cleartext;
-}
-
-const updateSecrets = async () => {
- const serviceToken = 'your_service_token';
- const serviceTokenSecret = serviceToken.substring(serviceToken.lastIndexOf('.') + 1);
-
- const secretType = 'shared' // 'shared' or 'personal'
- const secretKey = 'some_key';
- const secretValue = 'updated_value';
- const secretComment = 'updated_comment';
-
- // 1. Get your Infisical Token data
- const { data: serviceTokenData } = await axios.get(
- `${BASE_URL}/api/v2/service-token`,
- {
- headers: {
- Authorization: `Bearer ${serviceToken}`
- }
- }
- );
-
- // 2. Decrypt the (encrypted) project key with the key from your Infisical Token
- const projectKey = decrypt({
- ciphertext: serviceTokenData.encryptedKey,
- iv: serviceTokenData.iv,
- tag: serviceTokenData.tag,
- secret: serviceTokenSecret
- });
-
- // 3. Encrypt your updated secret with the project key
- const {
- ciphertext: secretKeyCiphertext,
- iv: secretKeyIV,
- tag: secretKeyTag
- } = encrypt({
- text: secretKey,
- secret: projectKey
- });
-
- const {
- ciphertext: secretValueCiphertext,
- iv: secretValueIV,
- tag: secretValueTag
- } = encrypt({
- text: secretValue,
- secret: projectKey
- });
-
- const {
- ciphertext: secretCommentCiphertext,
- iv: secretCommentIV,
- tag: secretCommentTag
- } = encrypt({
- text: secretComment,
- secret: projectKey
- });
-
- // 4. Send (encrypted) updated secret to Infisical
- await axios.patch(
- `${BASE_URL}/api/v3/secrets/${secretKey}`,
- {
- workspaceId: serviceTokenData.workspace,
- environment: serviceTokenData.environment,
- type: secretType,
- secretValueCiphertext,
- secretValueIV,
- secretValueTag,
- secretCommentCiphertext,
- secretCommentIV,
- secretCommentTag
- },
- {
- headers: {
- Authorization: `Bearer ${serviceToken}`
- }
- }
- );
-}
-
-updateSecrets();
-```
-
-
-
-```Python
-import base64
-import requests
-from Cryptodome.Cipher import AES
-from Cryptodome.Random import get_random_bytes
-
-
-BASE_URL = "https://app.infisical.com"
-BLOCK_SIZE_BYTES = 16
-
-
-def encrypt(text, secret):
- iv = get_random_bytes(BLOCK_SIZE_BYTES)
- secret = bytes(secret, "utf-8")
- cipher = AES.new(secret, AES.MODE_GCM, iv)
- ciphertext, tag = cipher.encrypt_and_digest(text.encode("utf-8"))
- return {
- "ciphertext": base64.standard_b64encode(ciphertext).decode("utf-8"),
- "tag": base64.standard_b64encode(tag).decode("utf-8"),
- "iv": base64.standard_b64encode(iv).decode("utf-8"),
- }
-
-
-def decrypt(ciphertext, iv, tag, secret):
- secret = bytes(secret, "utf-8")
- iv = base64.standard_b64decode(iv)
- tag = base64.standard_b64decode(tag)
- ciphertext = base64.standard_b64decode(ciphertext)
-
- cipher = AES.new(secret, AES.MODE_GCM, iv)
- cipher.update(tag)
- cleartext = cipher.decrypt(ciphertext).decode("utf-8")
- return cleartext
-
-
-def update_secret():
- service_token = "your_service_token"
- service_token_secret = service_token[service_token.rindex(".") + 1 :]
-
- secret_type = "shared" # "shared" or "personal"
- secret_key = "some_key"
- secret_value = "updated_value"
- secret_comment = "updated_comment"
-
- # 1. Get your Infisical Token data
- service_token_data = requests.get(
- f"{BASE_URL}/api/v2/service-token",
- headers={"Authorization": f"Bearer {service_token}"},
- ).json()
-
- # 2. Decrypt the (encrypted) project key with the key from your Infisical Token
- project_key = decrypt(
- ciphertext=service_token_data["encryptedKey"],
- iv=service_token_data["iv"],
- tag=service_token_data["tag"],
- secret=service_token_secret,
- )
-
- # 3. Encrypt your updated secret with the project key
- encrypted_key_data = encrypt(text=secret_key, secret=project_key)
- encrypted_value_data = encrypt(text=secret_value, secret=project_key)
- encrypted_comment_data = encrypt(text=secret_comment, secret=project_key)
-
- # 4. Send (encrypted) updated secret to Infisical
- requests.patch(
- f"{BASE_URL}/api/v3/secrets/{secret_key}",
- json={
- "workspaceId": service_token_data["workspace"],
- "environment": service_token_data["environment"],
- "type": secret_type,
- "secretKeyCiphertext": encrypted_key_data["ciphertext"],
- "secretKeyIV": encrypted_key_data["iv"],
- "secretKeyTag": encrypted_key_data["tag"],
- "secretValueCiphertext": encrypted_value_data["ciphertext"],
- "secretValueIV": encrypted_value_data["iv"],
- "secretValueTag": encrypted_value_data["tag"],
- "secretCommentCiphertext": encrypted_comment_data["ciphertext"],
- "secretCommentIV": encrypted_comment_data["iv"],
- "secretCommentTag": encrypted_comment_data["tag"]
- },
- headers={"Authorization": f"Bearer {service_token}"},
- )
-
-
-update_secret()
-
-```
-
-
-
-
-
-
- Delete a secret in Infisical.
-```js
-const axios = require('axios');
-const BASE_URL = 'https://app.infisical.com';
-
-const deleteSecrets = async () => {
- const serviceToken = 'your_service_token';
- const secretType = 'shared' // 'shared' or 'personal'
- const secretKey = 'some_key'
-
- // 1. Get your Infisical Token data
- const { data: serviceTokenData } = await axios.get(
- `${BASE_URL}/api/v2/service-token`,
- {
- headers: {
- Authorization: `Bearer ${serviceToken}`
- }
- }
- );
-
- // 2. Delete secret from Infisical
- await axios.delete(
- `${BASE_URL}/api/v3/secrets/${secretKey}`,
- {
- workspaceId: serviceTokenData.workspace,
- environment: serviceTokenData.environment,
- type: secretType
- },
- {
- headers: {
- Authorization: `Bearer ${serviceToken}`
- },
- }
- );
-};
-
-deleteSecrets();
-```
-
-
-
-```Python
-import requests
-
-BASE_URL = "https://app.infisical.com"
-
-
-def delete_secrets():
- service_token = ""
- secret_type = "shared" # "shared" or "personal"
- secret_key = "some_key"
-
- # 1. Get your Infisical Token data
- service_token_data = requests.get(
- f"{BASE_URL}/api/v2/service-token",
- headers={"Authorization": f"Bearer {service_token}"},
- ).json()
-
- # 2. Delete secret from Infisical
- requests.delete(
- f"{BASE_URL}/api/v2/secrets/{secret_key}",
- json={
- "workspaceId": service_token_data["workspace"],
- "environment": service_token_data["environment"],
- "type": secret_type
- },
- headers={"Authorization": f"Bearer {service_token}"},
- )
-
-
-delete_secrets()
-
-```
-
-
-
- If using an `API_KEY` to authenticate with the Infisical API, then you should include it in the `X_API_KEY` header.
-
-
-
-
\ No newline at end of file