diff --git a/package-lock.json b/package-lock.json index dffcea9fd2..8f998f8937 100644 --- a/package-lock.json +++ b/package-lock.json @@ -30815,7 +30815,7 @@ } }, "packages/backend": { - "version": "1.56.2", + "version": "1.56.3", "dependencies": { "@apollo/server": "5.0.0", "@as-integrations/express4": "1.1.2", @@ -30902,7 +30902,7 @@ } }, "packages/frontend": { - "version": "1.56.2", + "version": "1.56.3", "hasInstallScript": true, "dependencies": { "@datadog/browser-rum": "^5.2.0", @@ -30990,7 +30990,7 @@ }, "packages/types": { "name": "@plumber/types", - "version": "1.56.2" + "version": "1.56.3" } } } diff --git a/packages/backend/package.json b/packages/backend/package.json index 38ece7fc71..12ac581f7f 100644 --- a/packages/backend/package.json +++ b/packages/backend/package.json @@ -111,5 +111,5 @@ "tsconfig-paths": "^4.2.0", "type-fest": "4.10.3" }, - "version": "1.56.2" + "version": "1.56.3" } diff --git a/packages/backend/src/app.ts b/packages/backend/src/app.ts index 31b34031f5..a4accd8344 100644 --- a/packages/backend/src/app.ts +++ b/packages/backend/src/app.ts @@ -19,6 +19,7 @@ import csp from '@/helpers/csp' import errorHandler from '@/helpers/error-handler' import injectBullBoardHandler from '@/helpers/inject-bull-board-handler' import morgan from '@/helpers/morgan' +import robotsHeaderMiddleware from '@/helpers/robots-header' import webUIHandler from '@/helpers/web-ui-handler' import router from '@/routes' @@ -50,7 +51,7 @@ app.use( }), ) app.use(cors(corsOptions)) - +app.use(robotsHeaderMiddleware) injectBullBoardHandler(app, serverAdapter) appAssetsHandler(app) diff --git a/packages/backend/src/apps/toolbox/actions/for-each/schema.ts b/packages/backend/src/apps/toolbox/actions/for-each/schema.ts index 742256f073..7096e8f1f6 100644 --- a/packages/backend/src/apps/toolbox/actions/for-each/schema.ts +++ b/packages/backend/src/apps/toolbox/actions/for-each/schema.ts @@ -147,5 +147,7 @@ export const parameterSchema = z.object({ }) .refine((v) => VARIABLE_REGEX.test(v), { message: PARAMETER_ERROR_MESSAGE, - }), + }) + // could be null when user is updating the step name before selecting a variable + .nullish(), }) diff --git a/packages/backend/src/graphql/mutations/create-step.ts b/packages/backend/src/graphql/mutations/create-step.ts index eed82e029b..f8a66d9b8e 100644 --- a/packages/backend/src/graphql/mutations/create-step.ts +++ b/packages/backend/src/graphql/mutations/create-step.ts @@ -92,6 +92,7 @@ const createStep: MutationResolvers['createStep'] = async ( return { ...step, + flowId: flow.id, flow: { updatedAt: updatedFlow.updatedAt, }, diff --git a/packages/backend/src/graphql/schema.graphql b/packages/backend/src/graphql/schema.graphql index 2412a80e86..e93e932e8d 100644 --- a/packages/backend/src/graphql/schema.graphql +++ b/packages/backend/src/graphql/schema.graphql @@ -703,6 +703,7 @@ type Step { executionSteps: [ExecutionStep] config: StepConfig createdAt: String + flowId: String } type StepConfig { diff --git a/packages/backend/src/helpers/robots-header.ts b/packages/backend/src/helpers/robots-header.ts new file mode 100644 index 0000000000..c2b580b562 --- /dev/null +++ b/packages/backend/src/helpers/robots-header.ts @@ -0,0 +1,15 @@ +import { NextFunction, Request, Response } from 'express' + +const robotsHeaderMiddleware = ( + req: Request, + res: Response, + next: NextFunction, +) => { + // Add X-Robots-Tag header for all /tiles/* routes + if (req.path.startsWith('/tiles/')) { + res.setHeader('X-Robots-Tag', 'noindex, nofollow') + } + next() +} + +export default robotsHeaderMiddleware diff --git a/packages/frontend/package.json b/packages/frontend/package.json index da4c13da16..ec31a65057 100644 --- a/packages/frontend/package.json +++ b/packages/frontend/package.json @@ -1,6 +1,6 @@ { "name": "frontend", - "version": "1.56.2", + "version": "1.56.3", "type": "module", "scripts": { "dev": "wait-on tcp:3000 && vite --host --force", diff --git a/packages/frontend/src/components/ExecutionGroup/index.tsx b/packages/frontend/src/components/ExecutionGroup/index.tsx index 29cadb6449..5e3b958ed6 100644 --- a/packages/frontend/src/components/ExecutionGroup/index.tsx +++ b/packages/frontend/src/components/ExecutionGroup/index.tsx @@ -83,6 +83,19 @@ export default function ExecutionGroup(props: ExecutionGroupProps) { } }, [iterationMap, statusFilter]) + // NOTE: filter the iteration map to only include iterations that match the status filter + const filteredIterationMap = useMemo(() => { + if (statusFilter === GroupStatusType.All) { + return iterationMap + } + + return new Map( + [...iterationMap].filter(([_iteration, status]) => { + return status === statusFilter + }), + ) + }, [iterationMap, statusFilter]) + const { app, appName } = useExecutionStepStatus({ appKey: groupingStep?.appKey ?? '', status: !execution?.status @@ -153,7 +166,7 @@ export default function ExecutionGroup(props: ExecutionGroupProps) { {iterationMap.size > 0 ? ( <> 0} execution={execution} selectedIteration={selectedIteration} diff --git a/packages/frontend/src/graphql/mutations/create-step.ts b/packages/frontend/src/graphql/mutations/create-step.ts index a9117171a7..9aa91e6dcc 100644 --- a/packages/frontend/src/graphql/mutations/create-step.ts +++ b/packages/frontend/src/graphql/mutations/create-step.ts @@ -10,6 +10,7 @@ export const CREATE_STEP = gql` parameters position status + flowId connection { id } diff --git a/packages/frontend/src/graphql/mutations/update-step.ts b/packages/frontend/src/graphql/mutations/update-step.ts index 9d9130dd7f..bc9069c33a 100644 --- a/packages/frontend/src/graphql/mutations/update-step.ts +++ b/packages/frontend/src/graphql/mutations/update-step.ts @@ -11,6 +11,7 @@ export const UPDATE_STEP = graphql(` parameters status position + flowId connection { id } diff --git a/packages/frontend/src/graphql/queries/get-flow.ts b/packages/frontend/src/graphql/queries/get-flow.ts index 36e6bf8ce3..83e56f58e5 100644 --- a/packages/frontend/src/graphql/queries/get-flow.ts +++ b/packages/frontend/src/graphql/queries/get-flow.ts @@ -16,6 +16,7 @@ export const FLOW_FIELDS = gql` status position createdAt + flowId connection { id verified diff --git a/packages/frontend/src/pages/Tile/index.tsx b/packages/frontend/src/pages/Tile/index.tsx index 21e56ab0a0..fafc841ee6 100644 --- a/packages/frontend/src/pages/Tile/index.tsx +++ b/packages/frontend/src/pages/Tile/index.tsx @@ -99,6 +99,7 @@ export default function Tile(): JSX.Element | null { refetch={refetch} > + {name} | Tile - Spreadsheet - - - Your{' '} + <> + + + you seem lost... + + + Spreadsheet + - Tile - {' '} - link is invalid or has expired. - - - Please request a new link from the tile owner. - - - + Your{' '} + + Tile + {' '} + link is invalid or has expired. + + + Please request a new link from the tile owner. + + + + ) } diff --git a/packages/frontend/src/pages/UnauthorizedTile/MissingTile.tsx b/packages/frontend/src/pages/UnauthorizedTile/MissingTile.tsx index 3886bdbc69..411d5ece30 100644 --- a/packages/frontend/src/pages/UnauthorizedTile/MissingTile.tsx +++ b/packages/frontend/src/pages/UnauthorizedTile/MissingTile.tsx @@ -15,6 +15,7 @@ export function MissingTile({ title }: MissingTileProps): JSX.Element { return ( <> + you seem lost...