diff --git a/backend/src/services/integration-auth/integration-auth-service.ts b/backend/src/services/integration-auth/integration-auth-service.ts index 3950b5acb..30be70d11 100644 --- a/backend/src/services/integration-auth/integration-auth-service.ts +++ b/backend/src/services/integration-auth/integration-auth-service.ts @@ -1694,7 +1694,6 @@ export const integrationAuthServiceFactory = ({ })); } catch (error) { logger.error(error); - return []; } }; diff --git a/docs/images/integrations/circleci-context/integrations-circleci-context-auth.png b/docs/images/integrations/circleci-context/integrations-circleci-context-auth.png deleted file mode 100644 index 235ce2aaa..000000000 Binary files a/docs/images/integrations/circleci-context/integrations-circleci-context-auth.png and /dev/null differ diff --git a/docs/images/integrations/circleci-context/integrations-circleci-context-create.png b/docs/images/integrations/circleci-context/integrations-circleci-context-create.png deleted file mode 100644 index b8eba410a..000000000 Binary files a/docs/images/integrations/circleci-context/integrations-circleci-context-create.png and /dev/null differ diff --git a/docs/images/integrations/circleci-context/integrations-circleci-context-list.png b/docs/images/integrations/circleci-context/integrations-circleci-context-list.png deleted file mode 100644 index 69e02a409..000000000 Binary files a/docs/images/integrations/circleci-context/integrations-circleci-context-list.png and /dev/null differ diff --git a/docs/images/integrations/circleci-context/integrations-circleci-token.png b/docs/images/integrations/circleci-context/integrations-circleci-token.png deleted file mode 100644 index 3e00744cc..000000000 Binary files a/docs/images/integrations/circleci-context/integrations-circleci-token.png and /dev/null differ diff --git a/docs/images/integrations/circleci-context/integrations-page.png b/docs/images/integrations/circleci-context/integrations-page.png deleted file mode 100644 index e59a83131..000000000 Binary files a/docs/images/integrations/circleci-context/integrations-page.png and /dev/null differ diff --git a/docs/images/integrations/circleci/integrations-circleci-auth.png b/docs/images/integrations/circleci/integrations-circleci-auth.png index 055ebbf4a..73a5fd686 100644 Binary files a/docs/images/integrations/circleci/integrations-circleci-auth.png and b/docs/images/integrations/circleci/integrations-circleci-auth.png differ diff --git a/docs/images/integrations/circleci/integrations-circleci-create-context.png b/docs/images/integrations/circleci/integrations-circleci-create-context.png new file mode 100644 index 000000000..9d911953e Binary files /dev/null and b/docs/images/integrations/circleci/integrations-circleci-create-context.png differ diff --git a/docs/images/integrations/circleci/integrations-circleci-create-project.png b/docs/images/integrations/circleci/integrations-circleci-create-project.png new file mode 100644 index 000000000..73ab1e75a Binary files /dev/null and b/docs/images/integrations/circleci/integrations-circleci-create-project.png differ diff --git a/docs/images/integrations/circleci/integrations-circleci.png b/docs/images/integrations/circleci/integrations-circleci.png index 5ee9a9df0..cde74678d 100644 Binary files a/docs/images/integrations/circleci/integrations-circleci.png and b/docs/images/integrations/circleci/integrations-circleci.png differ diff --git a/docs/integrations/cicd/circleci-context.mdx b/docs/integrations/cicd/circleci-context.mdx deleted file mode 100644 index 5d5826ef4..000000000 --- a/docs/integrations/cicd/circleci-context.mdx +++ /dev/null @@ -1,33 +0,0 @@ ---- -title: "CircleCI Context" -description: "How to sync secrets from Infisical to CircleCI Contexts" ---- - -Prerequisites: - -- Set up and add envars to [Infisical Cloud](https://app.infisical.com) - - - - Obtain an API token in User Settings > Personal API Tokens - - ![integrations circleci token](../../images/integrations/circleci-context/integrations-circleci-token.png) - - Navigate to your project's integrations tab in Infisical. - - ![integrations](../../images/integrations/circleci-context/integrations-page.png) - If you already have other integrations setup, click "Add Integration" on the top right corner to add the CircleCi Context integration. - - Press on the CircleCI Contexts tile and input your CircleCI API token to grant Infisical access to your CircleCI account. - - ![integrations circleci authorization](../../images/integrations/circleci-context/integrations-circleci-context-auth.png) - - - - Select which Infisical environment secrets you want to sync to which CircleCI Context and press create integration to start syncing secrets to CircleCI. - - ![create integration circleci](../../images/integrations/circleci-context/integrations-circleci-context-create.png) - ![integrations circleci](../../images/integrations/circleci-context/integrations-circleci-context-list.png) - - - diff --git a/docs/integrations/cicd/circleci.mdx b/docs/integrations/cicd/circleci.mdx index 0753f40f7..5bf04822d 100644 --- a/docs/integrations/cicd/circleci.mdx +++ b/docs/integrations/cicd/circleci.mdx @@ -11,21 +11,30 @@ Prerequisites: Obtain an API token in User Settings > Personal API Tokens - ![integrations circleci token](../../images/integrations/circleci/integrations-circleci-token.png) + ![integrations circleci token](/images/integrations/circleci/integrations-circleci-token.png) Navigate to your project's integrations tab in Infisical. - ![integrations](../../images/integrations.png) + ![integrations](/images/integrations.png) Press on the CircleCI tile and input your CircleCI API token to grant Infisical access to your CircleCI account. - ![integrations circleci authorization](../../images/integrations/circleci/integrations-circleci-auth.png) + ![integrations circleci authorization](/images/integrations/circleci/integrations-circleci-auth.png) - Select which Infisical environment secrets you want to sync to which CircleCI project and press create integration to start syncing secrets to CircleCI. + Select which Infisical environment secrets you want to sync to which CircleCI project or context. + + + ![integrations circle ci project](/images/integrations/circleci/integrations-circleci-create-project.png) + + + ![integrations circle ci project](/images/integrations/circleci/integrations-circleci-create-context.png) + + + + Finally, press create integration to start syncing secrets to CircleCI. + ![integrations circleci](/images/integrations/circleci/integrations-circleci.png) - ![create integration circleci](../../images/integrations/circleci/integrations-circleci-create.png) - ![integrations circleci](../../images/integrations/circleci/integrations-circleci.png) - \ No newline at end of file + diff --git a/docs/mint.json b/docs/mint.json index e4ba36c27..030a0b4dc 100644 --- a/docs/mint.json +++ b/docs/mint.json @@ -424,7 +424,6 @@ "group": "View more", "pages": [ "integrations/cicd/circleci", - "integrations/cicd/circleci-context", "integrations/cicd/travisci", "integrations/cicd/rundeck", "integrations/cicd/codefresh", diff --git a/frontend/src/pages/integrations/circleci/create.tsx b/frontend/src/pages/integrations/circleci/create.tsx index 7e733940e..37a26da6c 100644 --- a/frontend/src/pages/integrations/circleci/create.tsx +++ b/frontend/src/pages/integrations/circleci/create.tsx @@ -28,15 +28,15 @@ const formSchema = z.discriminatedUnion("scope", [ scope: z.literal("context"), secretPath: z.string().default("/"), sourceEnvironment: z.object({ name: z.string(), slug: z.string() }), - targetOrg: z.object({ name: z.string(), slug: z.string() }), - targetContext: z.object({ name: z.string(), id: z.string() }) + targetOrg: z.object({ name: z.string().min(1), slug: z.string().min(1) }), + targetContext: z.object({ name: z.string().min(1), id: z.string().min(1) }) }), z.object({ scope: z.literal("project"), secretPath: z.string().default("/"), sourceEnvironment: z.object({ name: z.string(), slug: z.string() }), - targetOrg: z.object({ name: z.string(), slug: z.string() }), - targetProject: z.object({ name: z.string(), id: z.string() }) + targetOrg: z.object({ name: z.string().min(1), slug: z.string().min(1) }), + targetProject: z.object({ name: z.string().min(1), id: z.string().min(1) }) }) ]); @@ -49,7 +49,7 @@ export default function CircleCICreateIntegrationPage() { const integrationAuthId = router.query.integrationAuthId as string; - const { control, watch, handleSubmit } = useForm({ + const { control, watch, handleSubmit, setValue } = useForm({ resolver: zodResolver(formSchema), defaultValues: { secretPath: "/", @@ -196,7 +196,18 @@ export default function CircleCICreateIntegrationPage() { getOptionValue={(option) => option.slug} value={value} getOptionLabel={(option) => option.name} - onChange={onChange} + onChange={(e) => { + setValue("targetProject", { + name: "", + id: "" + }); + setValue("targetContext", { + name: "", + id: "" + }); + + onChange(e); + }} options={circleCIOrganizations} placeholder={ circleCIOrganizations?.length