diff --git a/backend/src/ee/services/pam-resource/redis/redis-resource-schemas.ts b/backend/src/ee/services/pam-resource/redis/redis-resource-schemas.ts index fce01b5fd1..e6b0f127e8 100644 --- a/backend/src/ee/services/pam-resource/redis/redis-resource-schemas.ts +++ b/backend/src/ee/services/pam-resource/redis/redis-resource-schemas.ts @@ -25,8 +25,17 @@ export const RedisResourceConnectionDetailsSchema = z.object({ }); export const RedisAccountCredentialsSchema = z.object({ - username: z.string().trim().min(1).max(63), - password: z.string().trim().min(1).max(256) + username: z + .string() + .trim() + .max(256, "Username must be 255 characters or less") + .transform((value) => (value === "" ? undefined : value)) + .optional(), + password: z + .string() + .max(256, "Password must be 256 characters or less") + .transform((value) => (value === "" ? undefined : value)) + .optional() }); const BaseRedisResourceSchema = BasePamResourceSchema.extend({ resourceType: z.literal(PamResource.Redis) }); diff --git a/frontend/src/pages/pam/PamAccountsPage/components/PamAccountForm/RedisAccountForm.tsx b/frontend/src/pages/pam/PamAccountsPage/components/PamAccountForm/RedisAccountForm.tsx index 264fde2a14..2bf99f3283 100644 --- a/frontend/src/pages/pam/PamAccountsPage/components/PamAccountForm/RedisAccountForm.tsx +++ b/frontend/src/pages/pam/PamAccountsPage/components/PamAccountForm/RedisAccountForm.tsx @@ -18,8 +18,17 @@ type Props = { const formSchema = genericAccountFieldsSchema.extend({ credentials: z.object({ - username: z.string().trim().max(256, "Username must be 255 characters or less"), - password: z.string().max(256, "Password must be 256 characters or less") + username: z + .string() + .trim() + .max(256, "Username must be 255 characters or less") + .transform((value) => (value === "" ? undefined : value)) + .optional(), + password: z + .string() + .max(256, "Password must be 256 characters or less") + .transform((value) => (value === "" ? undefined : value)) + .optional() }), // We don't support rotation for now, just feed a false value to // make the schema happy diff --git a/frontend/src/pages/pam/PamAccountsPage/components/PamAccountForm/shared/UsernamePasswordFields.tsx b/frontend/src/pages/pam/PamAccountsPage/components/PamAccountForm/shared/UsernamePasswordFields.tsx index dbd8aef830..dd5cea2af2 100644 --- a/frontend/src/pages/pam/PamAccountsPage/components/PamAccountForm/shared/UsernamePasswordFields.tsx +++ b/frontend/src/pages/pam/PamAccountsPage/components/PamAccountForm/shared/UsernamePasswordFields.tsx @@ -26,6 +26,7 @@ export const UsernamePasswordFields = ({ isUpdate }: { isUpdate: boolean }) => { errorText={error?.message} isError={Boolean(error?.message)} label="Username" + isOptional > @@ -40,6 +41,7 @@ export const UsernamePasswordFields = ({ isUpdate }: { isUpdate: boolean }) => { errorText={error?.message} isError={Boolean(error?.message)} label="Password" + isOptional >