diff --git a/api-contracts/dispatcher/dispatcher.proto b/api-contracts/dispatcher/dispatcher.proto index 5fee40c3f..4733a61b6 100644 --- a/api-contracts/dispatcher/dispatcher.proto +++ b/api-contracts/dispatcher/dispatcher.proto @@ -199,6 +199,7 @@ enum StepActionEventType { STEP_EVENT_TYPE_STARTED = 1; STEP_EVENT_TYPE_COMPLETED = 2; STEP_EVENT_TYPE_FAILED = 3; + STEP_EVENT_TYPE_ACKNOWLEDGED = 4; } message StepActionEvent { diff --git a/api-contracts/openapi/components/schemas/workflow_run.yaml b/api-contracts/openapi/components/schemas/workflow_run.yaml index 778360af0..9a8352c90 100644 --- a/api-contracts/openapi/components/schemas/workflow_run.yaml +++ b/api-contracts/openapi/components/schemas/workflow_run.yaml @@ -386,6 +386,7 @@ StepRunEventReason: - SCHEDULING_TIMED_OUT - ASSIGNED - STARTED + - ACKNOWLEDGED - FINISHED - FAILED - RETRYING diff --git a/api/v1/server/oas/gen/openapi.gen.go b/api/v1/server/oas/gen/openapi.gen.go index c3c9a14dd..fd6c437ab 100644 --- a/api/v1/server/oas/gen/openapi.gen.go +++ b/api/v1/server/oas/gen/openapi.gen.go @@ -80,6 +80,7 @@ const ( // Defines values for StepRunEventReason. const ( + StepRunEventReasonACKNOWLEDGED StepRunEventReason = "ACKNOWLEDGED" StepRunEventReasonASSIGNED StepRunEventReason = "ASSIGNED" StepRunEventReasonCANCELLED StepRunEventReason = "CANCELLED" StepRunEventReasonFAILED StepRunEventReason = "FAILED" @@ -9524,186 +9525,186 @@ func (sh *strictHandler) WorkflowVersionGet(ctx echo.Context, workflow openapi_t // Base64 encoded, gzipped, json marshaled Swagger object var swaggerSpec = []string{ - "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", } // GetSwagger returns the content of the embedded swagger specification file diff --git a/frontend/app/src/lib/api/generated/data-contracts.ts b/frontend/app/src/lib/api/generated/data-contracts.ts index 0a4f1bf6a..27db8ebdc 100644 --- a/frontend/app/src/lib/api/generated/data-contracts.ts +++ b/frontend/app/src/lib/api/generated/data-contracts.ts @@ -897,6 +897,7 @@ export enum StepRunEventReason { SCHEDULING_TIMED_OUT = 'SCHEDULING_TIMED_OUT', ASSIGNED = 'ASSIGNED', STARTED = 'STARTED', + ACKNOWLEDGED = 'ACKNOWLEDGED', FINISHED = 'FINISHED', FAILED = 'FAILED', RETRYING = 'RETRYING', diff --git a/frontend/app/src/pages/main/workflow-runs/$run/components/step-run-events.tsx b/frontend/app/src/pages/main/workflow-runs/$run/components/step-run-events.tsx index e78caa99e..847d57754 100644 --- a/frontend/app/src/pages/main/workflow-runs/$run/components/step-run-events.tsx +++ b/frontend/app/src/pages/main/workflow-runs/$run/components/step-run-events.tsx @@ -193,6 +193,7 @@ function StepRunArchiveCard({ archive }: { archive: StepRunArchive }) { const REASON_TO_TITLE: Record = { [StepRunEventReason.ASSIGNED]: 'Assigned to worker', [StepRunEventReason.STARTED]: 'Started', + [StepRunEventReason.ACKNOWLEDGED]: 'Acknowledged by worker', [StepRunEventReason.FINISHED]: 'Completed', [StepRunEventReason.FAILED]: 'Failed', [StepRunEventReason.CANCELLED]: 'Cancelled', diff --git a/frontend/app/src/pages/main/workflow-runs/$run/v2components/events-columns.tsx b/frontend/app/src/pages/main/workflow-runs/$run/v2components/events-columns.tsx index 2982951bf..bc5fde1c9 100644 --- a/frontend/app/src/pages/main/workflow-runs/$run/v2components/events-columns.tsx +++ b/frontend/app/src/pages/main/workflow-runs/$run/v2components/events-columns.tsx @@ -179,6 +179,7 @@ const REASON_TO_TITLE: Record = { [StepRunEventReason.WORKFLOW_RUN_GROUP_KEY_SUCCEEDED]: 'Successfully got group key', [StepRunEventReason.WORKFLOW_RUN_GROUP_KEY_FAILED]: 'Failed to get group key', + [StepRunEventReason.ACKNOWLEDGED]: 'Acknowledged by worker', }; function getTitleFromReason(reason: StepRunEventReason, message: string) { diff --git a/internal/services/controllers/jobs/controller.go b/internal/services/controllers/jobs/controller.go index 563fd1fd7..9496341d4 100644 --- a/internal/services/controllers/jobs/controller.go +++ b/internal/services/controllers/jobs/controller.go @@ -300,6 +300,8 @@ func (ec *JobsControllerImpl) handleTask(ctx context.Context, task *msgqueue.Mes return ec.handleStepRunQueued(ctx, task) case "step-run-started": return ec.handleStepRunStarted(ctx, task) + case "step-run-acked": + return ec.handleStepRunAcked(ctx, task) case "step-run-finished": return ec.handleStepRunFinished(ctx, task) case "step-run-failed": @@ -896,6 +898,41 @@ func (ec *JobsControllerImpl) handleStepRunStarted(ctx context.Context, task *ms return nil } +func (ec *JobsControllerImpl) handleStepRunAcked(ctx context.Context, task *msgqueue.Message) error { + ctx, span := telemetry.NewSpanWithCarrier(ctx, "handle-step-run-acked", task.OtelCarrier) + defer span.End() + + payload := tasktypes.StepRunStartedTaskPayload{} + metadata := tasktypes.StepRunStartedTaskMetadata{} + + err := ec.dv.DecodeAndValidate(task.Payload, &payload) + + if err != nil { + return fmt.Errorf("could not decode step run started task payload: %w", err) + } + + err = ec.dv.DecodeAndValidate(task.Metadata, &metadata) + + if err != nil { + return fmt.Errorf("could not decode step run started task metadata: %w", err) + } + + // update the step run in the database + startedAt, err := time.Parse(time.RFC3339, payload.StartedAt) + + if err != nil { + return fmt.Errorf("could not parse started at: %w", err) + } + + err = ec.repo.StepRun().StepRunAcked(ctx, metadata.TenantId, payload.WorkflowRunId, payload.StepRunId, startedAt) + + if err != nil { + return fmt.Errorf("could not update step run: %w", err) + } + + return nil +} + func (ec *JobsControllerImpl) handleStepRunFinished(ctx context.Context, task *msgqueue.Message) error { ctx, span := telemetry.NewSpanWithCarrier(ctx, "handle-step-run-finished", task.OtelCarrier) defer span.End() diff --git a/internal/services/dispatcher/contracts/dispatcher.pb.go b/internal/services/dispatcher/contracts/dispatcher.pb.go index 3e1a82ac3..d49a34d66 100644 --- a/internal/services/dispatcher/contracts/dispatcher.pb.go +++ b/internal/services/dispatcher/contracts/dispatcher.pb.go @@ -125,10 +125,11 @@ func (GroupKeyActionEventType) EnumDescriptor() ([]byte, []int) { type StepActionEventType int32 const ( - StepActionEventType_STEP_EVENT_TYPE_UNKNOWN StepActionEventType = 0 - StepActionEventType_STEP_EVENT_TYPE_STARTED StepActionEventType = 1 - StepActionEventType_STEP_EVENT_TYPE_COMPLETED StepActionEventType = 2 - StepActionEventType_STEP_EVENT_TYPE_FAILED StepActionEventType = 3 + StepActionEventType_STEP_EVENT_TYPE_UNKNOWN StepActionEventType = 0 + StepActionEventType_STEP_EVENT_TYPE_STARTED StepActionEventType = 1 + StepActionEventType_STEP_EVENT_TYPE_COMPLETED StepActionEventType = 2 + StepActionEventType_STEP_EVENT_TYPE_FAILED StepActionEventType = 3 + StepActionEventType_STEP_EVENT_TYPE_ACKNOWLEDGED StepActionEventType = 4 ) // Enum value maps for StepActionEventType. @@ -138,12 +139,14 @@ var ( 1: "STEP_EVENT_TYPE_STARTED", 2: "STEP_EVENT_TYPE_COMPLETED", 3: "STEP_EVENT_TYPE_FAILED", + 4: "STEP_EVENT_TYPE_ACKNOWLEDGED", } StepActionEventType_value = map[string]int32{ - "STEP_EVENT_TYPE_UNKNOWN": 0, - "STEP_EVENT_TYPE_STARTED": 1, - "STEP_EVENT_TYPE_COMPLETED": 2, - "STEP_EVENT_TYPE_FAILED": 3, + "STEP_EVENT_TYPE_UNKNOWN": 0, + "STEP_EVENT_TYPE_STARTED": 1, + "STEP_EVENT_TYPE_COMPLETED": 2, + "STEP_EVENT_TYPE_FAILED": 3, + "STEP_EVENT_TYPE_ACKNOWLEDGED": 4, } ) @@ -2341,7 +2344,7 @@ var file_dispatcher_proto_rawDesc = []byte{ 0x45, 0x59, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x02, 0x12, 0x1f, 0x0a, 0x1b, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x4b, 0x45, 0x59, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x03, 0x2a, 0x8a, 0x01, 0x0a, 0x13, 0x53, + 0x45, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x03, 0x2a, 0xac, 0x01, 0x0a, 0x13, 0x53, 0x74, 0x65, 0x70, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x17, 0x53, 0x54, 0x45, 0x50, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, @@ -2350,94 +2353,96 @@ var file_dispatcher_proto_rawDesc = []byte{ 0x53, 0x54, 0x45, 0x50, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16, 0x53, 0x54, 0x45, 0x50, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, - 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x03, 0x2a, 0x65, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x15, 0x52, 0x45, 0x53, 0x4f, 0x55, - 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, - 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x45, 0x50, 0x5f, 0x52, 0x55, 0x4e, 0x10, 0x01, 0x12, 0x1e, - 0x0a, 0x1a, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x57, 0x4f, 0x52, 0x4b, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x52, 0x55, 0x4e, 0x10, 0x02, 0x2a, 0xfe, - 0x01, 0x0a, 0x11, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x1b, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, - 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, - 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x1f, 0x0a, 0x1b, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, - 0x45, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x41, - 0x52, 0x54, 0x45, 0x44, 0x10, 0x01, 0x12, 0x21, 0x0a, 0x1d, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, - 0x43, 0x45, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x4f, - 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x02, 0x12, 0x1e, 0x0a, 0x1a, 0x52, 0x45, 0x53, - 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x03, 0x12, 0x21, 0x0a, 0x1d, 0x52, 0x45, 0x53, - 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x4c, 0x45, 0x44, 0x10, 0x04, 0x12, 0x21, 0x0a, 0x1d, - 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x44, 0x5f, 0x4f, 0x55, 0x54, 0x10, 0x05, 0x12, - 0x1e, 0x0a, 0x1a, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x45, 0x56, 0x45, 0x4e, - 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x10, 0x06, 0x2a, - 0x3c, 0x0a, 0x14, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x75, 0x6e, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x24, 0x0a, 0x20, 0x57, 0x4f, 0x52, 0x4b, 0x46, - 0x4c, 0x4f, 0x57, 0x5f, 0x52, 0x55, 0x4e, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x5f, 0x46, 0x49, 0x4e, 0x49, 0x53, 0x48, 0x45, 0x44, 0x10, 0x00, 0x32, 0xf8, 0x06, - 0x0a, 0x0a, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x12, 0x3d, 0x0a, 0x08, - 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x12, 0x16, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x65, - 0x72, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x17, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, - 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x33, 0x0a, 0x06, 0x4c, - 0x69, 0x73, 0x74, 0x65, 0x6e, 0x12, 0x14, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x4c, 0x69, - 0x73, 0x74, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0f, 0x2e, 0x41, 0x73, - 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x00, 0x30, 0x01, - 0x12, 0x35, 0x0a, 0x08, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x56, 0x32, 0x12, 0x14, 0x2e, 0x57, - 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x0f, 0x2e, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x41, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x22, 0x00, 0x30, 0x01, 0x12, 0x34, 0x0a, 0x09, 0x48, 0x65, 0x61, 0x72, 0x74, - 0x62, 0x65, 0x61, 0x74, 0x12, 0x11, 0x2e, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x12, 0x2e, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, - 0x65, 0x61, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x52, 0x0a, - 0x19, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x54, 0x6f, 0x57, 0x6f, 0x72, 0x6b, - 0x66, 0x6c, 0x6f, 0x77, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x21, 0x2e, 0x53, 0x75, 0x62, - 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x54, 0x6f, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, - 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x22, 0x00, 0x30, - 0x01, 0x12, 0x53, 0x0a, 0x17, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x54, 0x6f, - 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x75, 0x6e, 0x73, 0x12, 0x1f, 0x2e, 0x53, + 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x03, 0x12, 0x20, 0x0a, 0x1c, 0x53, 0x54, 0x45, 0x50, 0x5f, + 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x43, 0x4b, 0x4e, 0x4f, + 0x57, 0x4c, 0x45, 0x44, 0x47, 0x45, 0x44, 0x10, 0x04, 0x2a, 0x65, 0x0a, 0x0c, 0x52, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x15, 0x52, 0x45, 0x53, + 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, + 0x57, 0x4e, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x45, 0x50, 0x5f, 0x52, 0x55, 0x4e, 0x10, 0x01, + 0x12, 0x1e, 0x0a, 0x1a, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x57, 0x4f, 0x52, 0x4b, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x52, 0x55, 0x4e, 0x10, 0x02, + 0x2a, 0xfe, 0x01, 0x0a, 0x11, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x1b, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, + 0x43, 0x45, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, + 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x1f, 0x0a, 0x1b, 0x52, 0x45, 0x53, 0x4f, 0x55, + 0x52, 0x43, 0x45, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, + 0x54, 0x41, 0x52, 0x54, 0x45, 0x44, 0x10, 0x01, 0x12, 0x21, 0x0a, 0x1d, 0x52, 0x45, 0x53, 0x4f, + 0x55, 0x52, 0x43, 0x45, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x02, 0x12, 0x1e, 0x0a, 0x1a, 0x52, + 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x03, 0x12, 0x21, 0x0a, 0x1d, 0x52, + 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x4c, 0x45, 0x44, 0x10, 0x04, 0x12, 0x21, + 0x0a, 0x1d, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x44, 0x5f, 0x4f, 0x55, 0x54, 0x10, + 0x05, 0x12, 0x1e, 0x0a, 0x1a, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x45, 0x56, + 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x10, + 0x06, 0x2a, 0x3c, 0x0a, 0x14, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x75, 0x6e, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x24, 0x0a, 0x20, 0x57, 0x4f, 0x52, + 0x4b, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x52, 0x55, 0x4e, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x49, 0x4e, 0x49, 0x53, 0x48, 0x45, 0x44, 0x10, 0x00, 0x32, + 0xf8, 0x06, 0x0a, 0x0a, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x12, 0x3d, + 0x0a, 0x08, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x12, 0x16, 0x2e, 0x57, 0x6f, 0x72, + 0x6b, 0x65, 0x72, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x52, 0x65, 0x67, 0x69, 0x73, + 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x33, 0x0a, + 0x06, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x12, 0x14, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, + 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0f, 0x2e, + 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x00, + 0x30, 0x01, 0x12, 0x35, 0x0a, 0x08, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x56, 0x32, 0x12, 0x14, + 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0f, 0x2e, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x41, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x00, 0x30, 0x01, 0x12, 0x34, 0x0a, 0x09, 0x48, 0x65, 0x61, + 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x12, 0x11, 0x2e, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, + 0x61, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x12, 0x2e, 0x48, 0x65, 0x61, 0x72, + 0x74, 0x62, 0x65, 0x61, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, + 0x52, 0x0a, 0x19, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x54, 0x6f, 0x57, 0x6f, + 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x21, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x54, 0x6f, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, - 0x6f, 0x77, 0x52, 0x75, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x11, 0x2e, - 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x75, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, - 0x22, 0x00, 0x28, 0x01, 0x30, 0x01, 0x12, 0x3f, 0x0a, 0x13, 0x53, 0x65, 0x6e, 0x64, 0x53, 0x74, - 0x65, 0x70, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x10, 0x2e, - 0x53, 0x74, 0x65, 0x70, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x1a, - 0x14, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x47, 0x0a, 0x17, 0x53, 0x65, 0x6e, 0x64, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x4b, 0x65, 0x79, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x76, 0x65, - 0x6e, 0x74, 0x12, 0x14, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4b, 0x65, 0x79, 0x41, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x1a, 0x14, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, - 0x12, 0x3c, 0x0a, 0x10, 0x50, 0x75, 0x74, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, - 0x44, 0x61, 0x74, 0x61, 0x12, 0x0e, 0x2e, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, - 0x44, 0x61, 0x74, 0x61, 0x1a, 0x16, 0x2e, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, - 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x46, - 0x0a, 0x0b, 0x55, 0x6e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x12, 0x19, 0x2e, - 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x55, 0x6e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x65, - 0x72, 0x55, 0x6e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x0e, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, - 0x68, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x16, 0x2e, 0x52, 0x65, 0x66, 0x72, 0x65, - 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x17, 0x2e, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3a, 0x0a, 0x0b, 0x52, - 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x53, 0x6c, 0x6f, 0x74, 0x12, 0x13, 0x2e, 0x52, 0x65, 0x6c, - 0x65, 0x61, 0x73, 0x65, 0x53, 0x6c, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x14, 0x2e, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x53, 0x6c, 0x6f, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x12, 0x55, 0x70, 0x73, 0x65, 0x72, - 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x1a, 0x2e, - 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x4c, 0x61, 0x62, 0x65, - 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x55, 0x70, 0x73, 0x65, - 0x72, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x47, 0x5a, 0x45, 0x67, 0x69, 0x74, 0x68, - 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x61, 0x74, 0x63, 0x68, 0x65, 0x74, 0x2d, 0x64, - 0x65, 0x76, 0x2f, 0x68, 0x61, 0x74, 0x63, 0x68, 0x65, 0x74, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, - 0x6e, 0x61, 0x6c, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x64, 0x69, 0x73, - 0x70, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, - 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6f, 0x77, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x0e, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x22, + 0x00, 0x30, 0x01, 0x12, 0x53, 0x0a, 0x17, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, + 0x54, 0x6f, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x75, 0x6e, 0x73, 0x12, 0x1f, + 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x54, 0x6f, 0x57, 0x6f, 0x72, 0x6b, + 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x75, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x11, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x75, 0x6e, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x22, 0x00, 0x28, 0x01, 0x30, 0x01, 0x12, 0x3f, 0x0a, 0x13, 0x53, 0x65, 0x6e, 0x64, + 0x53, 0x74, 0x65, 0x70, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, + 0x10, 0x2e, 0x53, 0x74, 0x65, 0x70, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x1a, 0x14, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x47, 0x0a, 0x17, 0x53, 0x65, 0x6e, + 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4b, 0x65, 0x79, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x12, 0x14, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4b, 0x65, 0x79, 0x41, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x1a, 0x14, 0x2e, 0x41, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x12, 0x3c, 0x0a, 0x10, 0x50, 0x75, 0x74, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, + 0x65, 0x73, 0x44, 0x61, 0x74, 0x61, 0x12, 0x0e, 0x2e, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, + 0x65, 0x73, 0x44, 0x61, 0x74, 0x61, 0x1a, 0x16, 0x2e, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, + 0x65, 0x73, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x12, 0x46, 0x0a, 0x0b, 0x55, 0x6e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x12, + 0x19, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x55, 0x6e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, + 0x69, 0x62, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x57, 0x6f, 0x72, + 0x6b, 0x65, 0x72, 0x55, 0x6e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x0e, 0x52, 0x65, 0x66, 0x72, + 0x65, 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x16, 0x2e, 0x52, 0x65, 0x66, + 0x72, 0x65, 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, + 0x6f, 0x75, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3a, 0x0a, + 0x0b, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x53, 0x6c, 0x6f, 0x74, 0x12, 0x13, 0x2e, 0x52, + 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x53, 0x6c, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x14, 0x2e, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x53, 0x6c, 0x6f, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x12, 0x55, 0x70, 0x73, + 0x65, 0x72, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, + 0x1a, 0x2e, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x4c, 0x61, + 0x62, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x55, 0x70, + 0x73, 0x65, 0x72, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x47, 0x5a, 0x45, 0x67, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x61, 0x74, 0x63, 0x68, 0x65, 0x74, + 0x2d, 0x64, 0x65, 0x76, 0x2f, 0x68, 0x61, 0x74, 0x63, 0x68, 0x65, 0x74, 0x2f, 0x69, 0x6e, 0x74, + 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x64, + 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, + 0x63, 0x74, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/internal/services/dispatcher/server.go b/internal/services/dispatcher/server.go index c614d4681..e79ffbf43 100644 --- a/internal/services/dispatcher/server.go +++ b/internal/services/dispatcher/server.go @@ -945,6 +945,8 @@ func (s *DispatcherImpl) SendStepActionEvent(ctx context.Context, request *contr switch request.EventType { case contracts.StepActionEventType_STEP_EVENT_TYPE_STARTED: return s.handleStepRunStarted(ctx, request) + case contracts.StepActionEventType_STEP_EVENT_TYPE_ACKNOWLEDGED: + return s.handleStepRunAcked(ctx, request) case contracts.StepActionEventType_STEP_EVENT_TYPE_COMPLETED: return s.handleStepRunCompleted(ctx, request) case contracts.StepActionEventType_STEP_EVENT_TYPE_FAILED: @@ -1092,6 +1094,54 @@ func (s *DispatcherImpl) handleStepRunStarted(inputCtx context.Context, request }, nil } +func (s *DispatcherImpl) handleStepRunAcked(inputCtx context.Context, request *contracts.StepActionEvent) (*contracts.ActionEventResponse, error) { + tenant := inputCtx.Value("tenant").(*dbsqlc.Tenant) + tenantId := sqlchelpers.UUIDToStr(tenant.ID) + + // run the rest on a separate context to always send to job controller + ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second) + defer cancel() + + s.l.Debug().Msgf("Received step ack event for step run %s", request.StepRunId) + + startedAt := request.EventTimestamp.AsTime() + + sr, err := s.repo.StepRun().GetStepRunForEngine(ctx, tenantId, request.StepRunId) + + if err != nil { + return nil, err + } + + payload, _ := datautils.ToJSONMap(tasktypes.StepRunStartedTaskPayload{ + StepRunId: request.StepRunId, + StartedAt: startedAt.Format(time.RFC3339), + WorkflowRunId: sqlchelpers.UUIDToStr(sr.WorkflowRunId), + StepRetries: &sr.StepRetries, + RetryCount: &sr.SRRetryCount, + }) + + metadata, _ := datautils.ToJSONMap(tasktypes.StepRunStartedTaskMetadata{ + TenantId: tenantId, + }) + + // send the event to the jobs queue + err = s.mq.AddMessage(ctx, msgqueue.JOB_PROCESSING_QUEUE, &msgqueue.Message{ + ID: "step-run-acked", + Payload: payload, + Metadata: metadata, + Retries: 3, + }) + + if err != nil { + return nil, err + } + + return &contracts.ActionEventResponse{ + TenantId: tenantId, + WorkerId: request.WorkerId, + }, nil +} + func (s *DispatcherImpl) handleStepRunCompleted(inputCtx context.Context, request *contracts.StepActionEvent) (*contracts.ActionEventResponse, error) { tenant := inputCtx.Value("tenant").(*dbsqlc.Tenant) tenantId := sqlchelpers.UUIDToStr(tenant.ID) diff --git a/pkg/client/rest/gen.go b/pkg/client/rest/gen.go index 67d55e4fb..97e31706f 100644 --- a/pkg/client/rest/gen.go +++ b/pkg/client/rest/gen.go @@ -77,6 +77,7 @@ const ( // Defines values for StepRunEventReason. const ( + StepRunEventReasonACKNOWLEDGED StepRunEventReason = "ACKNOWLEDGED" StepRunEventReasonASSIGNED StepRunEventReason = "ASSIGNED" StepRunEventReasonCANCELLED StepRunEventReason = "CANCELLED" StepRunEventReasonFAILED StepRunEventReason = "FAILED" diff --git a/pkg/repository/prisma/db/db_gen.go b/pkg/repository/prisma/db/db_gen.go index 872771734..77810cecb 100644 --- a/pkg/repository/prisma/db/db_gen.go +++ b/pkg/repository/prisma/db/db_gen.go @@ -1494,6 +1494,7 @@ enum StepRunEventReason { ASSIGNED SENT_TO_WORKER STARTED + ACKNOWLEDGED FINISHED FAILED RETRYING @@ -2330,6 +2331,7 @@ const ( StepRunEventReasonAssigned StepRunEventReason = "ASSIGNED" StepRunEventReasonSentToWorker StepRunEventReason = "SENT_TO_WORKER" StepRunEventReasonStarted StepRunEventReason = "STARTED" + StepRunEventReasonAcknowledged StepRunEventReason = "ACKNOWLEDGED" StepRunEventReasonFinished StepRunEventReason = "FINISHED" StepRunEventReasonFailed StepRunEventReason = "FAILED" StepRunEventReasonRetrying StepRunEventReason = "RETRYING" diff --git a/pkg/repository/prisma/dbsqlc/models.go b/pkg/repository/prisma/dbsqlc/models.go index 120e7817b..a1b5592e7 100644 --- a/pkg/repository/prisma/dbsqlc/models.go +++ b/pkg/repository/prisma/dbsqlc/models.go @@ -468,6 +468,7 @@ const ( StepRunEventReasonWORKFLOWRUNGROUPKEYSUCCEEDED StepRunEventReason = "WORKFLOW_RUN_GROUP_KEY_SUCCEEDED" StepRunEventReasonWORKFLOWRUNGROUPKEYFAILED StepRunEventReason = "WORKFLOW_RUN_GROUP_KEY_FAILED" StepRunEventReasonRATELIMITERROR StepRunEventReason = "RATE_LIMIT_ERROR" + StepRunEventReasonACKNOWLEDGED StepRunEventReason = "ACKNOWLEDGED" ) func (e *StepRunEventReason) Scan(src interface{}) error { diff --git a/pkg/repository/prisma/dbsqlc/schema.sql b/pkg/repository/prisma/dbsqlc/schema.sql index b5cd3d47f..fa0cb18ed 100644 --- a/pkg/repository/prisma/dbsqlc/schema.sql +++ b/pkg/repository/prisma/dbsqlc/schema.sql @@ -29,7 +29,7 @@ CREATE TYPE "StepExpressionKind" AS ENUM ('DYNAMIC_RATE_LIMIT_KEY', 'DYNAMIC_RAT CREATE TYPE "StepRateLimitKind" AS ENUM ('STATIC', 'DYNAMIC'); -- CreateEnum -CREATE TYPE "StepRunEventReason" AS ENUM ('REQUEUED_NO_WORKER', 'REQUEUED_RATE_LIMIT', 'SCHEDULING_TIMED_OUT', 'ASSIGNED', 'STARTED', 'FINISHED', 'FAILED', 'RETRYING', 'CANCELLED', 'TIMED_OUT', 'REASSIGNED', 'SLOT_RELEASED', 'TIMEOUT_REFRESHED', 'RETRIED_BY_USER', 'SENT_TO_WORKER', 'WORKFLOW_RUN_GROUP_KEY_SUCCEEDED', 'WORKFLOW_RUN_GROUP_KEY_FAILED', 'RATE_LIMIT_ERROR'); +CREATE TYPE "StepRunEventReason" AS ENUM ('REQUEUED_NO_WORKER', 'REQUEUED_RATE_LIMIT', 'SCHEDULING_TIMED_OUT', 'ASSIGNED', 'STARTED', 'FINISHED', 'FAILED', 'RETRYING', 'CANCELLED', 'TIMED_OUT', 'REASSIGNED', 'SLOT_RELEASED', 'TIMEOUT_REFRESHED', 'RETRIED_BY_USER', 'SENT_TO_WORKER', 'WORKFLOW_RUN_GROUP_KEY_SUCCEEDED', 'WORKFLOW_RUN_GROUP_KEY_FAILED', 'RATE_LIMIT_ERROR', 'ACKNOWLEDGED'); -- CreateEnum CREATE TYPE "StepRunEventSeverity" AS ENUM ('INFO', 'WARNING', 'CRITICAL'); diff --git a/pkg/repository/prisma/step_run.go b/pkg/repository/prisma/step_run.go index 6bb8a1c2c..9bf24ddb8 100644 --- a/pkg/repository/prisma/step_run.go +++ b/pkg/repository/prisma/step_run.go @@ -2492,6 +2492,29 @@ func (s *stepRunEngineRepository) StepRunStarted(ctx context.Context, tenantId, return nil } +func (s *stepRunEngineRepository) StepRunAcked(ctx context.Context, tenantId, workflowRunId, stepRunId string, startedAt time.Time) error { + _, span := telemetry.NewSpan(ctx, "step-run-acked-db") + defer span.End() + + sev := dbsqlc.StepRunEventSeverityINFO + ack := dbsqlc.StepRunEventReasonACKNOWLEDGED + + data := &repository.CreateStepRunEventOpts{ + StepRunId: stepRunId, + EventMessage: repository.StringPtr("Step run acknowledged at " + startedAt.Format(time.RFC1123)), + EventSeverity: &sev, + EventReason: &ack, + } + + _, err := s.bulkEventBuffer.BuffItem(tenantId, data) + + if err != nil { + return fmt.Errorf("could not buffer event: %w", err) + } + + return nil +} + func (s *stepRunEngineRepository) StepRunSucceeded(ctx context.Context, tenantId, workflowRunId, stepRunId string, finishedAt time.Time, output []byte) error { ctx, span := telemetry.NewSpan(ctx, "step-run-started-db") defer span.End() diff --git a/pkg/repository/step_run.go b/pkg/repository/step_run.go index bb60e10b1..12170a0e0 100644 --- a/pkg/repository/step_run.go +++ b/pkg/repository/step_run.go @@ -185,6 +185,8 @@ type StepRunEngineRepository interface { ListStepRunsToTimeout(ctx context.Context, tenantId string) (bool, []*dbsqlc.GetStepRunForEngineRow, error) + StepRunAcked(ctx context.Context, tenantId, workflowRunId, stepRunId string, ackedAt time.Time) error + StepRunStarted(ctx context.Context, tenantId, workflowRunId, stepRunId string, startedAt time.Time) error StepRunSucceeded(ctx context.Context, tenantId, workflowRunId, stepRunId string, finishedAt time.Time, output []byte) error diff --git a/prisma/migrations/20241002174554_0_48_2/migration.sql b/prisma/migrations/20241002174554_0_48_2/migration.sql new file mode 100644 index 000000000..67849da7a --- /dev/null +++ b/prisma/migrations/20241002174554_0_48_2/migration.sql @@ -0,0 +1,2 @@ +-- AlterEnum +ALTER TYPE "StepRunEventReason" ADD VALUE 'ACKNOWLEDGED'; diff --git a/prisma/schema.prisma b/prisma/schema.prisma index d262e6953..6dde1d8a3 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -1420,6 +1420,7 @@ enum StepRunEventReason { ASSIGNED SENT_TO_WORKER STARTED + ACKNOWLEDGED FINISHED FAILED RETRYING diff --git a/sql/migrations/20241014194326_v0.50.0.sql b/sql/migrations/20241014194326_v0.50.0.sql index 1801ebbf4..c41fd4b4d 100644 --- a/sql/migrations/20241014194326_v0.50.0.sql +++ b/sql/migrations/20241014194326_v0.50.0.sql @@ -6,3 +6,5 @@ ALTER TABLE "WorkflowRun" ADD COLUMN "insertOrder" integer NULL; CREATE TABLE "Lease" ("id" bigserial NOT NULL, "expiresAt" timestamp(3) NULL, "tenantId" uuid NOT NULL, "resourceId" text NOT NULL, "kind" "LeaseKind" NOT NULL, PRIMARY KEY ("id")); -- Create index "Lease_tenantId_kind_resourceId_key" to table: "Lease" CREATE UNIQUE INDEX "Lease_tenantId_kind_resourceId_key" ON "Lease" ("tenantId", "kind", "resourceId"); +-- Add value to enum type: "StepRunEventReason" +ALTER TYPE "StepRunEventReason" ADD VALUE 'ACKNOWLEDGED'; diff --git a/sql/migrations/atlas.sum b/sql/migrations/atlas.sum index 9bcc1c995..5a2434e74 100644 --- a/sql/migrations/atlas.sum +++ b/sql/migrations/atlas.sum @@ -1,4 +1,4 @@ -h1:ZA+Bx3L/obpudKWDt2mgJQo1zhs6ZnuUEGClCMnf9Yc= +h1:FbbgXGJaNMxjq7xyF5tU7HkYU8hpFguvvSIKjY2lZpg= 20240115180414_init.sql h1:Ef3ZyjAHkmJPdGF/dEWCahbwgcg6uGJKnDxW2JCRi2k= 20240122014727_v0_6_0.sql h1:o/LdlteAeFgoHJ3e/M4Xnghqt9826IE/Y/h0q95Acuo= 20240126235456_v0_7_0.sql h1:KiVzt/hXgQ6esbdC6OMJOOWuYEXmy1yeCpmsVAHTFKs= @@ -66,4 +66,4 @@ h1:ZA+Bx3L/obpudKWDt2mgJQo1zhs6ZnuUEGClCMnf9Yc= 20241004122206_v0.49.1.sql h1:Fas5TXOp4a2g+y5sGBJG9wTaVL/WCaVJ9+ZlASN9Md4= 20241008124038_v0.49.2.sql h1:YT40sN8Wtqh21emrzDMZIcvcOkipw+4fdwIoBpF+Dek= 20241011205314_0.49.3.sql h1:54yb4/20ab+eYc+5IKr+6tDrT0GEtwDkSfI5BJeHpjA= -20241014194326_v0.50.0.sql h1:B/78bKpNUllXx9jNfdc0dR0bTxd6IprnLPfJ0fiR4LM= +20241014194326_v0.50.0.sql h1:kOoBOfouMgtyrRiN6xK2HNju4RMyEpk7xGN6XXZNlWE= diff --git a/sql/schema/schema.sql b/sql/schema/schema.sql index 3b0a60ff3..45a1a13ec 100644 --- a/sql/schema/schema.sql +++ b/sql/schema/schema.sql @@ -29,7 +29,7 @@ CREATE TYPE "StepExpressionKind" AS ENUM ('DYNAMIC_RATE_LIMIT_KEY', 'DYNAMIC_RAT CREATE TYPE "StepRateLimitKind" AS ENUM ('STATIC', 'DYNAMIC'); -- CreateEnum -CREATE TYPE "StepRunEventReason" AS ENUM ('REQUEUED_NO_WORKER', 'REQUEUED_RATE_LIMIT', 'SCHEDULING_TIMED_OUT', 'ASSIGNED', 'STARTED', 'FINISHED', 'FAILED', 'RETRYING', 'CANCELLED', 'TIMED_OUT', 'REASSIGNED', 'SLOT_RELEASED', 'TIMEOUT_REFRESHED', 'RETRIED_BY_USER', 'SENT_TO_WORKER', 'WORKFLOW_RUN_GROUP_KEY_SUCCEEDED', 'WORKFLOW_RUN_GROUP_KEY_FAILED', 'RATE_LIMIT_ERROR'); +CREATE TYPE "StepRunEventReason" AS ENUM ('REQUEUED_NO_WORKER', 'REQUEUED_RATE_LIMIT', 'SCHEDULING_TIMED_OUT', 'ASSIGNED', 'STARTED', 'FINISHED', 'FAILED', 'RETRYING', 'CANCELLED', 'TIMED_OUT', 'REASSIGNED', 'SLOT_RELEASED', 'TIMEOUT_REFRESHED', 'RETRIED_BY_USER', 'SENT_TO_WORKER', 'WORKFLOW_RUN_GROUP_KEY_SUCCEEDED', 'WORKFLOW_RUN_GROUP_KEY_FAILED', 'RATE_LIMIT_ERROR', 'ACKNOWLEDGED'); -- CreateEnum CREATE TYPE "StepRunEventSeverity" AS ENUM ('INFO', 'WARNING', 'CRITICAL');