Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion packages/backend/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -111,5 +111,5 @@
"tsconfig-paths": "^4.2.0",
"type-fest": "4.10.3"
},
"version": "1.56.2"
"version": "1.56.3"
}
3 changes: 2 additions & 1 deletion packages/backend/src/app.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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'

Expand Down Expand Up @@ -50,7 +51,7 @@ app.use(
}),
)
app.use(cors(corsOptions))

app.use(robotsHeaderMiddleware)
injectBullBoardHandler(app, serverAdapter)

appAssetsHandler(app)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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(),
})
1 change: 1 addition & 0 deletions packages/backend/src/graphql/mutations/create-step.ts
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,7 @@ const createStep: MutationResolvers['createStep'] = async (

return {
...step,
flowId: flow.id,
flow: {
updatedAt: updatedFlow.updatedAt,
},
Expand Down
1 change: 1 addition & 0 deletions packages/backend/src/graphql/schema.graphql
Original file line number Diff line number Diff line change
Expand Up @@ -703,6 +703,7 @@ type Step {
executionSteps: [ExecutionStep]
config: StepConfig
createdAt: String
flowId: String
}

type StepConfig {
Expand Down
15 changes: 15 additions & 0 deletions packages/backend/src/helpers/robots-header.ts
Original file line number Diff line number Diff line change
@@ -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
2 changes: 1 addition & 1 deletion packages/frontend/package.json
Original file line number Diff line number Diff line change
@@ -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",
Expand Down
15 changes: 14 additions & 1 deletion packages/frontend/src/components/ExecutionGroup/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -153,7 +166,7 @@ export default function ExecutionGroup(props: ExecutionGroupProps) {
{iterationMap.size > 0 ? (
<>
<IterationSelector
iterationMap={iterationMap}
iterationMap={filteredIterationMap}
canRetryAll={groupStats.failure > 0}
execution={execution}
selectedIteration={selectedIteration}
Expand Down
1 change: 1 addition & 0 deletions packages/frontend/src/graphql/mutations/create-step.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ export const CREATE_STEP = gql`
parameters
position
status
flowId
connection {
id
}
Expand Down
1 change: 1 addition & 0 deletions packages/frontend/src/graphql/mutations/update-step.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ export const UPDATE_STEP = graphql(`
parameters
status
position
flowId
connection {
id
}
Expand Down
1 change: 1 addition & 0 deletions packages/frontend/src/graphql/queries/get-flow.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ export const FLOW_FIELDS = gql`
status
position
createdAt
flowId
connection {
id
verified
Expand Down
1 change: 1 addition & 0 deletions packages/frontend/src/pages/Tile/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,7 @@ export default function Tile(): JSX.Element | null {
refetch={refetch}
>
<Helmet>
<meta name="robots" content="noindex,nofollow" />
<title>{name} | Tile</title>
</Helmet>
<Flex
Expand Down
89 changes: 48 additions & 41 deletions packages/frontend/src/pages/UnauthorizedTile/InvalidTileLink.tsx
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import { Helmet } from 'react-helmet'
import { Image, Stack, Text, VStack } from '@chakra-ui/react'

import spreadsheetImg from '@/assets/spreadsheet.png'
Expand All @@ -6,48 +7,54 @@ import styles from './UnauthorizedTile.module.css'

export function InvalidTileLink(): JSX.Element {
return (
<Stack
direction={{ base: 'column', md: 'row' }}
maxW="1000px"
margin="auto"
gap={8}
px={8}
alignItems="center"
justifyContent="center"
>
<Image
className={styles.flicker}
src={spreadsheetImg}
alt="Spreadsheet"
w="400px"
maxW="50%"
/>
<VStack alignItems={{ base: 'center', md: 'start' }} gap={2}>
<Text
textStyle="h4"
textAlign={{ base: 'center', md: 'left' }}
fontWeight="normal"
>
Your{' '}
<>
<Helmet>
<meta name="robots" content="noindex,nofollow" />
<title>you seem lost...</title>
</Helmet>
<Stack
direction={{ base: 'column', md: 'row' }}
maxW="1000px"
margin="auto"
gap={8}
px={8}
alignItems="center"
justifyContent="center"
>
<Image
className={styles.flicker}
src={spreadsheetImg}
alt="Spreadsheet"
w="400px"
maxW="50%"
/>
<VStack alignItems={{ base: 'center', md: 'start' }} gap={2}>
<Text
bgGradient="linear(to-r, primary.400, primary.500)"
backgroundClip="text"
as="span"
className={styles.flicker}
fontWeight="bold"
textStyle="h4"
textAlign={{ base: 'center', md: 'left' }}
fontWeight="normal"
>
Tile
</Text>{' '}
link is invalid or has expired.
</Text>
<Text
textStyle="h6"
textAlign={{ base: 'center', md: 'left' }}
fontWeight="normal"
>
Please request a new link from the tile owner.
</Text>
</VStack>
</Stack>
Your{' '}
<Text
bgGradient="linear(to-r, primary.400, primary.500)"
backgroundClip="text"
as="span"
className={styles.flicker}
fontWeight="bold"
>
Tile
</Text>{' '}
link is invalid or has expired.
</Text>
<Text
textStyle="h6"
textAlign={{ base: 'center', md: 'left' }}
fontWeight="normal"
>
Please request a new link from the tile owner.
</Text>
</VStack>
</Stack>
</>
)
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ export function MissingTile({ title }: MissingTileProps): JSX.Element {
return (
<>
<Helmet>
<meta name="robots" content="noindex,nofollow" />
<title>you seem lost...</title>
</Helmet>
<Stack
Expand Down
2 changes: 1 addition & 1 deletion packages/types/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@
"name": "@plumber/types",
"description": "Shared types for plumber",
"types": "./index.d.ts",
"version": "1.56.2"
"version": "1.56.3"
}