Fix greptile reviews

This commit is contained in:
x032205
2025-07-09 22:27:42 -04:00
parent f58de53995
commit 79d80fad08
10 changed files with 48 additions and 36 deletions

View File

@@ -53,7 +53,7 @@ export const registerCloudflareConnectionRouter = async (server: FastifyZodProvi
server.route({
method: "GET",
url: `/:connectionId/cloudflare-workers-projects`,
url: `/:connectionId/cloudflare-workers-scripts`,
config: {
rateLimit: readLimit
},
@@ -73,7 +73,7 @@ export const registerCloudflareConnectionRouter = async (server: FastifyZodProvi
handler: async (req) => {
const { connectionId } = req.params;
const projects = await server.services.appConnection.cloudflare.listWorkersProjects(connectionId, req.permission);
const projects = await server.services.appConnection.cloudflare.listWorkersScripts(connectionId, req.permission);
return projects;
}

View File

@@ -10,7 +10,7 @@ import {
TCloudflareConnection,
TCloudflareConnectionConfig,
TCloudflarePagesProject,
TCloudflareWorkersProject
TCloudflareWorkersScript
} from "./cloudflare-connection-types";
export const getCloudflareConnectionListItem = () => {
@@ -44,9 +44,9 @@ export const listCloudflarePagesProjects = async (
}));
};
export const listCloudflareWorkersProjects = async (
export const listCloudflareWorkersScripts = async (
appConnection: TCloudflareConnection
): Promise<TCloudflareWorkersProject[]> => {
): Promise<TCloudflareWorkersScript[]> => {
const {
credentials: { apiToken, accountId }
} = appConnection;

View File

@@ -2,7 +2,7 @@ import { logger } from "@app/lib/logger";
import { OrgServiceActor } from "@app/lib/types";
import { AppConnection } from "../app-connection-enums";
import { listCloudflarePagesProjects, listCloudflareWorkersProjects } from "./cloudflare-connection-fns";
import { listCloudflarePagesProjects, listCloudflareWorkersScripts } from "./cloudflare-connection-fns";
import { TCloudflareConnection } from "./cloudflare-connection-types";
type TGetAppConnectionFunc = (
@@ -19,25 +19,31 @@ export const cloudflareConnectionService = (getAppConnection: TGetAppConnectionF
return projects;
} catch (error) {
logger.error(error, "Failed to list Cloudflare Pages projects for Cloudflare connection");
logger.error(
error,
`Failed to list Cloudflare Pages projects for Cloudflare connection [connectionId=${connectionId}]`
);
return [];
}
};
const listWorkersProjects = async (connectionId: string, actor: OrgServiceActor) => {
const listWorkersScripts = async (connectionId: string, actor: OrgServiceActor) => {
const appConnection = await getAppConnection(AppConnection.Cloudflare, connectionId, actor);
try {
const projects = await listCloudflareWorkersProjects(appConnection);
const projects = await listCloudflareWorkersScripts(appConnection);
return projects;
} catch (error) {
logger.error(error, "Failed to list Cloudflare Workers projects for Cloudflare connection");
logger.error(
error,
`Failed to list Cloudflare Workers scripts for Cloudflare connection [connectionId=${connectionId}]`
);
return [];
}
};
return {
listPagesProjects,
listWorkersProjects
listWorkersScripts
};
};

View File

@@ -29,6 +29,6 @@ export type TCloudflarePagesProject = {
name: string;
};
export type TCloudflareWorkersProject = {
export type TCloudflareWorkersScript = {
id: string;
};

View File

@@ -1,3 +1,4 @@
import RE2 from "re2";
import { z } from "zod";
import { SecretSyncs } from "@app/lib/api-docs";
@@ -14,6 +15,8 @@ const CloudflareWorkersSyncDestinationConfigSchema = z.object({
scriptId: z
.string()
.min(1, "Script ID is required")
.max(64)
.regex(new RE2(/^[a-z0-9]([a-z0-9-]*[a-z0-9])?$/), "Invalid script ID format")
.describe(SecretSyncs.DESTINATION_CONFIG.CLOUDFLARE_WORKERS.scriptId)
});

View File

@@ -75,8 +75,7 @@ description: "Learn how to configure a Cloudflare Workers Sync for Infisical."
"initialSyncBehavior": "overwrite-destination"
},
"destinationConfig": {
"projectId": "your-cloudflare-workers-project-id",
"scriptId": "my-workers-project"
"scriptId": "my-workers-script"
}
}'
```
@@ -119,8 +118,7 @@ description: "Learn how to configure a Cloudflare Workers Sync for Infisical."
},
"destination": "cloudflare-workers",
"destinationConfig": {
"projectId": "your-cloudflare-workers-project-id",
"scriptId": "my-workers-project"
"scriptId": "my-workers-script"
}
}
}

View File

@@ -4,8 +4,8 @@ import { SingleValue } from "react-select";
import { SecretSyncConnectionField } from "@app/components/secret-syncs/forms/SecretSyncConnectionField";
import { FilterableSelect, FormControl } from "@app/components/v2";
import {
TCloudflareWorkersProject,
useCloudflareConnectionListWorkersProjects
TCloudflareWorkersScript,
useCloudflareConnectionListWorkersScripts
} from "@app/hooks/api/appConnections/cloudflare";
import { SecretSync } from "@app/hooks/api/secretSyncs";
@@ -18,8 +18,8 @@ export const CloudflareWorkersSyncFields = () => {
const connectionId = useWatch({ name: "connection.id", control });
const { data: projects = [], isPending: isProjectsPending } =
useCloudflareConnectionListWorkersProjects(connectionId, {
const { data: scripts = [], isPending: isScriptsPending } =
useCloudflareConnectionListWorkersScripts(connectionId, {
enabled: Boolean(connectionId)
});
@@ -40,13 +40,13 @@ export const CloudflareWorkersSyncFields = () => {
label="Worker Script"
>
<FilterableSelect
isLoading={isProjectsPending && Boolean(connectionId)}
isLoading={isScriptsPending && Boolean(connectionId)}
isDisabled={!connectionId}
value={projects ? (projects.find((project) => project.id === value) ?? []) : []}
value={scripts?.find((script) => script.id === value) || []}
onChange={(option) => {
onChange((option as SingleValue<TCloudflareWorkersProject>)?.id ?? null);
onChange((option as SingleValue<TCloudflareWorkersScript>)?.id ?? null);
}}
options={projects}
options={scripts}
placeholder="Select a worker script..."
getOptionLabel={(option) => option.id}
getOptionValue={(option) => option.id}

View File

@@ -7,7 +7,12 @@ export const CloudflareWorkersSyncDestinationSchema = BaseSecretSyncSchema().mer
z.object({
destination: z.literal(SecretSync.CloudflareWorkers),
destinationConfig: z.object({
scriptId: z.string().trim().min(1, "Script ID is required")
scriptId: z
.string()
.trim()
.min(1, "Script ID is required")
.max(64)
.regex(/^[a-z0-9]([a-z0-9-]*[a-z0-9])?$/, "Invalid script ID format")
})
})
);

View File

@@ -3,14 +3,14 @@ import { useQuery, UseQueryOptions } from "@tanstack/react-query";
import { apiRequest } from "@app/config/request";
import { appConnectionKeys } from "../queries";
import { TCloudflarePagesProject, TCloudflareWorkersProject } from "./types";
import { TCloudflarePagesProject, TCloudflareWorkersScript } from "./types";
const cloudflareConnectionKeys = {
all: [...appConnectionKeys.all, "cloudflare"] as const,
listPagesProjects: (connectionId: string) =>
[...cloudflareConnectionKeys.all, "pages-projects", connectionId] as const,
listWorkersProjects: (connectionId: string) =>
[...cloudflareConnectionKeys.all, "workers-projects", connectionId] as const
listWorkersScripts: (connectionId: string) =>
[...cloudflareConnectionKeys.all, "workers-scripts", connectionId] as const
};
export const useCloudflareConnectionListPagesProjects = (
@@ -38,23 +38,23 @@ export const useCloudflareConnectionListPagesProjects = (
});
};
export const useCloudflareConnectionListWorkersProjects = (
export const useCloudflareConnectionListWorkersScripts = (
connectionId: string,
options?: Omit<
UseQueryOptions<
TCloudflareWorkersProject[],
TCloudflareWorkersScript[],
unknown,
TCloudflareWorkersProject[],
ReturnType<typeof cloudflareConnectionKeys.listWorkersProjects>
TCloudflareWorkersScript[],
ReturnType<typeof cloudflareConnectionKeys.listWorkersScripts>
>,
"queryKey" | "queryFn"
>
) => {
return useQuery({
queryKey: cloudflareConnectionKeys.listWorkersProjects(connectionId),
queryKey: cloudflareConnectionKeys.listWorkersScripts(connectionId),
queryFn: async () => {
const { data } = await apiRequest.get<TCloudflareWorkersProject[]>(
`/api/v1/app-connections/cloudflare/${connectionId}/cloudflare-workers-projects`
const { data } = await apiRequest.get<TCloudflareWorkersScript[]>(
`/api/v1/app-connections/cloudflare/${connectionId}/cloudflare-workers-scripts`
);
return data;

View File

@@ -3,6 +3,6 @@ export type TCloudflarePagesProject = {
name: string;
};
export type TCloudflareWorkersProject = {
export type TCloudflareWorkersScript = {
id: string;
};