diff --git a/docs/documentation/platform/dynamic-secrets/totp.mdx b/docs/documentation/platform/dynamic-secrets/totp.mdx new file mode 100644 index 000000000..975cb833f --- /dev/null +++ b/docs/documentation/platform/dynamic-secrets/totp.mdx @@ -0,0 +1,79 @@ +--- +title: "TOTP" +description: "Learn how to dynamically generate time-based one-time passwords." +--- + +The Infisical TOTP dynamic secret allows you to generate time-based one-time passwords on demand. + +## Prerequisite + +- Infisical requires the OTP url from the TOTP provider. + +## Set up Dynamic Secrets with TOTP + + + + Open the Secret Overview dashboard and select the environment in which you would like to add a dynamic secret. + + + ![Add Dynamic Secret Button](/images/platform/dynamic-secrets/add-dynamic-secret-button.png) + + + ![Dynamic Secret Modal](/images/platform/dynamic-secrets/dynamic-secret-modal-totp.png) + + + + Name by which you want the secret to be referenced + + + + Default time-to-live for a generated secret (it is possible to modify this value when a secret is generate) + + + + Maximum time-to-live for a generated secret + + + + OTP url from the TOTP provider + + + ![Dynamic Secret Setup Modal](../../../images/platform/dynamic-secrets/dynamic-secret-setup-modal-totp.png) + + + + After submitting the form, you will see a dynamic secret created in the dashboard. + + + + Once you've successfully configured the dynamic secret, you're ready to generate on-demand TOTPs. + To do this, simply click on the 'Generate' button which appears when hovering over the dynamic secret item. + Alternatively, you can initiate the creation of a new lease by selecting 'New Lease' from the dynamic secret lease list section. + + ![Dynamic Secret](/images/platform/dynamic-secrets/dynamic-secret-generate.png) + ![Dynamic Secret](/images/platform/dynamic-secrets/dynamic-secret-lease-empty.png) + + + Once you click the `Generate` or the `New Lease` button, a new secret lease will be generated and the TOTP will be shown to you. + + ![Provision Lease](/images/platform/dynamic-secrets/totp-lease-value.png) + + + + +## Audit or Revoke Leases + +Once you have created one or more leases, you will be able to access them by clicking on the respective dynamic secret item on the dashboard. +This will allow you see the lease details and delete the lease ahead of its expiration time. + +![Provision Lease](/images/platform/dynamic-secrets/lease-data.png) + +## Renew Leases + +To extend the life of the generated dynamic secret lease past its initial time to live, simply click on the **Renew** as illustrated below. +![Provision Lease](/images/platform/dynamic-secrets/dynamic-secret-lease-renew.png) + + + Lease renewals cannot exceed the maximum TTL set when configuring the dynamic + secret. + diff --git a/docs/images/platform/dynamic-secrets/dynamic-secret-modal-totp.png b/docs/images/platform/dynamic-secrets/dynamic-secret-modal-totp.png new file mode 100644 index 000000000..53326ebe2 Binary files /dev/null and b/docs/images/platform/dynamic-secrets/dynamic-secret-modal-totp.png differ diff --git a/docs/images/platform/dynamic-secrets/dynamic-secret-setup-modal-totp.png b/docs/images/platform/dynamic-secrets/dynamic-secret-setup-modal-totp.png new file mode 100644 index 000000000..babfb6ba0 Binary files /dev/null and b/docs/images/platform/dynamic-secrets/dynamic-secret-setup-modal-totp.png differ diff --git a/docs/images/platform/dynamic-secrets/totp-lease-value.png b/docs/images/platform/dynamic-secrets/totp-lease-value.png new file mode 100644 index 000000000..af2ffe8e1 Binary files /dev/null and b/docs/images/platform/dynamic-secrets/totp-lease-value.png differ diff --git a/docs/mint.json b/docs/mint.json index f070ae88a..e4e487915 100644 --- a/docs/mint.json +++ b/docs/mint.json @@ -189,7 +189,8 @@ "documentation/platform/dynamic-secrets/azure-entra-id", "documentation/platform/dynamic-secrets/ldap", "documentation/platform/dynamic-secrets/sap-hana", - "documentation/platform/dynamic-secrets/snowflake" + "documentation/platform/dynamic-secrets/snowflake", + "documentation/platform/dynamic-secrets/totp" ] }, "documentation/platform/project-templates", diff --git a/frontend/src/views/SecretMainPage/components/ActionBar/CreateDynamicSecretForm/TotpInputForm.tsx b/frontend/src/views/SecretMainPage/components/ActionBar/CreateDynamicSecretForm/TotpInputForm.tsx index 684bc2b88..7ac8ce2cb 100644 --- a/frontend/src/views/SecretMainPage/components/ActionBar/CreateDynamicSecretForm/TotpInputForm.tsx +++ b/frontend/src/views/SecretMainPage/components/ActionBar/CreateDynamicSecretForm/TotpInputForm.tsx @@ -171,7 +171,7 @@ export const TotpInputForm = ({ defaultValue="" render={({ field, fieldState: { error } }) => ( (