Skip to content

Commit 1b97c15

Browse files
committed
fix(aws): eliminate double validateAwsRegion call and fix regex alternation order
- Replace double-call .refine() pattern with single-call + static message across all 61 AWS routes - Reorder regex alternation to put longer prefixes first (eu-isoe before eu, us-isob/us-iso/us-gov before us) for engine-agnostic correctness
1 parent f1e9db3 commit 1b97c15

62 files changed

Lines changed: 184 additions & 245 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

apps/sim/app/api/tools/cloudwatch/describe-alarms/route.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,9 @@ const DescribeAlarmsSchema = z.object({
1818
region: z
1919
.string()
2020
.min(1, 'AWS region is required')
21-
.refine(
22-
(v) => validateAwsRegion(v).isValid,
23-
(v) => validateAwsRegion(v).error ?? 'Invalid AWS region'
24-
),
21+
.refine((v) => validateAwsRegion(v).isValid, {
22+
message: 'Invalid AWS region format (e.g., us-east-1, eu-west-2)',
23+
}),
2524
accessKeyId: z.string().min(1, 'AWS access key ID is required'),
2625
secretAccessKey: z.string().min(1, 'AWS secret access key is required'),
2726
alarmNamePrefix: z.string().optional(),

apps/sim/app/api/tools/cloudwatch/describe-log-groups/route.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,9 @@ const DescribeLogGroupsSchema = z.object({
1414
region: z
1515
.string()
1616
.min(1, 'AWS region is required')
17-
.refine(
18-
(v) => validateAwsRegion(v).isValid,
19-
(v) => validateAwsRegion(v).error ?? 'Invalid AWS region'
20-
),
17+
.refine((v) => validateAwsRegion(v).isValid, {
18+
message: 'Invalid AWS region format (e.g., us-east-1, eu-west-2)',
19+
}),
2120
accessKeyId: z.string().min(1, 'AWS access key ID is required'),
2221
secretAccessKey: z.string().min(1, 'AWS secret access key is required'),
2322
prefix: z.string().optional(),

apps/sim/app/api/tools/cloudwatch/describe-log-streams/route.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,9 @@ const DescribeLogStreamsSchema = z.object({
1313
region: z
1414
.string()
1515
.min(1, 'AWS region is required')
16-
.refine(
17-
(v) => validateAwsRegion(v).isValid,
18-
(v) => validateAwsRegion(v).error ?? 'Invalid AWS region'
19-
),
16+
.refine((v) => validateAwsRegion(v).isValid, {
17+
message: 'Invalid AWS region format (e.g., us-east-1, eu-west-2)',
18+
}),
2019
accessKeyId: z.string().min(1, 'AWS access key ID is required'),
2120
secretAccessKey: z.string().min(1, 'AWS secret access key is required'),
2221
logGroupName: z.string().min(1, 'Log group name is required'),

apps/sim/app/api/tools/cloudwatch/get-log-events/route.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,9 @@ const GetLogEventsSchema = z.object({
1313
region: z
1414
.string()
1515
.min(1, 'AWS region is required')
16-
.refine(
17-
(v) => validateAwsRegion(v).isValid,
18-
(v) => validateAwsRegion(v).error ?? 'Invalid AWS region'
19-
),
16+
.refine((v) => validateAwsRegion(v).isValid, {
17+
message: 'Invalid AWS region format (e.g., us-east-1, eu-west-2)',
18+
}),
2019
accessKeyId: z.string().min(1, 'AWS access key ID is required'),
2120
secretAccessKey: z.string().min(1, 'AWS secret access key is required'),
2221
logGroupName: z.string().min(1, 'Log group name is required'),

apps/sim/app/api/tools/cloudwatch/get-metric-statistics/route.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,9 @@ const GetMetricStatisticsSchema = z.object({
1313
region: z
1414
.string()
1515
.min(1, 'AWS region is required')
16-
.refine(
17-
(v) => validateAwsRegion(v).isValid,
18-
(v) => validateAwsRegion(v).error ?? 'Invalid AWS region'
19-
),
16+
.refine((v) => validateAwsRegion(v).isValid, {
17+
message: 'Invalid AWS region format (e.g., us-east-1, eu-west-2)',
18+
}),
2019
accessKeyId: z.string().min(1, 'AWS access key ID is required'),
2120
secretAccessKey: z.string().min(1, 'AWS secret access key is required'),
2221
namespace: z.string().min(1, 'Namespace is required'),

apps/sim/app/api/tools/cloudwatch/list-metrics/route.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,9 @@ const ListMetricsSchema = z.object({
1313
region: z
1414
.string()
1515
.min(1, 'AWS region is required')
16-
.refine(
17-
(v) => validateAwsRegion(v).isValid,
18-
(v) => validateAwsRegion(v).error ?? 'Invalid AWS region'
19-
),
16+
.refine((v) => validateAwsRegion(v).isValid, {
17+
message: 'Invalid AWS region format (e.g., us-east-1, eu-west-2)',
18+
}),
2019
accessKeyId: z.string().min(1, 'AWS access key ID is required'),
2120
secretAccessKey: z.string().min(1, 'AWS secret access key is required'),
2221
namespace: z.string().optional(),

apps/sim/app/api/tools/cloudwatch/put-metric-data/route.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -47,10 +47,9 @@ const PutMetricDataSchema = z.object({
4747
region: z
4848
.string()
4949
.min(1, 'AWS region is required')
50-
.refine(
51-
(v) => validateAwsRegion(v).isValid,
52-
(v) => validateAwsRegion(v).error ?? 'Invalid AWS region'
53-
),
50+
.refine((v) => validateAwsRegion(v).isValid, {
51+
message: 'Invalid AWS region format (e.g., us-east-1, eu-west-2)',
52+
}),
5453
accessKeyId: z.string().min(1, 'AWS access key ID is required'),
5554
secretAccessKey: z.string().min(1, 'AWS secret access key is required'),
5655
namespace: z.string().min(1, 'Namespace is required'),

apps/sim/app/api/tools/cloudwatch/query-logs/route.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,9 @@ const QueryLogsSchema = z.object({
1414
region: z
1515
.string()
1616
.min(1, 'AWS region is required')
17-
.refine(
18-
(v) => validateAwsRegion(v).isValid,
19-
(v) => validateAwsRegion(v).error ?? 'Invalid AWS region'
20-
),
17+
.refine((v) => validateAwsRegion(v).isValid, {
18+
message: 'Invalid AWS region format (e.g., us-east-1, eu-west-2)',
19+
}),
2120
accessKeyId: z.string().min(1, 'AWS access key ID is required'),
2221
secretAccessKey: z.string().min(1, 'AWS secret access key is required'),
2322
logGroupNames: z.array(z.string().min(1)).min(1, 'At least one log group name is required'),

apps/sim/app/api/tools/dynamodb/delete/route.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,9 @@ const DeleteSchema = z.object({
1313
region: z
1414
.string()
1515
.min(1, 'AWS region is required')
16-
.refine(
17-
(v) => validateAwsRegion(v).isValid,
18-
(v) => validateAwsRegion(v).error ?? 'Invalid AWS region'
19-
),
16+
.refine((v) => validateAwsRegion(v).isValid, {
17+
message: 'Invalid AWS region format (e.g., us-east-1, eu-west-2)',
18+
}),
2019
accessKeyId: z.string().min(1, 'AWS access key ID is required'),
2120
secretAccessKey: z.string().min(1, 'AWS secret access key is required'),
2221
tableName: z.string().min(1, 'Table name is required'),

apps/sim/app/api/tools/dynamodb/get/route.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,9 @@ const GetSchema = z.object({
1313
region: z
1414
.string()
1515
.min(1, 'AWS region is required')
16-
.refine(
17-
(v) => validateAwsRegion(v).isValid,
18-
(v) => validateAwsRegion(v).error ?? 'Invalid AWS region'
19-
),
16+
.refine((v) => validateAwsRegion(v).isValid, {
17+
message: 'Invalid AWS region format (e.g., us-east-1, eu-west-2)',
18+
}),
2019
accessKeyId: z.string().min(1, 'AWS access key ID is required'),
2120
secretAccessKey: z.string().min(1, 'AWS secret access key is required'),
2221
tableName: z.string().min(1, 'Table name is required'),

0 commit comments

Comments
 (0)