diff --git a/backend/src/db/migrations/20250618172150_increase-aws-arn-field-size.ts b/backend/src/db/migrations/20250618172150_increase-aws-arn-field-size.ts new file mode 100644 index 000000000..a349ec2bc --- /dev/null +++ b/backend/src/db/migrations/20250618172150_increase-aws-arn-field-size.ts @@ -0,0 +1,21 @@ +import { Knex } from "knex"; + +import { TableName } from "../schemas"; + +export async function up(knex: Knex): Promise { + const hasColumn = await knex.schema.hasColumn(TableName.IdentityAwsAuth, "allowedPrincipalArns"); + if (hasColumn) { + await knex.schema.alterTable(TableName.IdentityAwsAuth, (t) => { + t.string("allowedPrincipalArns", 2048).notNullable().alter(); + }); + } +} + +export async function down(knex: Knex): Promise { + const hasColumn = await knex.schema.hasColumn(TableName.IdentityAwsAuth, "allowedPrincipalArns"); + if (hasColumn) { + await knex.schema.alterTable(TableName.IdentityAwsAuth, (t) => { + t.string("allowedPrincipalArns", 255).notNullable().alter(); + }); + } +} diff --git a/backend/src/services/identity-aws-auth/identity-aws-auth-validators.ts b/backend/src/services/identity-aws-auth/identity-aws-auth-validators.ts index 1a6e5cbd6..d0ef6fd88 100644 --- a/backend/src/services/identity-aws-auth/identity-aws-auth-validators.ts +++ b/backend/src/services/identity-aws-auth/identity-aws-auth-validators.ts @@ -9,6 +9,7 @@ const arnRegex = new RE2(/^arn:aws:iam::\d{12}:(user\/[a-zA-Z0-9_.@+*/-]+|role\/ export const validateAccountIds = z .string() .trim() + .max(2048) .default("") // Custom validation to ensure each part is a 12-digit number .refine( @@ -36,6 +37,7 @@ export const validateAccountIds = z export const validatePrincipalArns = z .string() .trim() + .max(2048) .default("") // Custom validation for ARN format .refine(