From 3f6b84de3b5d4e4e831f7207a12525b9226568e8 Mon Sep 17 00:00:00 2001 From: Remy Date: Thu, 20 Jun 2024 16:32:47 +0200 Subject: [PATCH 001/145] fix(helm-charts): add nodeSelector and tolerations --- helm-charts/secrets-operator/templates/deployment.yaml | 4 +++- helm-charts/secrets-operator/values.yaml | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/helm-charts/secrets-operator/templates/deployment.yaml b/helm-charts/secrets-operator/templates/deployment.yaml index 2d27b4b5ac..ec02df12d5 100644 --- a/helm-charts/secrets-operator/templates/deployment.yaml +++ b/helm-charts/secrets-operator/templates/deployment.yaml @@ -82,4 +82,6 @@ spec: securityContext: runAsNonRoot: true serviceAccountName: {{ include "secrets-operator.fullname" . }}-controller-manager - terminationGracePeriodSeconds: 10 \ No newline at end of file + terminationGracePeriodSeconds: 10 + nodeSelector: {{ toYaml .Values.controllerManager.nodeSelector | nindent 8 }} + tolerations: {{ toYaml .Values.controllerManager.tolerations | nindent 8 }} \ No newline at end of file diff --git a/helm-charts/secrets-operator/values.yaml b/helm-charts/secrets-operator/values.yaml index 001ef4b109..4b35577e71 100644 --- a/helm-charts/secrets-operator/values.yaml +++ b/helm-charts/secrets-operator/values.yaml @@ -43,6 +43,8 @@ controllerManager: replicas: 1 serviceAccount: annotations: {} + nodeSelector: {} + tolerations: [] kubernetesClusterDomain: cluster.local metricsService: ports: From 98a15a901ec17c38c9312ce0e5196b45524475ba Mon Sep 17 00:00:00 2001 From: Sheen Capadngan Date: Wed, 26 Jun 2024 22:45:14 +0800 Subject: [PATCH 002/145] feat: allowed toggling login options as admin --- ...0240626115035_admin-login-method-config.ts | 19 ++ backend/src/db/schemas/super-admin.ts | 3 +- backend/src/server/routes/v1/admin-router.ts | 10 +- .../services/super-admin/super-admin-types.ts | 10 + frontend/src/hooks/api/admin/types.ts | 11 + .../components/InitialStep/InitialStep.tsx | 321 ++++++++++-------- .../views/admin/DashboardPage/AuthPanel.tsx | 251 ++++++++++++++ .../admin/DashboardPage/DashboardPage.tsx | 9 +- 8 files changed, 488 insertions(+), 146 deletions(-) create mode 100644 backend/src/db/migrations/20240626115035_admin-login-method-config.ts create mode 100644 frontend/src/views/admin/DashboardPage/AuthPanel.tsx diff --git a/backend/src/db/migrations/20240626115035_admin-login-method-config.ts b/backend/src/db/migrations/20240626115035_admin-login-method-config.ts new file mode 100644 index 0000000000..8748fe753e --- /dev/null +++ b/backend/src/db/migrations/20240626115035_admin-login-method-config.ts @@ -0,0 +1,19 @@ +import { Knex } from "knex"; + +import { TableName } from "../schemas"; + +export async function up(knex: Knex): Promise { + if (!(await knex.schema.hasColumn(TableName.SuperAdmin, "enabledLoginMethods"))) { + await knex.schema.alterTable(TableName.SuperAdmin, (tb) => { + tb.specificType("enabledLoginMethods", "text[]"); + }); + } +} + +export async function down(knex: Knex): Promise { + if (await knex.schema.hasColumn(TableName.SuperAdmin, "enabledLoginMethods")) { + await knex.schema.alterTable(TableName.SuperAdmin, (t) => { + t.dropColumn("enabledLoginMethods"); + }); + } +} diff --git a/backend/src/db/schemas/super-admin.ts b/backend/src/db/schemas/super-admin.ts index 29e41c78ef..b676b81a80 100644 --- a/backend/src/db/schemas/super-admin.ts +++ b/backend/src/db/schemas/super-admin.ts @@ -18,7 +18,8 @@ export const SuperAdminSchema = z.object({ trustSamlEmails: z.boolean().default(false).nullable().optional(), trustLdapEmails: z.boolean().default(false).nullable().optional(), trustOidcEmails: z.boolean().default(false).nullable().optional(), - defaultAuthOrgId: z.string().uuid().nullable().optional() + defaultAuthOrgId: z.string().uuid().nullable().optional(), + enabledLoginMethods: z.string().array().nullable().optional() }); export type TSuperAdmin = z.infer; diff --git a/backend/src/server/routes/v1/admin-router.ts b/backend/src/server/routes/v1/admin-router.ts index 24c7e2a6e4..4557152bdb 100644 --- a/backend/src/server/routes/v1/admin-router.ts +++ b/backend/src/server/routes/v1/admin-router.ts @@ -8,6 +8,7 @@ import { verifySuperAdmin } from "@app/server/plugins/auth/superAdmin"; import { verifyAuth } from "@app/server/plugins/auth/verify-auth"; import { AuthMode } from "@app/services/auth/auth-type"; import { getServerCfg } from "@app/services/super-admin/super-admin-service"; +import { LoginMethod } from "@app/services/super-admin/super-admin-types"; import { PostHogEventTypes } from "@app/services/telemetry/telemetry-types"; export const registerAdminRouter = async (server: FastifyZodProvider) => { @@ -54,7 +55,14 @@ export const registerAdminRouter = async (server: FastifyZodProvider) => { trustSamlEmails: z.boolean().optional(), trustLdapEmails: z.boolean().optional(), trustOidcEmails: z.boolean().optional(), - defaultAuthOrgId: z.string().optional().nullable() + defaultAuthOrgId: z.string().optional().nullable(), + enabledLoginMethods: z + .nativeEnum(LoginMethod) + .array() + .optional() + .refine((methods) => !methods || methods.length > 0, { + message: "At least one login method should be enabled." + }) }), response: { 200: z.object({ diff --git a/backend/src/services/super-admin/super-admin-types.ts b/backend/src/services/super-admin/super-admin-types.ts index e444c8843a..f622c8f174 100644 --- a/backend/src/services/super-admin/super-admin-types.ts +++ b/backend/src/services/super-admin/super-admin-types.ts @@ -15,3 +15,13 @@ export type TAdminSignUpDTO = { ip: string; userAgent: string; }; + +export enum LoginMethod { + EMAIL = "email", + GOOGLE = "google", + GITHUB = "github", + GITLAB = "gitlab", + SAML = "saml", + LDAP = "ldap", + OIDC = "oidc" +} diff --git a/frontend/src/hooks/api/admin/types.ts b/frontend/src/hooks/api/admin/types.ts index 524bc6ace0..4d5add1e0e 100644 --- a/frontend/src/hooks/api/admin/types.ts +++ b/frontend/src/hooks/api/admin/types.ts @@ -1,3 +1,13 @@ +export enum LoginMethod { + EMAIL = "email", + GOOGLE = "google", + GITHUB = "github", + GITLAB = "gitlab", + SAML = "saml", + LDAP = "ldap", + OIDC = "oidc" +} + export type TServerConfig = { initialized: boolean; allowSignUp: boolean; @@ -9,6 +19,7 @@ export type TServerConfig = { isSecretScanningDisabled: boolean; defaultAuthOrgSlug: string | null; defaultAuthOrgId: string | null; + enabledLoginMethods: LoginMethod[]; }; export type TCreateAdminUserDTO = { diff --git a/frontend/src/views/Login/components/InitialStep/InitialStep.tsx b/frontend/src/views/Login/components/InitialStep/InitialStep.tsx index 0616ee58d1..83615ccf56 100644 --- a/frontend/src/views/Login/components/InitialStep/InitialStep.tsx +++ b/frontend/src/views/Login/components/InitialStep/InitialStep.tsx @@ -15,6 +15,7 @@ import { CAPTCHA_SITE_KEY } from "@app/components/utilities/config"; import { Button, Input } from "@app/components/v2"; import { useServerConfig } from "@app/context"; import { useFetchServerStatus } from "@app/hooks/api"; +import { LoginMethod } from "@app/hooks/api/admin/types"; import { useNavigateToSelectOrganization } from "../../Login.utils"; @@ -162,154 +163,188 @@ export const InitialStep = ({ setStep, email, setEmail, password, setPassword }:

Login to Infisical

-
- -
-
- +
+ ))} + {!config.enabledLoginMethods || + (config.enabledLoginMethods.includes(LoginMethod.GITHUB) && ( +
+ -
-
- +
+ ))} + {!config.enabledLoginMethods || + (config.enabledLoginMethods.includes(LoginMethod.GITLAB) && ( +
+ -
-
- -
-
- -
-
- -
-
-
- or -
-
-
- setEmail(e.target.value)} - type="email" - placeholder="Enter your email..." - isRequired - autoComplete="username" - className="h-10" - /> -
-
- setPassword(e.target.value)} - type="password" - placeholder="Enter your password..." - isRequired - autoComplete="current-password" - id="current-password" - className="select:-webkit-autofill:focus h-10" - /> -
- {shouldShowCaptcha && ( -
- setCaptchaToken(token)} - ref={captchaRef} - /> -
- )} -
- -
+ window.close(); + }} + leftIcon={} + className="mx-0 h-10 w-full" + > + Continue with GitLab + +
+ ))} + {!config.enabledLoginMethods || + (config.enabledLoginMethods.includes(LoginMethod.SAML) && ( +
+ +
+ ))} + {!config.enabledLoginMethods || + (config.enabledLoginMethods.includes(LoginMethod.OIDC) && ( +
+ +
+ ))} + {!config.enabledLoginMethods || + (config.enabledLoginMethods.includes(LoginMethod.LDAP) && ( +
+ +
+ ))} + + {!config.enabledLoginMethods || + (config.enabledLoginMethods.length > 1 && + config.enabledLoginMethods.includes(LoginMethod.EMAIL) && ( +
+
+ or +
+
+ ))} + {!config.enabledLoginMethods || + (config.enabledLoginMethods.includes(LoginMethod.EMAIL) && ( + <> +
+ setEmail(e.target.value)} + type="email" + placeholder="Enter your email..." + isRequired + autoComplete="username" + className="h-10" + /> +
+
+ setPassword(e.target.value)} + type="password" + placeholder="Enter your password..." + isRequired + autoComplete="current-password" + id="current-password" + className="select:-webkit-autofill:focus h-10" + /> +
+ {shouldShowCaptcha && ( +
+ setCaptchaToken(token)} + ref={captchaRef} + /> +
+ )} +
+ +
+ + ))} {!isLoading && loginError && } {config.allowSignUp ? (
diff --git a/frontend/src/views/admin/DashboardPage/AuthPanel.tsx b/frontend/src/views/admin/DashboardPage/AuthPanel.tsx new file mode 100644 index 0000000000..0060cb095a --- /dev/null +++ b/frontend/src/views/admin/DashboardPage/AuthPanel.tsx @@ -0,0 +1,251 @@ +import { Controller, useForm } from "react-hook-form"; +import { zodResolver } from "@hookform/resolvers/zod"; +import { z } from "zod"; + +import { createNotification } from "@app/components/notifications"; +import { Button, FormControl, Switch } from "@app/components/v2"; +import { useServerConfig } from "@app/context"; +import { useUpdateServerConfig } from "@app/hooks/api"; +import { LoginMethod } from "@app/hooks/api/admin/types"; + +const formSchema = z.object({ + isEmailEnabled: z.boolean(), + isGoogleEnabled: z.boolean(), + isGithubEnabled: z.boolean(), + isGitlabEnabled: z.boolean(), + isSamlEnabled: z.boolean(), + isLdapEnabled: z.boolean(), + isOidcEnabled: z.boolean() +}); + +type TAuthForm = z.infer; + +export const AuthPanel = () => { + const { config } = useServerConfig(); + const { enabledLoginMethods } = config; + const { mutateAsync: updateServerConfig } = useUpdateServerConfig(); + + const { + control, + handleSubmit, + formState: { isSubmitting, isDirty } + } = useForm({ + resolver: zodResolver(formSchema), + values: enabledLoginMethods + ? { + isEmailEnabled: enabledLoginMethods.includes(LoginMethod.EMAIL), + isGoogleEnabled: enabledLoginMethods.includes(LoginMethod.GOOGLE), + isGithubEnabled: enabledLoginMethods.includes(LoginMethod.GITHUB), + isGitlabEnabled: enabledLoginMethods.includes(LoginMethod.GITLAB), + isSamlEnabled: enabledLoginMethods.includes(LoginMethod.SAML), + isLdapEnabled: enabledLoginMethods.includes(LoginMethod.LDAP), + isOidcEnabled: enabledLoginMethods.includes(LoginMethod.OIDC) + } + : { + isEmailEnabled: true, + isGoogleEnabled: true, + isGithubEnabled: true, + isGitlabEnabled: true, + isSamlEnabled: true, + isLdapEnabled: true, + isOidcEnabled: true + } + }); + + const onAuthFormSubmit = async (formData: TAuthForm) => { + try { + const enabledMethods: LoginMethod[] = []; + if (formData.isEmailEnabled) { + enabledMethods.push(LoginMethod.EMAIL); + } + + if (formData.isGoogleEnabled) { + enabledMethods.push(LoginMethod.GOOGLE); + } + + if (formData.isGithubEnabled) { + enabledMethods.push(LoginMethod.GITHUB); + } + + if (formData.isGitlabEnabled) { + enabledMethods.push(LoginMethod.GITLAB); + } + + if (formData.isSamlEnabled) { + enabledMethods.push(LoginMethod.SAML); + } + + if (formData.isLdapEnabled) { + enabledMethods.push(LoginMethod.LDAP); + } + + if (formData.isOidcEnabled) { + enabledMethods.push(LoginMethod.OIDC); + } + + if (!enabledMethods.length) { + createNotification({ + type: "error", + text: "At least one login method should be enabled." + }); + return; + } + + await updateServerConfig({ + enabledLoginMethods: enabledMethods + }); + + createNotification({ + text: "Login methods have been successfully updated.", + type: "success" + }); + } catch (e) { + console.error(e); + createNotification({ + type: "error", + text: "Failed to update login methods." + }); + } + }; + + return ( +
+
+
Login Methods
+
+ Select the login methods available to users +
+ { + return ( + + field.onChange(value)} + isChecked={field.value} + > +

Email

+
+
+ ); + }} + /> + { + return ( + + field.onChange(value)} + isChecked={field.value} + > +

Google SSO

+
+
+ ); + }} + /> + { + return ( + + field.onChange(value)} + isChecked={field.value} + > +

Github SSO

+
+
+ ); + }} + /> + { + return ( + + field.onChange(value)} + isChecked={field.value} + > +

Gitlab SSO

+
+
+ ); + }} + /> + { + return ( + + field.onChange(value)} + isChecked={field.value} + > +

SAML SSO

+
+
+ ); + }} + /> + { + return ( + + field.onChange(value)} + isChecked={field.value} + > +

OIDC SSO

+
+
+ ); + }} + /> +
+ { + return ( + + field.onChange(value)} + isChecked={field.value} + > +

LDAP

+
+
+ ); + }} + /> + + + ); +}; diff --git a/frontend/src/views/admin/DashboardPage/DashboardPage.tsx b/frontend/src/views/admin/DashboardPage/DashboardPage.tsx index 134a67f8cd..bf8a5a4a9e 100644 --- a/frontend/src/views/admin/DashboardPage/DashboardPage.tsx +++ b/frontend/src/views/admin/DashboardPage/DashboardPage.tsx @@ -24,10 +24,12 @@ import { import { useOrganization, useServerConfig, useUser } from "@app/context"; import { useGetOrganizations, useUpdateServerConfig } from "@app/hooks/api"; +import { AuthPanel } from "./AuthPanel"; import { RateLimitPanel } from "./RateLimitPanel"; enum TabSections { Settings = "settings", + Auth = "auth", RateLimit = "rate-limit" } @@ -131,6 +133,7 @@ export const AdminDashboardPage = () => {
General + Auth Rate Limit
@@ -203,7 +206,8 @@ export const AdminDashboardPage = () => { Default organization
- Select the default organization you want to set for SAML/LDAP based logins. When selected, user logins will be automatically scoped to the selected organization. + Select the default organization you want to set for SAML/LDAP based logins. When + selected, user logins will be automatically scoped to the selected organization.
{ + + + From e1ed37c7135caf3e916bcbd9d56e182bdb44ab4d Mon Sep 17 00:00:00 2001 From: Sheen Capadngan Date: Thu, 27 Jun 2024 01:07:28 +0800 Subject: [PATCH 003/145] misc: adjusted OrgSettingsPage and PersonalSettingsPage to include toggle --- .../components/OrgAuthTab/OrgAuthTab.tsx | 26 +++++++++++++++---- .../OrgAuthTab/OrgGeneralAuthSection.tsx | 2 +- .../components/OrgAuthTab/OrgLDAPSection.tsx | 2 +- .../components/OrgAuthTab/OrgOIDCSection.tsx | 2 +- .../components/OrgAuthTab/OrgSSOSection.tsx | 3 ++- .../AuthMethodSection/AuthMethodSection.tsx | 23 +++++++++++----- 6 files changed, 42 insertions(+), 16 deletions(-) diff --git a/frontend/src/views/Settings/OrgSettingsPage/components/OrgAuthTab/OrgAuthTab.tsx b/frontend/src/views/Settings/OrgSettingsPage/components/OrgAuthTab/OrgAuthTab.tsx index 31d6987bd8..b1a079922f 100644 --- a/frontend/src/views/Settings/OrgSettingsPage/components/OrgAuthTab/OrgAuthTab.tsx +++ b/frontend/src/views/Settings/OrgSettingsPage/components/OrgAuthTab/OrgAuthTab.tsx @@ -1,5 +1,8 @@ -import { OrgPermissionActions, OrgPermissionSubjects } from "@app/context"; +import { useCallback } from "react"; + +import { OrgPermissionActions, OrgPermissionSubjects, useServerConfig } from "@app/context"; import { withPermission } from "@app/hoc"; +import { LoginMethod } from "@app/hooks/api/admin/types"; import { OrgGeneralAuthSection } from "./OrgGeneralAuthSection"; import { OrgLDAPSection } from "./OrgLDAPSection"; @@ -9,12 +12,25 @@ import { OrgSSOSection } from "./OrgSSOSection"; export const OrgAuthTab = withPermission( () => { + const { + config: { enabledLoginMethods } + } = useServerConfig(); + + const shouldDisplaySection = useCallback( + (method: LoginMethod) => !enabledLoginMethods || enabledLoginMethods.includes(method), + [enabledLoginMethods] + ); + return (
- - - - + {shouldDisplaySection(LoginMethod.SAML) && ( + <> + + + + )} + {shouldDisplaySection(LoginMethod.OIDC) && } + {shouldDisplaySection(LoginMethod.LDAP) && }
); diff --git a/frontend/src/views/Settings/OrgSettingsPage/components/OrgAuthTab/OrgGeneralAuthSection.tsx b/frontend/src/views/Settings/OrgSettingsPage/components/OrgAuthTab/OrgGeneralAuthSection.tsx index 7c3af9493f..6e4eca456b 100644 --- a/frontend/src/views/Settings/OrgSettingsPage/components/OrgAuthTab/OrgGeneralAuthSection.tsx +++ b/frontend/src/views/Settings/OrgSettingsPage/components/OrgAuthTab/OrgGeneralAuthSection.tsx @@ -11,7 +11,6 @@ import { useLogoutUser, useUpdateOrg } from "@app/hooks/api"; import { usePopUp } from "@app/hooks/usePopUp"; export const OrgGeneralAuthSection = () => { - const { currentOrg } = useOrganization(); const { subscription } = useSubscription(); const { popUp, handlePopUpOpen, handlePopUpToggle } = usePopUp(["upgradePlan"] as const); @@ -88,6 +87,7 @@ export const OrgGeneralAuthSection = () => { Enforce members to authenticate via SAML to access this organization

+
handlePopUpToggle("upgradePlan", isOpen)} diff --git a/frontend/src/views/Settings/OrgSettingsPage/components/OrgAuthTab/OrgLDAPSection.tsx b/frontend/src/views/Settings/OrgSettingsPage/components/OrgAuthTab/OrgLDAPSection.tsx index 87d0f28aff..0d34fcefc0 100644 --- a/frontend/src/views/Settings/OrgSettingsPage/components/OrgAuthTab/OrgLDAPSection.tsx +++ b/frontend/src/views/Settings/OrgSettingsPage/components/OrgAuthTab/OrgLDAPSection.tsx @@ -94,7 +94,6 @@ export const OrgLDAPSection = (): JSX.Element => { return ( <> -

LDAP

@@ -151,6 +150,7 @@ export const OrgLDAPSection = (): JSX.Element => {

)} +
{ return ( <> -

OIDC

@@ -103,6 +102,7 @@ export const OrgOIDCSection = (): JSX.Element => {

)} +
{ const { currentOrg } = useOrganization(); const { subscription } = useSubscription(); - + const { data, isLoading } = useGetSSOConfig(currentOrg?.id ?? ""); const { mutateAsync } = useUpdateSSOConfig(); const { popUp, handlePopUpOpen, handlePopUpClose, handlePopUpToggle } = usePopUp([ @@ -115,6 +115,7 @@ export const OrgSSOSection = (): JSX.Element => { Allow members to authenticate into Infisical with SAML

+
; export const AuthMethodSection = () => { - const { user } = useUser(); + const { config } = useServerConfig(); const { mutateAsync } = useUpdateUserAuthMethods(); const { reset, setValue, watch } = useForm({ @@ -102,6 +103,14 @@ export const AuthMethodSection = () => {
{user && authMethodOpts.map((authMethodOpt) => { + // only filter when enabledLoginMethods is explicitly configured by admin + if ( + config.enabledLoginMethods && + !config.enabledLoginMethods.includes(authMethodOpt.loginMethod) + ) { + return null; + } + return (
From 9daa5badec8657f8fd0b8e3f8f129824e30bcd65 Mon Sep 17 00:00:00 2001 From: Sheen Capadngan Date: Thu, 27 Jun 2024 01:15:50 +0800 Subject: [PATCH 004/145] misc: made reusable helper for login page --- .../components/InitialStep/InitialStep.tsx | 339 +++++++++--------- 1 file changed, 165 insertions(+), 174 deletions(-) diff --git a/frontend/src/views/Login/components/InitialStep/InitialStep.tsx b/frontend/src/views/Login/components/InitialStep/InitialStep.tsx index 83615ccf56..d97126f671 100644 --- a/frontend/src/views/Login/components/InitialStep/InitialStep.tsx +++ b/frontend/src/views/Login/components/InitialStep/InitialStep.tsx @@ -62,6 +62,12 @@ export const InitialStep = ({ setStep, email, setEmail, password, setPassword }: } }, []); + const shouldDisplayLoginMethod = useCallback( + (method: LoginMethod) => + !config.enabledLoginMethods || config.enabledLoginMethods.includes(method), + [config] + ); + const handleLogin = async (e: FormEvent) => { e.preventDefault(); try { @@ -163,188 +169,173 @@ export const InitialStep = ({ setStep, email, setEmail, password, setPassword }:

Login to Infisical

- {!config.enabledLoginMethods || - (config.enabledLoginMethods.includes(LoginMethod.GOOGLE) && ( -
- -
- ))} - {!config.enabledLoginMethods || - (config.enabledLoginMethods.includes(LoginMethod.GITHUB) && ( -
- +
+ )} + {shouldDisplayLoginMethod(LoginMethod.GITHUB) && ( +
+ -
- ))} - {!config.enabledLoginMethods || - (config.enabledLoginMethods.includes(LoginMethod.GITLAB) && ( -
- +
+ )} + {shouldDisplayLoginMethod(LoginMethod.GITLAB) && ( +
+ -
- ))} - {!config.enabledLoginMethods || - (config.enabledLoginMethods.includes(LoginMethod.SAML) && ( -
- -
- ))} - {!config.enabledLoginMethods || - (config.enabledLoginMethods.includes(LoginMethod.OIDC) && ( -
- -
- ))} - {!config.enabledLoginMethods || - (config.enabledLoginMethods.includes(LoginMethod.LDAP) && ( -
- -
- ))} + window.close(); + }} + leftIcon={} + className="mx-0 h-10 w-full" + > + Continue with GitLab + +
+ )} + {shouldDisplayLoginMethod(LoginMethod.SAML) && ( +
+ +
+ )} + {shouldDisplayLoginMethod(LoginMethod.OIDC) && ( +
+ +
+ )} + {shouldDisplayLoginMethod(LoginMethod.LDAP) && ( +
+ +
+ )} - {!config.enabledLoginMethods || - (config.enabledLoginMethods.length > 1 && - config.enabledLoginMethods.includes(LoginMethod.EMAIL) && ( -
-
- or -
-
- ))} - {!config.enabledLoginMethods || - (config.enabledLoginMethods.includes(LoginMethod.EMAIL) && ( - <> -
- setEmail(e.target.value)} - type="email" - placeholder="Enter your email..." - isRequired - autoComplete="username" - className="h-10" + {shouldDisplayLoginMethod(LoginMethod.EMAIL) && config.enabledLoginMethods.length > 1 && ( +
+
+ or +
+
+ )} + {shouldDisplayLoginMethod(LoginMethod.EMAIL) && ( + <> +
+ setEmail(e.target.value)} + type="email" + placeholder="Enter your email..." + isRequired + autoComplete="username" + className="h-10" + /> +
+
+ setPassword(e.target.value)} + type="password" + placeholder="Enter your password..." + isRequired + autoComplete="current-password" + id="current-password" + className="select:-webkit-autofill:focus h-10" + /> +
+ {shouldShowCaptcha && ( +
+ setCaptchaToken(token)} + ref={captchaRef} />
-
- setPassword(e.target.value)} - type="password" - placeholder="Enter your password..." - isRequired - autoComplete="current-password" - id="current-password" - className="select:-webkit-autofill:focus h-10" - /> -
- {shouldShowCaptcha && ( -
- setCaptchaToken(token)} - ref={captchaRef} - /> -
- )} -
- -
- - ))} + )} +
+ +
+ + )} {!isLoading && loginError && } {config.allowSignUp ? (
From db39d03713403206725d1e2d0344020ab648074f Mon Sep 17 00:00:00 2001 From: Sheen Capadngan Date: Thu, 27 Jun 2024 01:59:02 +0800 Subject: [PATCH 005/145] misc: added check to backend --- .../src/services/auth/auth-login-service.ts | 35 +++++++++++++++++++ .../components/InitialStep/InitialStep.tsx | 4 +-- 2 files changed, 37 insertions(+), 2 deletions(-) diff --git a/backend/src/services/auth/auth-login-service.ts b/backend/src/services/auth/auth-login-service.ts index 8090b937ab..8207e4bec6 100644 --- a/backend/src/services/auth/auth-login-service.ts +++ b/backend/src/services/auth/auth-login-service.ts @@ -17,6 +17,7 @@ import { TAuthTokenServiceFactory } from "../auth-token/auth-token-service"; import { TokenType } from "../auth-token/auth-token-types"; import { TOrgDALFactory } from "../org/org-dal"; import { SmtpTemplates, TSmtpService } from "../smtp/smtp-service"; +import { LoginMethod } from "../super-admin/super-admin-types"; import { TUserDALFactory } from "../user/user-dal"; import { enforceUserLockStatus, validateProviderAuthToken } from "./auth-fns"; import { @@ -507,6 +508,40 @@ export const authLoginServiceFactory = ({ let user = await userDAL.findUserByUsername(email); const serverCfg = await getServerCfg(); + if (serverCfg.enabledLoginMethods) { + switch (authMethod) { + case AuthMethod.GITHUB: { + if (!serverCfg.enabledLoginMethods.includes(LoginMethod.GITHUB)) { + throw new BadRequestError({ + message: "Login with Github is disabled.", + name: "Oauth 2 login" + }); + } + break; + } + case AuthMethod.GOOGLE: { + if (!serverCfg.enabledLoginMethods.includes(LoginMethod.GOOGLE)) { + throw new BadRequestError({ + message: "Login with Google is disabled.", + name: "Oauth 2 login" + }); + } + break; + } + case AuthMethod.GITLAB: { + if (!serverCfg.enabledLoginMethods.includes(LoginMethod.GITLAB)) { + throw new BadRequestError({ + message: "Login with Gitlab is disabled.", + name: "Oauth 2 login" + }); + } + break; + } + default: + break; + } + } + const appCfg = getConfig(); if (!user) { diff --git a/frontend/src/views/Login/components/InitialStep/InitialStep.tsx b/frontend/src/views/Login/components/InitialStep/InitialStep.tsx index d97126f671..99e80048af 100644 --- a/frontend/src/views/Login/components/InitialStep/InitialStep.tsx +++ b/frontend/src/views/Login/components/InitialStep/InitialStep.tsx @@ -276,8 +276,8 @@ export const InitialStep = ({ setStep, email, setEmail, password, setPassword }:
)} - - {shouldDisplayLoginMethod(LoginMethod.EMAIL) && config.enabledLoginMethods.length > 1 && ( + {(!config.enabledLoginMethods || + (shouldDisplayLoginMethod(LoginMethod.EMAIL) && config.enabledLoginMethods.length > 1)) && (
or From c460f226650313ad1ff271d2113829d9cc14966f Mon Sep 17 00:00:00 2001 From: Sheen Capadngan Date: Thu, 27 Jun 2024 12:40:56 +0800 Subject: [PATCH 006/145] misc: added backend disable checks --- .../ee/services/ldap-config/ldap-config-service.ts | 8 ++++++++ backend/src/ee/services/oidc/oidc-config-service.ts | 8 ++++++++ .../ee/services/saml-config/saml-config-service.ts | 8 ++++++++ backend/src/services/auth/auth-login-service.ts | 13 +++++++++++++ 4 files changed, 37 insertions(+) diff --git a/backend/src/ee/services/ldap-config/ldap-config-service.ts b/backend/src/ee/services/ldap-config/ldap-config-service.ts index 63565d94c2..7434862fc7 100644 --- a/backend/src/ee/services/ldap-config/ldap-config-service.ts +++ b/backend/src/ee/services/ldap-config/ldap-config-service.ts @@ -34,6 +34,7 @@ import { TProjectBotDALFactory } from "@app/services/project-bot/project-bot-dal import { TProjectKeyDALFactory } from "@app/services/project-key/project-key-dal"; import { SmtpTemplates, TSmtpService } from "@app/services/smtp/smtp-service"; import { getServerCfg } from "@app/services/super-admin/super-admin-service"; +import { LoginMethod } from "@app/services/super-admin/super-admin-types"; import { TUserDALFactory } from "@app/services/user/user-dal"; import { normalizeUsername } from "@app/services/user/user-fns"; import { TUserAliasDALFactory } from "@app/services/user-alias/user-alias-dal"; @@ -411,6 +412,13 @@ export const ldapConfigServiceFactory = ({ }: TLdapLoginDTO) => { const appCfg = getConfig(); const serverCfg = await getServerCfg(); + + if (serverCfg.enabledLoginMethods && !serverCfg.enabledLoginMethods.includes(LoginMethod.LDAP)) { + throw new BadRequestError({ + message: "Login with LDAP is disabled." + }); + } + let userAlias = await userAliasDAL.findOne({ externalId, orgId, diff --git a/backend/src/ee/services/oidc/oidc-config-service.ts b/backend/src/ee/services/oidc/oidc-config-service.ts index b983492bc2..58b098522c 100644 --- a/backend/src/ee/services/oidc/oidc-config-service.ts +++ b/backend/src/ee/services/oidc/oidc-config-service.ts @@ -26,6 +26,7 @@ import { TOrgDALFactory } from "@app/services/org/org-dal"; import { TOrgMembershipDALFactory } from "@app/services/org-membership/org-membership-dal"; import { SmtpTemplates, TSmtpService } from "@app/services/smtp/smtp-service"; import { getServerCfg } from "@app/services/super-admin/super-admin-service"; +import { LoginMethod } from "@app/services/super-admin/super-admin-types"; import { TUserDALFactory } from "@app/services/user/user-dal"; import { normalizeUsername } from "@app/services/user/user-fns"; import { TUserAliasDALFactory } from "@app/services/user-alias/user-alias-dal"; @@ -157,6 +158,13 @@ export const oidcConfigServiceFactory = ({ const oidcLogin = async ({ externalId, email, firstName, lastName, orgId, callbackPort }: TOidcLoginDTO) => { const serverCfg = await getServerCfg(); + + if (serverCfg.enabledLoginMethods && !serverCfg.enabledLoginMethods.includes(LoginMethod.OIDC)) { + throw new BadRequestError({ + message: "Login with OIDC is disabled." + }); + } + const appCfg = getConfig(); const userAlias = await userAliasDAL.findOne({ externalId, diff --git a/backend/src/ee/services/saml-config/saml-config-service.ts b/backend/src/ee/services/saml-config/saml-config-service.ts index 3cc51e1c20..286a85746d 100644 --- a/backend/src/ee/services/saml-config/saml-config-service.ts +++ b/backend/src/ee/services/saml-config/saml-config-service.ts @@ -28,6 +28,7 @@ import { TOrgDALFactory } from "@app/services/org/org-dal"; import { TOrgMembershipDALFactory } from "@app/services/org-membership/org-membership-dal"; import { SmtpTemplates, TSmtpService } from "@app/services/smtp/smtp-service"; import { getServerCfg } from "@app/services/super-admin/super-admin-service"; +import { LoginMethod } from "@app/services/super-admin/super-admin-types"; import { TUserDALFactory } from "@app/services/user/user-dal"; import { normalizeUsername } from "@app/services/user/user-fns"; import { TUserAliasDALFactory } from "@app/services/user-alias/user-alias-dal"; @@ -335,6 +336,13 @@ export const samlConfigServiceFactory = ({ }: TSamlLoginDTO) => { const appCfg = getConfig(); const serverCfg = await getServerCfg(); + + if (serverCfg.enabledLoginMethods && !serverCfg.enabledLoginMethods.includes(LoginMethod.SAML)) { + throw new BadRequestError({ + message: "Login with SAML is disabled." + }); + } + const userAlias = await userAliasDAL.findOne({ externalId, orgId, diff --git a/backend/src/services/auth/auth-login-service.ts b/backend/src/services/auth/auth-login-service.ts index 8207e4bec6..24ae087b7a 100644 --- a/backend/src/services/auth/auth-login-service.ts +++ b/backend/src/services/auth/auth-login-service.ts @@ -159,9 +159,22 @@ export const authLoginServiceFactory = ({ const userEnc = await userDAL.findUserEncKeyByUsername({ username: email }); + const serverCfg = await getServerCfg(); + + if ( + serverCfg.enabledLoginMethods && + !serverCfg.enabledLoginMethods.includes(LoginMethod.EMAIL) && + !providerAuthToken + ) { + throw new BadRequestError({ + message: "Login with email is disabled." + }); + } + if (!userEnc || (userEnc && !userEnc.isAccepted)) { throw new Error("Failed to find user"); } + if (!userEnc.authMethods?.includes(AuthMethod.EMAIL)) { validateProviderAuthToken(providerAuthToken as string, email); } From b3463e0d0fe563ccc8f5c4a744aaf618d1c0020f Mon Sep 17 00:00:00 2001 From: Sheen Capadngan Date: Thu, 27 Jun 2024 12:55:39 +0800 Subject: [PATCH 007/145] misc: added explicit comment of intent --- frontend/src/views/admin/DashboardPage/AuthPanel.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/frontend/src/views/admin/DashboardPage/AuthPanel.tsx b/frontend/src/views/admin/DashboardPage/AuthPanel.tsx index 0060cb095a..f2fab83ec1 100644 --- a/frontend/src/views/admin/DashboardPage/AuthPanel.tsx +++ b/frontend/src/views/admin/DashboardPage/AuthPanel.tsx @@ -31,6 +31,7 @@ export const AuthPanel = () => { formState: { isSubmitting, isDirty } } = useForm({ resolver: zodResolver(formSchema), + // if not yet explicitly defined by the admin, all login methods should be enabled by default values: enabledLoginMethods ? { isEmailEnabled: enabledLoginMethods.includes(LoginMethod.EMAIL), From 92a663a17d3f1f3879ea45e3c80d1778148c041c Mon Sep 17 00:00:00 2001 From: Sheen Capadngan Date: Thu, 27 Jun 2024 13:24:26 +0800 Subject: [PATCH 008/145] misc: design change to finalize scim section in org settings --- .../OrgSettingsPage/components/OrgAuthTab/OrgSCIMSection.tsx | 2 -- 1 file changed, 2 deletions(-) diff --git a/frontend/src/views/Settings/OrgSettingsPage/components/OrgAuthTab/OrgSCIMSection.tsx b/frontend/src/views/Settings/OrgSettingsPage/components/OrgAuthTab/OrgSCIMSection.tsx index 601643db80..ffec3f3558 100644 --- a/frontend/src/views/Settings/OrgSettingsPage/components/OrgAuthTab/OrgSCIMSection.tsx +++ b/frontend/src/views/Settings/OrgSettingsPage/components/OrgAuthTab/OrgSCIMSection.tsx @@ -13,7 +13,6 @@ import { usePopUp } from "@app/hooks/usePopUp"; import { ScimTokenModal } from "./ScimTokenModal"; export const OrgScimSection = () => { - const { currentOrg } = useOrganization(); const { subscription } = useSubscription(); const { popUp, handlePopUpOpen, handlePopUpToggle } = usePopUp([ @@ -59,7 +58,6 @@ export const OrgScimSection = () => { return ( <> -

SCIM

From d6881e2e6831429ded24526e21ff210812e71af9 Mon Sep 17 00:00:00 2001 From: Sheen Capadngan Date: Thu, 27 Jun 2024 13:53:12 +0800 Subject: [PATCH 009/145] misc: added signup option filtering --- .../components/signup/InitialSignupStep.tsx | 129 ++++++++++-------- 1 file changed, 74 insertions(+), 55 deletions(-) diff --git a/frontend/src/components/signup/InitialSignupStep.tsx b/frontend/src/components/signup/InitialSignupStep.tsx index e5c23f3334..8df6759132 100644 --- a/frontend/src/components/signup/InitialSignupStep.tsx +++ b/frontend/src/components/signup/InitialSignupStep.tsx @@ -1,9 +1,13 @@ +import { useCallback } from "react"; import { useTranslation } from "react-i18next"; import Link from "next/link"; import { faGithub, faGitlab, faGoogle } from "@fortawesome/free-brands-svg-icons"; import { faEnvelope } from "@fortawesome/free-regular-svg-icons"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; +import { useServerConfig } from "@app/context"; +import { LoginMethod } from "@app/hooks/api/admin/types"; + import { Button } from "../v2"; export default function InitialSignupStep({ @@ -12,67 +16,82 @@ export default function InitialSignupStep({ setIsSignupWithEmail: (value: boolean) => void; }) { const { t } = useTranslation(); + const { config } = useServerConfig(); + + const shouldDisplaySignupMethod = useCallback( + (method: LoginMethod) => + !config.enabledLoginMethods || config.enabledLoginMethods.includes(method), + [config] + ); return (

{t("signup.initial-title")}

-
- -
-
- -
-
- -
-
- -
+ {shouldDisplaySignupMethod(LoginMethod.GOOGLE) && ( +
+ +
+ )} + {shouldDisplaySignupMethod(LoginMethod.GITHUB) && ( +
+ +
+ )} + {shouldDisplaySignupMethod(LoginMethod.GITLAB) && ( +
+ +
+ )} + {shouldDisplaySignupMethod(LoginMethod.EMAIL) && ( +
+ +
+ )}
{t("signup.create-policy")}
From 59fc34412dde33add0068a73d2e93af344e3bdbe Mon Sep 17 00:00:00 2001 From: Maidul Islam Date: Thu, 27 Jun 2024 20:35:15 -0400 Subject: [PATCH 010/145] small nits for admin login toggle pr --- .../src/ee/services/ldap-config/ldap-config-service.ts | 2 +- backend/src/ee/services/oidc/oidc-config-service.ts | 2 +- .../src/ee/services/saml-config/saml-config-service.ts | 2 +- backend/src/services/auth/auth-login-service.ts | 8 ++++---- frontend/src/views/admin/DashboardPage/AuthPanel.tsx | 2 +- frontend/src/views/admin/DashboardPage/DashboardPage.tsx | 4 ++-- 6 files changed, 10 insertions(+), 10 deletions(-) diff --git a/backend/src/ee/services/ldap-config/ldap-config-service.ts b/backend/src/ee/services/ldap-config/ldap-config-service.ts index 7434862fc7..55129ca025 100644 --- a/backend/src/ee/services/ldap-config/ldap-config-service.ts +++ b/backend/src/ee/services/ldap-config/ldap-config-service.ts @@ -415,7 +415,7 @@ export const ldapConfigServiceFactory = ({ if (serverCfg.enabledLoginMethods && !serverCfg.enabledLoginMethods.includes(LoginMethod.LDAP)) { throw new BadRequestError({ - message: "Login with LDAP is disabled." + message: "Login with LDAP is disabled by administrator." }); } diff --git a/backend/src/ee/services/oidc/oidc-config-service.ts b/backend/src/ee/services/oidc/oidc-config-service.ts index 58b098522c..55c929b9a9 100644 --- a/backend/src/ee/services/oidc/oidc-config-service.ts +++ b/backend/src/ee/services/oidc/oidc-config-service.ts @@ -161,7 +161,7 @@ export const oidcConfigServiceFactory = ({ if (serverCfg.enabledLoginMethods && !serverCfg.enabledLoginMethods.includes(LoginMethod.OIDC)) { throw new BadRequestError({ - message: "Login with OIDC is disabled." + message: "Login with OIDC is disabled by administrator." }); } diff --git a/backend/src/ee/services/saml-config/saml-config-service.ts b/backend/src/ee/services/saml-config/saml-config-service.ts index 286a85746d..9ac6c9c5ed 100644 --- a/backend/src/ee/services/saml-config/saml-config-service.ts +++ b/backend/src/ee/services/saml-config/saml-config-service.ts @@ -339,7 +339,7 @@ export const samlConfigServiceFactory = ({ if (serverCfg.enabledLoginMethods && !serverCfg.enabledLoginMethods.includes(LoginMethod.SAML)) { throw new BadRequestError({ - message: "Login with SAML is disabled." + message: "Login with SAML is disabled by administrator." }); } diff --git a/backend/src/services/auth/auth-login-service.ts b/backend/src/services/auth/auth-login-service.ts index 24ae087b7a..2ce900b471 100644 --- a/backend/src/services/auth/auth-login-service.ts +++ b/backend/src/services/auth/auth-login-service.ts @@ -167,7 +167,7 @@ export const authLoginServiceFactory = ({ !providerAuthToken ) { throw new BadRequestError({ - message: "Login with email is disabled." + message: "Login with email is disabled by administrator." }); } @@ -526,7 +526,7 @@ export const authLoginServiceFactory = ({ case AuthMethod.GITHUB: { if (!serverCfg.enabledLoginMethods.includes(LoginMethod.GITHUB)) { throw new BadRequestError({ - message: "Login with Github is disabled.", + message: "Login with Github is disabled by administrator.", name: "Oauth 2 login" }); } @@ -535,7 +535,7 @@ export const authLoginServiceFactory = ({ case AuthMethod.GOOGLE: { if (!serverCfg.enabledLoginMethods.includes(LoginMethod.GOOGLE)) { throw new BadRequestError({ - message: "Login with Google is disabled.", + message: "Login with Google is disabled by administrator.", name: "Oauth 2 login" }); } @@ -544,7 +544,7 @@ export const authLoginServiceFactory = ({ case AuthMethod.GITLAB: { if (!serverCfg.enabledLoginMethods.includes(LoginMethod.GITLAB)) { throw new BadRequestError({ - message: "Login with Gitlab is disabled.", + message: "Login with Gitlab is disabled by administrator.", name: "Oauth 2 login" }); } diff --git a/frontend/src/views/admin/DashboardPage/AuthPanel.tsx b/frontend/src/views/admin/DashboardPage/AuthPanel.tsx index f2fab83ec1..84e48ea0f6 100644 --- a/frontend/src/views/admin/DashboardPage/AuthPanel.tsx +++ b/frontend/src/views/admin/DashboardPage/AuthPanel.tsx @@ -117,7 +117,7 @@ export const AuthPanel = () => {
Login Methods
- Select the login methods available to users + Select the login methods you wish to allow for all users of this instance.
{

Admin Dashboard

-

Manage your Infisical instance.

+

Manage your instance level configurations.

{isUserLoading || isNotAllowed ? ( @@ -133,7 +133,7 @@ export const AdminDashboardPage = () => {
General - Auth + Authentication Rate Limit
From 04f54479cd6a968f2fd1e6e5bcc5459ddfa98fbd Mon Sep 17 00:00:00 2001 From: Sheen Capadngan Date: Sat, 29 Jun 2024 01:58:27 +0800 Subject: [PATCH 011/145] misc: implemented review comments --- backend/src/server/routes/v1/admin-router.ts | 2 +- .../super-admin/super-admin-service.ts | 37 +++++++++++++++++-- .../components/InitialStep/InitialStep.tsx | 6 ++- 3 files changed, 40 insertions(+), 5 deletions(-) diff --git a/backend/src/server/routes/v1/admin-router.ts b/backend/src/server/routes/v1/admin-router.ts index 4557152bdb..73d6cc7e78 100644 --- a/backend/src/server/routes/v1/admin-router.ts +++ b/backend/src/server/routes/v1/admin-router.ts @@ -78,7 +78,7 @@ export const registerAdminRouter = async (server: FastifyZodProvider) => { }); }, handler: async (req) => { - const config = await server.services.superAdmin.updateServerCfg(req.body); + const config = await server.services.superAdmin.updateServerCfg(req.body, req.permission.id); return { config }; } }); diff --git a/backend/src/services/super-admin/super-admin-service.ts b/backend/src/services/super-admin/super-admin-service.ts index 41b97efa42..a51282db6f 100644 --- a/backend/src/services/super-admin/super-admin-service.ts +++ b/backend/src/services/super-admin/super-admin-service.ts @@ -12,7 +12,7 @@ import { AuthMethod } from "../auth/auth-type"; import { TOrgServiceFactory } from "../org/org-service"; import { TUserDALFactory } from "../user/user-dal"; import { TSuperAdminDALFactory } from "./super-admin-dal"; -import { TAdminSignUpDTO } from "./super-admin-types"; +import { LoginMethod, TAdminSignUpDTO } from "./super-admin-types"; type TSuperAdminServiceFactoryDep = { serverCfgDAL: TSuperAdminDALFactory; @@ -79,7 +79,38 @@ export const superAdminServiceFactory = ({ return newCfg; }; - const updateServerCfg = async (data: TSuperAdminUpdate) => { + const updateServerCfg = async (data: TSuperAdminUpdate, userId: string) => { + if (data.enabledLoginMethods) { + const superAdminUser = await userDAL.findById(userId); + const loginMethodToAuthMethod = { + [LoginMethod.EMAIL]: [AuthMethod.EMAIL], + [LoginMethod.GOOGLE]: [AuthMethod.GOOGLE], + [LoginMethod.GITLAB]: [AuthMethod.GITLAB], + [LoginMethod.GITHUB]: [AuthMethod.GITHUB], + [LoginMethod.LDAP]: [AuthMethod.LDAP], + [LoginMethod.OIDC]: [AuthMethod.OIDC], + [LoginMethod.SAML]: [ + AuthMethod.AZURE_SAML, + AuthMethod.GOOGLE_SAML, + AuthMethod.JUMPCLOUD_SAML, + AuthMethod.KEYCLOAK_SAML, + AuthMethod.OKTA_SAML + ] + }; + + if ( + !data.enabledLoginMethods.some((loginMethod) => + loginMethodToAuthMethod[loginMethod as LoginMethod].some( + (authMethod) => superAdminUser.authMethods?.includes(authMethod) + ) + ) + ) { + throw new BadRequestError({ + message: + "Admin has insufficient authentication methods for update operation to complete without getting locked out." + }); + } + } const updatedServerCfg = await serverCfgDAL.updateById(ADMIN_CONFIG_DB_UUID, data); await keyStore.setItemWithExpiry(ADMIN_CONFIG_KEY, ADMIN_CONFIG_KEY_EXP, JSON.stringify(updatedServerCfg)); @@ -167,7 +198,7 @@ export const superAdminServiceFactory = ({ orgName: initialOrganizationName }); - await updateServerCfg({ initialized: true }); + await updateServerCfg({ initialized: true }, userInfo.user.id); const token = await authService.generateUserTokens({ user: userInfo.user, authMethod: AuthMethod.EMAIL, diff --git a/frontend/src/views/Login/components/InitialStep/InitialStep.tsx b/frontend/src/views/Login/components/InitialStep/InitialStep.tsx index 99e80048af..69a4188270 100644 --- a/frontend/src/views/Login/components/InitialStep/InitialStep.tsx +++ b/frontend/src/views/Login/components/InitialStep/InitialStep.tsx @@ -337,7 +337,11 @@ export const InitialStep = ({ setStep, email, setEmail, password, setPassword }: )} {!isLoading && loginError && } - {config.allowSignUp ? ( + {config.allowSignUp && + (shouldDisplayLoginMethod(LoginMethod.EMAIL) || + shouldDisplayLoginMethod(LoginMethod.GOOGLE) || + shouldDisplayLoginMethod(LoginMethod.GITHUB) || + shouldDisplayLoginMethod(LoginMethod.GITLAB)) ? (
From 5a1e43be4448fe2d1b069a9338a701414ae521c4 Mon Sep 17 00:00:00 2001 From: Sheen Capadngan Date: Sat, 29 Jun 2024 02:12:09 +0800 Subject: [PATCH 012/145] misc: only display recover when email login is enabled --- .../Login/components/InitialStep/InitialStep.tsx | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/frontend/src/views/Login/components/InitialStep/InitialStep.tsx b/frontend/src/views/Login/components/InitialStep/InitialStep.tsx index 69a4188270..06c4df835b 100644 --- a/frontend/src/views/Login/components/InitialStep/InitialStep.tsx +++ b/frontend/src/views/Login/components/InitialStep/InitialStep.tsx @@ -352,13 +352,15 @@ export const InitialStep = ({ setStep, email, setEmail, password, setPassword }: ) : (
)} -
- - - Forgot password? Recover your account - - -
+ {shouldDisplayLoginMethod(LoginMethod.EMAIL) && ( +
+ + + Forgot password? Recover your account + + +
+ )} ); }; From ae953add3d9d8925d837cc5edf500e7acd2140ba Mon Sep 17 00:00:00 2001 From: = Date: Tue, 2 Jul 2024 00:12:38 +0530 Subject: [PATCH 013/145] feat: dynamic secret for mssql completed --- backend/package-lock.json | 512 ++++++++++++++++++ backend/package.json | 1 + .../dynamic-secret/providers/models.ts | 3 +- frontend/src/hooks/api/dynamicSecret/types.ts | 3 +- .../SqlDatabaseInputForm.tsx | 37 +- .../EditDynamicSecretSqlProviderForm.tsx | 1 + 6 files changed, 550 insertions(+), 7 deletions(-) diff --git a/backend/package-lock.json b/backend/package-lock.json index 220d4305ca..20a5f7c21c 100644 --- a/backend/package-lock.json +++ b/backend/package-lock.json @@ -73,6 +73,7 @@ "posthog-node": "^3.6.2", "probot": "^13.0.0", "smee-client": "^2.0.0", + "tedious": "^18.2.1", "tweetnacl": "^1.0.3", "tweetnacl-util": "^0.15.1", "uuid": "^9.0.1", @@ -2910,6 +2911,351 @@ "tslib": "^2.3.1" } }, + "node_modules/@azure/abort-controller": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-1.1.0.tgz", + "integrity": "sha512-TrRLIoSQVzfAJX9H1JeFjzAoDGcoK1IYX1UImfceTZpsyYfWr09Ss1aHW1y5TrrR3iq6RZLBwJ3E24uwPhwahw==", + "dependencies": { + "tslib": "^2.2.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/@azure/core-auth": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@azure/core-auth/-/core-auth-1.7.2.tgz", + "integrity": "sha512-Igm/S3fDYmnMq1uKS38Ae1/m37B3zigdlZw+kocwEhh5GjyKjPrXKO2J6rzpC1wAxrNil/jX9BJRqBshyjnF3g==", + "dependencies": { + "@azure/abort-controller": "^2.0.0", + "@azure/core-util": "^1.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@azure/core-auth/node_modules/@azure/abort-controller": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-2.1.2.tgz", + "integrity": "sha512-nBrLsEWm4J2u5LpAPjxADTlq3trDgVZZXHNKabeXZtpq3d3AbN/KGO82R87rdDz5/lYB024rtEf10/q0urNgsA==", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@azure/core-client": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@azure/core-client/-/core-client-1.9.2.tgz", + "integrity": "sha512-kRdry/rav3fUKHl/aDLd/pDLcB+4pOFwPPTVEExuMyaI5r+JBbMWqRbCY1pn5BniDaU3lRxO9eaQ1AmSMehl/w==", + "dependencies": { + "@azure/abort-controller": "^2.0.0", + "@azure/core-auth": "^1.4.0", + "@azure/core-rest-pipeline": "^1.9.1", + "@azure/core-tracing": "^1.0.0", + "@azure/core-util": "^1.6.1", + "@azure/logger": "^1.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@azure/core-client/node_modules/@azure/abort-controller": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-2.1.2.tgz", + "integrity": "sha512-nBrLsEWm4J2u5LpAPjxADTlq3trDgVZZXHNKabeXZtpq3d3AbN/KGO82R87rdDz5/lYB024rtEf10/q0urNgsA==", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@azure/core-http-compat": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@azure/core-http-compat/-/core-http-compat-2.1.2.tgz", + "integrity": "sha512-5MnV1yqzZwgNLLjlizsU3QqOeQChkIXw781Fwh1xdAqJR5AA32IUaq6xv1BICJvfbHoa+JYcaij2HFkhLbNTJQ==", + "dependencies": { + "@azure/abort-controller": "^2.0.0", + "@azure/core-client": "^1.3.0", + "@azure/core-rest-pipeline": "^1.3.0" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@azure/core-http-compat/node_modules/@azure/abort-controller": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-2.1.2.tgz", + "integrity": "sha512-nBrLsEWm4J2u5LpAPjxADTlq3trDgVZZXHNKabeXZtpq3d3AbN/KGO82R87rdDz5/lYB024rtEf10/q0urNgsA==", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@azure/core-lro": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/@azure/core-lro/-/core-lro-2.7.2.tgz", + "integrity": "sha512-0YIpccoX8m/k00O7mDDMdJpbr6mf1yWo2dfmxt5A8XVZVVMz2SSKaEbMCeJRvgQ0IaSlqhjT47p4hVIRRy90xw==", + "dependencies": { + "@azure/abort-controller": "^2.0.0", + "@azure/core-util": "^1.2.0", + "@azure/logger": "^1.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@azure/core-lro/node_modules/@azure/abort-controller": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-2.1.2.tgz", + "integrity": "sha512-nBrLsEWm4J2u5LpAPjxADTlq3trDgVZZXHNKabeXZtpq3d3AbN/KGO82R87rdDz5/lYB024rtEf10/q0urNgsA==", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@azure/core-paging": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/@azure/core-paging/-/core-paging-1.6.2.tgz", + "integrity": "sha512-YKWi9YuCU04B55h25cnOYZHxXYtEvQEbKST5vqRga7hWY9ydd3FZHdeQF8pyh+acWZvppw13M/LMGx0LABUVMA==", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@azure/core-rest-pipeline": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/@azure/core-rest-pipeline/-/core-rest-pipeline-1.16.1.tgz", + "integrity": "sha512-ExPSbgjwCoht6kB7B4MeZoBAxcQSIl29r/bPeazZJx50ej4JJCByimLOrZoIsurISNyJQQHf30b3JfqC3Hb88A==", + "dependencies": { + "@azure/abort-controller": "^2.0.0", + "@azure/core-auth": "^1.4.0", + "@azure/core-tracing": "^1.0.1", + "@azure/core-util": "^1.9.0", + "@azure/logger": "^1.0.0", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@azure/core-rest-pipeline/node_modules/@azure/abort-controller": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-2.1.2.tgz", + "integrity": "sha512-nBrLsEWm4J2u5LpAPjxADTlq3trDgVZZXHNKabeXZtpq3d3AbN/KGO82R87rdDz5/lYB024rtEf10/q0urNgsA==", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@azure/core-rest-pipeline/node_modules/agent-base": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", + "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@azure/core-rest-pipeline/node_modules/debug": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", + "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@azure/core-rest-pipeline/node_modules/https-proxy-agent": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", + "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", + "dependencies": { + "agent-base": "^7.0.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@azure/core-rest-pipeline/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/@azure/core-tracing": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@azure/core-tracing/-/core-tracing-1.1.2.tgz", + "integrity": "sha512-dawW9ifvWAWmUm9/h+/UQ2jrdvjCJ7VJEuCJ6XVNudzcOwm53BFZH4Q845vjfgoUAM8ZxokvVNxNxAITc502YA==", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@azure/core-util": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@azure/core-util/-/core-util-1.9.0.tgz", + "integrity": "sha512-AfalUQ1ZppaKuxPPMsFEUdX6GZPB3d9paR9d/TTL7Ow2De8cJaC7ibi7kWVlFAVPCYo31OcnGymc0R89DX8Oaw==", + "dependencies": { + "@azure/abort-controller": "^2.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@azure/core-util/node_modules/@azure/abort-controller": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-2.1.2.tgz", + "integrity": "sha512-nBrLsEWm4J2u5LpAPjxADTlq3trDgVZZXHNKabeXZtpq3d3AbN/KGO82R87rdDz5/lYB024rtEf10/q0urNgsA==", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@azure/identity": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@azure/identity/-/identity-4.3.0.tgz", + "integrity": "sha512-LHZ58/RsIpIWa4hrrE2YuJ/vzG1Jv9f774RfTTAVDZDriubvJ0/S5u4pnw4akJDlS0TiJb6VMphmVUFsWmgodQ==", + "dependencies": { + "@azure/abort-controller": "^1.0.0", + "@azure/core-auth": "^1.5.0", + "@azure/core-client": "^1.9.2", + "@azure/core-rest-pipeline": "^1.1.0", + "@azure/core-tracing": "^1.0.0", + "@azure/core-util": "^1.3.0", + "@azure/logger": "^1.0.0", + "@azure/msal-browser": "^3.11.1", + "@azure/msal-node": "^2.9.2", + "events": "^3.0.0", + "jws": "^4.0.0", + "open": "^8.0.0", + "stoppable": "^1.1.0", + "tslib": "^2.2.0" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@azure/identity/node_modules/jwa": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz", + "integrity": "sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==", + "dependencies": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/@azure/identity/node_modules/jws": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.0.tgz", + "integrity": "sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==", + "dependencies": { + "jwa": "^2.0.0", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/@azure/keyvault-keys": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/@azure/keyvault-keys/-/keyvault-keys-4.8.0.tgz", + "integrity": "sha512-jkuYxgkw0aaRfk40OQhFqDIupqblIOIlYESWB6DKCVDxQet1pyv86Tfk9M+5uFM0+mCs6+MUHU+Hxh3joiUn4Q==", + "dependencies": { + "@azure/abort-controller": "^1.0.0", + "@azure/core-auth": "^1.3.0", + "@azure/core-client": "^1.5.0", + "@azure/core-http-compat": "^2.0.1", + "@azure/core-lro": "^2.2.0", + "@azure/core-paging": "^1.1.1", + "@azure/core-rest-pipeline": "^1.8.1", + "@azure/core-tracing": "^1.0.0", + "@azure/core-util": "^1.0.0", + "@azure/logger": "^1.0.0", + "tslib": "^2.2.0" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@azure/logger": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@azure/logger/-/logger-1.1.2.tgz", + "integrity": "sha512-l170uE7bsKpIU6B/giRc9i4NI0Mj+tANMMMxf7Zi/5cKzEqPayP7+X1WPrG7e+91JgY8N+7K7nF2WOi7iVhXvg==", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@azure/msal-browser": { + "version": "3.17.0", + "resolved": "https://registry.npmjs.org/@azure/msal-browser/-/msal-browser-3.17.0.tgz", + "integrity": "sha512-csccKXmW2z7EkZ0I3yAoW/offQt+JECdTIV/KrnRoZyM7wCSsQWODpwod8ZhYy7iOyamcHApR9uCh0oD1M+0/A==", + "dependencies": { + "@azure/msal-common": "14.12.0" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@azure/msal-common": { + "version": "14.12.0", + "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-14.12.0.tgz", + "integrity": "sha512-IDDXmzfdwmDkv4SSmMEyAniJf6fDu3FJ7ncOjlxkDuT85uSnLEhZi3fGZpoR7T4XZpOMx9teM9GXBgrfJgyeBw==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@azure/msal-node": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/@azure/msal-node/-/msal-node-2.9.2.tgz", + "integrity": "sha512-8tvi6Cos3m+0KmRbPjgkySXi+UQU/QiuVRFnrxIwt5xZlEEFa69O04RTaNESGgImyBBlYbo2mfE8/U8Bbdk1WQ==", + "dependencies": { + "@azure/msal-common": "14.12.0", + "jsonwebtoken": "^9.0.0", + "uuid": "^8.3.0" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@azure/msal-node/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "bin": { + "uuid": "dist/bin/uuid" + } + }, "node_modules/@casl/ability": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/@casl/ability/-/ability-6.5.0.tgz", @@ -3733,6 +4079,11 @@ "@jridgewell/sourcemap-codec": "^1.4.10" } }, + "node_modules/@js-joda/core": { + "version": "5.6.3", + "resolved": "https://registry.npmjs.org/@js-joda/core/-/core-5.6.3.tgz", + "integrity": "sha512-T1rRxzdqkEXcou0ZprN1q9yDRlvzCPLqmlNt5IIsGBzoEVgLCCYrKEwc84+TvsXuAc95VAZwtWD2zVsKPY4bcA==" + }, "node_modules/@ldapjs/asn1": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@ldapjs/asn1/-/asn1-2.0.0.tgz", @@ -6194,6 +6545,20 @@ "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==" }, + "node_modules/@types/readable-stream": { + "version": "4.0.14", + "resolved": "https://registry.npmjs.org/@types/readable-stream/-/readable-stream-4.0.14.tgz", + "integrity": "sha512-xZn/AuUbCMShGsqH/ehZtGDwQtbx00M9rZ2ENLe4tOjFZ/JFeWMhEZkk2fEe1jAUqqEAURIkFJ7Az/go8mM1/w==", + "dependencies": { + "@types/node": "*", + "safe-buffer": "~5.1.1" + } + }, + "node_modules/@types/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, "node_modules/@types/resolve": { "version": "1.20.6", "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.6.tgz", @@ -8015,6 +8380,14 @@ "node": ">= 0.4" } }, + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "engines": { + "node": ">=8" + } + }, "node_modules/define-properties": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", @@ -10145,6 +10518,50 @@ "node": ">= 0.8" } }, + "node_modules/http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/http-proxy-agent/node_modules/agent-base": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", + "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/http-proxy-agent/node_modules/debug": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", + "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/http-proxy-agent/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, "node_modules/https-proxy-agent": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", @@ -10464,6 +10881,20 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", @@ -10686,6 +11117,17 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/isarray": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", @@ -10740,6 +11182,11 @@ "node": ">=10" } }, + "node_modules/js-md4": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/js-md4/-/js-md4-0.3.2.tgz", + "integrity": "sha512-/GDnfQYsltsjRswQhN9fhv3EMw2sCpUdrdxyWDOUK7eyD++r3gRhzgiQgc/x4MAv2i1iuQ4lxO5mvqM3vj4bwA==" + }, "node_modules/js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", @@ -11665,6 +12112,11 @@ "node": "^18 || >=20" } }, + "node_modules/native-duplexpair": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/native-duplexpair/-/native-duplexpair-1.0.0.tgz", + "integrity": "sha512-E7QQoM+3jvNtlmyfqRZ0/U75VFgCls+fSkbml2MpgWkWyz3ox8Y58gNhfuziuQYGNNQAbFZJQck55LHCnCK6CA==" + }, "node_modules/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", @@ -12046,6 +12498,22 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/open": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/openapi-types": { "version": "12.1.3", "resolved": "https://registry.npmjs.org/openapi-types/-/openapi-types-12.1.3.tgz", @@ -13823,6 +14291,11 @@ "node": ">= 10.x" } }, + "node_modules/sprintf-js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==" + }, "node_modules/sqlstring": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.3.tgz", @@ -13870,6 +14343,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/stoppable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/stoppable/-/stoppable-1.1.0.tgz", + "integrity": "sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw==", + "engines": { + "node": ">=4", + "npm": ">=6" + } + }, "node_modules/stream-shift": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz", @@ -14192,6 +14674,36 @@ "node": ">=8.0.0" } }, + "node_modules/tedious": { + "version": "18.2.1", + "resolved": "https://registry.npmjs.org/tedious/-/tedious-18.2.1.tgz", + "integrity": "sha512-DKsTgGBC0ZeZexAd5OObfeKd0Tlx3jx3kNoKImsxfBKdRuV216u9n6Sr+4w6vzn+S4r43XmWAXQwM7UkDkbIEg==", + "dependencies": { + "@azure/identity": "^4.2.1", + "@azure/keyvault-keys": "^4.4.0", + "@js-joda/core": "^5.6.1", + "@types/node": ">=18", + "bl": "^6.0.11", + "iconv-lite": "^0.6.3", + "js-md4": "^0.3.2", + "native-duplexpair": "^1.0.0", + "sprintf-js": "^1.1.3" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/tedious/node_modules/bl": { + "version": "6.0.13", + "resolved": "https://registry.npmjs.org/bl/-/bl-6.0.13.tgz", + "integrity": "sha512-tMncAcpsyjZgAVbVFupVIaB2xud13xxT59fdHkuszY2jdZkqIWfpQdmII1fOe3kOGAz0mNLTIHEm+KxpYsQKKg==", + "dependencies": { + "@types/readable-stream": "^4.0.0", + "buffer": "^6.0.3", + "inherits": "^2.0.4", + "readable-stream": "^4.2.0" + } + }, "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", diff --git a/backend/package.json b/backend/package.json index 6ef9add0df..b278be571c 100644 --- a/backend/package.json +++ b/backend/package.json @@ -134,6 +134,7 @@ "posthog-node": "^3.6.2", "probot": "^13.0.0", "smee-client": "^2.0.0", + "tedious": "^18.2.1", "tweetnacl": "^1.0.3", "tweetnacl-util": "^0.15.1", "uuid": "^9.0.1", diff --git a/backend/src/ee/services/dynamic-secret/providers/models.ts b/backend/src/ee/services/dynamic-secret/providers/models.ts index c11f6ddfb3..14b79eeea7 100644 --- a/backend/src/ee/services/dynamic-secret/providers/models.ts +++ b/backend/src/ee/services/dynamic-secret/providers/models.ts @@ -3,7 +3,8 @@ import { z } from "zod"; export enum SqlProviders { Postgres = "postgres", MySQL = "mysql2", - Oracle = "oracledb" + Oracle = "oracledb", + MsSQL = "mssql" } export const DynamicSecretSqlDBSchema = z.object({ diff --git a/frontend/src/hooks/api/dynamicSecret/types.ts b/frontend/src/hooks/api/dynamicSecret/types.ts index a9aab83183..b987e94cc9 100644 --- a/frontend/src/hooks/api/dynamicSecret/types.ts +++ b/frontend/src/hooks/api/dynamicSecret/types.ts @@ -24,7 +24,8 @@ export enum DynamicSecretProviders { export enum SqlProviders { Postgres = "postgres", MySql = "mysql2", - Oracle = "oracledb" + Oracle = "oracledb", + MsSQL = "mssql" } export type TDynamicSecretProvider = diff --git a/frontend/src/views/SecretMainPage/components/ActionBar/CreateDynamicSecretForm/SqlDatabaseInputForm.tsx b/frontend/src/views/SecretMainPage/components/ActionBar/CreateDynamicSecretForm/SqlDatabaseInputForm.tsx index 0910e137eb..6d92641c66 100644 --- a/frontend/src/views/SecretMainPage/components/ActionBar/CreateDynamicSecretForm/SqlDatabaseInputForm.tsx +++ b/frontend/src/views/SecretMainPage/components/ActionBar/CreateDynamicSecretForm/SqlDatabaseInputForm.tsx @@ -86,6 +86,14 @@ const getSqlStatements = (provider: SqlProviders) => { 'REVOKE CONNECT FROM "{{username}}";\nREVOKE CREATE SESSION FROM "{{username}}";\nDROP USER "{{username}}";' }; } + if (provider === SqlProviders.MsSQL) { + return { + creationStatement: + "CREATE LOGIN [{{username}}] WITH PASSWORD = '{{password}}';\nCREATE USER [{{username}}] FOR LOGIN [{{username}}];\nGRANT SELECT, INSERT, UPDATE, DELETE ON SCHEMA::dbo TO [{{username}}];", + renewStatement: "", + revocationStatement: "DROP USER [{{username}}];\nDROP LOGIN [{{username}}];" + }; + } return { creationStatement: @@ -96,6 +104,19 @@ const getSqlStatements = (provider: SqlProviders) => { }; }; +const getDefaultPort = (provider: SqlProviders) => { + switch (provider) { + case SqlProviders.MySql: + return 3306; + case SqlProviders.Oracle: + return 1521; + case SqlProviders.MsSQL: + return 1433; + default: + return 5432; + } +}; + export const SqlDatabaseInputForm = ({ onCompleted, onCancel, @@ -139,6 +160,14 @@ export const SqlDatabaseInputForm = ({ } }; + const handleDatabaseChange = (type: SqlProviders) => { + const sqlStatment = getSqlStatements(type); + setValue("provider.creationStatement", sqlStatment.creationStatement); + setValue("provider.renewStatement", sqlStatment.renewStatement); + setValue("provider.revocationStatement", sqlStatment.revocationStatement); + setValue("provider.port", getDefaultPort(type)); + }; + return (
@@ -155,7 +184,7 @@ export const SqlDatabaseInputForm = ({ isError={Boolean(error)} errorText={error?.message} > - + )} /> @@ -209,16 +238,14 @@ export const SqlDatabaseInputForm = ({ value={value} onValueChange={(val) => { onChange(val); - const sqlStatment = getSqlStatements(val as SqlProviders); - setValue("provider.creationStatement", sqlStatment.creationStatement); - setValue("provider.renewStatement", sqlStatment.renewStatement); - setValue("provider.revocationStatement", sqlStatment.revocationStatement); + handleDatabaseChange(val as SqlProviders); }} className="w-full border border-mineshaft-500" > PostgreSQL MySQL Oracle + MS SQL )} diff --git a/frontend/src/views/SecretMainPage/components/DynamicSecretListView/EditDynamicSecretForm/EditDynamicSecretSqlProviderForm.tsx b/frontend/src/views/SecretMainPage/components/DynamicSecretListView/EditDynamicSecretForm/EditDynamicSecretSqlProviderForm.tsx index 5f8ae6ccd7..2094e24ed5 100644 --- a/frontend/src/views/SecretMainPage/components/DynamicSecretListView/EditDynamicSecretForm/EditDynamicSecretSqlProviderForm.tsx +++ b/frontend/src/views/SecretMainPage/components/DynamicSecretListView/EditDynamicSecretForm/EditDynamicSecretSqlProviderForm.tsx @@ -194,6 +194,7 @@ export const EditDynamicSecretSqlProviderForm = ({ PostgreSQL MySQL Oracle + MS SQL )} From 0b4d4c008ab70e5b3287dc6e8efaca04c17a2cf4 Mon Sep 17 00:00:00 2001 From: = Date: Tue, 2 Jul 2024 00:13:30 +0530 Subject: [PATCH 014/145] docs: dynamic secret mssql --- .../platform/dynamic-secrets/mssql.mdx | 118 ++++++++++++++++++ .../dynamic-secret-setup-modal-mssql.png | Bin 0 -> 159348 bytes .../modify-sql-statements-mssql.png | Bin 0 -> 155399 bytes docs/mint.json | 1 + 4 files changed, 119 insertions(+) create mode 100644 docs/documentation/platform/dynamic-secrets/mssql.mdx create mode 100644 docs/images/platform/dynamic-secrets/dynamic-secret-setup-modal-mssql.png create mode 100644 docs/images/platform/dynamic-secrets/modify-sql-statements-mssql.png diff --git a/docs/documentation/platform/dynamic-secrets/mssql.mdx b/docs/documentation/platform/dynamic-secrets/mssql.mdx new file mode 100644 index 0000000000..8dae71399b --- /dev/null +++ b/docs/documentation/platform/dynamic-secrets/mssql.mdx @@ -0,0 +1,118 @@ +--- +title: "MS SQL" +description: "How to dynamically generate MS SQL database users." +--- + +The Infisical MS SQL dynamic secret allows you to generate Microsoft SQL server database credentials on demand based on configured role. + +## Prerequisite + +Create a user with the required permission in your SQL instance. This user will be used to create new accounts on-demand. + + +## Set up Dynamic Secrets with MS SQL + + + + 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.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 + + + + Choose the service you want to generate dynamic secrets for. This must be selected as **MS SQL**. + + + + Database host + + + + Database port + + + + Username that will be used to create dynamic secrets + + + + Password that will be used to create dynamic secrets + + + + Name of the database for which you want to create dynamic secrets + + + + A CA may be required if your DB requires it for incoming connections. AWS RDS instances with default settings will requires a CA which can be downloaded [here](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html#UsingWithRDS.SSL.CertificatesAllRegions). + + + ![Dynamic Secret Setup Modal](../../../images/platform/dynamic-secrets/dynamic-secret-setup-modal-mssql.png) + + + + If you want to provide specific privileges for the generated dynamic credentials, you can modify the SQL statement to your needs. This is useful if you want to only give access to a specific table(s). + + ![Modify SQL Statements Modal](../../../images/platform/dynamic-secrets/modify-sql-statements-mssql.png) + + + After submitting the form, you will see a dynamic secret created in the dashboard. + + + If this step fails, you may have to add the CA certficate. + + + ![Dynamic Secret](../../../images/platform/dynamic-secrets/dynamic-secret.png) + + + Once you've successfully configured the dynamic secret, you're ready to generate on-demand credentials. + 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) + + 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. + + ![Provision Lease](/images/platform/dynamic-secrets/provision-lease.png) + + + Ensure that the TTL for the lease fall within the maximum TTL defined when configuring the dynamic secret. + + + + Once you click the `Submit` button, a new secret lease will be generated and the credentials for it will be shown to you. + + ![Provision Lease](/images/platform/dynamic-secrets/lease-values.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 expiration time of the lease or delete the lease before it's set time to live. + +![Provision Lease](/images/platform/dynamic-secrets/lease-data.png) + +## Renew Leases +To extend the life of the generated dynamic secret leases 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-setup-modal-mssql.png b/docs/images/platform/dynamic-secrets/dynamic-secret-setup-modal-mssql.png new file mode 100644 index 0000000000000000000000000000000000000000..7f296a4414e72c67a154d8ae88602fc274af6e4c GIT binary patch literal 159348 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%0A=*t|DlAwOZrydDTV>6=6~YZ0gz@hKGcI3 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

45{$(sbUixx?nhW%#0u!^c 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�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 WzWt&=nfhnob@r6~ccmvifA}ZKHvc~W literal 0 HcmV?d00001 diff --git a/docs/mint.json b/docs/mint.json index 4657598751..cb08aab32f 100644 --- a/docs/mint.json +++ b/docs/mint.json @@ -148,6 +148,7 @@ "documentation/platform/dynamic-secrets/overview", "documentation/platform/dynamic-secrets/postgresql", "documentation/platform/dynamic-secrets/mysql", + "documentation/platform/dynamic-secrets/mssql", "documentation/platform/dynamic-secrets/oracle", "documentation/platform/dynamic-secrets/cassandra", "documentation/platform/dynamic-secrets/aws-iam" From ed5a7d72ab7a3b9f8ac127035bbd93ff5b7ccd3c Mon Sep 17 00:00:00 2001 From: Sheen Capadngan Date: Tue, 2 Jul 2024 19:57:58 +0800 Subject: [PATCH 015/145] feat: added native slack webhook type --- ...0240702055253_add-encrypted-webhook-url.ts | 49 +++++++ backend/src/db/schemas/webhooks.ts | 6 +- .../src/server/routes/v1/webhook-router.ts | 31 +++-- backend/src/services/webhook/webhook-fns.ts | 127 ++++++++++++++---- .../src/services/webhook/webhook-service.ts | 45 +++++-- backend/src/services/webhook/webhook-types.ts | 6 + .../components/WebhooksTab/AddWebhookForm.tsx | 95 ++++++++++--- 7 files changed, 290 insertions(+), 69 deletions(-) create mode 100644 backend/src/db/migrations/20240702055253_add-encrypted-webhook-url.ts diff --git a/backend/src/db/migrations/20240702055253_add-encrypted-webhook-url.ts b/backend/src/db/migrations/20240702055253_add-encrypted-webhook-url.ts new file mode 100644 index 0000000000..c2ca86d348 --- /dev/null +++ b/backend/src/db/migrations/20240702055253_add-encrypted-webhook-url.ts @@ -0,0 +1,49 @@ +import { Knex } from "knex"; + +import { WebhookType } from "@app/services/webhook/webhook-types"; + +import { TableName } from "../schemas"; + +export async function up(knex: Knex): Promise { + const hasEncryptedURL = await knex.schema.hasColumn(TableName.Webhook, "encryptedUrl"); + const hasUrlIV = await knex.schema.hasColumn(TableName.Webhook, "urlIV"); + const hasUrlTag = await knex.schema.hasColumn(TableName.Webhook, "urlTag"); + const hasType = await knex.schema.hasColumn(TableName.Webhook, "type"); + + await knex.schema.alterTable(TableName.Webhook, (tb) => { + if (!hasEncryptedURL) { + tb.text("encryptedUrl"); + } + if (!hasUrlIV) { + tb.string("urlIV"); + } + if (!hasUrlTag) { + tb.string("urlTag"); + } + if (!hasType) { + tb.string("type").defaultTo(WebhookType.GENERAL); + } + }); +} + +export async function down(knex: Knex): Promise { + const hasEncryptedURL = await knex.schema.hasColumn(TableName.Webhook, "encryptedUrl"); + const hasUrlIV = await knex.schema.hasColumn(TableName.Webhook, "urlIV"); + const hasUrlTag = await knex.schema.hasColumn(TableName.Webhook, "urlTag"); + const hasType = await knex.schema.hasColumn(TableName.Webhook, "type"); + + await knex.schema.alterTable(TableName.Webhook, (t) => { + if (hasEncryptedURL) { + t.dropColumn("encryptedUrl"); + } + if (hasUrlIV) { + t.dropColumn("urlIV"); + } + if (hasUrlTag) { + t.dropColumn("urlTag"); + } + if (hasType) { + t.dropColumn("type"); + } + }); +} diff --git a/backend/src/db/schemas/webhooks.ts b/backend/src/db/schemas/webhooks.ts index 44aa8c5da9..49b64662c9 100644 --- a/backend/src/db/schemas/webhooks.ts +++ b/backend/src/db/schemas/webhooks.ts @@ -21,7 +21,11 @@ export const WebhooksSchema = z.object({ keyEncoding: z.string().nullable().optional(), createdAt: z.date(), updatedAt: z.date(), - envId: z.string().uuid() + envId: z.string().uuid(), + encryptedUrl: z.string().nullable().optional(), + urlIV: z.string().nullable().optional(), + urlTag: z.string().nullable().optional(), + type: z.string().default("general").nullable().optional() }); export type TWebhooks = z.infer; diff --git a/backend/src/server/routes/v1/webhook-router.ts b/backend/src/server/routes/v1/webhook-router.ts index 1698c0c4b5..4124d9150e 100644 --- a/backend/src/server/routes/v1/webhook-router.ts +++ b/backend/src/server/routes/v1/webhook-router.ts @@ -6,13 +6,17 @@ import { removeTrailingSlash } from "@app/lib/fn"; import { readLimit, writeLimit } from "@app/server/config/rateLimiter"; import { verifyAuth } from "@app/server/plugins/auth/verify-auth"; import { AuthMode } from "@app/services/auth/auth-type"; +import { WebhookType } from "@app/services/webhook/webhook-types"; export const sanitizedWebhookSchema = WebhooksSchema.omit({ encryptedSecretKey: true, iv: true, tag: true, algorithm: true, - keyEncoding: true + keyEncoding: true, + encryptedUrl: true, + urlIV: true, + urlTag: true }).merge( z.object({ projectId: z.string(), @@ -33,13 +37,24 @@ export const registerWebhookRouter = async (server: FastifyZodProvider) => { }, onRequest: verifyAuth([AuthMode.JWT]), schema: { - body: z.object({ - workspaceId: z.string().trim(), - environment: z.string().trim(), - webhookUrl: z.string().url().trim(), - webhookSecretKey: z.string().trim().optional(), - secretPath: z.string().trim().default("/").transform(removeTrailingSlash) - }), + body: z + .object({ + type: z.nativeEnum(WebhookType).default(WebhookType.GENERAL), + workspaceId: z.string().trim(), + environment: z.string().trim(), + webhookUrl: z.string().url().trim(), + webhookSecretKey: z.string().trim().optional(), + secretPath: z.string().trim().default("/").transform(removeTrailingSlash) + }) + .superRefine((data, ctx) => { + if (data.type === WebhookType.SLACK && !data.webhookUrl.includes("hooks.slack.com")) { + ctx.addIssue({ + code: z.ZodIssueCode.custom, + message: "Incoming Webhook URL is invalid.", + path: ["webhookUrl"] + }); + } + }), response: { 200: z.object({ message: z.string(), diff --git a/backend/src/services/webhook/webhook-fns.ts b/backend/src/services/webhook/webhook-fns.ts index 35d2ba7fcf..391d1b3b76 100644 --- a/backend/src/services/webhook/webhook-fns.ts +++ b/backend/src/services/webhook/webhook-fns.ts @@ -12,47 +12,82 @@ import { logger } from "@app/lib/logger"; import { TProjectEnvDALFactory } from "../project-env/project-env-dal"; import { TWebhookDALFactory } from "./webhook-dal"; +import { WebhookType } from "./webhook-types"; const WEBHOOK_TRIGGER_TIMEOUT = 15 * 1000; -export const triggerWebhookRequest = async ( - { url, encryptedSecretKey, iv, tag, keyEncoding }: TWebhooks, - data: Record -) => { - const headers: Record = {}; - const payload = { ...data, timestamp: Date.now() }; - const appCfg = getConfig(); - if (encryptedSecretKey) { - const encryptionKey = appCfg.ENCRYPTION_KEY; - const rootEncryptionKey = appCfg.ROOT_ENCRYPTION_KEY; - let secretKey; - if (rootEncryptionKey && keyEncoding === SecretKeyEncoding.BASE64) { - // case: encoding scheme is base64 - secretKey = decryptSymmetric({ +export const decryptWebhookDetails = (webhook: TWebhooks) => { + const appCfg = getConfig(); + const { keyEncoding, iv, encryptedSecretKey, tag, encryptedUrl, urlIV, urlTag, url } = webhook; + + const encryptionKey = appCfg.ENCRYPTION_KEY; + const rootEncryptionKey = appCfg.ROOT_ENCRYPTION_KEY; + + let decryptedSecretKey = ""; + let decryptedUrl = url; + + if (rootEncryptionKey && keyEncoding === SecretKeyEncoding.BASE64) { + // case: encoding scheme is base64 + if (encryptedSecretKey) { + decryptedSecretKey = decryptSymmetric({ ciphertext: encryptedSecretKey, iv: iv as string, tag: tag as string, key: rootEncryptionKey }); - } else if (encryptionKey && keyEncoding === SecretKeyEncoding.UTF8) { - // case: encoding scheme is utf8 - secretKey = decryptSymmetric128BitHexKeyUTF8({ + } + + if (encryptedUrl) { + decryptedUrl = decryptSymmetric({ + ciphertext: encryptedUrl, + iv: urlIV as string, + tag: urlTag as string, + key: rootEncryptionKey + }); + } + } else if (encryptionKey && keyEncoding === SecretKeyEncoding.UTF8) { + // case: encoding scheme is utf8 + if (encryptedSecretKey) { + decryptedSecretKey = decryptSymmetric128BitHexKeyUTF8({ ciphertext: encryptedSecretKey, iv: iv as string, tag: tag as string, key: encryptionKey }); } - if (secretKey) { - const webhookSign = crypto.createHmac("sha256", secretKey).update(JSON.stringify(payload)).digest("hex"); - headers["x-infisical-signature"] = `t=${payload.timestamp};${webhookSign}`; + + if (encryptedUrl) { + decryptedUrl = decryptSymmetric128BitHexKeyUTF8({ + ciphertext: encryptedUrl, + iv: urlIV as string, + tag: urlTag as string, + key: encryptionKey + }); } } + + return { + secretKey: decryptedSecretKey, + url: decryptedUrl + }; +}; + +export const triggerWebhookRequest = async (webhook: TWebhooks, data: Record) => { + const headers: Record = {}; + const payload = { ...data, timestamp: Date.now() }; + const { secretKey, url } = decryptWebhookDetails(webhook); + + if (secretKey) { + const webhookSign = crypto.createHmac("sha256", secretKey).update(JSON.stringify(payload)).digest("hex"); + headers["x-infisical-signature"] = `t=${payload.timestamp};${webhookSign}`; + } + const req = await request.post(url, payload, { headers, timeout: WEBHOOK_TRIGGER_TIMEOUT, signal: AbortSignal.timeout(WEBHOOK_TRIGGER_TIMEOUT) }); + return req; }; @@ -60,15 +95,48 @@ export const getWebhookPayload = ( eventName: string, workspaceId: string, environment: string, - secretPath?: string -) => ({ - event: eventName, - project: { - workspaceId, - environment, - secretPath + secretPath?: string, + type?: string | null +) => { + switch (type) { + case WebhookType.SLACK: + return { + text: "A secret value has been updated", + attachments: [ + { + color: "#E7F256", + fields: [ + { + title: "Workspace ID", + value: workspaceId, + short: true + }, + { + title: "Environment", + value: environment, + short: true + }, + { + title: "Secret Path", + value: secretPath, + short: true + } + ] + } + ] + }; + case WebhookType.GENERAL: + default: + return { + event: eventName, + project: { + workspaceId, + environment, + secretPath + } + }; } -}); +}; export type TFnTriggerWebhookDTO = { projectId: string; @@ -95,9 +163,10 @@ export const fnTriggerWebhook = async ({ logger.info("Secret webhook job started", { environment, secretPath, projectId }); const webhooksTriggered = await Promise.allSettled( toBeTriggeredHooks.map((hook) => - triggerWebhookRequest(hook, getWebhookPayload("secrets.modified", projectId, environment, secretPath)) + triggerWebhookRequest(hook, getWebhookPayload("secrets.modified", projectId, environment, secretPath, hook.type)) ) ); + // filter hooks by status const successWebhooks = webhooksTriggered .filter(({ status }) => status === "fulfilled") diff --git a/backend/src/services/webhook/webhook-service.ts b/backend/src/services/webhook/webhook-service.ts index 4a05ad219e..acf4e2d750 100644 --- a/backend/src/services/webhook/webhook-service.ts +++ b/backend/src/services/webhook/webhook-service.ts @@ -9,7 +9,7 @@ import { BadRequestError } from "@app/lib/errors"; import { TProjectEnvDALFactory } from "../project-env/project-env-dal"; import { TWebhookDALFactory } from "./webhook-dal"; -import { getWebhookPayload, triggerWebhookRequest } from "./webhook-fns"; +import { decryptWebhookDetails, getWebhookPayload, triggerWebhookRequest } from "./webhook-fns"; import { TCreateWebhookDTO, TDeleteWebhookDTO, @@ -36,8 +36,13 @@ export const webhookServiceFactory = ({ webhookDAL, projectEnvDAL, permissionSer webhookUrl, environment, secretPath, - webhookSecretKey + webhookSecretKey, + type }: TCreateWebhookDTO) => { + const appCfg = getConfig(); + const encryptionKey = appCfg.ENCRYPTION_KEY; + const rootEncryptionKey = appCfg.ROOT_ENCRYPTION_KEY; + const { permission } = await permissionService.getProjectPermission( actor, actorId, @@ -50,15 +55,14 @@ export const webhookServiceFactory = ({ webhookDAL, projectEnvDAL, permissionSer if (!env) throw new BadRequestError({ message: "Env not found" }); const insertDoc: TWebhooksInsert = { - url: webhookUrl, + url: "", // deprecated - we are moving away from plaintext URLs envId: env.id, isDisabled: false, - secretPath: secretPath || "/" + secretPath: secretPath || "/", + type }; + if (webhookSecretKey) { - const appCfg = getConfig(); - const encryptionKey = appCfg.ENCRYPTION_KEY; - const rootEncryptionKey = appCfg.ROOT_ENCRYPTION_KEY; if (rootEncryptionKey) { const { ciphertext, iv, tag } = encryptSymmetric(webhookSecretKey, rootEncryptionKey); insertDoc.encryptedSecretKey = ciphertext; @@ -76,6 +80,22 @@ export const webhookServiceFactory = ({ webhookDAL, projectEnvDAL, permissionSer } } + if (rootEncryptionKey) { + const { ciphertext, iv, tag } = encryptSymmetric(webhookUrl, rootEncryptionKey); + insertDoc.encryptedUrl = ciphertext; + insertDoc.urlIV = iv; + insertDoc.urlTag = tag; + insertDoc.algorithm = SecretEncryptionAlgo.AES_256_GCM; + insertDoc.keyEncoding = SecretKeyEncoding.BASE64; + } else if (encryptionKey) { + const { ciphertext, iv, tag } = encryptSymmetric128BitHexKeyUTF8(webhookUrl, encryptionKey); + insertDoc.encryptedUrl = ciphertext; + insertDoc.urlIV = iv; + insertDoc.urlTag = tag; + insertDoc.algorithm = SecretEncryptionAlgo.AES_256_GCM; + insertDoc.keyEncoding = SecretKeyEncoding.UTF8; + } + const webhook = await webhookDAL.create(insertDoc); return { ...webhook, projectId, environment: env }; }; @@ -131,7 +151,7 @@ export const webhookServiceFactory = ({ webhookDAL, projectEnvDAL, permissionSer try { await triggerWebhookRequest( webhook, - getWebhookPayload("test", webhook.projectId, webhook.environment.slug, webhook.secretPath) + getWebhookPayload("test", webhook.projectId, webhook.environment.slug, webhook.secretPath, webhook.type) ); } catch (err) { webhookError = (err as Error).message; @@ -162,7 +182,14 @@ export const webhookServiceFactory = ({ webhookDAL, projectEnvDAL, permissionSer ); ForbiddenError.from(permission).throwUnlessCan(ProjectPermissionActions.Read, ProjectPermissionSub.Webhooks); - return webhookDAL.findAllWebhooks(projectId, environment, secretPath); + const webhooks = await webhookDAL.findAllWebhooks(projectId, environment, secretPath); + return webhooks.map((w) => { + const { url } = decryptWebhookDetails(w); + return { + ...w, + url + }; + }); }; return { diff --git a/backend/src/services/webhook/webhook-types.ts b/backend/src/services/webhook/webhook-types.ts index 7a6e92c80a..40dacb42ab 100644 --- a/backend/src/services/webhook/webhook-types.ts +++ b/backend/src/services/webhook/webhook-types.ts @@ -5,6 +5,7 @@ export type TCreateWebhookDTO = { secretPath?: string; webhookUrl: string; webhookSecretKey?: string; + type: string; } & TProjectPermission; export type TUpdateWebhookDTO = { @@ -24,3 +25,8 @@ export type TListWebhookDTO = { environment?: string; secretPath?: string; } & TProjectPermission; + +export enum WebhookType { + GENERAL = "general", + SLACK = "slack" +} diff --git a/frontend/src/views/Settings/ProjectSettingsPage/components/WebhooksTab/AddWebhookForm.tsx b/frontend/src/views/Settings/ProjectSettingsPage/components/WebhooksTab/AddWebhookForm.tsx index bf60372ef7..5c756bfc29 100644 --- a/frontend/src/views/Settings/ProjectSettingsPage/components/WebhooksTab/AddWebhookForm.tsx +++ b/frontend/src/views/Settings/ProjectSettingsPage/components/WebhooksTab/AddWebhookForm.tsx @@ -1,7 +1,7 @@ import { useEffect } from "react"; import { Controller, useForm } from "react-hook-form"; -import { yupResolver } from "@hookform/resolvers/yup"; -import * as yup from "yup"; +import { zodResolver } from "@hookform/resolvers/zod"; +import z from "zod"; import GlobPatternExamples from "@app/components/basic/popups/GlobPatternExamples"; import { @@ -15,14 +15,30 @@ import { SelectItem } from "@app/components/v2"; -const formSchema = yup.object({ - environment: yup.string().required().trim().label("Environment"), - webhookUrl: yup.string().url().required().trim().label("Webhook URL"), - webhookSecretKey: yup.string().trim().label("Secret Key"), - secretPath: yup.string().required().trim().label("Secret Path") -}); +enum WebhookType { + GENERAL = "general", + SLACK = "slack" +} -export type TFormSchema = yup.InferType; +const formSchema = z + .object({ + environment: z.string().trim().describe("Environment"), + webhookUrl: z.string().url().trim().describe("Webhook URL"), + webhookSecretKey: z.string().trim().optional().describe("Secret Key"), + secretPath: z.string().trim().describe("Secret Path"), + type: z.nativeEnum(WebhookType).describe("Type").default(WebhookType.GENERAL) + }) + .superRefine((data, ctx) => { + if (data.type === WebhookType.SLACK && !data.webhookUrl.includes("hooks.slack.com")) { + ctx.addIssue({ + code: z.ZodIssueCode.custom, + message: "Incoming Webhook URL is invalid.", + path: ["webhookUrl"] + }); + } + }); + +type TFormSchema = z.infer; type Props = { isOpen: boolean; @@ -42,11 +58,17 @@ export const AddWebhookForm = ({ handleSubmit, register, reset, + watch, formState: { errors, isSubmitting } } = useForm({ - resolver: yupResolver(formSchema) + resolver: zodResolver(formSchema), + defaultValues: { + type: WebhookType.GENERAL + } }); + const webhookType = watch("type"); + useEffect(() => { if (!isOpen) { reset(); @@ -58,6 +80,33 @@ export const AddWebhookForm = ({

+ ( + + + + )} + /> + {webhookType === WebhookType.GENERAL && ( + + + + )} - - - Date: Tue, 2 Jul 2024 20:04:55 +0800 Subject: [PATCH 016/145] misc: added placeholder for incoming webhook url --- .../components/WebhooksTab/AddWebhookForm.tsx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/frontend/src/views/Settings/ProjectSettingsPage/components/WebhooksTab/AddWebhookForm.tsx b/frontend/src/views/Settings/ProjectSettingsPage/components/WebhooksTab/AddWebhookForm.tsx index 5c756bfc29..fa581fae18 100644 --- a/frontend/src/views/Settings/ProjectSettingsPage/components/WebhooksTab/AddWebhookForm.tsx +++ b/frontend/src/views/Settings/ProjectSettingsPage/components/WebhooksTab/AddWebhookForm.tsx @@ -165,7 +165,12 @@ export const AddWebhookForm = ({ isError={Boolean(errors?.webhookUrl)} errorText={errors?.webhookUrl?.message} > - +
From 398a8f363d404cff9bf255bd841ebe3c541a1ada Mon Sep 17 00:00:00 2001 From: Sheen Capadngan Date: Tue, 2 Jul 2024 20:20:25 +0800 Subject: [PATCH 017/145] misc: cleanup of form display structure --- .../components/WebhooksTab/AddWebhookForm.tsx | 59 +++++++++++-------- 1 file changed, 33 insertions(+), 26 deletions(-) diff --git a/frontend/src/views/Settings/ProjectSettingsPage/components/WebhooksTab/AddWebhookForm.tsx b/frontend/src/views/Settings/ProjectSettingsPage/components/WebhooksTab/AddWebhookForm.tsx index fa581fae18..5d5bf164d0 100644 --- a/frontend/src/views/Settings/ProjectSettingsPage/components/WebhooksTab/AddWebhookForm.tsx +++ b/frontend/src/views/Settings/ProjectSettingsPage/components/WebhooksTab/AddWebhookForm.tsx @@ -69,6 +69,38 @@ export const AddWebhookForm = ({ const webhookType = watch("type"); + const generalFormFields = ( + <> + + + + + + + + ); + + const slackFormFields = ( + + + + ); + useEffect(() => { if (!isOpen) { reset(); @@ -146,32 +178,7 @@ export const AddWebhookForm = ({ {...register("secretPath")} /> - {webhookType === WebhookType.GENERAL && ( - - - - )} - - - + {webhookType === WebhookType.SLACK ? slackFormFields : generalFormFields}
+
+
+ + +
+ + ); +}; diff --git a/frontend/src/views/Org/MembersPage/components/OrgIdentityTab/components/IdentitySection/IdentityTokenAuthTokenModal.tsx b/frontend/src/views/Org/MembersPage/components/OrgIdentityTab/components/IdentitySection/IdentityTokenAuthTokenModal.tsx new file mode 100644 index 0000000000..ee421c6a95 --- /dev/null +++ b/frontend/src/views/Org/MembersPage/components/OrgIdentityTab/components/IdentitySection/IdentityTokenAuthTokenModal.tsx @@ -0,0 +1,53 @@ +import { faCheck, faCopy } from "@fortawesome/free-solid-svg-icons"; +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; + +import { IconButton, Modal, ModalContent, Tooltip } from "@app/components/v2"; +import { useTimedReset } from "@app/hooks"; +import { UsePopUpState } from "@app/hooks/usePopUp"; + +type Props = { + popUp: UsePopUpState<["tokenAuthToken"]>; + handlePopUpToggle: (popUpName: keyof UsePopUpState<["tokenAuthToken"]>, state?: boolean) => void; +}; + +export const IdentityTokenAuthTokenModal = ({ popUp, handlePopUpToggle }: Props) => { + const [copyTextAccessToken, isCopyingAccessToken, setCopyTextAccessToken] = useTimedReset( + { + initialState: "Copy to clipboard" + } + ); + + const popUpData = popUp?.tokenAuthToken?.data as { + accessToken: string; + }; + + return ( + { + handlePopUpToggle("tokenAuthToken", isOpen); + }} + > + + {popUpData?.accessToken && ( +
+

{popUpData.accessToken}

+ + { + navigator.clipboard.writeText(popUpData.accessToken); + setCopyTextAccessToken("Copied"); + }} + > + + + +
+ )} +
+
+ ); +}; From 4cfe564f3d2f2b447955a128d2b5610e2cd11cc6 Mon Sep 17 00:00:00 2001 From: Tuan Dang Date: Tue, 2 Jul 2024 15:15:45 -0700 Subject: [PATCH 024/145] Fix lint issues --- .../identity-token-auth/identity-token-auth-service.ts | 5 ++++- .../components/IdentitySection/IdentitySection.tsx | 6 +----- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/backend/src/services/identity-token-auth/identity-token-auth-service.ts b/backend/src/services/identity-token-auth/identity-token-auth-service.ts index 4b94447193..a03371bac7 100644 --- a/backend/src/services/identity-token-auth/identity-token-auth-service.ts +++ b/backend/src/services/identity-token-auth/identity-token-auth-service.ts @@ -25,7 +25,10 @@ import { } from "./identity-token-auth-types"; type TIdentityTokenAuthServiceFactoryDep = { - identityTokenAuthDAL: TIdentityTokenAuthDALFactory; + identityTokenAuthDAL: Pick< + TIdentityTokenAuthDALFactory, + "transaction" | "create" | "findOne" | "updateById" | "delete" + >; identityDAL: Pick; identityOrgMembershipDAL: Pick; identityAccessTokenDAL: Pick; diff --git a/frontend/src/views/Org/MembersPage/components/OrgIdentityTab/components/IdentitySection/IdentitySection.tsx b/frontend/src/views/Org/MembersPage/components/OrgIdentityTab/components/IdentitySection/IdentitySection.tsx index c2acc8b4b3..3068eaf927 100644 --- a/frontend/src/views/Org/MembersPage/components/OrgIdentityTab/components/IdentitySection/IdentitySection.tsx +++ b/frontend/src/views/Org/MembersPage/components/OrgIdentityTab/components/IdentitySection/IdentitySection.tsx @@ -124,11 +124,7 @@ export const IdentitySection = withPermission( handlePopUpOpen={handlePopUpOpen} handlePopUpToggle={handlePopUpToggle} /> - + Date: Wed, 3 Jul 2024 12:26:42 +0800 Subject: [PATCH 025/145] misc: documentation --- docs/documentation/platform/webhooks.mdx | 6 ++++-- docs/images/webhook-create.png | Bin 0 -> 444670 bytes 2 files changed, 4 insertions(+), 2 deletions(-) create mode 100644 docs/images/webhook-create.png diff --git a/docs/documentation/platform/webhooks.mdx b/docs/documentation/platform/webhooks.mdx index 22277dd8c7..dc3a71b27f 100644 --- a/docs/documentation/platform/webhooks.mdx +++ b/docs/documentation/platform/webhooks.mdx @@ -9,7 +9,9 @@ Webhooks can be used to trigger changes to your integrations when secrets are mo To create a webhook for a particular project, go to `Project Settings > Webhooks`. -When creating a webhook, you can specify an environment and folder path (using glob patterns) to trigger only specific integrations. +Infisical supports two webhook types - General and Slack. If you need to integrate with Slack, use the Slack type with an [Incoming Webhook](https://api.slack.com/messaging/webhooks). When creating a webhook, you can specify an environment and folder path to trigger only specific integrations. + +![webhook-create](../../images/webhook-create.png) ## Secret Key Verification @@ -27,7 +29,7 @@ If the signature in the header matches the signature that you generated, then yo { "event": "secret.modified", "project": { - "workspaceId":"the workspace id", + "workspaceId": "the workspace id", "environment": "project environment", "secretPath": "project folder path" }, diff --git a/docs/images/webhook-create.png b/docs/images/webhook-create.png new file mode 100644 index 0000000000000000000000000000000000000000..e73f14767c606ac746b50efea051a4f792964e37 GIT binary patch literal 444670 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
5^`wrMp`Z5EZ4H4G2g# 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%0Dly6WEJH#(RV2q}0nQ)k|)3 zkE3}#(lANhH5m6aeJ=f~evzg3OruM^;T;v-ii@?wUS`u4BxRlFJa!|@#b%5wsmfvDDer8$cB81%@F=BwF@c-17|3YqAc+^V`Z z;4dJB)5`lj27S#2MR%Wqi8|TL&(@(N$T>y=>;pqK9)p_M%I1aaw!)lsFkDEwa}@Q> zWvWdebE<$RYiqm6B0MLQ(R1agki(+NRS~mKnx%H14+^BJggN>Zoy^urX#x=v%xX?H z&W8}LaNf>#C^T>FT6#Ozn>{2t8Kpan85vs08ZxS6s>HdLMizgRw)=``$Pfpu#ZXa; zD*eu#KdW(ILX(~x%A7RzWljuYyP4CIr>qIMV6X2yf^M79A-GKgTxO-i8z%(ZjUuA8 zXR0{Yb2W36SBhfcfrOIrMZy&hiwNAOH6Ral`Ce)Jr`)QgASLPiH^gW$O#cN;-|1+r z><@k`dLp>mFLAiXVyRP-xI+R9WnL9HCdBaJnG^fEOQ2>B9}Q?4C7f<~Uo^oZ{z@Xp z;|68`w*w{CDk_>Da_VC$h7*O)IVA8z@ZhC|LT$jMx!#38!VKlXGy)HnNN6(O7Ww(z z8;1lj?Q6#cUvajZ*|c{Nn~gVx^w^@^Fg0`1?!s1x>FG zWSO1Fsh50KB@1_Ji#W!>?w8P^8WEH!Tuu3qYh#)HRE`_as=3Zx(xS$yym~333|Rj| zcGdz^jY(zYxIYl*r2;X@>m7rzLr3&g5uwTU7{;Z}d;o7Yl$O{gDj-D)vhNhnUR|?q zLNtnzw+$U7Xcxn|!@kry&hR5J`Za2Cb6*bgRH;xWSr1JvSIyWj27+xUO^UJF$9soD z@D8~T1Few_HB9}6%kosYsj~3#98*Xx@>Xk$K2YhXT{m9f!_?wxgl6JTC0z3IgtyWl zT4r>R1YV!t%F(%crE5Se#W%PW7}rnMX30r_vLX(el<_}#M^4Xo#OTJ7zjYJ-$QtgX zkf2!(mbObkLND~TGhnd*%)>X_F@eX^si1MK{Jkx+Cpz)r@C$ae>%x>1@j{3;1|g>` z_D(EV!!`Vj<>oLDYN)5I1_0!Aua5b)wz6NL?Oa4m2+&&-bh{pjT(R-G&?LLVIw64i zg!(jW8Q1F%CW9tMPlk!CY38j>NVSIyvfA?KCkwu53Xarw{SfVpl*tBDi7aa_s>-%o zZHSujSzZUbe#(~9UfXs8CQXmuBBu*u%ET6xB?{YCod}$rgtr&#eZnRZ*beu*^q2^= z3{5GAD0^*w-br1sP&((SV-in4)fz*aV}5O5#~qsQ1xtIhd!NN#vwgfJ&y#|C=kj?o zYpWme3Rj)XSlK$2yLzp8pO@O@v&9Pm8WOk}WziQ)pbNjcB5-Lgva6Wz0KZTp*~)WP#hjqcIohdS3;lxb#^6dU&lg5A|Ci#% zxwM_M-|hghIw{JUAttm3YCTWMK;Zxm=rMlXv|WT(-W0j+Arv)t8a}oTtxcK{!FT5> zAe)P+>NoH*0{cbA$xh8uAGl+pTc+|Y1;u7$@OHUf3>RJP1yl{P-`~8aDEj|b1$b#E9v+j@mP<509pNLtcyBG8>0r!uDZ?(US$PMr~?e@Kq_JP&8HEK?c ztCXWw{glNunCgWOM>mRJrXk4<1!Vi^Bf=af;7򺴨Z-$;0d0F{5)}YuDwwgLS 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 literal 0 HcmV?d00001 From a45453629c7e10883152a3cc32624d229fce39d6 Mon Sep 17 00:00:00 2001 From: Sheen Capadngan Date: Wed, 3 Jul 2024 18:32:21 +0800 Subject: [PATCH 026/145] misc: addressed main page ui/ux concerns --- frontend/src/views/SecretMainPage/SecretMainPage.tsx | 3 +-- .../views/SecretMainPage/components/ActionBar/ActionBar.tsx | 2 +- .../SecretMainPage/components/SecretListView/SecretItem.tsx | 4 ++-- frontend/src/views/SecretOverviewPage/SecretOverviewPage.tsx | 3 ++- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/frontend/src/views/SecretMainPage/SecretMainPage.tsx b/frontend/src/views/SecretMainPage/SecretMainPage.tsx index 122135c036..79bc72855c 100644 --- a/frontend/src/views/SecretMainPage/SecretMainPage.tsx +++ b/frontend/src/views/SecretMainPage/SecretMainPage.tsx @@ -53,13 +53,12 @@ export const SecretMainPage = () => { const { currentWorkspace, isLoading: isWorkspaceLoading } = useWorkspace(); const router = useRouter(); const { permission } = useProjectPermission(); - const [isVisible, setIsVisible] = useState(false); const [sortDir, setSortDir] = useState(SortDir.ASC); const [filter, setFilter] = useState({ tags: {}, - searchFilter: "" + searchFilter: (router.query.searchFilter as string) || "" }); const [snapshotId, setSnapshotId] = useState(null); diff --git a/frontend/src/views/SecretMainPage/components/ActionBar/ActionBar.tsx b/frontend/src/views/SecretMainPage/components/ActionBar/ActionBar.tsx index 0056c4a3b5..627d275395 100644 --- a/frontend/src/views/SecretMainPage/components/ActionBar/ActionBar.tsx +++ b/frontend/src/views/SecretMainPage/components/ActionBar/ActionBar.tsx @@ -334,7 +334,7 @@ export const ActionBar = ({ className="h-10" isDisabled={!isAllowed} > - {`${snapshotCount} ${snapshotCount === 1 ? "Commit" : "Commits"}`} + {`${snapshotCount} ${snapshotCount === 1 ? "Snapshot" : "Snapshots"}`} )} diff --git a/frontend/src/views/SecretMainPage/components/SecretListView/SecretItem.tsx b/frontend/src/views/SecretMainPage/components/SecretListView/SecretItem.tsx index 3726f30575..6d45d3da01 100644 --- a/frontend/src/views/SecretMainPage/components/SecretListView/SecretItem.tsx +++ b/frontend/src/views/SecretMainPage/components/SecretListView/SecretItem.tsx @@ -250,7 +250,7 @@ export const SecretItem = memo( />
@@ -498,7 +498,7 @@ export const SecretItem = memo( {!isDirty ? ( { }); } } - const query: Record = { ...router.query, env: slug }; + + const query: Record = { ...router.query, env: slug, searchFilter }; const envIndex = visibleEnvs.findIndex((el) => slug === el.slug); if (envIndex !== -1) { router.push({ From b6a9dc7f53f3d290314f2bcf8ffe65c225aeca30 Mon Sep 17 00:00:00 2001 From: = Date: Wed, 3 Jul 2024 20:03:21 +0530 Subject: [PATCH 027/145] feat: completed migration for secret approval group --- .../20240702131735_secret-approval-groups.ts | 188 ++++++++++++++++++ .../secret-approval-policies-approvers.ts | 4 +- .../secret-approval-requests-reviewers.ts | 4 +- .../db/schemas/secret-approval-requests.ts | 6 +- 4 files changed, 195 insertions(+), 7 deletions(-) create mode 100644 backend/src/db/migrations/20240702131735_secret-approval-groups.ts diff --git a/backend/src/db/migrations/20240702131735_secret-approval-groups.ts b/backend/src/db/migrations/20240702131735_secret-approval-groups.ts new file mode 100644 index 0000000000..537230b470 --- /dev/null +++ b/backend/src/db/migrations/20240702131735_secret-approval-groups.ts @@ -0,0 +1,188 @@ +import { Knex } from "knex"; + +import { TableName } from "../schemas"; + +export async function up(knex: Knex): Promise { + // migrate secret approval policy approvers to user id + const hasApproverUserId = await knex.schema.hasColumn(TableName.SecretApprovalPolicyApprover, "approverUserId"); + const hasApproverId = await knex.schema.hasColumn(TableName.SecretApprovalPolicyApprover, "approverId"); + if (!hasApproverUserId) { + // add the new fields + await knex.schema.alterTable(TableName.SecretApprovalPolicyApprover, (tb) => { + // if (hasApproverId) tb.setNullable("approverId"); + tb.uuid("approverUserId"); + tb.foreign("approverUserId").references("id").inTable(TableName.Users).onDelete("CASCADE"); + }); + + // convert project membership id => user id + await knex(TableName.SecretApprovalPolicyApprover).update({ + // eslint-disable-next-line + // @ts-ignore because generate schema happens after this + approverUserId: knex(TableName.ProjectMembership) + .select("userId") + .where("id", knex.raw("??", [`${TableName.SecretApprovalPolicyApprover}.approverId`])) + }); + // drop the old field + await knex.schema.alterTable(TableName.SecretApprovalPolicyApprover, (tb) => { + if (hasApproverId) tb.dropColumn("approverId"); + tb.uuid("approverUserId").notNullable().alter(); + }); + } + + // migrate secret approval request committer and statusChangeBy to user id + const hasSecretApprovalRequestTable = await knex.schema.hasTable(TableName.SecretApprovalRequest); + const hasCommitterUserId = await knex.schema.hasColumn(TableName.SecretApprovalRequest, "committerUserId"); + const hasCommitterId = await knex.schema.hasColumn(TableName.SecretApprovalRequest, "committerId"); + const hasStatusChangeBy = await knex.schema.hasColumn(TableName.SecretApprovalRequest, "statusChangeBy"); + const hasStatusChangedByUserId = await knex.schema.hasColumn( + TableName.SecretApprovalRequest, + "statusChangedByUserId" + ); + if (hasSecretApprovalRequestTable) { + // new fields + await knex.schema.alterTable(TableName.SecretApprovalRequest, (tb) => { + // if (hasCommitterId) tb.setNullable("committerId"); + if (!hasCommitterUserId) { + tb.uuid("committerUserId"); + tb.foreign("committerUserId").references("id").inTable(TableName.Users).onDelete("SET NULL"); + } + if (!hasStatusChangedByUserId) { + tb.uuid("statusChangedByUserId"); + tb.foreign("statusChangedByUserId").references("id").inTable(TableName.Users).onDelete("SET NULL"); + } + }); + + // copy the assigned project membership => user id to new fields + await knex(TableName.SecretApprovalRequest).update({ + // eslint-disable-next-line + // @ts-ignore because generate schema happens after this + committerUserId: knex(TableName.ProjectMembership) + .select("userId") + .where("id", knex.raw("??", [`${TableName.SecretApprovalRequest}.committerId`])), + // eslint-disable-next-line + // @ts-ignore because generate schema happens after this + statusChangedByUserId: knex(TableName.ProjectMembership) + .select("userId") + .where("id", knex.raw("??", [`${TableName.SecretApprovalRequest}.statusChangeBy`])) + }); + // drop old fields + await knex.schema.alterTable(TableName.SecretApprovalRequest, (tb) => { + if (hasStatusChangeBy) tb.dropColumn("statusChangeBy"); + if (hasCommitterId) tb.dropColumn("committerId"); + tb.uuid("committerUserId").notNullable().alter(); + }); + } + + // migrate secret approval request reviewer to user id + const hasMemberId = await knex.schema.hasColumn(TableName.SecretApprovalRequestReviewer, "member"); + const hasReviewerUserId = await knex.schema.hasColumn(TableName.SecretApprovalRequestReviewer, "reviewerUserId"); + if (!hasReviewerUserId) { + // new fields + await knex.schema.alterTable(TableName.SecretApprovalRequestReviewer, (tb) => { + // if (hasMemberId) tb.setNullable("member"); + tb.uuid("reviewerUserId"); + tb.foreign("reviewerUserId").references("id").inTable(TableName.Users).onDelete("SET NULL"); + }); + // copy project membership => user id to new fields + await knex(TableName.SecretApprovalRequestReviewer).update({ + // eslint-disable-next-line + // @ts-ignore because generate schema happens after this + reviewerUserId: knex(TableName.ProjectMembership) + .select("userId") + .where("id", knex.raw("??", [`${TableName.SecretApprovalRequestReviewer}.member`])) + }); + // drop table + await knex.schema.alterTable(TableName.SecretApprovalRequestReviewer, (tb) => { + if (hasMemberId) tb.dropColumn("member"); + tb.uuid("reviewerUserId").notNullable().alter(); + }); + } +} + +export async function down(knex: Knex): Promise { + const hasApproverUserId = await knex.schema.hasColumn(TableName.SecretApprovalPolicyApprover, "approverUserId"); + const hasApproverId = await knex.schema.hasColumn(TableName.SecretApprovalPolicyApprover, "approverId"); + if (hasApproverUserId) { + await knex.schema.alterTable(TableName.SecretApprovalPolicyApprover, (tb) => { + if (!hasApproverId) { + tb.uuid("approverId"); + tb.foreign("approverId").references("id").inTable(TableName.ProjectMembership).onDelete("CASCADE"); + } + }); + + if (!hasApproverId) { + await knex(TableName.SecretApprovalPolicyApprover).update({ + // eslint-disable-next-line + // @ts-ignore because generate schema happens after this + approverId: knex(TableName.ProjectMembership) + .select("id") + .where("userId", knex.raw("??", [`${TableName.SecretApprovalPolicyApprover}.approverUserId`])) + }); + await knex.schema.alterTable(TableName.SecretApprovalPolicyApprover, (tb) => { + tb.dropColumn("approverUserId"); + tb.uuid("approverId").notNullable().alter(); + }); + } + } + + const hasSecretApprovalRequestTable = await knex.schema.hasTable(TableName.SecretApprovalRequest); + const hasCommitterUserId = await knex.schema.hasColumn(TableName.SecretApprovalRequest, "committerUserId"); + const hasCommitterId = await knex.schema.hasColumn(TableName.SecretApprovalRequest, "committerId"); + const hasStatusChangeBy = await knex.schema.hasColumn(TableName.SecretApprovalRequest, "statusChangeBy"); + const hasStatusChangedByUser = await knex.schema.hasColumn(TableName.SecretApprovalRequest, "statusChangedByUserId"); + if (hasSecretApprovalRequestTable) { + await knex.schema.alterTable(TableName.SecretApprovalRequest, (tb) => { + // if (hasCommitterId) tb.uuid("committerId").notNullable().alter(); + if (!hasCommitterId) { + tb.uuid("committerId"); + tb.foreign("committerId").references("id").inTable(TableName.ProjectMembership).onDelete("CASCADE"); + } + if (!hasStatusChangeBy) { + tb.uuid("statusChangeBy"); + tb.foreign("statusChangeBy").references("id").inTable(TableName.ProjectMembership).onDelete("SET NULL"); + } + }); + + await knex(TableName.SecretApprovalRequest).update({ + // eslint-disable-next-line + // @ts-ignore because generate schema happens after this + committerId: knex(TableName.ProjectMembership) + .select("id") + .where("userId", knex.raw("??", [`${TableName.SecretApprovalRequest}.committerUserId`])), + // eslint-disable-next-line + // @ts-ignore because generate schema happens after this + statusChangeBy: knex(TableName.ProjectMembership) + .select("id") + .where("userId", knex.raw("??", [`${TableName.SecretApprovalRequest}.statusChangedByUserId`])) + }); + + await knex.schema.alterTable(TableName.SecretApprovalRequest, (tb) => { + if (hasCommitterUserId) tb.dropColumn("committerUserId"); + if (hasStatusChangedByUser) tb.dropColumn("statusChangedByUserId"); + if (hasCommitterId) tb.uuid("committerId").notNullable().alter(); + }); + } + + const hasMemberId = await knex.schema.hasColumn(TableName.SecretApprovalRequestReviewer, "member"); + const hasReviewerUserId = await knex.schema.hasColumn(TableName.SecretApprovalRequestReviewer, "reviewerUserId"); + if (hasReviewerUserId) { + if (!hasMemberId) { + await knex.schema.alterTable(TableName.SecretApprovalRequestReviewer, (tb) => { + // if (hasMemberId) tb.uuid("member").notNullable().alter(); + tb.uuid("member"); + tb.foreign("member").references("id").inTable(TableName.ProjectMembership).onDelete("CASCADE"); + }); + } + await knex(TableName.SecretApprovalRequestReviewer).update({ + // eslint-disable-next-line + // @ts-ignore because generate schema happens after this + member: knex(TableName.ProjectMembership) + .select("id") + .where("userId", knex.raw("??", [`${TableName.SecretApprovalRequestReviewer}.reviewerUserId`])) + }); + await knex.schema.alterTable(TableName.SecretApprovalRequestReviewer, (tb) => { + tb.uuid("member").notNullable().alter(); + tb.dropColumn("reviewerUserId"); + }); + } +} diff --git a/backend/src/db/schemas/secret-approval-policies-approvers.ts b/backend/src/db/schemas/secret-approval-policies-approvers.ts index 12a3119e6d..3af5614f4d 100644 --- a/backend/src/db/schemas/secret-approval-policies-approvers.ts +++ b/backend/src/db/schemas/secret-approval-policies-approvers.ts @@ -9,10 +9,10 @@ import { TImmutableDBKeys } from "./models"; export const SecretApprovalPoliciesApproversSchema = z.object({ id: z.string().uuid(), - approverId: z.string().uuid(), policyId: z.string().uuid(), createdAt: z.date(), - updatedAt: z.date() + updatedAt: z.date(), + approverUserId: z.string().uuid() }); export type TSecretApprovalPoliciesApprovers = z.infer; diff --git a/backend/src/db/schemas/secret-approval-requests-reviewers.ts b/backend/src/db/schemas/secret-approval-requests-reviewers.ts index f3ff880473..a5c4455878 100644 --- a/backend/src/db/schemas/secret-approval-requests-reviewers.ts +++ b/backend/src/db/schemas/secret-approval-requests-reviewers.ts @@ -9,11 +9,11 @@ import { TImmutableDBKeys } from "./models"; export const SecretApprovalRequestsReviewersSchema = z.object({ id: z.string().uuid(), - member: z.string().uuid(), status: z.string(), requestId: z.string().uuid(), createdAt: z.date(), - updatedAt: z.date() + updatedAt: z.date(), + reviewerUserId: z.string().uuid() }); export type TSecretApprovalRequestsReviewers = z.infer; diff --git a/backend/src/db/schemas/secret-approval-requests.ts b/backend/src/db/schemas/secret-approval-requests.ts index 77ad370b7f..aa6896d106 100644 --- a/backend/src/db/schemas/secret-approval-requests.ts +++ b/backend/src/db/schemas/secret-approval-requests.ts @@ -15,11 +15,11 @@ export const SecretApprovalRequestsSchema = z.object({ conflicts: z.unknown().nullable().optional(), slug: z.string(), folderId: z.string().uuid(), - statusChangeBy: z.string().uuid().nullable().optional(), - committerId: z.string().uuid(), createdAt: z.date(), updatedAt: z.date(), - isReplicated: z.boolean().nullable().optional() + isReplicated: z.boolean().nullable().optional(), + committerUserId: z.string().uuid(), + statusChangedByUserId: z.string().uuid().nullable().optional() }); export type TSecretApprovalRequests = z.infer; From 612cf4f9685f74e75879438f188998deca5a052b Mon Sep 17 00:00:00 2001 From: = Date: Wed, 3 Jul 2024 20:09:17 +0530 Subject: [PATCH 028/145] feat: server logic for secret approval group --- .../v1/secret-approval-policy-router.ts | 24 +++- .../v1/secret-approval-request-router.ts | 25 +++- .../secret-approval-policy-dal.ts | 79 ++++++---- .../secret-approval-policy-service.ts | 39 ++--- .../secret-approval-policy-types.ts | 4 +- .../secret-approval-request-dal.ts | 136 +++++++++++++++--- .../secret-approval-request-service.ts | 54 ++++--- .../secret-replication-service.ts | 11 +- backend/src/server/routes/index.ts | 2 - backend/src/server/routes/v3/secret-router.ts | 12 +- 10 files changed, 242 insertions(+), 144 deletions(-) diff --git a/backend/src/ee/routes/v1/secret-approval-policy-router.ts b/backend/src/ee/routes/v1/secret-approval-policy-router.ts index b09b58e261..ee10131dd0 100644 --- a/backend/src/ee/routes/v1/secret-approval-policy-router.ts +++ b/backend/src/ee/routes/v1/secret-approval-policy-router.ts @@ -25,10 +25,10 @@ export const registerSecretApprovalPolicyRouter = async (server: FastifyZodProvi .optional() .nullable() .transform((val) => (val ? removeTrailingSlash(val) : val)), - approvers: z.string().array().min(1), + approverUserIds: z.string().array().min(1), approvals: z.number().min(1).default(1) }) - .refine((data) => data.approvals <= data.approvers.length, { + .refine((data) => data.approvals <= data.approverUserIds.length, { path: ["approvals"], message: "The number of approvals should be lower than the number of approvers." }), @@ -66,7 +66,7 @@ export const registerSecretApprovalPolicyRouter = async (server: FastifyZodProvi body: z .object({ name: z.string().optional(), - approvers: z.string().array().min(1), + approverUserIds: z.string().array().min(1), approvals: z.number().min(1).default(1), secretPath: z .string() @@ -74,7 +74,7 @@ export const registerSecretApprovalPolicyRouter = async (server: FastifyZodProvi .nullable() .transform((val) => (val ? removeTrailingSlash(val) : val)) }) - .refine((data) => data.approvals <= data.approvers.length, { + .refine((data) => data.approvals <= data.approverUserIds.length, { path: ["approvals"], message: "The number of approvals should be lower than the number of approvers." }), @@ -139,7 +139,15 @@ export const registerSecretApprovalPolicyRouter = async (server: FastifyZodProvi }), response: { 200: z.object({ - approvals: sapPubSchema.merge(z.object({ approvers: z.string().array() })).array() + approvals: sapPubSchema + .extend({ + userApprovers: z + .object({ + userId: z.string() + }) + .array() + }) + .array() }) } }, @@ -170,7 +178,11 @@ export const registerSecretApprovalPolicyRouter = async (server: FastifyZodProvi }), response: { 200: z.object({ - policy: sapPubSchema.merge(z.object({ approvers: z.string().array() })).optional() + policy: sapPubSchema + .extend({ + userApprovers: z.object({ userId: z.string() }).array() + }) + .optional() }) } }, diff --git a/backend/src/ee/routes/v1/secret-approval-request-router.ts b/backend/src/ee/routes/v1/secret-approval-request-router.ts index b7204f72e2..8e72597bde 100644 --- a/backend/src/ee/routes/v1/secret-approval-request-router.ts +++ b/backend/src/ee/routes/v1/secret-approval-request-router.ts @@ -6,7 +6,8 @@ import { SecretApprovalRequestsSecretsSchema, SecretsSchema, SecretTagsSchema, - SecretVersionsSchema + SecretVersionsSchema, + UsersSchema } from "@app/db/schemas"; import { EventType } from "@app/ee/services/audit-log/audit-log-types"; import { ApprovalStatus, RequestState } from "@app/ee/services/secret-approval-request/secret-approval-request-types"; @@ -14,6 +15,15 @@ import { readLimit, writeLimit } from "@app/server/config/rateLimiter"; import { verifyAuth } from "@app/server/plugins/auth/verify-auth"; import { AuthMode } from "@app/services/auth/auth-type"; +const approvalRequestUser = z.object({ userId: z.string() }).merge( + UsersSchema.pick({ + email: true, + firstName: true, + lastName: true, + username: true + }) +); + export const registerSecretApprovalRequestRouter = async (server: FastifyZodProvider) => { server.route({ method: "GET", @@ -41,9 +51,10 @@ export const registerSecretApprovalRequestRouter = async (server: FastifyZodProv approvers: z.string().array(), secretPath: z.string().optional().nullable() }), + committerUser: approvalRequestUser, commits: z.object({ op: z.string(), secretId: z.string().nullable().optional() }).array(), environment: z.string(), - reviewers: z.object({ member: z.string(), status: z.string() }).array(), + reviewers: z.object({ userId: z.string(), status: z.string() }).array(), approvers: z.string().array() }).array() }) @@ -195,7 +206,7 @@ export const registerSecretApprovalRequestRouter = async (server: FastifyZodProv type: isClosing ? EventType.SECRET_APPROVAL_CLOSED : EventType.SECRET_APPROVAL_REOPENED, // eslint-disable-next-line metadata: { - [isClosing ? ("closedBy" as const) : ("reopenedBy" as const)]: approval.statusChangeBy as string, + [isClosing ? ("closedBy" as const) : ("reopenedBy" as const)]: approval.statusChangedByUserId as string, secretApprovalRequestId: approval.id, secretApprovalRequestSlug: approval.slug // eslint-disable-next-line @@ -216,6 +227,7 @@ export const registerSecretApprovalRequestRouter = async (server: FastifyZodProv }) .array() .optional(); + server.route({ method: "GET", url: "/:id", @@ -235,12 +247,13 @@ export const registerSecretApprovalRequestRouter = async (server: FastifyZodProv id: z.string(), name: z.string(), approvals: z.number(), - approvers: z.string().array(), + approvers: approvalRequestUser.array(), secretPath: z.string().optional().nullable() }), environment: z.string(), - reviewers: z.object({ member: z.string(), status: z.string() }).array(), - approvers: z.string().array(), + statusChangedByUser: approvalRequestUser.optional(), + committerUser: approvalRequestUser, + reviewers: approvalRequestUser.extend({ status: z.string() }).array(), secretPath: z.string(), commits: SecretApprovalRequestsSecretsSchema.omit({ secretBlindIndex: true }) .merge( diff --git a/backend/src/ee/services/secret-approval-policy/secret-approval-policy-dal.ts b/backend/src/ee/services/secret-approval-policy/secret-approval-policy-dal.ts index 883e63747c..daf6d0bd8f 100644 --- a/backend/src/ee/services/secret-approval-policy/secret-approval-policy-dal.ts +++ b/backend/src/ee/services/secret-approval-policy/secret-approval-policy-dal.ts @@ -1,49 +1,59 @@ import { Knex } from "knex"; import { TDbClient } from "@app/db"; -import { TableName, TSecretApprovalPolicies } from "@app/db/schemas"; +import { SecretApprovalPoliciesSchema, TableName, TSecretApprovalPolicies } from "@app/db/schemas"; import { DatabaseError } from "@app/lib/errors"; -import { buildFindFilter, mergeOneToManyRelation, ormify, selectAllTableCols, TFindFilter } from "@app/lib/knex"; +import { buildFindFilter, ormify, selectAllTableCols, sqlNestRelationships, TFindFilter } from "@app/lib/knex"; export type TSecretApprovalPolicyDALFactory = ReturnType; export const secretApprovalPolicyDALFactory = (db: TDbClient) => { const secretApprovalPolicyOrm = ormify(db, TableName.SecretApprovalPolicy); - const sapFindQuery = (tx: Knex, filter: TFindFilter) => + const secretApprovalPolicyFindQuery = (tx: Knex, filter: TFindFilter) => tx(TableName.SecretApprovalPolicy) // eslint-disable-next-line .where(buildFindFilter(filter)) .join(TableName.Environment, `${TableName.SecretApprovalPolicy}.envId`, `${TableName.Environment}.id`) - .join( + .leftJoin( TableName.SecretApprovalPolicyApprover, `${TableName.SecretApprovalPolicy}.id`, `${TableName.SecretApprovalPolicyApprover}.policyId` ) - .select(tx.ref("approverId").withSchema(TableName.SecretApprovalPolicyApprover)) - .select(tx.ref("name").withSchema(TableName.Environment).as("envName")) - .select(tx.ref("slug").withSchema(TableName.Environment).as("envSlug")) - .select(tx.ref("id").withSchema(TableName.Environment).as("envId")) - .select(tx.ref("projectId").withSchema(TableName.Environment)) + .select(tx.ref("approverUserId").withSchema(TableName.SecretApprovalPolicyApprover)) + .select( + tx.ref("name").withSchema(TableName.Environment).as("envName"), + tx.ref("slug").withSchema(TableName.Environment).as("envSlug"), + tx.ref("id").withSchema(TableName.Environment).as("envId"), + tx.ref("projectId").withSchema(TableName.Environment) + ) .select(selectAllTableCols(TableName.SecretApprovalPolicy)) .orderBy("createdAt", "asc"); const findById = async (id: string, tx?: Knex) => { try { - const doc = await sapFindQuery(tx || db.replicaNode(), { + const doc = await secretApprovalPolicyFindQuery(tx || db.replicaNode(), { [`${TableName.SecretApprovalPolicy}.id` as "id"]: id }); - const formatedDoc = mergeOneToManyRelation( - doc, - "id", - ({ approverId, envId, envName: name, envSlug: slug, ...el }) => ({ - ...el, - envId, - environment: { id: envId, name, slug } + const formatedDoc = sqlNestRelationships({ + data: doc, + key: "id", + parentMapper: (data) => ({ + environment: { id: data.envId, name: data.envName, slug: data.envSlug }, + projectId: data.projectId, + ...SecretApprovalPoliciesSchema.parse(data) }), - ({ approverId }) => approverId, - "approvers" - ); + childrenMapper: [ + { + key: "approverUserId", + label: "userApprovers" as const, + mapper: ({ approverUserId }) => ({ + userId: approverUserId + }) + } + ] + }); + return formatedDoc?.[0]; } catch (error) { throw new DatabaseError({ error, name: "FindById" }); @@ -52,18 +62,25 @@ export const secretApprovalPolicyDALFactory = (db: TDbClient) => { const find = async (filter: TFindFilter, tx?: Knex) => { try { - const docs = await sapFindQuery(tx || db.replicaNode(), filter); - const formatedDoc = mergeOneToManyRelation( - docs, - "id", - ({ approverId, envId, envName: name, envSlug: slug, ...el }) => ({ - ...el, - envId, - environment: { id: envId, name, slug } + const docs = await secretApprovalPolicyFindQuery(tx || db.replicaNode(), filter); + const formatedDoc = sqlNestRelationships({ + data: docs, + key: "id", + parentMapper: (data) => ({ + environment: { id: data.envId, name: data.envName, slug: data.envSlug }, + projectId: data.projectId, + ...SecretApprovalPoliciesSchema.parse(data) }), - ({ approverId }) => approverId, - "approvers" - ); + childrenMapper: [ + { + key: "approverUserId", + label: "userApprovers" as const, + mapper: ({ approverUserId }) => ({ + userId: approverUserId + }) + } + ] + }); return formatedDoc; } catch (error) { throw new DatabaseError({ error, name: "Find" }); diff --git a/backend/src/ee/services/secret-approval-policy/secret-approval-policy-service.ts b/backend/src/ee/services/secret-approval-policy/secret-approval-policy-service.ts index f99384de61..2db825c888 100644 --- a/backend/src/ee/services/secret-approval-policy/secret-approval-policy-service.ts +++ b/backend/src/ee/services/secret-approval-policy/secret-approval-policy-service.ts @@ -7,7 +7,6 @@ import { BadRequestError } from "@app/lib/errors"; import { removeTrailingSlash } from "@app/lib/fn"; import { containsGlobPatterns } from "@app/lib/picomatch"; import { TProjectEnvDALFactory } from "@app/services/project-env/project-env-dal"; -import { TProjectMembershipDALFactory } from "@app/services/project-membership/project-membership-dal"; import { TSecretApprovalPolicyApproverDALFactory } from "./secret-approval-policy-approver-dal"; import { TSecretApprovalPolicyDALFactory } from "./secret-approval-policy-dal"; @@ -29,7 +28,6 @@ type TSecretApprovalPolicyServiceFactoryDep = { secretApprovalPolicyDAL: TSecretApprovalPolicyDALFactory; projectEnvDAL: Pick; secretApprovalPolicyApproverDAL: TSecretApprovalPolicyApproverDALFactory; - projectMembershipDAL: Pick; }; export type TSecretApprovalPolicyServiceFactory = ReturnType; @@ -38,8 +36,7 @@ export const secretApprovalPolicyServiceFactory = ({ secretApprovalPolicyDAL, permissionService, secretApprovalPolicyApproverDAL, - projectEnvDAL, - projectMembershipDAL + projectEnvDAL }: TSecretApprovalPolicyServiceFactoryDep) => { const createSecretApprovalPolicy = async ({ name, @@ -48,12 +45,12 @@ export const secretApprovalPolicyServiceFactory = ({ actorOrgId, actorAuthMethod, approvals, - approvers, + approverUserIds, projectId, secretPath, environment }: TCreateSapDTO) => { - if (approvals > approvers.length) + if (approvals > approverUserIds.length) throw new BadRequestError({ message: "Approvals cannot be greater than approvers" }); const { permission } = await permissionService.getProjectPermission( @@ -70,13 +67,6 @@ export const secretApprovalPolicyServiceFactory = ({ const env = await projectEnvDAL.findOne({ slug: environment, projectId }); if (!env) throw new BadRequestError({ message: "Environment not found" }); - const secretApprovers = await projectMembershipDAL.find({ - projectId, - $in: { id: approvers } - }); - if (secretApprovers.length !== approvers.length) - throw new BadRequestError({ message: "Approver not found in project" }); - const secretApproval = await secretApprovalPolicyDAL.transaction(async (tx) => { const doc = await secretApprovalPolicyDAL.create( { @@ -88,8 +78,8 @@ export const secretApprovalPolicyServiceFactory = ({ tx ); await secretApprovalPolicyApproverDAL.insertMany( - secretApprovers.map(({ id }) => ({ - approverId: id, + approverUserIds.map((approverUserId) => ({ + approverUserId, policyId: doc.id })), tx @@ -100,7 +90,7 @@ export const secretApprovalPolicyServiceFactory = ({ }; const updateSecretApprovalPolicy = async ({ - approvers, + approverUserIds, secretPath, name, actorId, @@ -132,22 +122,11 @@ export const secretApprovalPolicyServiceFactory = ({ }, tx ); - if (approvers) { - const secretApprovers = await projectMembershipDAL.find( - { - projectId: secretApprovalPolicy.projectId, - $in: { id: approvers } - }, - { tx } - ); - if (secretApprovers.length !== approvers.length) - throw new BadRequestError({ message: "Approver not found in project" }); - if (doc.approvals > secretApprovers.length) - throw new BadRequestError({ message: "Approvals cannot be greater than approvers" }); + if (approverUserIds) { await secretApprovalPolicyApproverDAL.delete({ policyId: doc.id }, tx); await secretApprovalPolicyApproverDAL.insertMany( - secretApprovers.map(({ id }) => ({ - approverId: id, + approverUserIds.map((approverUserId) => ({ + approverUserId, policyId: doc.id })), tx diff --git a/backend/src/ee/services/secret-approval-policy/secret-approval-policy-types.ts b/backend/src/ee/services/secret-approval-policy/secret-approval-policy-types.ts index 2ddd9b51be..1a527289c5 100644 --- a/backend/src/ee/services/secret-approval-policy/secret-approval-policy-types.ts +++ b/backend/src/ee/services/secret-approval-policy/secret-approval-policy-types.ts @@ -4,7 +4,7 @@ export type TCreateSapDTO = { approvals: number; secretPath?: string | null; environment: string; - approvers: string[]; + approverUserIds: string[]; projectId: string; name: string; } & Omit; @@ -13,7 +13,7 @@ export type TUpdateSapDTO = { secretPolicyId: string; approvals?: number; secretPath?: string | null; - approvers: string[]; + approverUserIds: string[]; name?: string; } & Omit; diff --git a/backend/src/ee/services/secret-approval-request/secret-approval-request-dal.ts b/backend/src/ee/services/secret-approval-request/secret-approval-request-dal.ts index 4eda64f8f2..06c48ac8b3 100644 --- a/backend/src/ee/services/secret-approval-request/secret-approval-request-dal.ts +++ b/backend/src/ee/services/secret-approval-request/secret-approval-request-dal.ts @@ -5,7 +5,8 @@ import { SecretApprovalRequestsSchema, TableName, TSecretApprovalRequests, - TSecretApprovalRequestsSecrets + TSecretApprovalRequestsSecrets, + TUsers } from "@app/db/schemas"; import { DatabaseError } from "@app/lib/errors"; import { ormify, selectAllTableCols, sqlNestRelationships, stripUndefinedInWhere, TFindFilter } from "@app/lib/knex"; @@ -16,7 +17,7 @@ export type TSecretApprovalRequestDALFactory = ReturnType { `${TableName.SecretApprovalRequest}.policyId`, `${TableName.SecretApprovalPolicy}.id` ) + .leftJoin( + db(TableName.Users).as("statusChangedByUser"), + `${TableName.SecretApprovalRequest}.statusChangedByUserId`, + `statusChangedByUser.id` + ) + .join( + db(TableName.Users).as("committerUser"), + `${TableName.SecretApprovalRequest}.committerUserId`, + `committerUser.id` + ) .join( TableName.SecretApprovalPolicyApprover, `${TableName.SecretApprovalPolicy}.id`, `${TableName.SecretApprovalPolicyApprover}.policyId` ) + .join( + db(TableName.Users).as("secretApprovalPolicyApproverUser"), + `${TableName.SecretApprovalPolicyApprover}.approverUserId`, + "secretApprovalPolicyApproverUser.id" + ) .leftJoin( TableName.SecretApprovalRequestReviewer, `${TableName.SecretApprovalRequest}.id`, `${TableName.SecretApprovalRequestReviewer}.requestId` ) + .leftJoin( + db(TableName.Users).as("secretApprovalReviewerUser"), + `${TableName.SecretApprovalRequestReviewer}.reviewerUserId`, + `secretApprovalReviewerUser.id` + ) .select(selectAllTableCols(TableName.SecretApprovalRequest)) .select( - tx.ref("member").withSchema(TableName.SecretApprovalRequestReviewer).as("reviewerMemberId"), + tx.ref("approverUserId").withSchema(TableName.SecretApprovalPolicyApprover), + tx.ref("email").withSchema("secretApprovalPolicyApproverUser").as("approverEmail"), + tx.ref("username").withSchema("secretApprovalPolicyApproverUser").as("approverUsername"), + tx.ref("firstName").withSchema("secretApprovalPolicyApproverUser").as("approverFirstName"), + tx.ref("lastName").withSchema("secretApprovalPolicyApproverUser").as("approverLastName"), + tx.ref("email").withSchema("statusChangedByUser").as("statusChangedByUserEmail"), + tx.ref("username").withSchema("statusChangedByUser").as("statusChangedByUserUsername"), + tx.ref("firstName").withSchema("statusChangedByUser").as("statusChangedByUserFirstName"), + tx.ref("lastName").withSchema("statusChangedByUser").as("statusChangedByUserLastName"), + tx.ref("email").withSchema("committerUser").as("committerUserEmail"), + tx.ref("username").withSchema("committerUser").as("committerUserUsername"), + tx.ref("firstName").withSchema("committerUser").as("committerUserFirstName"), + tx.ref("lastName").withSchema("committerUser").as("committerUserLastName"), + tx.ref("reviewerUserId").withSchema(TableName.SecretApprovalRequestReviewer), tx.ref("status").withSchema(TableName.SecretApprovalRequestReviewer).as("reviewerStatus"), + tx.ref("email").withSchema("secretApprovalReviewerUser").as("reviewerEmail"), + tx.ref("username").withSchema("secretApprovalReviewerUser").as("reviewerUsername"), + tx.ref("firstName").withSchema("secretApprovalReviewerUser").as("reviewerFirstName"), + tx.ref("lastName").withSchema("secretApprovalReviewerUser").as("reviewerLastName"), tx.ref("id").withSchema(TableName.SecretApprovalPolicy).as("policyId"), tx.ref("name").withSchema(TableName.SecretApprovalPolicy).as("policyName"), tx.ref("projectId").withSchema(TableName.Environment), tx.ref("slug").withSchema(TableName.Environment).as("environment"), tx.ref("secretPath").withSchema(TableName.SecretApprovalPolicy).as("policySecretPath"), - tx.ref("approvals").withSchema(TableName.SecretApprovalPolicy).as("policyApprovals"), - tx.ref("approverId").withSchema(TableName.SecretApprovalPolicyApprover) + tx.ref("approvals").withSchema(TableName.SecretApprovalPolicy).as("policyApprovals") ); const findById = async (id: string, tx?: Knex) => { @@ -71,6 +108,22 @@ export const secretApprovalRequestDALFactory = (db: TDbClient) => { ...SecretApprovalRequestsSchema.parse(el), projectId: el.projectId, environment: el.environment, + statusChangedByUser: el.statusChangedByUserId + ? { + userId: el.statusChangedByUserId, + email: el.statusChangedByUserEmail, + firstName: el.statusChangedByUserFirstName, + lastName: el.statusChangedByUserLastName, + username: el.statusChangedByUserUsername + } + : undefined, + committerUser: { + userId: el.committerUserId, + email: el.committerUserEmail, + firstName: el.committerUserFirstName, + lastName: el.committerUserLastName, + username: el.committerUserUsername + }, policy: { id: el.policyId, name: el.policyName, @@ -80,11 +133,34 @@ export const secretApprovalRequestDALFactory = (db: TDbClient) => { }), childrenMapper: [ { - key: "reviewerMemberId", + key: "reviewerUserId", label: "reviewers" as const, - mapper: ({ reviewerMemberId: member, reviewerStatus: status }) => (member ? { member, status } : undefined) + mapper: ({ + reviewerUserId: userId, + reviewerStatus: status, + reviewerEmail: email, + reviewerLastName: lastName, + reviewerUsername: username, + reviewerFirstName: firstName + }) => (userId ? { userId, status, email, firstName, lastName, username } : undefined) }, - { key: "approverId", label: "approvers" as const, mapper: ({ approverId }) => approverId } + { + key: "approverUserId", + label: "approvers" as const, + mapper: ({ + approverUserId, + approverEmail: email, + approverUsername: username, + approverLastName: lastName, + approverFirstName: firstName + }) => ({ + userId: approverUserId, + email, + firstName, + lastName, + username + }) + } ] }); if (!formatedDoc?.[0]) return; @@ -97,7 +173,7 @@ export const secretApprovalRequestDALFactory = (db: TDbClient) => { } }; - const findProjectRequestCount = async (projectId: string, membershipId: string, tx?: Knex) => { + const findProjectRequestCount = async (projectId: string, userId: string, tx?: Knex) => { try { const docs = await (tx || db) .with( @@ -114,8 +190,8 @@ export const secretApprovalRequestDALFactory = (db: TDbClient) => { .andWhere( (bd) => void bd - .where(`${TableName.SecretApprovalPolicyApprover}.approverId`, membershipId) - .orWhere(`${TableName.SecretApprovalRequest}.committerId`, membershipId) + .where(`${TableName.SecretApprovalPolicyApprover}.approverUserId`, userId) + .orWhere(`${TableName.SecretApprovalRequest}.committerUserId`, userId) ) .select("status", `${TableName.SecretApprovalRequest}.id`) .groupBy(`${TableName.SecretApprovalRequest}.id`, "status") @@ -142,7 +218,7 @@ export const secretApprovalRequestDALFactory = (db: TDbClient) => { }; const findByProjectId = async ( - { status, limit = 20, offset = 0, projectId, committer, environment, membershipId }: TFindQueryFilter, + { status, limit = 20, offset = 0, projectId, committer, environment, userId }: TFindQueryFilter, tx?: Knex ) => { try { @@ -161,6 +237,11 @@ export const secretApprovalRequestDALFactory = (db: TDbClient) => { `${TableName.SecretApprovalPolicy}.id`, `${TableName.SecretApprovalPolicyApprover}.policyId` ) + .join( + db(TableName.Users).as("committerUser"), + `${TableName.SecretApprovalRequest}.committerUserId`, + `committerUser.id` + ) .leftJoin( TableName.SecretApprovalRequestReviewer, `${TableName.SecretApprovalRequest}.id`, @@ -176,20 +257,21 @@ export const secretApprovalRequestDALFactory = (db: TDbClient) => { projectId, [`${TableName.Environment}.slug` as "slug"]: environment, [`${TableName.SecretApprovalRequest}.status`]: status, - committerId: committer + committerUserId: committer }) ) .andWhere( (bd) => void bd - .where(`${TableName.SecretApprovalPolicyApprover}.approverId`, membershipId) - .orWhere(`${TableName.SecretApprovalRequest}.committerId`, membershipId) + .where(`${TableName.SecretApprovalPolicyApprover}.approverUserId`, userId) + .orWhere(`${TableName.SecretApprovalRequest}.committerUserId`, userId) ) .select(selectAllTableCols(TableName.SecretApprovalRequest)) .select( db.ref("projectId").withSchema(TableName.Environment), db.ref("slug").withSchema(TableName.Environment).as("environment"), - db.ref("id").withSchema(TableName.SecretApprovalRequestReviewer).as("reviewerMemberId"), + db.ref("id").withSchema(TableName.SecretApprovalRequestReviewer).as("reviewerId"), + db.ref("reviewerUserId").withSchema(TableName.SecretApprovalRequestReviewer), db.ref("status").withSchema(TableName.SecretApprovalRequestReviewer).as("reviewerStatus"), db.ref("id").withSchema(TableName.SecretApprovalPolicy).as("policyId"), db.ref("name").withSchema(TableName.SecretApprovalPolicy).as("policyName"), @@ -201,7 +283,11 @@ export const secretApprovalRequestDALFactory = (db: TDbClient) => { ), db.ref("secretPath").withSchema(TableName.SecretApprovalPolicy).as("policySecretPath"), db.ref("approvals").withSchema(TableName.SecretApprovalPolicy).as("policyApprovals"), - db.ref("approverId").withSchema(TableName.SecretApprovalPolicyApprover) + db.ref("approverUserId").withSchema(TableName.SecretApprovalPolicyApprover), + db.ref("email").withSchema("committerUser").as("committerUserEmail"), + db.ref("username").withSchema("committerUser").as("committerUserUsername"), + db.ref("firstName").withSchema("committerUser").as("committerUserFirstName"), + db.ref("lastName").withSchema("committerUser").as("committerUserLastName") ) .orderBy("createdAt", "desc"); @@ -223,18 +309,26 @@ export const secretApprovalRequestDALFactory = (db: TDbClient) => { name: el.policyName, approvals: el.policyApprovals, secretPath: el.policySecretPath + }, + committerUser: { + userId: el.committerUserId, + email: el.committerUserEmail, + firstName: el.committerUserFirstName, + lastName: el.committerUserLastName, + username: el.committerUserUsername } }), childrenMapper: [ { - key: "reviewerMemberId", + key: "reviewerId", label: "reviewers" as const, - mapper: ({ reviewerMemberId: member, reviewerStatus: s }) => (member ? { member, status: s } : undefined) + mapper: ({ reviewerUserId, reviewerStatus: s }) => + reviewerUserId ? { userId: reviewerUserId, status: s } : undefined }, { - key: "approverId", + key: "approverUserId", label: "approvers" as const, - mapper: ({ approverId }) => approverId + mapper: ({ approverUserId }) => approverUserId }, { key: "commitId", diff --git a/backend/src/ee/services/secret-approval-request/secret-approval-request-service.ts b/backend/src/ee/services/secret-approval-request/secret-approval-request-service.ts index 5d09771347..a519af4fd2 100644 --- a/backend/src/ee/services/secret-approval-request/secret-approval-request-service.ts +++ b/backend/src/ee/services/secret-approval-request/secret-approval-request-service.ts @@ -87,7 +87,7 @@ export const secretApprovalRequestServiceFactory = ({ const requestCount = async ({ projectId, actor, actorId, actorOrgId, actorAuthMethod }: TApprovalRequestCountDTO) => { if (actor === ActorType.SERVICE) throw new BadRequestError({ message: "Cannot use service token" }); - const { membership } = await permissionService.getProjectPermission( + await permissionService.getProjectPermission( actor as ActorType.USER, actorId, projectId, @@ -95,7 +95,7 @@ export const secretApprovalRequestServiceFactory = ({ actorOrgId ); - const count = await secretApprovalRequestDAL.findProjectRequestCount(projectId, membership.id); + const count = await secretApprovalRequestDAL.findProjectRequestCount(projectId, actorId); return count; }; @@ -113,19 +113,13 @@ export const secretApprovalRequestServiceFactory = ({ }: TListApprovalsDTO) => { if (actor === ActorType.SERVICE) throw new BadRequestError({ message: "Cannot use service token" }); - const { membership } = await permissionService.getProjectPermission( - actor, - actorId, - projectId, - actorAuthMethod, - actorOrgId - ); + await permissionService.getProjectPermission(actor, actorId, projectId, actorAuthMethod, actorOrgId); const approvals = await secretApprovalRequestDAL.findByProjectId({ projectId, committer, environment, status, - membershipId: membership.id, + userId: actorId, limit, offset }); @@ -145,7 +139,7 @@ export const secretApprovalRequestServiceFactory = ({ if (!secretApprovalRequest) throw new BadRequestError({ message: "Secret approval request not found" }); const { policy } = secretApprovalRequest; - const { membership, hasRole } = await permissionService.getProjectPermission( + const { hasRole } = await permissionService.getProjectPermission( actor, actorId, secretApprovalRequest.projectId, @@ -154,8 +148,8 @@ export const secretApprovalRequestServiceFactory = ({ ); if ( !hasRole(ProjectMembershipRole.Admin) && - secretApprovalRequest.committerId !== membership.id && - !policy.approvers.find((approverId) => approverId === membership.id) + secretApprovalRequest.committerUserId !== actorId && + !policy.approvers.find(({ userId }) => userId === actorId) ) { throw new UnauthorizedError({ message: "User has no access" }); } @@ -180,7 +174,7 @@ export const secretApprovalRequestServiceFactory = ({ if (actor !== ActorType.USER) throw new BadRequestError({ message: "Must be a user" }); const { policy } = secretApprovalRequest; - const { membership, hasRole } = await permissionService.getProjectPermission( + const { hasRole } = await permissionService.getProjectPermission( ActorType.USER, actorId, secretApprovalRequest.projectId, @@ -189,8 +183,8 @@ export const secretApprovalRequestServiceFactory = ({ ); if ( !hasRole(ProjectMembershipRole.Admin) && - secretApprovalRequest.committerId !== membership.id && - !policy.approvers.find((approverId) => approverId === membership.id) + secretApprovalRequest.committerUserId !== actorId && + !policy.approvers.find(({ userId }) => userId === actorId) ) { throw new UnauthorizedError({ message: "User has no access" }); } @@ -198,7 +192,7 @@ export const secretApprovalRequestServiceFactory = ({ const review = await secretApprovalRequestReviewerDAL.findOne( { requestId: secretApprovalRequest.id, - member: membership.id + reviewerUserId: actorId }, tx ); @@ -207,7 +201,7 @@ export const secretApprovalRequestServiceFactory = ({ { status, requestId: secretApprovalRequest.id, - member: membership.id + reviewerUserId: actorId }, tx ); @@ -230,7 +224,7 @@ export const secretApprovalRequestServiceFactory = ({ if (actor !== ActorType.USER) throw new BadRequestError({ message: "Must be a user" }); const { policy } = secretApprovalRequest; - const { membership, hasRole } = await permissionService.getProjectPermission( + const { hasRole } = await permissionService.getProjectPermission( ActorType.USER, actorId, secretApprovalRequest.projectId, @@ -239,8 +233,8 @@ export const secretApprovalRequestServiceFactory = ({ ); if ( !hasRole(ProjectMembershipRole.Admin) && - secretApprovalRequest.committerId !== membership.id && - !policy.approvers.find((approverId) => approverId === membership.id) + secretApprovalRequest.committerUserId !== actorId && + !policy.approvers.find(({ userId }) => userId === actorId) ) { throw new UnauthorizedError({ message: "User has no access" }); } @@ -253,7 +247,7 @@ export const secretApprovalRequestServiceFactory = ({ const updatedRequest = await secretApprovalRequestDAL.updateById(secretApprovalRequest.id, { status, - statusChangeBy: membership.id + statusChangedByUserId: actorId }); return { ...secretApprovalRequest, ...updatedRequest }; }; @@ -270,7 +264,7 @@ export const secretApprovalRequestServiceFactory = ({ if (actor !== ActorType.USER) throw new BadRequestError({ message: "Must be a user" }); const { policy, folderId, projectId } = secretApprovalRequest; - const { membership, hasRole } = await permissionService.getProjectPermission( + const { hasRole } = await permissionService.getProjectPermission( ActorType.USER, actorId, projectId, @@ -280,19 +274,19 @@ export const secretApprovalRequestServiceFactory = ({ if ( !hasRole(ProjectMembershipRole.Admin) && - secretApprovalRequest.committerId !== membership.id && - !policy.approvers.find((approverId) => approverId === membership.id) + secretApprovalRequest.committerUserId !== actorId && + !policy.approvers.find(({ userId }) => userId === actorId) ) { throw new UnauthorizedError({ message: "User has no access" }); } const reviewers = secretApprovalRequest.reviewers.reduce>( - (prev, curr) => ({ ...prev, [curr.member.toString()]: curr.status as ApprovalStatus }), + (prev, curr) => ({ ...prev, [curr.userId.toString()]: curr.status as ApprovalStatus }), {} ); const hasMinApproval = secretApprovalRequest.policy.approvals <= secretApprovalRequest.policy.approvers.filter( - (approverId) => reviewers[approverId.toString()] === ApprovalStatus.APPROVED + ({ userId: approverId }) => reviewers[approverId.toString()] === ApprovalStatus.APPROVED ).length; if (!hasMinApproval) throw new BadRequestError({ message: "Doesn't have minimum approvals needed" }); @@ -472,7 +466,7 @@ export const secretApprovalRequestServiceFactory = ({ conflicts: JSON.stringify(conflicts), hasMerged: true, status: RequestState.Closed, - statusChangeBy: membership.id + statusChangedByUserId: actorId }, tx ); @@ -509,7 +503,7 @@ export const secretApprovalRequestServiceFactory = ({ }: TGenerateSecretApprovalRequestDTO) => { if (actor === ActorType.SERVICE) throw new BadRequestError({ message: "Cannot use service token" }); - const { permission, membership } = await permissionService.getProjectPermission( + const { permission } = await permissionService.getProjectPermission( actor, actorId, projectId, @@ -663,7 +657,7 @@ export const secretApprovalRequestServiceFactory = ({ policyId: policy.id, status: "open", hasMerged: false, - committerId: membership.id + committerUserId: actorId }, tx ); diff --git a/backend/src/ee/services/secret-replication/secret-replication-service.ts b/backend/src/ee/services/secret-replication/secret-replication-service.ts index fd2f7cc1a4..01f7d066ce 100644 --- a/backend/src/ee/services/secret-replication/secret-replication-service.ts +++ b/backend/src/ee/services/secret-replication/secret-replication-service.ts @@ -11,7 +11,6 @@ import { alphaNumericNanoId } from "@app/lib/nanoid"; import { QueueName, TQueueServiceFactory } from "@app/queue"; import { ActorType } from "@app/services/auth/auth-type"; import { TProjectBotServiceFactory } from "@app/services/project-bot/project-bot-service"; -import { TProjectMembershipDALFactory } from "@app/services/project-membership/project-membership-dal"; import { TSecretDALFactory } from "@app/services/secret/secret-dal"; import { fnSecretBulkInsert, fnSecretBulkUpdate } from "@app/services/secret/secret-fns"; import { TSecretQueueFactory, uniqueSecretQueueKey } from "@app/services/secret/secret-queue"; @@ -46,7 +45,6 @@ type TSecretReplicationServiceFactoryDep = { secretBlindIndexDAL: Pick; secretTagDAL: Pick; secretApprovalRequestDAL: Pick; - projectMembershipDAL: Pick; secretApprovalRequestSecretDAL: Pick< TSecretApprovalRequestSecretDALFactory, "insertMany" | "insertApprovalSecretTags" @@ -92,7 +90,6 @@ export const secretReplicationServiceFactory = ({ secretApprovalRequestSecretDAL, secretApprovalRequestDAL, secretQueueService, - projectMembershipDAL, projectBotService }: TSecretReplicationServiceFactoryDep) => { const getReplicatedSecrets = ( @@ -297,12 +294,6 @@ export const secretReplicationServiceFactory = ({ ); // this means it should be a approval request rather than direct replication if (policy && actor === ActorType.USER) { - const membership = await projectMembershipDAL.findOne({ projectId, userId: actorId }); - if (!membership) { - logger.error("Project membership not found in %s for user %s", projectId, actorId); - return; - } - const localSecretsLatestVersions = destinationLocalSecrets.map(({ id }) => id); const latestSecretVersions = await secretVersionDAL.findLatestVersionMany( destinationReplicationFolderId, @@ -316,7 +307,7 @@ export const secretReplicationServiceFactory = ({ policyId: policy.id, status: "open", hasMerged: false, - committerId: membership.id, + committerUserId: actorId, isReplicated: true }, tx diff --git a/backend/src/server/routes/index.ts b/backend/src/server/routes/index.ts index 54c5e51d66..e27d76af0c 100644 --- a/backend/src/server/routes/index.ts +++ b/backend/src/server/routes/index.ts @@ -319,7 +319,6 @@ export const registerRoutes = async ( auditLogStreamDAL }); const secretApprovalPolicyService = secretApprovalPolicyServiceFactory({ - projectMembershipDAL, projectEnvDAL, secretApprovalPolicyApproverDAL: sapApproverDAL, permissionService, @@ -768,7 +767,6 @@ export const registerRoutes = async ( secretApprovalRequestDAL, secretApprovalRequestSecretDAL, secretQueueService, - projectMembershipDAL, projectBotService }); const secretRotationQueue = secretRotationQueueFactory({ diff --git a/backend/src/server/routes/v3/secret-router.ts b/backend/src/server/routes/v3/secret-router.ts index b92138ec8f..910cc3db97 100644 --- a/backend/src/server/routes/v3/secret-router.ts +++ b/backend/src/server/routes/v3/secret-router.ts @@ -949,7 +949,7 @@ export const registerSecretRouter = async (server: FastifyZodProvider) => { event: { type: EventType.SECRET_APPROVAL_REQUEST, metadata: { - committedBy: approval.committerId, + committedBy: approval.committerUserId, secretApprovalRequestId: approval.id, secretApprovalRequestSlug: approval.slug } @@ -1133,7 +1133,7 @@ export const registerSecretRouter = async (server: FastifyZodProvider) => { event: { type: EventType.SECRET_APPROVAL_REQUEST, metadata: { - committedBy: approval.committerId, + committedBy: approval.committerUserId, secretApprovalRequestId: approval.id, secretApprovalRequestSlug: approval.slug } @@ -1271,7 +1271,7 @@ export const registerSecretRouter = async (server: FastifyZodProvider) => { event: { type: EventType.SECRET_APPROVAL_REQUEST, metadata: { - committedBy: approval.committerId, + committedBy: approval.committerUserId, secretApprovalRequestId: approval.id, secretApprovalRequestSlug: approval.slug } @@ -1397,7 +1397,7 @@ export const registerSecretRouter = async (server: FastifyZodProvider) => { event: { type: EventType.SECRET_APPROVAL_REQUEST, metadata: { - committedBy: approval.committerId, + committedBy: approval.committerUserId, secretApprovalRequestId: approval.id, secretApprovalRequestSlug: approval.slug } @@ -1524,7 +1524,7 @@ export const registerSecretRouter = async (server: FastifyZodProvider) => { event: { type: EventType.SECRET_APPROVAL_REQUEST, metadata: { - committedBy: approval.committerId, + committedBy: approval.committerUserId, secretApprovalRequestId: approval.id, secretApprovalRequestSlug: approval.slug } @@ -1638,7 +1638,7 @@ export const registerSecretRouter = async (server: FastifyZodProvider) => { event: { type: EventType.SECRET_APPROVAL_REQUEST, metadata: { - committedBy: approval.committerId, + committedBy: approval.committerUserId, secretApprovalRequestId: approval.id, secretApprovalRequestSlug: approval.slug } From ef3cdd11ac65fca4f8393cc3f7aa0653cdaf08d0 Mon Sep 17 00:00:00 2001 From: = Date: Wed, 3 Jul 2024 20:13:16 +0530 Subject: [PATCH 029/145] feat: ui changes for secret approval group --- .../src/hooks/api/secretApproval/mutation.tsx | 8 +-- .../src/hooks/api/secretApproval/types.ts | 6 +- .../hooks/api/secretApprovalRequest/types.ts | 34 ++++++++-- .../SecretApprovalPolicyList.tsx | 21 +++++-- .../components/SecretApprovalPolicyRow.tsx | 16 ++--- .../components/SecretPolicyForm.tsx | 38 ++++++----- .../SecretApprovalRequest.tsx | 38 +++++------ .../SecretApprovalRequestAction.tsx | 2 +- .../SecretApprovalRequestChanges.tsx | 63 +++++++++---------- 9 files changed, 124 insertions(+), 102 deletions(-) diff --git a/frontend/src/hooks/api/secretApproval/mutation.tsx b/frontend/src/hooks/api/secretApproval/mutation.tsx index e0a8df95da..991111ef99 100644 --- a/frontend/src/hooks/api/secretApproval/mutation.tsx +++ b/frontend/src/hooks/api/secretApproval/mutation.tsx @@ -9,12 +9,12 @@ export const useCreateSecretApprovalPolicy = () => { const queryClient = useQueryClient(); return useMutation<{}, {}, TCreateSecretPolicyDTO>({ - mutationFn: async ({ environment, workspaceId, approvals, approvers, secretPath, name }) => { + mutationFn: async ({ environment, workspaceId, approvals, approverUserIds, secretPath, name }) => { const { data } = await apiRequest.post("/api/v1/secret-approvals", { environment, workspaceId, approvals, - approvers, + approverUserIds, secretPath, name }); @@ -30,10 +30,10 @@ export const useUpdateSecretApprovalPolicy = () => { const queryClient = useQueryClient(); return useMutation<{}, {}, TUpdateSecretPolicyDTO>({ - mutationFn: async ({ id, approvers, approvals, secretPath, name }) => { + mutationFn: async ({ id, approverUserIds, approvals, secretPath, name }) => { const { data } = await apiRequest.patch(`/api/v1/secret-approvals/${id}`, { approvals, - approvers, + approverUserIds, secretPath, name }); diff --git a/frontend/src/hooks/api/secretApproval/types.ts b/frontend/src/hooks/api/secretApproval/types.ts index 38e8d7ee8e..f3b8639f70 100644 --- a/frontend/src/hooks/api/secretApproval/types.ts +++ b/frontend/src/hooks/api/secretApproval/types.ts @@ -7,8 +7,8 @@ export type TSecretApprovalPolicy = { envId: string; environment: WorkspaceEnv; secretPath?: string; - approvers: string[]; approvals: number; + userApprovers: { userId: string }[]; }; export type TGetSecretApprovalPoliciesDTO = { @@ -26,14 +26,14 @@ export type TCreateSecretPolicyDTO = { name?: string; environment: string; secretPath?: string | null; - approvers?: string[]; + approverUserIds?: string[]; approvals?: number; }; export type TUpdateSecretPolicyDTO = { id: string; name?: string; - approvers?: string[]; + approverUserIds?: string[]; secretPath?: string | null; approvals?: number; // for invalidating list diff --git a/frontend/src/hooks/api/secretApprovalRequest/types.ts b/frontend/src/hooks/api/secretApprovalRequest/types.ts index 8c2ba69636..f039cc815e 100644 --- a/frontend/src/hooks/api/secretApprovalRequest/types.ts +++ b/frontend/src/hooks/api/secretApprovalRequest/types.ts @@ -47,10 +47,14 @@ export type TSecretApprovalRequest = { isReplicated?: boolean; slug: string; createdAt: string; - committerId: string; + committerUserId: string; reviewers: { - member: string; + userId: string; status: ApprovalStatus; + email: string; + firstName: string; + lastName: string; + username: string; }[]; workspace: string; environment: string; @@ -58,8 +62,30 @@ export type TSecretApprovalRequest = { secretPath: string; hasMerged: boolean; status: "open" | "close"; - policy: TSecretApprovalPolicy; - statusChangeBy: string; + policy: Omit & { + approvers: { + userId: string; + email: string; + firstName: string; + lastName: string; + username: string; + }[]; + }; + statusChangedByUserId: string; + statusChangedByUser?: { + userId: string; + email: string; + firstName: string; + lastName: string; + username: string; + }; + committerUser: { + userId: string; + email: string; + firstName: string; + lastName: string; + username: string; + }; conflicts: Array<{ secretId: string; op: CommitType.UPDATE }>; commits: ({ // if there is no secret means it was creation diff --git a/frontend/src/views/SecretApprovalPage/components/SecretApprovalPolicyList/SecretApprovalPolicyList.tsx b/frontend/src/views/SecretApprovalPage/components/SecretApprovalPolicyList/SecretApprovalPolicyList.tsx index d3a36988c1..f377f44e96 100644 --- a/frontend/src/views/SecretApprovalPage/components/SecretApprovalPolicyList/SecretApprovalPolicyList.tsx +++ b/frontend/src/views/SecretApprovalPage/components/SecretApprovalPolicyList/SecretApprovalPolicyList.tsx @@ -7,6 +7,8 @@ import { Button, DeleteActionModal, EmptyState, + Modal, + ModalContent, Table, TableContainer, TableSkeleton, @@ -145,13 +147,20 @@ export const SecretApprovalPolicyList = ({ workspaceId }: Props) => { - handlePopUpToggle("secretPolicyForm", isOpen)} - members={members} - editValues={popUp.secretPolicyForm.data as TSecretApprovalPolicy} - /> + onOpenChange={(isOpen) => handlePopUpToggle("secretPolicyForm", isOpen)} + > + + handlePopUpToggle("secretPolicyForm", isOpen)} + members={members} + editValues={popUp.secretPolicyForm.data as TSecretApprovalPolicy} + /> + + { @@ -60,7 +60,7 @@ export const SecretApprovalPolicyRow = ({ } ); } else { - setSelectedApprovers(policy.approvers); + setSelectedApprovers(policy.userApprovers.map(({ userId }) => userId)); } }} > @@ -73,7 +73,9 @@ export const SecretApprovalPolicyRow = ({ > @@ -84,17 +86,17 @@ export const SecretApprovalPolicyRow = ({ Select members that are allowed to approve changes - {members?.map(({ id, user }) => { - const isChecked = selectedApprovers.includes(id); + {members?.map(({ user }) => { + const isChecked = selectedApprovers.includes(user.id); return ( { evt.preventDefault(); setSelectedApprovers((state) => - isChecked ? state.filter((el) => el !== id) : [...state, id] + isChecked ? state.filter((el) => el !== user.id) : [...state, user.id] ); }} - key={`create-policy-members-${id}`} + key={`create-policy-members-${user.id}`} iconPos="right" icon={isChecked && } > diff --git a/frontend/src/views/SecretApprovalPage/components/SecretApprovalPolicyList/components/SecretPolicyForm.tsx b/frontend/src/views/SecretApprovalPage/components/SecretApprovalPolicyList/components/SecretPolicyForm.tsx index db59761c11..b0db2affd5 100644 --- a/frontend/src/views/SecretApprovalPage/components/SecretApprovalPolicyList/components/SecretPolicyForm.tsx +++ b/frontend/src/views/SecretApprovalPage/components/SecretApprovalPolicyList/components/SecretPolicyForm.tsx @@ -1,4 +1,3 @@ -import { useEffect } from "react"; import { Controller, useForm } from "react-hook-form"; import { faCheckCircle } from "@fortawesome/free-solid-svg-icons"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; @@ -15,8 +14,6 @@ import { DropdownMenuTrigger, FormControl, Input, - Modal, - ModalContent, Select, SelectItem } from "@app/components/v2"; @@ -40,9 +37,9 @@ const formSchema = z name: z.string().optional(), secretPath: z.string().optional().nullable(), approvals: z.number().min(1), - approvers: z.string().array().min(1) + approverUserIds: z.string().array().min(1) }) - .refine((data) => data.approvals <= data.approvers.length, { + .refine((data) => data.approvals <= data.approverUserIds.length, { path: ["approvals"], message: "The number of approvals should be lower than the number of approvers." }); @@ -50,7 +47,6 @@ const formSchema = z type TFormSchema = z.infer; export const SecretPolicyForm = ({ - isOpen, onToggle, members = [], workspaceId, @@ -59,20 +55,22 @@ export const SecretPolicyForm = ({ const { control, handleSubmit, - reset, watch, formState: { isSubmitting } } = useForm({ resolver: zodResolver(formSchema), - values: editValues ? { ...editValues, environment: editValues.environment.slug } : undefined + values: editValues + ? { + ...editValues, + approverUserIds: editValues.userApprovers.map(({ userId }) => userId), + environment: editValues.environment.slug + } + : undefined }); const { currentWorkspace } = useWorkspace(); const selectedEnvironment = watch("environment"); const environments = currentWorkspace?.environments || []; - useEffect(() => { - if (!isOpen) reset({}); - }, [isOpen]); const isEditMode = Boolean(editValues); @@ -131,8 +129,6 @@ export const SecretPolicyForm = ({ }; return ( - -
+ + )} + /> + ( + + + + )} + /> +
+ +
+
+
+ + + Access Tokens + Auth Method + + +
+
+

Access Token

+ +
+

+ Create an access token to authenticate with the API +

+
+ + + + + + + + + + + + + +
TokenExpires +
+ +
+
+
+ Amx +
+
+
+ {/* ( + + + + )} + /> */} + {/* {renderIdentityAuthForm()} */} + {/* handlePopUpToggle("upgradePlan", isOpen)} + text="You can use IP allowlisting if you switch to Infisical's Pro plan." + /> */} + + + ); +}; diff --git a/frontend/src/views/Org/MembersPage/components/OrgIdentityTab/components/IdentitySection/IdentitySection.tsx b/frontend/src/views/Org/MembersPage/components/OrgIdentityTab/components/IdentitySection/IdentitySection.tsx index 3068eaf927..dce8adcb13 100644 --- a/frontend/src/views/Org/MembersPage/components/OrgIdentityTab/components/IdentitySection/IdentitySection.tsx +++ b/frontend/src/views/Org/MembersPage/components/OrgIdentityTab/components/IdentitySection/IdentitySection.tsx @@ -17,6 +17,8 @@ import { usePopUp } from "@app/hooks/usePopUp"; import { IdentityAuthMethodModal } from "./IdentityAuthMethodModal"; import { IdentityModal } from "./IdentityModal"; +// new +import { IdentityModalV2 } from "./IdentityModalV2"; import { IdentityTable } from "./IdentityTable"; import { IdentityTokenAuthTokenModal } from "./IdentityTokenAuthTokenModal"; import { IdentityUniversalAuthClientSecretModal } from "./IdentityUniversalAuthClientSecretModal"; @@ -30,6 +32,7 @@ export const IdentitySection = withPermission( const { mutateAsync: deleteMutateAsync } = useDeleteIdentity(); const { popUp, handlePopUpOpen, handlePopUpClose, handlePopUpToggle } = usePopUp([ "identity", + "identityModalV2", // TODO: update "identityAuthMethod", "deleteIdentity", "universalAuthClientSecret", @@ -114,6 +117,11 @@ export const IdentitySection = withPermission( handlePopUpOpen={handlePopUpOpen} handlePopUpToggle={handlePopUpToggle} /> + { data.map(({ identity: { id, name, authMethod }, role, customRole }) => { return ( - {name} + + + Date: Wed, 3 Jul 2024 13:33:40 -0700 Subject: [PATCH 032/145] Add tx support for seat count in license invitation update --- backend/src/ee/services/license/license-service.ts | 11 ++++++----- backend/src/services/auth/auth-signup-service.ts | 2 +- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/backend/src/ee/services/license/license-service.ts b/backend/src/ee/services/license/license-service.ts index 0b0fec53ab..f0b5685358 100644 --- a/backend/src/ee/services/license/license-service.ts +++ b/backend/src/ee/services/license/license-service.ts @@ -5,6 +5,7 @@ // TODO(akhilmhdh): With tony find out the api structure and fill it here import { ForbiddenError } from "@casl/ability"; +import { Knex } from "knex"; import { TKeyStoreFactory } from "@app/keystore/keystore"; import { getConfig } from "@app/lib/config/env"; @@ -200,13 +201,13 @@ export const licenseServiceFactory = ({ await licenseServerCloudApi.request.delete(`/api/license-server/v1/customers/${customerId}`); }; - const updateSubscriptionOrgMemberCount = async (orgId: string) => { + const updateSubscriptionOrgMemberCount = async (orgId: string, tx?: Knex) => { if (instanceType === InstanceType.Cloud) { const org = await orgDAL.findOrgById(orgId); if (!org) throw new BadRequestError({ message: "Org not found" }); - const quantity = await licenseDAL.countOfOrgMembers(orgId); - const quantityIdentities = await licenseDAL.countOrgUsersAndIdentities(orgId); + const quantity = await licenseDAL.countOfOrgMembers(orgId, tx); + const quantityIdentities = await licenseDAL.countOrgUsersAndIdentities(orgId, tx); if (org?.customerId) { await licenseServerCloudApi.request.patch(`/api/license-server/v1/customers/${org.customerId}/cloud-plan`, { quantity, @@ -215,8 +216,8 @@ export const licenseServiceFactory = ({ } await keyStore.deleteItem(FEATURE_CACHE_KEY(orgId)); } else if (instanceType === InstanceType.EnterpriseOnPrem) { - const usedSeats = await licenseDAL.countOfOrgMembers(null); - const usedIdentitySeats = await licenseDAL.countOrgUsersAndIdentities(null); + const usedSeats = await licenseDAL.countOfOrgMembers(null, tx); + const usedIdentitySeats = await licenseDAL.countOrgUsersAndIdentities(null, tx); await licenseServerOnPremApi.request.patch(`/api/license/v1/license`, { usedSeats, usedIdentitySeats diff --git a/backend/src/services/auth/auth-signup-service.ts b/backend/src/services/auth/auth-signup-service.ts index 7ac65c4686..83a5b27d97 100644 --- a/backend/src/services/auth/auth-signup-service.ts +++ b/backend/src/services/auth/auth-signup-service.ts @@ -364,7 +364,7 @@ export const authSignupServiceFactory = ({ tx ); const uniqueOrgId = [...new Set(updatedMembersips.map(({ orgId }) => orgId))]; - await Promise.allSettled(uniqueOrgId.map((orgId) => licenseService.updateSubscriptionOrgMemberCount(orgId))); + await Promise.allSettled(uniqueOrgId.map((orgId) => licenseService.updateSubscriptionOrgMemberCount(orgId, tx))); await convertPendingGroupAdditionsToGroupMemberships({ userIds: [user.id], From cb664bb0426aeea4b3d66a4ca82969a6fd9fa553 Mon Sep 17 00:00:00 2001 From: Sheen Capadngan Date: Thu, 4 Jul 2024 13:33:32 +0800 Subject: [PATCH 033/145] misc: addressed review comments --- ...0240702055253_add-encrypted-webhook-url.ts | 64 +++++++++--------- backend/src/db/schemas/webhooks.ts | 2 +- .../src/server/routes/v1/webhook-router.ts | 2 +- backend/src/services/webhook/webhook-fns.ts | 67 ++++++------------- .../src/services/webhook/webhook-service.ts | 47 ++++--------- frontend/src/hooks/api/webhooks/types.ts | 7 ++ .../components/WebhooksTab/AddWebhookForm.tsx | 7 +- 7 files changed, 77 insertions(+), 119 deletions(-) diff --git a/backend/src/db/migrations/20240702055253_add-encrypted-webhook-url.ts b/backend/src/db/migrations/20240702055253_add-encrypted-webhook-url.ts index c2ca86d348..8762dde10a 100644 --- a/backend/src/db/migrations/20240702055253_add-encrypted-webhook-url.ts +++ b/backend/src/db/migrations/20240702055253_add-encrypted-webhook-url.ts @@ -5,45 +5,49 @@ import { WebhookType } from "@app/services/webhook/webhook-types"; import { TableName } from "../schemas"; export async function up(knex: Knex): Promise { - const hasEncryptedURL = await knex.schema.hasColumn(TableName.Webhook, "encryptedUrl"); + const hasUrlCipherText = await knex.schema.hasColumn(TableName.Webhook, "urlCipherText"); const hasUrlIV = await knex.schema.hasColumn(TableName.Webhook, "urlIV"); const hasUrlTag = await knex.schema.hasColumn(TableName.Webhook, "urlTag"); const hasType = await knex.schema.hasColumn(TableName.Webhook, "type"); - await knex.schema.alterTable(TableName.Webhook, (tb) => { - if (!hasEncryptedURL) { - tb.text("encryptedUrl"); - } - if (!hasUrlIV) { - tb.string("urlIV"); - } - if (!hasUrlTag) { - tb.string("urlTag"); - } - if (!hasType) { - tb.string("type").defaultTo(WebhookType.GENERAL); - } - }); + if (await knex.schema.hasTable(TableName.Webhook)) { + await knex.schema.alterTable(TableName.Webhook, (tb) => { + if (!hasUrlCipherText) { + tb.text("urlCipherText"); + } + if (!hasUrlIV) { + tb.string("urlIV"); + } + if (!hasUrlTag) { + tb.string("urlTag"); + } + if (!hasType) { + tb.string("type").defaultTo(WebhookType.GENERAL); + } + }); + } } export async function down(knex: Knex): Promise { - const hasEncryptedURL = await knex.schema.hasColumn(TableName.Webhook, "encryptedUrl"); + const hasUrlCipherText = await knex.schema.hasColumn(TableName.Webhook, "urlCipherText"); const hasUrlIV = await knex.schema.hasColumn(TableName.Webhook, "urlIV"); const hasUrlTag = await knex.schema.hasColumn(TableName.Webhook, "urlTag"); const hasType = await knex.schema.hasColumn(TableName.Webhook, "type"); - await knex.schema.alterTable(TableName.Webhook, (t) => { - if (hasEncryptedURL) { - t.dropColumn("encryptedUrl"); - } - if (hasUrlIV) { - t.dropColumn("urlIV"); - } - if (hasUrlTag) { - t.dropColumn("urlTag"); - } - if (hasType) { - t.dropColumn("type"); - } - }); + if (await knex.schema.hasTable(TableName.Webhook)) { + await knex.schema.alterTable(TableName.Webhook, (t) => { + if (hasUrlCipherText) { + t.dropColumn("urlCipherText"); + } + if (hasUrlIV) { + t.dropColumn("urlIV"); + } + if (hasUrlTag) { + t.dropColumn("urlTag"); + } + if (hasType) { + t.dropColumn("type"); + } + }); + } } diff --git a/backend/src/db/schemas/webhooks.ts b/backend/src/db/schemas/webhooks.ts index 49b64662c9..a7aac29339 100644 --- a/backend/src/db/schemas/webhooks.ts +++ b/backend/src/db/schemas/webhooks.ts @@ -22,7 +22,7 @@ export const WebhooksSchema = z.object({ createdAt: z.date(), updatedAt: z.date(), envId: z.string().uuid(), - encryptedUrl: z.string().nullable().optional(), + urlCipherText: z.string().nullable().optional(), urlIV: z.string().nullable().optional(), urlTag: z.string().nullable().optional(), type: z.string().default("general").nullable().optional() diff --git a/backend/src/server/routes/v1/webhook-router.ts b/backend/src/server/routes/v1/webhook-router.ts index 4124d9150e..0bb668b5fa 100644 --- a/backend/src/server/routes/v1/webhook-router.ts +++ b/backend/src/server/routes/v1/webhook-router.ts @@ -14,7 +14,7 @@ export const sanitizedWebhookSchema = WebhooksSchema.omit({ tag: true, algorithm: true, keyEncoding: true, - encryptedUrl: true, + urlCipherText: true, urlIV: true, urlTag: true }).merge( diff --git a/backend/src/services/webhook/webhook-fns.ts b/backend/src/services/webhook/webhook-fns.ts index fba5e3a49d..2439c7d653 100644 --- a/backend/src/services/webhook/webhook-fns.ts +++ b/backend/src/services/webhook/webhook-fns.ts @@ -4,9 +4,8 @@ import { AxiosError } from "axios"; import picomatch from "picomatch"; import { SecretKeyEncoding, TWebhooks } from "@app/db/schemas"; -import { getConfig } from "@app/lib/config/env"; import { request } from "@app/lib/config/request"; -import { decryptSymmetric, decryptSymmetric128BitHexKeyUTF8 } from "@app/lib/crypto"; +import { infisicalSymmetricDecrypt } from "@app/lib/crypto/encryption"; import { BadRequestError } from "@app/lib/errors"; import { logger } from "@app/lib/logger"; @@ -17,53 +16,27 @@ import { WebhookType } from "./webhook-types"; const WEBHOOK_TRIGGER_TIMEOUT = 15 * 1000; export const decryptWebhookDetails = (webhook: TWebhooks) => { - const appCfg = getConfig(); - const { keyEncoding, iv, encryptedSecretKey, tag, encryptedUrl, urlIV, urlTag, url } = webhook; - - const encryptionKey = appCfg.ENCRYPTION_KEY; - const rootEncryptionKey = appCfg.ROOT_ENCRYPTION_KEY; + const { keyEncoding, iv, encryptedSecretKey, tag, urlCipherText, urlIV, urlTag, url } = webhook; let decryptedSecretKey = ""; let decryptedUrl = url; - if (rootEncryptionKey && keyEncoding === SecretKeyEncoding.BASE64) { - // case: encoding scheme is base64 - if (encryptedSecretKey) { - decryptedSecretKey = decryptSymmetric({ - ciphertext: encryptedSecretKey, - iv: iv as string, - tag: tag as string, - key: rootEncryptionKey - }); - } + if (encryptedSecretKey) { + decryptedSecretKey = infisicalSymmetricDecrypt({ + keyEncoding: keyEncoding as SecretKeyEncoding, + ciphertext: encryptedSecretKey, + iv: iv as string, + tag: tag as string + }); + } - if (encryptedUrl) { - decryptedUrl = decryptSymmetric({ - ciphertext: encryptedUrl, - iv: urlIV as string, - tag: urlTag as string, - key: rootEncryptionKey - }); - } - } else if (encryptionKey && keyEncoding === SecretKeyEncoding.UTF8) { - // case: encoding scheme is utf8 - if (encryptedSecretKey) { - decryptedSecretKey = decryptSymmetric128BitHexKeyUTF8({ - ciphertext: encryptedSecretKey, - iv: iv as string, - tag: tag as string, - key: encryptionKey - }); - } - - if (encryptedUrl) { - decryptedUrl = decryptSymmetric128BitHexKeyUTF8({ - ciphertext: encryptedUrl, - iv: urlIV as string, - tag: urlTag as string, - key: encryptionKey - }); - } + if (urlCipherText) { + decryptedUrl = infisicalSymmetricDecrypt({ + keyEncoding: keyEncoding as SecretKeyEncoding, + ciphertext: urlCipherText, + iv: urlIV as string, + tag: urlTag as string + }); } return { @@ -109,17 +82,17 @@ export const getWebhookPayload = ( { title: "Workspace ID", value: workspaceId, - short: true + short: false }, { title: "Environment", value: environment, - short: true + short: false }, { title: "Secret Path", value: secretPath, - short: true + short: false } ] } diff --git a/backend/src/services/webhook/webhook-service.ts b/backend/src/services/webhook/webhook-service.ts index acf4e2d750..272c9de90c 100644 --- a/backend/src/services/webhook/webhook-service.ts +++ b/backend/src/services/webhook/webhook-service.ts @@ -1,10 +1,9 @@ import { ForbiddenError } from "@casl/ability"; -import { SecretEncryptionAlgo, SecretKeyEncoding, TWebhooksInsert } from "@app/db/schemas"; +import { TWebhooksInsert } from "@app/db/schemas"; import { TPermissionServiceFactory } from "@app/ee/services/permission/permission-service"; import { ProjectPermissionActions, ProjectPermissionSub } from "@app/ee/services/permission/project-permission"; -import { getConfig } from "@app/lib/config/env"; -import { encryptSymmetric, encryptSymmetric128BitHexKeyUTF8 } from "@app/lib/crypto"; +import { infisicalSymmetricEncypt } from "@app/lib/crypto/encryption"; import { BadRequestError } from "@app/lib/errors"; import { TProjectEnvDALFactory } from "../project-env/project-env-dal"; @@ -39,10 +38,6 @@ export const webhookServiceFactory = ({ webhookDAL, projectEnvDAL, permissionSer webhookSecretKey, type }: TCreateWebhookDTO) => { - const appCfg = getConfig(); - const encryptionKey = appCfg.ENCRYPTION_KEY; - const rootEncryptionKey = appCfg.ROOT_ENCRYPTION_KEY; - const { permission } = await permissionService.getProjectPermission( actor, actorId, @@ -63,37 +58,21 @@ export const webhookServiceFactory = ({ webhookDAL, projectEnvDAL, permissionSer }; if (webhookSecretKey) { - if (rootEncryptionKey) { - const { ciphertext, iv, tag } = encryptSymmetric(webhookSecretKey, rootEncryptionKey); - insertDoc.encryptedSecretKey = ciphertext; - insertDoc.iv = iv; - insertDoc.tag = tag; - insertDoc.algorithm = SecretEncryptionAlgo.AES_256_GCM; - insertDoc.keyEncoding = SecretKeyEncoding.BASE64; - } else if (encryptionKey) { - const { ciphertext, iv, tag } = encryptSymmetric128BitHexKeyUTF8(webhookSecretKey, encryptionKey); - insertDoc.encryptedSecretKey = ciphertext; - insertDoc.iv = iv; - insertDoc.tag = tag; - insertDoc.algorithm = SecretEncryptionAlgo.AES_256_GCM; - insertDoc.keyEncoding = SecretKeyEncoding.UTF8; - } + const { ciphertext, iv, tag, algorithm, encoding } = infisicalSymmetricEncypt(webhookSecretKey); + insertDoc.encryptedSecretKey = ciphertext; + insertDoc.iv = iv; + insertDoc.tag = tag; + insertDoc.algorithm = algorithm; + insertDoc.keyEncoding = encoding; } - if (rootEncryptionKey) { - const { ciphertext, iv, tag } = encryptSymmetric(webhookUrl, rootEncryptionKey); - insertDoc.encryptedUrl = ciphertext; + if (webhookUrl) { + const { ciphertext, iv, tag, algorithm, encoding } = infisicalSymmetricEncypt(webhookUrl); + insertDoc.urlCipherText = ciphertext; insertDoc.urlIV = iv; insertDoc.urlTag = tag; - insertDoc.algorithm = SecretEncryptionAlgo.AES_256_GCM; - insertDoc.keyEncoding = SecretKeyEncoding.BASE64; - } else if (encryptionKey) { - const { ciphertext, iv, tag } = encryptSymmetric128BitHexKeyUTF8(webhookUrl, encryptionKey); - insertDoc.encryptedUrl = ciphertext; - insertDoc.urlIV = iv; - insertDoc.urlTag = tag; - insertDoc.algorithm = SecretEncryptionAlgo.AES_256_GCM; - insertDoc.keyEncoding = SecretKeyEncoding.UTF8; + insertDoc.algorithm = algorithm; + insertDoc.keyEncoding = encoding; } const webhook = await webhookDAL.create(insertDoc); diff --git a/frontend/src/hooks/api/webhooks/types.ts b/frontend/src/hooks/api/webhooks/types.ts index 447ed4fc56..86183bf1ba 100644 --- a/frontend/src/hooks/api/webhooks/types.ts +++ b/frontend/src/hooks/api/webhooks/types.ts @@ -1,5 +1,11 @@ +export enum WebhookType { + GENERAL = "general", + SLACK = "slack" +} + export type TWebhook = { id: string; + type: WebhookType; projectId: string; environment: { slug: string; @@ -22,6 +28,7 @@ export type TCreateWebhookDto = { webhookUrl: string; webhookSecretKey?: string; secretPath: string; + type: WebhookType; }; export type TUpdateWebhookDto = { diff --git a/frontend/src/views/Settings/ProjectSettingsPage/components/WebhooksTab/AddWebhookForm.tsx b/frontend/src/views/Settings/ProjectSettingsPage/components/WebhooksTab/AddWebhookForm.tsx index aac9a458a1..6e4af22444 100644 --- a/frontend/src/views/Settings/ProjectSettingsPage/components/WebhooksTab/AddWebhookForm.tsx +++ b/frontend/src/views/Settings/ProjectSettingsPage/components/WebhooksTab/AddWebhookForm.tsx @@ -14,11 +14,7 @@ import { SelectItem } from "@app/components/v2"; import { SecretPathInput } from "@app/components/v2/SecretPathInput"; - -enum WebhookType { - GENERAL = "general", - SLACK = "slack" -} +import { WebhookType } from "@app/hooks/api/webhooks/types"; const formSchema = z .object({ @@ -116,7 +112,6 @@ export const AddWebhookForm = ({ ( Date: Thu, 4 Jul 2024 13:26:11 +0530 Subject: [PATCH 034/145] feat: changed audit log deletion to batched process --- .../ee/services/audit-log/audit-log-dal.ts | 32 +++++++++++++++---- 1 file changed, 25 insertions(+), 7 deletions(-) diff --git a/backend/src/ee/services/audit-log/audit-log-dal.ts b/backend/src/ee/services/audit-log/audit-log-dal.ts index ffb7de4f38..e42736565f 100644 --- a/backend/src/ee/services/audit-log/audit-log-dal.ts +++ b/backend/src/ee/services/audit-log/audit-log-dal.ts @@ -4,6 +4,7 @@ import { TDbClient } from "@app/db"; import { TableName } from "@app/db/schemas"; import { DatabaseError } from "@app/lib/errors"; import { ormify, stripUndefinedInWhere } from "@app/lib/knex"; +import { logger } from "@app/lib/logger"; export type TAuditLogDALFactory = ReturnType; @@ -55,13 +56,30 @@ export const auditLogDALFactory = (db: TDbClient) => { // delete all audit log that have expired const pruneAuditLog = async (tx?: Knex) => { - try { - const today = new Date(); - const docs = await (tx || db)(TableName.AuditLog).where("expiresAt", "<", today).del(); - return docs; - } catch (error) { - throw new DatabaseError({ error, name: "PruneAuditLog" }); - } + const AUDIT_LOG_PRUNE_BATCH_SIZE = 10000; + const MAX_RETRY_ON_FAILURE = 3; + + const today = new Date(); + let deletedAuditLogIds: { id: string }[] = []; + let numberOfRetryOnFailure = 0; + + do { + try { + const findExpiredLogSubQuery = (tx || db)(TableName.AuditLog) + .where("expiresAt", "<", today) + .select("id") + .limit(AUDIT_LOG_PRUNE_BATCH_SIZE); + // eslint-disable-next-line no-await-in-loop + deletedAuditLogIds = await (tx || db)(TableName.AuditLog) + .whereIn("id", findExpiredLogSubQuery) + .del() + .returning("id"); + numberOfRetryOnFailure = 0; // reset + } catch (error) { + numberOfRetryOnFailure += 1; + logger.error(error, "Failed to delete audit log on pruning"); + } + } while (deletedAuditLogIds.length > 0 && numberOfRetryOnFailure < MAX_RETRY_ON_FAILURE); }; return { ...auditLogOrm, pruneAuditLog, find }; From f4d9c6140465fbc3f0a1c9bfa940f5b8626d654b Mon Sep 17 00:00:00 2001 From: = Date: Thu, 4 Jul 2024 13:59:15 +0530 Subject: [PATCH 035/145] feat: added a pause in between as breather for db delete --- backend/src/ee/services/audit-log/audit-log-dal.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/backend/src/ee/services/audit-log/audit-log-dal.ts b/backend/src/ee/services/audit-log/audit-log-dal.ts index e42736565f..316cf34a55 100644 --- a/backend/src/ee/services/audit-log/audit-log-dal.ts +++ b/backend/src/ee/services/audit-log/audit-log-dal.ts @@ -75,6 +75,10 @@ export const auditLogDALFactory = (db: TDbClient) => { .del() .returning("id"); numberOfRetryOnFailure = 0; // reset + // eslint-disable-next-line no-await-in-loop + await new Promise((resolve) => { + setTimeout(resolve, 100); // time to breathe for db + }); } catch (error) { numberOfRetryOnFailure += 1; logger.error(error, "Failed to delete audit log on pruning"); From 98371f99e776d7922a9b97ffaec9ad4a5639e7c1 Mon Sep 17 00:00:00 2001 From: Sheen Capadngan Date: Thu, 4 Jul 2024 23:16:02 +0800 Subject: [PATCH 036/145] misc: removed webhook url from audit logs table --- backend/src/ee/services/audit-log/audit-log-types.ts | 3 --- backend/src/server/routes/v1/webhook-router.ts | 9 +++------ frontend/src/hooks/api/auditLogs/types.tsx | 3 --- .../Project/AuditLogsPage/components/LogsTableRow.tsx | 3 --- 4 files changed, 3 insertions(+), 15 deletions(-) diff --git a/backend/src/ee/services/audit-log/audit-log-types.ts b/backend/src/ee/services/audit-log/audit-log-types.ts index 0c6ff51c8e..18930cfe88 100644 --- a/backend/src/ee/services/audit-log/audit-log-types.ts +++ b/backend/src/ee/services/audit-log/audit-log-types.ts @@ -771,7 +771,6 @@ interface CreateWebhookEvent { webhookId: string; environment: string; secretPath: string; - webhookUrl: string; isDisabled: boolean; }; } @@ -782,7 +781,6 @@ interface UpdateWebhookStatusEvent { webhookId: string; environment: string; secretPath: string; - webhookUrl: string; isDisabled: boolean; }; } @@ -793,7 +791,6 @@ interface DeleteWebhookEvent { webhookId: string; environment: string; secretPath: string; - webhookUrl: string; isDisabled: boolean; }; } diff --git a/backend/src/server/routes/v1/webhook-router.ts b/backend/src/server/routes/v1/webhook-router.ts index 0bb668b5fa..7423f9f3ed 100644 --- a/backend/src/server/routes/v1/webhook-router.ts +++ b/backend/src/server/routes/v1/webhook-router.ts @@ -81,8 +81,7 @@ export const registerWebhookRouter = async (server: FastifyZodProvider) => { environment: webhook.environment.slug, webhookId: webhook.id, isDisabled: webhook.isDisabled, - secretPath: webhook.secretPath, - webhookUrl: webhook.url + secretPath: webhook.secretPath } } }); @@ -131,8 +130,7 @@ export const registerWebhookRouter = async (server: FastifyZodProvider) => { environment: webhook.environment.slug, webhookId: webhook.id, isDisabled: webhook.isDisabled, - secretPath: webhook.secretPath, - webhookUrl: webhook.url + secretPath: webhook.secretPath } } }); @@ -171,8 +169,7 @@ export const registerWebhookRouter = async (server: FastifyZodProvider) => { environment: webhook.environment.slug, webhookId: webhook.id, isDisabled: webhook.isDisabled, - secretPath: webhook.secretPath, - webhookUrl: webhook.url + secretPath: webhook.secretPath } } }); diff --git a/frontend/src/hooks/api/auditLogs/types.tsx b/frontend/src/hooks/api/auditLogs/types.tsx index 3b607e5962..cdc973ed9f 100644 --- a/frontend/src/hooks/api/auditLogs/types.tsx +++ b/frontend/src/hooks/api/auditLogs/types.tsx @@ -362,7 +362,6 @@ interface CreateWebhookEvent { webhookId: string; environment: string; secretPath: string; - webhookUrl: string; isDisabled: boolean; }; } @@ -373,7 +372,6 @@ interface UpdateWebhookStatusEvent { webhookId: string; environment: string; secretPath: string; - webhookUrl: string; isDisabled: boolean; }; } @@ -384,7 +382,6 @@ interface DeleteWebhookEvent { webhookId: string; environment: string; secretPath: string; - webhookUrl: string; isDisabled: boolean; }; } diff --git a/frontend/src/views/Project/AuditLogsPage/components/LogsTableRow.tsx b/frontend/src/views/Project/AuditLogsPage/components/LogsTableRow.tsx index f4b740e35e..5eada26635 100644 --- a/frontend/src/views/Project/AuditLogsPage/components/LogsTableRow.tsx +++ b/frontend/src/views/Project/AuditLogsPage/components/LogsTableRow.tsx @@ -243,7 +243,6 @@ export const LogsTableRow = ({ auditLog }: Props) => {

{`Environment: ${event.metadata.environment}`}

{`Secret path: ${event.metadata.secretPath}`}

-

{`Webhook URL: ${event.metadata.webhookUrl}`}

{`Disabled: ${event.metadata.isDisabled}`}

); @@ -252,7 +251,6 @@ export const LogsTableRow = ({ auditLog }: Props) => {

{`Environment: ${event.metadata.environment}`}

{`Secret path: ${event.metadata.secretPath}`}

-

{`Webhook URL: ${event.metadata.webhookUrl}`}

{`Disabled: ${event.metadata.isDisabled}`}

); @@ -261,7 +259,6 @@ export const LogsTableRow = ({ auditLog }: Props) => {

{`Environment: ${event.metadata.environment}`}

{`Secret path: ${event.metadata.secretPath}`}

-

{`Webhook URL: ${event.metadata.webhookUrl}`}

{`Disabled: ${event.metadata.isDisabled}`}

); From 2c9fdb7fad932d155a51d19e1f792e1e32aee241 Mon Sep 17 00:00:00 2001 From: Sheen Capadngan Date: Fri, 5 Jul 2024 00:30:22 +0800 Subject: [PATCH 037/145] feat: initial make a wish UI --- frontend/src/layouts/AppLayout/AppLayout.tsx | 83 ++++++++------------ 1 file changed, 34 insertions(+), 49 deletions(-) diff --git a/frontend/src/layouts/AppLayout/AppLayout.tsx b/frontend/src/layouts/AppLayout/AppLayout.tsx index acf899a7ee..8bd51417d1 100644 --- a/frontend/src/layouts/AppLayout/AppLayout.tsx +++ b/frontend/src/layouts/AppLayout/AppLayout.tsx @@ -8,10 +8,9 @@ import { useEffect, useMemo } from "react"; import { Controller, useForm } from "react-hook-form"; import { useTranslation } from "react-i18next"; -import Image from "next/image"; import Link from "next/link"; import { useRouter } from "next/router"; -import { faGithub, faSlack } from "@fortawesome/free-brands-svg-icons"; +import { faGithub, faRocketchat, faSlack } from "@fortawesome/free-brands-svg-icons"; import { faStar } from "@fortawesome/free-regular-svg-icons"; import { faAngleDown, @@ -48,8 +47,12 @@ import { MenuItem, Modal, ModalContent, + Popover, + PopoverContent, + PopoverTrigger, Select, SelectItem, + TextArea, UpgradePlanModal } from "@app/components/v2"; import { UpgradeOverlay } from "@app/components/v2/UpgradeOverlay"; @@ -69,9 +72,7 @@ import { useGetAccessRequestsCount, useGetOrgTrialUrl, useGetSecretApprovalRequestCount, - useGetUserAction, useLogoutUser, - useRegisterUserAction, useSelectOrganization } from "@app/hooks/api"; import { Workspace } from "@app/hooks/api/types"; @@ -145,7 +146,6 @@ export const AppLayout = ({ children }: LayoutProps) => { const { subscription } = useSubscription(); const workspaceId = currentWorkspace?.id || ""; const projectSlug = currentWorkspace?.slug || ""; - const { data: updateClosed } = useGetUserAction("december_update_closed"); const { data: secretApprovalReqCount } = useGetSecretApprovalRequestCount({ workspaceId }); const { data: accessApprovalRequestCount } = useGetAccessRequestsCount({ projectSlug }); @@ -179,13 +179,8 @@ export const AppLayout = ({ children }: LayoutProps) => { const { t } = useTranslation(); - const registerUserAction = useRegisterUserAction(); const { mutateAsync: selectOrganization } = useSelectOrganization(); - const closeUpdate = async () => { - await registerUserAction.mutateAsync("december_update_closed"); - }; - const logout = useLogoutUser(); const logOutUser = async () => { try { @@ -769,45 +764,35 @@ export const AppLayout = ({ children }: LayoutProps) => {
*/} - + + +
+ + Make a wish +
+
+ + +