mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-10-06 20:27:12 +00:00
Fix call of onCompleted after all promises are resolved
This commit is contained in:
@@ -866,7 +866,7 @@ export const OverviewPage = () => {
|
|||||||
<Button
|
<Button
|
||||||
leftIcon={<FontAwesomeIcon icon={faFingerprint} className="pr-2" />}
|
leftIcon={<FontAwesomeIcon icon={faFingerprint} className="pr-2" />}
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
if (subscription && subscription.dynamicSecret) {
|
if (subscription?.dynamicSecret) {
|
||||||
handlePopUpOpen("addDynamicSecret");
|
handlePopUpOpen("addDynamicSecret");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -655,7 +655,7 @@ export const ActionBar = ({
|
|||||||
isOpen={popUp.addDynamicSecret.isOpen}
|
isOpen={popUp.addDynamicSecret.isOpen}
|
||||||
onToggle={(isOpen) => handlePopUpToggle("addDynamicSecret", isOpen)}
|
onToggle={(isOpen) => handlePopUpToggle("addDynamicSecret", isOpen)}
|
||||||
projectSlug={projectSlug}
|
projectSlug={projectSlug}
|
||||||
environments={[{ slug: environment, name: "not-used", id: "not-used" }]}
|
environments={[{ slug: environment, name: environment, id: "not-used" }]}
|
||||||
secretPath={secretPath}
|
secretPath={secretPath}
|
||||||
/>
|
/>
|
||||||
<Modal
|
<Modal
|
||||||
|
|||||||
+6
-2
@@ -106,6 +106,7 @@ export const AwsElastiCacheInputForm = ({
|
|||||||
}: TForm) => {
|
}: TForm) => {
|
||||||
// wait till previous request is finished
|
// wait till previous request is finished
|
||||||
if (createDynamicSecret.isPending) return;
|
if (createDynamicSecret.isPending) return;
|
||||||
|
let hasErrors = false;
|
||||||
const promises = selectedEnvs.map(async (env) => {
|
const promises = selectedEnvs.map(async (env) => {
|
||||||
try {
|
try {
|
||||||
await createDynamicSecret.mutateAsync({
|
await createDynamicSecret.mutateAsync({
|
||||||
@@ -117,15 +118,18 @@ export const AwsElastiCacheInputForm = ({
|
|||||||
projectSlug,
|
projectSlug,
|
||||||
environmentSlug: env.slug
|
environmentSlug: env.slug
|
||||||
});
|
});
|
||||||
onCompleted();
|
|
||||||
} catch {
|
} catch {
|
||||||
|
hasErrors = true;
|
||||||
createNotification({
|
createNotification({
|
||||||
type: "error",
|
type: "error",
|
||||||
text: "Failed to create dynamic secret"
|
text: `Failed to create dynamic secret in environment ${env.name}`
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
await Promise.all(promises);
|
await Promise.all(promises);
|
||||||
|
if (hasErrors) {
|
||||||
|
onCompleted();
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
|||||||
+8
-4
@@ -83,7 +83,8 @@ export const AwsIamInputForm = ({
|
|||||||
}: TForm) => {
|
}: TForm) => {
|
||||||
// wait till previous request is finished
|
// wait till previous request is finished
|
||||||
if (createDynamicSecret.isPending) return;
|
if (createDynamicSecret.isPending) return;
|
||||||
const promises = selectedEnvs.map(async (environment) => {
|
let hasErrors = false;
|
||||||
|
const promises = selectedEnvs.map(async (env) => {
|
||||||
try {
|
try {
|
||||||
await createDynamicSecret.mutateAsync({
|
await createDynamicSecret.mutateAsync({
|
||||||
provider: { type: DynamicSecretProviders.AwsIam, inputs: provider },
|
provider: { type: DynamicSecretProviders.AwsIam, inputs: provider },
|
||||||
@@ -92,17 +93,20 @@ export const AwsIamInputForm = ({
|
|||||||
path: secretPath,
|
path: secretPath,
|
||||||
defaultTTL,
|
defaultTTL,
|
||||||
projectSlug,
|
projectSlug,
|
||||||
environmentSlug: environment.slug
|
environmentSlug: env.slug
|
||||||
});
|
});
|
||||||
onCompleted();
|
|
||||||
} catch {
|
} catch {
|
||||||
|
hasErrors = true;
|
||||||
createNotification({
|
createNotification({
|
||||||
type: "error",
|
type: "error",
|
||||||
text: "Failed to create dynamic secret"
|
text: `Failed to create dynamic secret in environment ${env.name}`
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
await Promise.all(promises);
|
await Promise.all(promises);
|
||||||
|
if (hasErrors) {
|
||||||
|
onCompleted();
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
|||||||
+9
-5
@@ -116,8 +116,9 @@ export const AzureEntraIdInputForm = ({
|
|||||||
environments: selectedEnvs
|
environments: selectedEnvs
|
||||||
}: TForm) => {
|
}: TForm) => {
|
||||||
// wait till previous request is finished
|
// wait till previous request is finished
|
||||||
const promises = selectedEnvs.map(async (environment) => {
|
if (createDynamicSecret.isPending) return;
|
||||||
if (createDynamicSecret.isPending) return;
|
let hasErrors = false;
|
||||||
|
const promises = selectedEnvs.map(async (env) => {
|
||||||
try {
|
try {
|
||||||
selectedUsers.map(async (user: { id: string; name: string; email: string }) => {
|
selectedUsers.map(async (user: { id: string; name: string; email: string }) => {
|
||||||
await createDynamicSecret.mutateAsync({
|
await createDynamicSecret.mutateAsync({
|
||||||
@@ -136,18 +137,21 @@ export const AzureEntraIdInputForm = ({
|
|||||||
path: secretPath,
|
path: secretPath,
|
||||||
defaultTTL,
|
defaultTTL,
|
||||||
projectSlug,
|
projectSlug,
|
||||||
environmentSlug: environment.slug
|
environmentSlug: env.slug
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
onCompleted();
|
|
||||||
} catch {
|
} catch {
|
||||||
createNotification({
|
createNotification({
|
||||||
type: "error",
|
type: "error",
|
||||||
text: "Failed to create dynamic secret"
|
text: `Failed to create dynamic secret in environment ${env.name}`
|
||||||
});
|
});
|
||||||
|
hasErrors = true;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
await Promise.all(promises);
|
await Promise.all(promises);
|
||||||
|
if (hasErrors) {
|
||||||
|
onCompleted();
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
|||||||
+8
-4
@@ -106,7 +106,8 @@ export const CassandraInputForm = ({
|
|||||||
}: TForm) => {
|
}: TForm) => {
|
||||||
// wait till previous request is finished
|
// wait till previous request is finished
|
||||||
if (createDynamicSecret.isPending) return;
|
if (createDynamicSecret.isPending) return;
|
||||||
const promises = selectedEnvs.map(async (environment) => {
|
let hasErrors = false;
|
||||||
|
const promises = selectedEnvs.map(async (env) => {
|
||||||
try {
|
try {
|
||||||
await createDynamicSecret.mutateAsync({
|
await createDynamicSecret.mutateAsync({
|
||||||
provider: { type: DynamicSecretProviders.Cassandra, inputs: provider },
|
provider: { type: DynamicSecretProviders.Cassandra, inputs: provider },
|
||||||
@@ -115,17 +116,20 @@ export const CassandraInputForm = ({
|
|||||||
path: secretPath,
|
path: secretPath,
|
||||||
defaultTTL,
|
defaultTTL,
|
||||||
projectSlug,
|
projectSlug,
|
||||||
environmentSlug: environment.slug
|
environmentSlug: env.slug
|
||||||
});
|
});
|
||||||
onCompleted();
|
|
||||||
} catch {
|
} catch {
|
||||||
createNotification({
|
createNotification({
|
||||||
type: "error",
|
type: "error",
|
||||||
text: "Failed to create dynamic secret"
|
text: `Failed to create dynamic secret in environment ${env.name}`
|
||||||
});
|
});
|
||||||
|
hasErrors = true;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
await Promise.all(promises);
|
await Promise.all(promises);
|
||||||
|
if (hasErrors) {
|
||||||
|
onCompleted();
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
|||||||
+8
-4
@@ -126,7 +126,8 @@ export const ElasticSearchInputForm = ({
|
|||||||
}: TForm) => {
|
}: TForm) => {
|
||||||
// wait till previous request is finished
|
// wait till previous request is finished
|
||||||
if (createDynamicSecret.isPending) return;
|
if (createDynamicSecret.isPending) return;
|
||||||
const promises = selectedEnvs.map(async (environment) => {
|
let hasErrors = false;
|
||||||
|
const promises = selectedEnvs.map(async (env) => {
|
||||||
try {
|
try {
|
||||||
await createDynamicSecret.mutateAsync({
|
await createDynamicSecret.mutateAsync({
|
||||||
provider: { type: DynamicSecretProviders.ElasticSearch, inputs: provider },
|
provider: { type: DynamicSecretProviders.ElasticSearch, inputs: provider },
|
||||||
@@ -135,17 +136,20 @@ export const ElasticSearchInputForm = ({
|
|||||||
path: secretPath,
|
path: secretPath,
|
||||||
defaultTTL,
|
defaultTTL,
|
||||||
projectSlug,
|
projectSlug,
|
||||||
environmentSlug: environment.slug
|
environmentSlug: env.slug
|
||||||
});
|
});
|
||||||
onCompleted();
|
|
||||||
} catch {
|
} catch {
|
||||||
createNotification({
|
createNotification({
|
||||||
type: "error",
|
type: "error",
|
||||||
text: "Failed to create dynamic secret"
|
text: `Failed to create dynamic secret in environment ${env.name}`
|
||||||
});
|
});
|
||||||
|
hasErrors = true;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
await Promise.all(promises);
|
await Promise.all(promises);
|
||||||
|
if (hasErrors) {
|
||||||
|
onCompleted();
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const selectedAuthType = watch("provider.auth.type");
|
const selectedAuthType = watch("provider.auth.type");
|
||||||
|
|||||||
+8
-4
@@ -135,7 +135,8 @@ export const LdapInputForm = ({
|
|||||||
}: TForm) => {
|
}: TForm) => {
|
||||||
// wait till previous request is finished
|
// wait till previous request is finished
|
||||||
if (createDynamicSecret.isPending) return;
|
if (createDynamicSecret.isPending) return;
|
||||||
const promises = selectedEnvs.map(async (environment) => {
|
let hasErrors = false;
|
||||||
|
const promises = selectedEnvs.map(async (env) => {
|
||||||
try {
|
try {
|
||||||
await createDynamicSecret.mutateAsync({
|
await createDynamicSecret.mutateAsync({
|
||||||
provider: { type: DynamicSecretProviders.Ldap, inputs: provider },
|
provider: { type: DynamicSecretProviders.Ldap, inputs: provider },
|
||||||
@@ -144,17 +145,20 @@ export const LdapInputForm = ({
|
|||||||
path: secretPath,
|
path: secretPath,
|
||||||
defaultTTL,
|
defaultTTL,
|
||||||
projectSlug,
|
projectSlug,
|
||||||
environmentSlug: environment.slug
|
environmentSlug: env.slug
|
||||||
});
|
});
|
||||||
onCompleted();
|
|
||||||
} catch {
|
} catch {
|
||||||
createNotification({
|
createNotification({
|
||||||
type: "error",
|
type: "error",
|
||||||
text: "Failed to create dynamic secret"
|
text: `Failed to create dynamic secret in environment ${env.name}`
|
||||||
});
|
});
|
||||||
|
hasErrors = true;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
await Promise.all(promises);
|
await Promise.all(promises);
|
||||||
|
if (hasErrors) {
|
||||||
|
onCompleted();
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
|||||||
+8
-4
@@ -137,7 +137,8 @@ export const MongoAtlasInputForm = ({
|
|||||||
}: TForm) => {
|
}: TForm) => {
|
||||||
// wait till previous request is finished
|
// wait till previous request is finished
|
||||||
if (createDynamicSecret.isPending) return;
|
if (createDynamicSecret.isPending) return;
|
||||||
const promises = selectedEnvs.map(async (environment) => {
|
let hasErrors = false;
|
||||||
|
const promises = selectedEnvs.map(async (env) => {
|
||||||
try {
|
try {
|
||||||
await createDynamicSecret.mutateAsync({
|
await createDynamicSecret.mutateAsync({
|
||||||
provider: { type: DynamicSecretProviders.MongoAtlas, inputs: provider },
|
provider: { type: DynamicSecretProviders.MongoAtlas, inputs: provider },
|
||||||
@@ -146,17 +147,20 @@ export const MongoAtlasInputForm = ({
|
|||||||
path: secretPath,
|
path: secretPath,
|
||||||
defaultTTL,
|
defaultTTL,
|
||||||
projectSlug,
|
projectSlug,
|
||||||
environmentSlug: environment.slug
|
environmentSlug: env.slug
|
||||||
});
|
});
|
||||||
onCompleted();
|
|
||||||
} catch {
|
} catch {
|
||||||
createNotification({
|
createNotification({
|
||||||
type: "error",
|
type: "error",
|
||||||
text: "Failed to create dynamic secret"
|
text: `Failed to create dynamic secret in environment ${env.name}`
|
||||||
});
|
});
|
||||||
|
hasErrors = true;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
await Promise.all(promises);
|
await Promise.all(promises);
|
||||||
|
if (hasErrors) {
|
||||||
|
onCompleted();
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
|||||||
+8
-4
@@ -107,7 +107,8 @@ export const MongoDBDatabaseInputForm = ({
|
|||||||
}: TForm) => {
|
}: TForm) => {
|
||||||
// wait till previous request is finished
|
// wait till previous request is finished
|
||||||
if (createDynamicSecret.isPending) return;
|
if (createDynamicSecret.isPending) return;
|
||||||
const promises = selectedEnvs.map(async (environment) => {
|
let hasErrors = false;
|
||||||
|
const promises = selectedEnvs.map(async (env) => {
|
||||||
try {
|
try {
|
||||||
await createDynamicSecret.mutateAsync({
|
await createDynamicSecret.mutateAsync({
|
||||||
provider: {
|
provider: {
|
||||||
@@ -123,17 +124,20 @@ export const MongoDBDatabaseInputForm = ({
|
|||||||
path: secretPath,
|
path: secretPath,
|
||||||
defaultTTL,
|
defaultTTL,
|
||||||
projectSlug,
|
projectSlug,
|
||||||
environmentSlug: environment.slug
|
environmentSlug: env.slug
|
||||||
});
|
});
|
||||||
onCompleted();
|
|
||||||
} catch {
|
} catch {
|
||||||
createNotification({
|
createNotification({
|
||||||
type: "error",
|
type: "error",
|
||||||
text: "Failed to create dynamic secret"
|
text: `Failed to create dynamic secret in environment ${env.name}`
|
||||||
});
|
});
|
||||||
|
hasErrors = true;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
await Promise.all(promises);
|
await Promise.all(promises);
|
||||||
|
if (hasErrors) {
|
||||||
|
onCompleted();
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
|||||||
+8
-4
@@ -115,7 +115,8 @@ export const RabbitMqInputForm = ({
|
|||||||
}: TForm) => {
|
}: TForm) => {
|
||||||
// wait till previous request is finished
|
// wait till previous request is finished
|
||||||
if (createDynamicSecret.isPending) return;
|
if (createDynamicSecret.isPending) return;
|
||||||
const promises = selectedEnvs.map(async (environment) => {
|
let hasErrors = false;
|
||||||
|
const promises = selectedEnvs.map(async (env) => {
|
||||||
try {
|
try {
|
||||||
await createDynamicSecret.mutateAsync({
|
await createDynamicSecret.mutateAsync({
|
||||||
provider: { type: DynamicSecretProviders.RabbitMq, inputs: provider },
|
provider: { type: DynamicSecretProviders.RabbitMq, inputs: provider },
|
||||||
@@ -124,17 +125,20 @@ export const RabbitMqInputForm = ({
|
|||||||
path: secretPath,
|
path: secretPath,
|
||||||
defaultTTL,
|
defaultTTL,
|
||||||
projectSlug,
|
projectSlug,
|
||||||
environmentSlug: environment.slug
|
environmentSlug: env.slug
|
||||||
});
|
});
|
||||||
onCompleted();
|
|
||||||
} catch {
|
} catch {
|
||||||
createNotification({
|
createNotification({
|
||||||
type: "error",
|
type: "error",
|
||||||
text: "Failed to create dynamic secret"
|
text: `Failed to create dynamic secret in environment ${env.name}`
|
||||||
});
|
});
|
||||||
|
hasErrors = true;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
await Promise.all(promises);
|
await Promise.all(promises);
|
||||||
|
if (hasErrors) {
|
||||||
|
onCompleted();
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const selectedTags = watch("provider.tags");
|
const selectedTags = watch("provider.tags");
|
||||||
|
|||||||
+8
-4
@@ -100,7 +100,8 @@ export const RedisInputForm = ({
|
|||||||
}: TForm) => {
|
}: TForm) => {
|
||||||
// wait till previous request is finished
|
// wait till previous request is finished
|
||||||
if (createDynamicSecret.isPending) return;
|
if (createDynamicSecret.isPending) return;
|
||||||
const promises = selectedEnvs.map(async (environment) => {
|
let hasErrors = false;
|
||||||
|
const promises = selectedEnvs.map(async (env) => {
|
||||||
try {
|
try {
|
||||||
await createDynamicSecret.mutateAsync({
|
await createDynamicSecret.mutateAsync({
|
||||||
provider: { type: DynamicSecretProviders.Redis, inputs: provider },
|
provider: { type: DynamicSecretProviders.Redis, inputs: provider },
|
||||||
@@ -109,17 +110,20 @@ export const RedisInputForm = ({
|
|||||||
path: secretPath,
|
path: secretPath,
|
||||||
defaultTTL,
|
defaultTTL,
|
||||||
projectSlug,
|
projectSlug,
|
||||||
environmentSlug: environment.slug
|
environmentSlug: env.slug
|
||||||
});
|
});
|
||||||
onCompleted();
|
|
||||||
} catch {
|
} catch {
|
||||||
createNotification({
|
createNotification({
|
||||||
type: "error",
|
type: "error",
|
||||||
text: "Failed to create dynamic secret"
|
text: `Failed to create dynamic secret in environment ${env.name}`
|
||||||
});
|
});
|
||||||
|
hasErrors = true;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
await Promise.all(promises);
|
await Promise.all(promises);
|
||||||
|
if (hasErrors) {
|
||||||
|
onCompleted();
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
|||||||
+8
-4
@@ -101,7 +101,8 @@ sp_droplogin '{{username}}';`
|
|||||||
}: TForm) => {
|
}: TForm) => {
|
||||||
// wait till previous request is finished
|
// wait till previous request is finished
|
||||||
if (createDynamicSecret.isPending) return;
|
if (createDynamicSecret.isPending) return;
|
||||||
const promises = selectedEnvs.map(async (environment) => {
|
let hasErrors = false;
|
||||||
|
const promises = selectedEnvs.map(async (env) => {
|
||||||
try {
|
try {
|
||||||
await createDynamicSecret.mutateAsync({
|
await createDynamicSecret.mutateAsync({
|
||||||
provider: { type: DynamicSecretProviders.SapAse, inputs: provider },
|
provider: { type: DynamicSecretProviders.SapAse, inputs: provider },
|
||||||
@@ -110,17 +111,20 @@ sp_droplogin '{{username}}';`
|
|||||||
path: secretPath,
|
path: secretPath,
|
||||||
defaultTTL,
|
defaultTTL,
|
||||||
projectSlug,
|
projectSlug,
|
||||||
environmentSlug: environment.slug
|
environmentSlug: env.slug
|
||||||
});
|
});
|
||||||
onCompleted();
|
|
||||||
} catch {
|
} catch {
|
||||||
createNotification({
|
createNotification({
|
||||||
type: "error",
|
type: "error",
|
||||||
text: "Failed to create dynamic secret"
|
text: `Failed to create dynamic secret in environment ${env.name}`
|
||||||
});
|
});
|
||||||
|
hasErrors = true;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
await Promise.all(promises);
|
await Promise.all(promises);
|
||||||
|
if (hasErrors) {
|
||||||
|
onCompleted();
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
|||||||
+8
-4
@@ -101,7 +101,8 @@ DROP USER {{username}};`,
|
|||||||
}: TForm) => {
|
}: TForm) => {
|
||||||
// wait till previous request is finished
|
// wait till previous request is finished
|
||||||
if (createDynamicSecret.isPending) return;
|
if (createDynamicSecret.isPending) return;
|
||||||
const promises = selectedEnvs.map(async (environment) => {
|
let hasErrors = false;
|
||||||
|
const promises = selectedEnvs.map(async (env) => {
|
||||||
try {
|
try {
|
||||||
await createDynamicSecret.mutateAsync({
|
await createDynamicSecret.mutateAsync({
|
||||||
provider: { type: DynamicSecretProviders.SapHana, inputs: provider },
|
provider: { type: DynamicSecretProviders.SapHana, inputs: provider },
|
||||||
@@ -110,17 +111,20 @@ DROP USER {{username}};`,
|
|||||||
path: secretPath,
|
path: secretPath,
|
||||||
defaultTTL,
|
defaultTTL,
|
||||||
projectSlug,
|
projectSlug,
|
||||||
environmentSlug: environment.slug
|
environmentSlug: env.slug
|
||||||
});
|
});
|
||||||
onCompleted();
|
|
||||||
} catch {
|
} catch {
|
||||||
createNotification({
|
createNotification({
|
||||||
type: "error",
|
type: "error",
|
||||||
text: "Failed to create dynamic secret"
|
text: `Failed to create dynamic secret in environment ${env.name}`
|
||||||
});
|
});
|
||||||
|
hasErrors = true;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
await Promise.all(promises);
|
await Promise.all(promises);
|
||||||
|
if (hasErrors) {
|
||||||
|
onCompleted();
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
|||||||
+7
-3
@@ -104,7 +104,8 @@ export const SnowflakeInputForm = ({
|
|||||||
}: TForm) => {
|
}: TForm) => {
|
||||||
// wait till previous request is finished
|
// wait till previous request is finished
|
||||||
if (createDynamicSecret.isPending) return;
|
if (createDynamicSecret.isPending) return;
|
||||||
const promises = selectedEnvs.map(async (environment) => {
|
let hasErrors = false;
|
||||||
|
const promises = selectedEnvs.map(async (env) => {
|
||||||
try {
|
try {
|
||||||
await createDynamicSecret.mutateAsync({
|
await createDynamicSecret.mutateAsync({
|
||||||
provider: { type: DynamicSecretProviders.Snowflake, inputs: provider },
|
provider: { type: DynamicSecretProviders.Snowflake, inputs: provider },
|
||||||
@@ -113,17 +114,20 @@ export const SnowflakeInputForm = ({
|
|||||||
path: secretPath,
|
path: secretPath,
|
||||||
defaultTTL,
|
defaultTTL,
|
||||||
projectSlug,
|
projectSlug,
|
||||||
environmentSlug: environment.slug
|
environmentSlug: env.slug
|
||||||
});
|
});
|
||||||
onCompleted();
|
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
createNotification({
|
createNotification({
|
||||||
type: "error",
|
type: "error",
|
||||||
text: err instanceof Error ? err.message : "Failed to create dynamic secret"
|
text: err instanceof Error ? err.message : "Failed to create dynamic secret"
|
||||||
});
|
});
|
||||||
|
hasErrors = true;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
await Promise.all(promises);
|
await Promise.all(promises);
|
||||||
|
if (hasErrors) {
|
||||||
|
onCompleted();
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
|||||||
+6
-2
@@ -194,6 +194,7 @@ export const SqlDatabaseInputForm = ({
|
|||||||
}: TForm) => {
|
}: TForm) => {
|
||||||
// wait till previous request is finished
|
// wait till previous request is finished
|
||||||
if (createDynamicSecret.isPending) return;
|
if (createDynamicSecret.isPending) return;
|
||||||
|
let hasErrors = false;
|
||||||
const promises = selectedEnvs.map(async (env) => {
|
const promises = selectedEnvs.map(async (env) => {
|
||||||
try {
|
try {
|
||||||
await createDynamicSecret.mutateAsync({
|
await createDynamicSecret.mutateAsync({
|
||||||
@@ -205,15 +206,18 @@ export const SqlDatabaseInputForm = ({
|
|||||||
projectSlug,
|
projectSlug,
|
||||||
environmentSlug: env.slug
|
environmentSlug: env.slug
|
||||||
});
|
});
|
||||||
onCompleted();
|
|
||||||
} catch {
|
} catch {
|
||||||
createNotification({
|
createNotification({
|
||||||
type: "error",
|
type: "error",
|
||||||
text: "Failed to create dynamic secret"
|
text: `Failed to create dynamic secret for environment ${env.name}`
|
||||||
});
|
});
|
||||||
|
hasErrors = true;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
await Promise.all(promises);
|
await Promise.all(promises);
|
||||||
|
if (hasErrors) {
|
||||||
|
onCompleted();
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const handleDatabaseChange = (type: SqlProviders) => {
|
const handleDatabaseChange = (type: SqlProviders) => {
|
||||||
|
|||||||
+7
-3
@@ -107,7 +107,8 @@ export const TotpInputForm = ({
|
|||||||
}: TForm) => {
|
}: TForm) => {
|
||||||
// wait till previous request is finished
|
// wait till previous request is finished
|
||||||
if (createDynamicSecret.isPending) return;
|
if (createDynamicSecret.isPending) return;
|
||||||
const promises = selectedEnvs.map(async (environment) => {
|
let hasErrors = false;
|
||||||
|
const promises = selectedEnvs.map(async (env) => {
|
||||||
try {
|
try {
|
||||||
await createDynamicSecret.mutateAsync({
|
await createDynamicSecret.mutateAsync({
|
||||||
provider: { type: DynamicSecretProviders.Totp, inputs: provider },
|
provider: { type: DynamicSecretProviders.Totp, inputs: provider },
|
||||||
@@ -116,17 +117,20 @@ export const TotpInputForm = ({
|
|||||||
path: secretPath,
|
path: secretPath,
|
||||||
defaultTTL: "1m",
|
defaultTTL: "1m",
|
||||||
projectSlug,
|
projectSlug,
|
||||||
environmentSlug: environment.slug
|
environmentSlug: env.slug
|
||||||
});
|
});
|
||||||
onCompleted();
|
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
createNotification({
|
createNotification({
|
||||||
type: "error",
|
type: "error",
|
||||||
text: err instanceof Error ? err.message : "Failed to create dynamic secret"
|
text: err instanceof Error ? err.message : "Failed to create dynamic secret"
|
||||||
});
|
});
|
||||||
|
hasErrors = true;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
await Promise.all(promises);
|
await Promise.all(promises);
|
||||||
|
if (hasErrors) {
|
||||||
|
onCompleted();
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
|||||||
Reference in New Issue
Block a user