diff --git a/backend/src/ee/services/dynamic-secret/providers/gcp-iam.ts b/backend/src/ee/services/dynamic-secret/providers/gcp-iam.ts
index cb5c26d89..b5d34aa49 100644
--- a/backend/src/ee/services/dynamic-secret/providers/gcp-iam.ts
+++ b/backend/src/ee/services/dynamic-secret/providers/gcp-iam.ts
@@ -69,7 +69,9 @@ export const GcpIamProvider = (): TDynamicProviderFns => {
return true;
};
- const create = async (inputs: unknown, expireAt: number) => {
+ const create = async (data: { inputs: unknown; expireAt: number }) => {
+ const { inputs, expireAt } = data;
+
const providerInputs = await validateProviderInputs(inputs);
const now = Math.floor(Date.now() / 1000);
@@ -88,7 +90,7 @@ export const GcpIamProvider = (): TDynamicProviderFns => {
const renew = async (inputs: unknown, entityId: string, expireAt: number) => {
// To renew a token it must be re-created
- const data = await create(inputs, expireAt);
+ const data = await create({ inputs, expireAt });
return { ...data, entityId };
};
diff --git a/backend/src/ee/services/dynamic-secret/providers/models.ts b/backend/src/ee/services/dynamic-secret/providers/models.ts
index 1594ec1c7..88e3131d5 100644
--- a/backend/src/ee/services/dynamic-secret/providers/models.ts
+++ b/backend/src/ee/services/dynamic-secret/providers/models.ts
@@ -427,7 +427,7 @@ export const DynamicSecretTotpSchema = z.discriminatedUnion("configType", [
]);
export const DynamicSecretGcpIamSchema = z.object({
- serviceAccountEmail: z.string().email().trim().min(1, "Service account email required")
+ serviceAccountEmail: z.string().email().trim().min(1, "Service account email required").max(128)
});
export enum DynamicSecretProviders {
diff --git a/docs/documentation/platform/dynamic-secrets/cassandra.mdx b/docs/documentation/platform/dynamic-secrets/cassandra.mdx
index 56b7ec336..16cca4dfe 100644
--- a/docs/documentation/platform/dynamic-secrets/cassandra.mdx
+++ b/docs/documentation/platform/dynamic-secrets/cassandra.mdx
@@ -128,7 +128,7 @@ The above configuration allows user creation and granting permissions.

- Ensure that the TTL for the lease fall within the maximum TTL defined when configuring the dynamic secret in step 4.
+ Ensure that the TTL for the lease falls within the maximum TTL defined when configuring the dynamic secret in step 4.
diff --git a/docs/documentation/platform/dynamic-secrets/elastic-search.mdx b/docs/documentation/platform/dynamic-secrets/elastic-search.mdx
index 06d1102e2..f1c5f1128 100644
--- a/docs/documentation/platform/dynamic-secrets/elastic-search.mdx
+++ b/docs/documentation/platform/dynamic-secrets/elastic-search.mdx
@@ -127,15 +127,15 @@ The port that your Elasticsearch instance is running on. _(Example: 9200)_
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.
- 
- 
+ 
+ 
When generating these secrets, it's important to specify a Time-to-Live (TTL) duration. This will dictate how long the credentials are valid for.

- Ensure that the TTL for the lease fall within the maximum TTL defined when configuring the dynamic secret.
+ Ensure that the TTL for the lease falls within the maximum TTL defined when configuring the dynamic secret.
diff --git a/docs/documentation/platform/dynamic-secrets/kubernetes.mdx b/docs/documentation/platform/dynamic-secrets/kubernetes.mdx
index 713aefae6..9af189eb7 100644
--- a/docs/documentation/platform/dynamic-secrets/kubernetes.mdx
+++ b/docs/documentation/platform/dynamic-secrets/kubernetes.mdx
@@ -457,7 +457,7 @@ When generating these secrets, it's important to specify a Time-to-Live (TTL) du

- Ensure that the TTL for the lease fall within the maximum TTL defined when
+ Ensure that the TTL for the lease falls within the maximum TTL defined when
configuring the dynamic secret.
diff --git a/docs/documentation/platform/dynamic-secrets/mssql.mdx b/docs/documentation/platform/dynamic-secrets/mssql.mdx
index 6b6cef982..8bb942314 100644
--- a/docs/documentation/platform/dynamic-secrets/mssql.mdx
+++ b/docs/documentation/platform/dynamic-secrets/mssql.mdx
@@ -119,7 +119,7 @@ Create a user with the required permission in your SQL instance. This user will

- Ensure that the TTL for the lease fall within the maximum TTL defined when configuring the dynamic secret.
+ Ensure that the TTL for the lease falls within the maximum TTL defined when configuring the dynamic secret.
diff --git a/docs/documentation/platform/dynamic-secrets/rabbit-mq.mdx b/docs/documentation/platform/dynamic-secrets/rabbit-mq.mdx
index be41901b7..cac5ac120 100644
--- a/docs/documentation/platform/dynamic-secrets/rabbit-mq.mdx
+++ b/docs/documentation/platform/dynamic-secrets/rabbit-mq.mdx
@@ -109,15 +109,15 @@ The port that the RabbitMQ management plugin is listening on. This is `15672` by
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.
- 
- 
+ 
+ 
When generating these secrets, it's important to specify a Time-to-Live (TTL) duration. This will dictate how long the credentials are valid for.

- Ensure that the TTL for the lease fall within the maximum TTL defined when configuring the dynamic secret.
+ Ensure that the TTL for the lease falls within the maximum TTL defined when configuring the dynamic secret.
diff --git a/docs/documentation/platform/dynamic-secrets/sap-ase.mdx b/docs/documentation/platform/dynamic-secrets/sap-ase.mdx
index 6da572f35..8009c779c 100644
--- a/docs/documentation/platform/dynamic-secrets/sap-ase.mdx
+++ b/docs/documentation/platform/dynamic-secrets/sap-ase.mdx
@@ -112,7 +112,7 @@ Due to SAP ASE limitations, the attached SQL statements are not executed as a tr

- Ensure that the TTL for the lease fall within the maximum TTL defined when configuring the dynamic secret in step 4.
+ Ensure that the TTL for the lease falls within the maximum TTL defined when configuring the dynamic secret in step 4.
diff --git a/docs/documentation/platform/dynamic-secrets/sap-hana.mdx b/docs/documentation/platform/dynamic-secrets/sap-hana.mdx
index 8ccd842f2..ce016e681 100644
--- a/docs/documentation/platform/dynamic-secrets/sap-hana.mdx
+++ b/docs/documentation/platform/dynamic-secrets/sap-hana.mdx
@@ -119,7 +119,7 @@ The Infisical SAP HANA dynamic secret allows you to generate SAP HANA database c

- Ensure that the TTL for the lease fall within the maximum TTL defined when configuring the dynamic secret in step 4.
+ Ensure that the TTL for the lease falls within the maximum TTL defined when configuring the dynamic secret in step 4.
diff --git a/docs/documentation/platform/dynamic-secrets/snowflake.mdx b/docs/documentation/platform/dynamic-secrets/snowflake.mdx
index f0bbaa08c..10d7c182f 100644
--- a/docs/documentation/platform/dynamic-secrets/snowflake.mdx
+++ b/docs/documentation/platform/dynamic-secrets/snowflake.mdx
@@ -127,7 +127,7 @@ Infisical's Snowflake dynamic secrets allow you to generate Snowflake user crede

- Ensure that the TTL for the lease fall within the maximum TTL defined when configuring the dynamic secret in
+ Ensure that the TTL for the lease falls within the maximum TTL defined when configuring the dynamic secret in
step 4.
diff --git a/frontend/src/hooks/api/dynamicSecret/types.ts b/frontend/src/hooks/api/dynamicSecret/types.ts
index 440c534f0..4a74b01e9 100644
--- a/frontend/src/hooks/api/dynamicSecret/types.ts
+++ b/frontend/src/hooks/api/dynamicSecret/types.ts
@@ -34,7 +34,8 @@ export enum DynamicSecretProviders {
Totp = "totp",
SapAse = "sap-ase",
Kubernetes = "kubernetes",
- Vertica = "vertica"
+ Vertica = "vertica",
+ GcpIam = "gcp-iam"
}
export enum KubernetesDynamicSecretCredentialType {
@@ -326,6 +327,12 @@ export type TDynamicSecretProvider =
creationStatement: string;
revocationStatement: string;
};
+ }
+ | {
+ type: DynamicSecretProviders.GcpIam;
+ inputs: {
+ serviceAccountEmail: string;
+ };
};
export type TCreateDynamicSecretDTO = {
diff --git a/frontend/src/pages/auth/SignUpInvitePage/SignUpInvitePage.tsx b/frontend/src/pages/auth/SignUpInvitePage/SignUpInvitePage.tsx
index 9cb739736..fe27e5d7d 100644
--- a/frontend/src/pages/auth/SignUpInvitePage/SignUpInvitePage.tsx
+++ b/frontend/src/pages/auth/SignUpInvitePage/SignUpInvitePage.tsx
@@ -27,8 +27,8 @@ import {
} from "@app/hooks/api/auth/queries";
import { MfaMethod } from "@app/hooks/api/auth/types";
import { fetchOrganizations } from "@app/hooks/api/organization/queries";
-import { ProjectType } from "@app/hooks/api/workspace/types";
import { isLoggedIn } from "@app/hooks/api/reactQuery";
+import { ProjectType } from "@app/hooks/api/workspace/types";
// eslint-disable-next-line new-cap
const client = new jsrp.client();