Skip to content

feat--frontend-overhaul #1537

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 38 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
fb3af7e
reintegration
grutt Apr 11, 2025
72591bc
fix: relative routes
grutt Apr 11, 2025
58f4a4c
dynamic routes
grutt Apr 11, 2025
7152430
up/downgrade ui
grutt Apr 11, 2025
a3f40be
memoize
grutt Apr 11, 2025
993ecd0
fix breadcrumbs
grutt Apr 11, 2025
9e2b60d
cleanup
grutt Apr 11, 2025
03c0fe5
titles
grutt Apr 11, 2025
8a98eec
title format
grutt Apr 11, 2025
c33cbdf
additional meta
grutt Apr 11, 2025
a80d79a
cli upgrade
grutt Apr 11, 2025
a8ee3de
button
grutt Apr 11, 2025
4472d8d
lint
grutt Apr 11, 2025
8a83edd
Update frontend/app/src/next/components/runs/run-id.tsx
grutt Apr 11, 2025
b7e3e8d
build errors
grutt Apr 11, 2025
8e5391b
unbind on return
grutt Apr 11, 2025
98a534e
lint
grutt Apr 11, 2025
a920827
Merge branch 'main' into fe-overhaul
grutt Apr 14, 2025
916c6a7
Fe overhaul run form (#1547)
grutt Apr 15, 2025
c9fc151
Merge branch 'main' into fe-overhaul
grutt Apr 15, 2025
7a27ece
Fe overhaul details (#1552)
grutt Apr 17, 2025
e44a929
Fe overhaul burndown 1 (#1563)
grutt Apr 17, 2025
b1dff42
fix: bit of spacing
mrkaye97 Apr 18, 2025
8cfbb23
Merge branch 'main' into fe-overhaul
grutt Apr 21, 2025
697d81b
single generated api
grutt Apr 21, 2025
6a66b9d
feat: initial styling pass on runs views (#1586)
abelanger5 Apr 21, 2025
ff1d26d
Feat: Workflows pages (#1577)
mrkaye97 Apr 21, 2025
7e702e2
fix: tsc
mrkaye97 Apr 21, 2025
0955b0f
fix: compiler
mrkaye97 Apr 21, 2025
13d33d9
fe overhaul runs bash (#1599)
grutt Apr 23, 2025
17bcd64
bring back error toast
grutt Apr 23, 2025
a9253e5
toast improvements
grutt Apr 23, 2025
2bfa272
lint
grutt Apr 23, 2025
1330785
fix: cloud only surface
grutt Apr 23, 2025
fcfbf1d
cloud surface
grutt Apr 23, 2025
99de12f
fix breadcrumbs
grutt Apr 23, 2025
b4525e9
Merge remote-tracking branch 'origin/main' into fe-overhaul
abelanger5 Apr 23, 2025
77f8513
Merge remote-tracking branch 'origin/main' into fe-overhaul
abelanger5 Apr 23, 2025
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
1 change: 1 addition & 0 deletions api-contracts/openapi/components/schemas/v1/task.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -118,6 +118,7 @@ V1TaskSummary:
- tenantId
- type
- workflowId
- workflowRunExternalId

V1WorkflowRunDisplayName:
properties:
Expand Down
6 changes: 6 additions & 0 deletions api-contracts/openapi/paths/v1/tasks/tasks.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -191,6 +191,12 @@ getTaskStatusMetrics:
schema:
type: string
format: date-time
- description: The end time to get metrics for
in: query
name: until
schema:
type: string
format: date-time
- description: The workflow id to find runs for
in: query
name: workflow_ids
Expand Down
1 change: 1 addition & 0 deletions api/v1/server/handlers/v1/tasks/get_metrics.go
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ func (t *TasksService) V1TaskListStatusMetrics(ctx echo.Context, request gen.V1T

metrics, err := t.config.V1.OLAP().ReadTaskRunMetrics(ctx.Request().Context(), tenantId, v1.ReadTaskRunMetricsOpts{
CreatedAfter: request.Params.Since,
CreatedBefore: request.Params.Until,
WorkflowIds: workflowIds,
ParentTaskExternalID: parentTaskExternalId,
})
Expand Down
456 changes: 233 additions & 223 deletions api/v1/server/oas/gen/openapi.gen.go

Large diffs are not rendered by default.

48 changes: 21 additions & 27 deletions api/v1/server/oas/transformers/v1/tasks.go
Original file line number Diff line number Diff line change
Expand Up @@ -54,24 +54,25 @@ func ToTaskSummary(task *sqlcv1.PopulateTaskRunDataRow) gen.V1TaskSummary {
CreatedAt: task.InsertedAt.Time,
UpdatedAt: task.InsertedAt.Time,
},
Input: jsonToMap(task.Input),
Output: jsonToMap(task.Output),
Type: gen.V1WorkflowTypeTASK,
DisplayName: task.DisplayName,
Duration: durationPtr,
StartedAt: startedAt,
FinishedAt: finishedAt,
AdditionalMetadata: &additionalMetadata,
ErrorMessage: &task.ErrorMessage.String,
Status: gen.V1TaskStatus(task.Status),
TenantId: uuid.MustParse(sqlchelpers.UUIDToStr(task.TenantID)),
WorkflowId: uuid.MustParse(sqlchelpers.UUIDToStr(task.WorkflowID)),
TaskId: int(task.ID),
TaskInsertedAt: task.InsertedAt.Time,
TaskExternalId: taskExternalId,
StepId: &stepId,
ActionId: &task.ActionID,
WorkflowVersionId: &workflowVersionId,
Input: jsonToMap(task.Input),
Output: jsonToMap(task.Output),
Type: gen.V1WorkflowTypeTASK,
DisplayName: task.DisplayName,
Duration: durationPtr,
StartedAt: startedAt,
FinishedAt: finishedAt,
AdditionalMetadata: &additionalMetadata,
ErrorMessage: &task.ErrorMessage.String,
Status: gen.V1TaskStatus(task.Status),
TenantId: uuid.MustParse(sqlchelpers.UUIDToStr(task.TenantID)),
WorkflowId: uuid.MustParse(sqlchelpers.UUIDToStr(task.WorkflowID)),
TaskId: int(task.ID),
TaskInsertedAt: task.InsertedAt.Time,
TaskExternalId: taskExternalId,
StepId: &stepId,
ActionId: &task.ActionID,
WorkflowRunExternalId: uuid.MustParse(sqlchelpers.UUIDToStr(task.WorkflowRunID)),
WorkflowVersionId: &workflowVersionId,
}
}

Expand Down Expand Up @@ -228,7 +229,7 @@ func ToTaskRunMetrics(metrics *[]v1.TaskRunMetric) gen.V1TaskRunMetrics {
return toReturn
}

func ToTask(taskWithData *sqlcv1.PopulateSingleTaskRunDataRow, workflowRunExternalId *pgtype.UUID) gen.V1TaskSummary {
func ToTask(taskWithData *sqlcv1.PopulateSingleTaskRunDataRow, workflowRunExternalId pgtype.UUID) gen.V1TaskSummary {
workflowVersionId := uuid.MustParse(sqlchelpers.UUIDToStr(taskWithData.WorkflowVersionID))
additionalMetadata := jsonToMap(taskWithData.AdditionalMetadata)

Expand Down Expand Up @@ -259,13 +260,6 @@ func ToTask(taskWithData *sqlcv1.PopulateSingleTaskRunDataRow, workflowRunExtern

input := jsonToMap(taskWithData.Input)

var parsedWorkflowRunUUID *uuid.UUID

if workflowRunExternalId != nil && workflowRunExternalId.Valid {
id := uuid.MustParse(sqlchelpers.UUIDToStr(*workflowRunExternalId))
parsedWorkflowRunUUID = &id
}

stepId := uuid.MustParse(sqlchelpers.UUIDToStr(taskWithData.StepID))

return gen.V1TaskSummary{
Expand All @@ -287,7 +281,7 @@ func ToTask(taskWithData *sqlcv1.PopulateSingleTaskRunDataRow, workflowRunExtern
TenantId: uuid.MustParse(sqlchelpers.UUIDToStr(taskWithData.TenantID)),
WorkflowId: uuid.MustParse(sqlchelpers.UUIDToStr(taskWithData.WorkflowID)),
ErrorMessage: &taskWithData.ErrorMessage.String,
WorkflowRunExternalId: parsedWorkflowRunUUID,
WorkflowRunExternalId: uuid.MustParse(sqlchelpers.UUIDToStr(workflowRunExternalId)),
TaskExternalId: uuid.MustParse(sqlchelpers.UUIDToStr(taskWithData.ExternalID)),
Type: gen.V1WorkflowTypeTASK,
NumSpawnedChildren: int(taskWithData.SpawnedChildren.Int64),
Expand Down
84 changes: 43 additions & 41 deletions api/v1/server/oas/transformers/v1/workflow_runs.go
Original file line number Diff line number Diff line change
Expand Up @@ -69,26 +69,27 @@ func WorkflowRunDataToV1TaskSummary(task *v1.WorkflowRunData, workflowIdsToNames
CreatedAt: task.InsertedAt.Time,
UpdatedAt: task.InsertedAt.Time,
},
CreatedAt: task.CreatedAt.Time,
DisplayName: task.DisplayName,
Duration: durationPtr,
StartedAt: startedAt,
FinishedAt: finishedAt,
Input: input,
Output: output,
AdditionalMetadata: &additionalMetadata,
ErrorMessage: &task.ErrorMessage,
Status: gen.V1TaskStatus(task.ReadableStatus),
TenantId: uuid.MustParse(sqlchelpers.UUIDToStr(task.TenantID)),
WorkflowId: uuid.MustParse(sqlchelpers.UUIDToStr(task.WorkflowID)),
WorkflowVersionId: &workflowVersionId,
TaskExternalId: uuid.MustParse(sqlchelpers.UUIDToStr(task.ExternalID)),
TaskId: taskId,
TaskInsertedAt: task.InsertedAt.Time,
Type: gen.V1WorkflowTypeDAG,
WorkflowName: workflowName,
StepId: &stepId,
ActionId: &actionId,
CreatedAt: task.CreatedAt.Time,
DisplayName: task.DisplayName,
Duration: durationPtr,
StartedAt: startedAt,
FinishedAt: finishedAt,
Input: input,
Output: output,
AdditionalMetadata: &additionalMetadata,
ErrorMessage: &task.ErrorMessage,
Status: gen.V1TaskStatus(task.ReadableStatus),
TenantId: uuid.MustParse(sqlchelpers.UUIDToStr(task.TenantID)),
WorkflowId: uuid.MustParse(sqlchelpers.UUIDToStr(task.WorkflowID)),
WorkflowVersionId: &workflowVersionId,
TaskExternalId: uuid.MustParse(sqlchelpers.UUIDToStr(task.ExternalID)),
TaskId: taskId,
TaskInsertedAt: task.InsertedAt.Time,
Type: gen.V1WorkflowTypeDAG,
WorkflowName: workflowName,
StepId: &stepId,
ActionId: &actionId,
WorkflowRunExternalId: uuid.MustParse(sqlchelpers.UUIDToStr(task.ExternalID)),
}
}

Expand Down Expand Up @@ -170,27 +171,28 @@ func PopulateTaskRunDataRowToV1TaskSummary(task *sqlcv1.PopulateTaskRunDataRow,
CreatedAt: task.InsertedAt.Time,
UpdatedAt: task.InsertedAt.Time,
},
CreatedAt: task.InsertedAt.Time,
DisplayName: task.DisplayName,
Duration: durationPtr,
StartedAt: startedAt,
FinishedAt: finishedAt,
Input: input,
Output: output,
AdditionalMetadata: &additionalMetadata,
ErrorMessage: &task.ErrorMessage.String,
Status: gen.V1TaskStatus(task.Status),
TenantId: uuid.MustParse(sqlchelpers.UUIDToStr(task.TenantID)),
WorkflowId: uuid.MustParse(sqlchelpers.UUIDToStr(task.WorkflowID)),
WorkflowVersionId: &workflowVersionId,
Children: nil,
TaskExternalId: uuid.MustParse(sqlchelpers.UUIDToStr(task.ExternalID)),
TaskId: int(task.ID),
TaskInsertedAt: task.InsertedAt.Time,
Type: gen.V1WorkflowTypeTASK,
WorkflowName: workflowName,
StepId: &stepId,
ActionId: &task.ActionID,
CreatedAt: task.InsertedAt.Time,
DisplayName: task.DisplayName,
Duration: durationPtr,
StartedAt: startedAt,
FinishedAt: finishedAt,
Input: input,
Output: output,
AdditionalMetadata: &additionalMetadata,
ErrorMessage: &task.ErrorMessage.String,
Status: gen.V1TaskStatus(task.Status),
TenantId: uuid.MustParse(sqlchelpers.UUIDToStr(task.TenantID)),
WorkflowId: uuid.MustParse(sqlchelpers.UUIDToStr(task.WorkflowID)),
WorkflowVersionId: &workflowVersionId,
Children: nil,
TaskExternalId: uuid.MustParse(sqlchelpers.UUIDToStr(task.ExternalID)),
TaskId: int(task.ID),
TaskInsertedAt: task.InsertedAt.Time,
Type: gen.V1WorkflowTypeTASK,
WorkflowName: workflowName,
StepId: &stepId,
ActionId: &task.ActionID,
WorkflowRunExternalId: uuid.MustParse(sqlchelpers.UUIDToStr(task.WorkflowRunID)),
}
}

Expand Down
3 changes: 3 additions & 0 deletions frontend/app/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
"@lukemorales/query-key-factory": "^1.3.4",
"@monaco-editor/react": "^4.7.0",
"@radix-ui/react-accordion": "^1.2.3",
"@radix-ui/react-alert-dialog": "^1.1.7",
"@radix-ui/react-avatar": "^1.1.3",
"@radix-ui/react-checkbox": "^1.1.4",
"@radix-ui/react-collapsible": "^1.1.3",
Expand Down Expand Up @@ -88,6 +89,7 @@
"react-syntax-highlighter": "^15.6.1",
"reactflow": "^11.11.4",
"recharts": "^2.15.1",
"shiki": "^3.2.2",
"tailwind-merge": "^2.6.0",
"tailwindcss-animate": "^1.0.7",
"timeago-react": "^3.0.7",
Expand Down Expand Up @@ -120,6 +122,7 @@
"prettier": "^3.5.3",
"swagger-typescript-api": "^13.0.28",
"tailwindcss": "^3.4.17",
"tsx": "^4.19.3",
"typescript": "^5.8.2",
"vite": "^6.2.4",
"vite-plugin-eslint": "^1.8.1"
Expand Down
Loading
Loading