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
>