Commit Graph

89 Commits

Author SHA1 Message Date
abelanger5 84f7334a06 feat: add windows for metrics and selector (#794)
* feat: add windows for metrics and selector

* better placeholder
2024-08-20 15:29:32 +00:00
abelanger5 dd50515aeb fix: cancelling status on frontend (#779)
* fix: cancelling status on frontend

* fix: slot grid and dedupe on slots
2024-08-13 17:01:26 +00:00
Gabe Ruttner 4ea4712d4d refactor: performance and throughput (#756)
Refactors the queueing logic to be fairly balanced between actions, with each action backed as a separate FIFO queue. Also adds support for priority queueing and custom queues, though those aren't exposed on the API layer yet. Improves throughput to be > 5000 tasks/second on a single queue. 

---------

Co-authored-by: Alexander Belanger <alexander@hatchet.run>
2024-08-12 14:38:47 +00:00
Gabe Ruttner b802f9f45f feat: stream by addl meta (#751)
* feat: prop schedule and run

* wip

* fix: filter wfrid

* feat: hangup

* chore: rm debug log

* chore: func name

* fix: cancelled payload

* fix: load

* fix: cleanup the cahce

* fix: single proto

* fix: key -> val

* chore: case

* chore: rm dead code

* chore: rm dead code

* feat: go and docs

* fix: docs
2024-07-29 19:09:51 +00:00
abelanger5 a245151d91 feat: add workflow kind to workflow versions (#750)
* feat: support workflow kinds

* chore: generate
2024-07-29 12:07:34 -07:00
abelanger5 77193df928 feat: expose additional fields on assigned action (#738) 2024-07-26 09:17:05 -07:00
abelanger5 c0b01f1b9b fix: workflow runs replays and show workflow run input (#744) 2024-07-25 17:35:10 +00:00
Gabe Ruttner ee68786d69 feat: sticky workers (#695)
* wip

* wip: functional query

* feat: expose affinity config

* feat: add weight to proto

* feat: upsert affinity state on worker start

* fix: linting

* feat: add upsert proto

* feat: upsert handler

* feat: revise model

* fix: labels

* feat: functional desired worker

* wip: ui

* feat: add state to step run events

* fix: filter empty keys

* fix: labels as badges

* feat: empty state and descriptive text

* chore: add todo

* chore: whitespace

* chore: cleanup

* chore: cleanup

* chore: fix hash

* chore: squash migrations

* fix: fair worker assignment

* fix: remaining slots on valid desired workers

* wip: sticky

* fix: count slots

* chore: rm log line

* feat: expose sticky config

* wip: sticky dag

* feat: expose desired worker id to trigger

* feat: trigger on desired worker

* feat: typescript docs

* feat: sticky python

* feat: py sticky children

* wip: py affinity

* serverless note

* feat: complete python examples

* linting

* fix: doc link

* chore: rm debug log

* fix: simplify list labels

* fix: typo
2024-07-22 17:20:23 -04:00
abelanger5 a5724fc4f9 feat: replay workflow runs (#732)
* feat: replay workflow runs

* address pr review changes
2024-07-18 08:05:15 -07:00
Gabe Ruttner 38a4ce647d feat: improved workflow runs list (#723)
* feat: add duration to wfr

* chore: generate

* feat: sort order

* feat: add column visibility toggle

* chore: gen
2024-07-15 18:05:57 -04:00
Gabe Ruttner 461eda194a feat: worker paused state (#677)
* feat: worker paused state

* feat: ui

* fix: comment
2024-07-01 18:44:12 +00:00
Gabe Ruttner 8a8a033af6 feat: variable token expiration (#670)
* feat: variable token expiration

* fix: typo

* fix: long tokens for webhook workers

* fix: format
2024-07-01 15:47:32 +00:00
Gabe Ruttner 68176b725c feat: list step run archives (#648)
* feat: query

* feat: api

* fix: import

* fix: include tenant in query and count

* feat: archives in event list

* feat: ui improvements

* fix: collapsible

* fix: build
2024-06-26 16:40:23 -04:00
Gabe Ruttner 35979bea68 feat: disable signups (#643)
* feat: disable signups

* feat: ui and password

* merge main

* fix: disable allow oauth
2024-06-26 16:12:40 -04:00
Gabe Ruttner dc2b544ba8 fix: stub (#651) 2024-06-26 13:37:32 -04:00
Luca Steeb 1490d88954 feat: webhook workers (#542)
Adds serverless support via the concept of webhook workers. Allows any webhook to be registered as a serverless endpoint for executing a step.
2024-06-25 17:06:43 -04:00
Gabe Ruttner 697757879f feat: billing (#624)
* feat: init lago client

* feat: billable meter

* feat: db persistence

* wip: expose sub

* feat: rename page

* wip: billing section

* wip: lago integration

* feat: separate plan and period

* wip: webhook

* feat: improve empty state

* feat: update limits on plan changes

* feat: can change plans

* feat: change plan loading state

* feat: yearly filter

* feat: billing clarification

* fix: treatment

* feat: filter plans

* feat: prevent non-owner from changing plan

* fix: loading state

* fix: jit portal link

* fix: rm import

* fix: build errors

* fix: default to free

* fix: wrong files

* fix: select or insert customer

* fix: note

* feat: upgrade dependent on payment method state

* fix: dedupe

* chore: remove github-app from core

* chore: port to cloud

* chore: port to cloud

* chore: port to cloud

* chore: port to cloud

* chore: port to cloud

* add new components, repository callbacks

* chore: rm unused packages

* chore: fix generation

* chore: gen

* fix: cloud api references

* debug

* debug

* fix: actually set plans

* chore: rm debug

* fix: build

* feat: callbacks

* fix: add generated code

* chore: group cloud components

* chore: group by feature

* feat: alert change

* feat: confirm

* fix: confirm modal

* fix: ui

* fix: remove arrears

* fix: open in same tab

* fix: wan alert

* fix: call the callback

* fix: callback obj

* fix: disable if no cloud meta

---------

Co-authored-by: Alexander Belanger <alexander@hatchet.run>
2024-06-25 13:57:16 -04:00
abelanger5 37c0f6549c feat: add endpoint to REST API for creating an event, add UI for creating an event (#616)
* feat: add create event to rest api

* fix: ingestor usage

* feat: add create event to the UI

* fix: address PR review
2024-06-19 19:53:27 +00:00
abelanger5 a9fa824d37 feat: add endpoint for listing queue metrics (#615)
* wip: create openapi endpoint for queue metrics

* feat: add queue metrics api
2024-06-19 14:43:01 -04:00
Gabe Ruttner bbc4e58dd9 feat: limits (#559)
* feat: workflow run limits

* fix: resource exhausted 429

* feat: event limit

* feat: worker limit

* fix: sensible error

* fix: pb

* feat: expose limits api

* feat: default limits

* feat: add enable alert option

* feat: slack and email alerts

* fix: cron interval

* feat: make metered util

* wip: schedules and crons

* chore: squash migration

* fix: select or insert

* fix: remove unfinished meter

* chore: atlas migration

* fix: template format

* fix: shared ErrResourceExhausted

* feat: cache

* fix: limit can be nil

* fix: clarification

* fix: close meter ticker

* fix: friendly error for child workflows
2024-06-07 10:57:57 -07:00
Gabe Ruttner e09ee98df5 feat: expose retry count (#524)
* feat: expose retry count

* feat: expose retry count go

* docs: accessing retry count

* fix: import

* fix: tests

* fix: docs formatting

---------

Co-authored-by: Alexander Belanger <alexander@hatchet.run>
Co-authored-by: abelanger5 <belanger@sas.upenn.edu>
2024-06-07 15:27:38 +00:00
Gabe Ruttner 207f1bbb08 feat: default email alert group (#547)
* feat: add next alert column

* feat: add notification templates

* feat: add poll token ticker

* fix: expiring 7 days

* fix: no expired tokens

* fix: subject string

* fix: message string

* fix: slack format

* feat: add config columns

* feat: expose api

* feat: update alerter opts

* feat: update ui

* chore: ui tweaks

* fix: ui tweaks

* Update internal/repository/tenant_alerting.go

Co-authored-by: abelanger5 <belanger@sas.upenn.edu>

* chore: comment

* fix: split emails

* fix: commit context

---------

Co-authored-by: abelanger5 <belanger@sas.upenn.edu>
2024-06-03 12:30:46 -04:00
Gabe Ruttner b067744149 feat: delete tenant member ui (#518)
* feat: delete user ui

* fix: review feedback

* chore: generic confirm

* chore: generate
2024-05-23 06:43:11 -07:00
Gabe Ruttner 1b607713e3 fix: worker active bug (#517)
* fix: only update most recent session

* feat: listener connect visibility

* fix: lint warning
2024-05-21 18:38:57 -04:00
abelanger5 0dd38e45f4 feat: make step run replays more intuitive (#507)
* feat: make step run replays more intuitive

* fix: npmrc file for vercel pnpm version diff

* fix: address changes from PR review
2024-05-17 17:32:15 -04:00
Gabe Ruttner e6617e1381 feat: refresh timeout (#495)
* feat: show timeout on step run

* feat: refresh timeout

* fix: increment timeout from last time

* feat: add step run event for timeout refresh

* chore: generate

* feat: add refreshing timeouts docs section

* chore: linting

* feat: go client

* chore: generate

* chore: generate

* fix: test context

* chore: generate

* fix: rm txn

* fix: validator

* chore: lint

---------

Co-authored-by: Alexander Belanger <alexander@hatchet.run>
2024-05-16 12:23:36 -04:00
Luca Steeb d1a4d35830 chore(pre-commit): lint whitespace (#494)
Adds a whitespace linter to the pre-commit hook to ensure consistent formatting.
It also enables linting of other SQL files such as for SQLc queries.
2024-05-16 09:17:01 -04:00
Gabe Ruttner a37ee57cc1 feat: workflow run cancel (#489)
* feat: workflow run cancel endpoint

* feat: cancel all running button

* feat: select and cancel runs

* chore: error handling

* fix: remove ani

* fix: error toast

* chore: gen

* fix: feedback

* fix: redundant method

* Update frontend/app/src/pages/main/workflow-runs/$run/index.tsx

Co-authored-by: abelanger5 <belanger@sas.upenn.edu>

* fix: response obj

* fix: cancel by job run

* fix: lint

* chore: generate

---------

Co-authored-by: abelanger5 <belanger@sas.upenn.edu>
Co-authored-by: Alexander Belanger <alexander@hatchet.run>
2024-05-14 17:47:30 -04:00
Gabe Ruttner b728616161 feat: improve reassign and timeout behavior and visibility (#484)
* feat: create step run event

* fix: shorten reassign heartbeat

* feat: add reassign event

* feat: fail timeout instead of cancel

* chore: squash migration

* chore: clarify copy

* docs: improve timeouts doc

* chore: linting

* chore: generate

* fix: test

* fix: send cancellation signal on timeout failure

* fix: rm retry check

* chore: update migration for release

---------

Co-authored-by: Alexander Belanger <belanger@sas.upenn.edu>
2024-05-14 16:47:00 -04:00
Gabe Ruttner 48d06b931a feat: client releasable slots (#476)
* feat: add release slot proto

* feat: add semaphore release state and methods

* feat: go sdk and example

* docs: manual slot release

* chore: linting

* fix: broken test

* fix: unlink step run on manual release

* feat: release slot event

* fix: test

* fix: revert e2e test changes

* chore: remove debug line

* fix: place step run query in same tx

* fix: change migration release version

---------

Co-authored-by: Alexander Belanger <belanger@sas.upenn.edu>
2024-05-14 15:22:46 -04:00
Gabe Ruttner 8b392e30ea feat: workflow configuration view (#491)
* feat: add cron and schedule timeout to config

* feat: interpreted cron

---------

Co-authored-by: abelanger5 <belanger@sas.upenn.edu>
2024-05-13 18:05:04 -04:00
abelanger5 1a8f1d8cab feat: events view for step runs (#479)
* feat: events view for step runs

* chore: regen migration

* chore: address pr review changes
2024-05-09 18:25:23 -04:00
Gabe Ruttner 0586af8e8c Feat add rate limit durations (#466)
* feat: add day, week, month, year durations

* feat: add options to client
2024-05-08 19:35:39 -04:00
abelanger5 b50ed62924 feat: alerting from slack and email (#461)
* feat: alerting. implements slack alerting, email, and refactors tenant settings to make them more manageable

* chore: generate

* chore: generate sqlc after migrate
2024-05-08 10:04:58 -04:00
Gabe Ruttner fa07400159 feat: event and workflow run metadata (#446)
Adds additional user-defined metadata to events and workflow runs.
2024-05-06 17:10:33 -04:00
abelanger5 7543a0c2a5 add jobs which always run on failure (#445)
* (wip) prisma schema

* feat: on-failure steps

* chore: address changes from PR review

* chore: bump migration number
2024-05-06 15:39:22 -04:00
Gabe Ruttner 2b910a89de feat: improved optional product analytics (#452)
* feat: add fe posthog config

* feat: add fe posthog to metadata endpoint

* feat: dynamically load ph on fe

* feat: add analyticsOptOut to tenant db

* feat: respect opt out

* feat: update tenant settings

* feat: mask all text
2024-05-05 18:14:27 -04:00
Gabe Ruttner 81824cd3c7 feat: in app support (#433)
* feat: add pylon config

* feat: expose pylon app id in meta

* feat: expose hashed user email

* feat: update contracts

* fix: optional security

* feat: pylon support chat

* chore: rm debug ln
2024-04-30 16:10:16 -04:00
Gabe Ruttner 1b79c09c94 Feat improved visibility (#425)
* feat: expose worker state

* feat: improved worker list and details

* fix: child workflow run refresh

* feat: workflow run metrics

* fix: line breaks in errors

* chore: generate

* fix: review requests

* chore: fix protoc version
2024-04-26 07:33:53 -07:00
abelanger5 4ce1dd8632 feat: multi-workflow runs listener on a single endpoint
* new api-contract for workflow run events

* feat: initial implementation for new subscribe listener

* fix: sync issues and send workflow runs immediately

* refactor: add context to all engine db queries, fix deadlocking query

* fix: use new ctx for deleting dispatcher and ticker

* add cancellation reasons

* fix: docs linting

---------

Co-authored-by: gabriel ruttner <gabriel.ruttner@gmail.com>
2024-04-18 20:55:11 -04:00
Gabe Ruttner eb23e6916d feat: improved lists (#383)
* fix: only close sm

* chore: linting

* feat: filter by workflow run status

* feat: radio filter

* feat: filter run by workflow

* fix: rm unused status

* chore: rm comment

* chore: refactor workflow run table

* fix: visibility state

* feat: visibility and reload

* chore: linting

* chore: shared table component

* chore: linting

* chore: clarify nav

* feat: link to workflow dfn

* chore: share workflow run table

* chore: linting

* wip: parent link

* feat: data table card rendering

* feat: expose manual table control

* feat: data table workflow list

* feat: workflow list actions

* feat: worker actions

* fix: toolbar for any option

* fix: rm search

* fix: rm bad filter func

* chore: linting

* fix: link card title

* fix: rm updated at for now

* fix: gen
2024-04-18 13:35:02 -07:00
abelanger5 f16a9cd0dc feat: add github sso to dashboard (#373) 2024-04-11 15:32:12 -04:00
Luca Steeb 3c112d9df8 fix(workflow): remove workflow timeout in favor of step timeout (#366) 2024-04-10 23:53:00 +07:00
abelanger5 334ce758ec feat: queued metrics, along with bug fixes for round robin queueing (#340) 2024-04-04 17:45:10 -04:00
abelanger5 d01736c15a feat(py-sdk): add support for put_workflow extending from base workflow (#329)
* feat(py-sdk): add put_workflow method and extend from base class

* feat: add cron_input to create workflow API
2024-04-02 13:29:16 -04:00
Gabe Ruttner 0da379e423 feat(dashboard): improve dashboard settings for user and tokens (#275)
* feat: expires at as Date

* wip: change passwords

* feat: user can change their password

* chore: cleanup

* chore: linting

* chore: fix build issue

* fix: protoc version

* chore: resolve feedback

* fix: ref

* fix: password inputs

* chore: update generated

* fix: update respository

* feat: only show change password if user has password

* fix: linting

* fix: validation string

* chore: regen api

---------

Co-authored-by: gabriel ruttner <gabe@hatchet.run>
2024-04-02 12:50:20 -04:00
abelanger5 066b3c5b71 feat(engine): initial rate-limiting engine implementation (#324)
* feat(engine): initial rate-limiting engine implementation

* fixes and implement go sdk rate limiting
2024-04-02 10:53:03 -04:00
Gabe Ruttner 5066547ce6 feat: cancel in progress (#325)
* chore: bad project path

* fix: remove tickerId for replay

* feat: cancel from request

* feat: cancel button in UI

* chore: rm comment

* fix: build error

* chore: reason case

* chore: reason string

* fix: linting

---------

Co-authored-by: gabriel ruttner <gabe@hatchet.run>
2024-04-02 01:16:27 +00:00
Gabe Ruttner d8b6843dec feat: streaming events (#309)
* feat: add stream event model

* docs: how to work with db models

* feat: put stream event

* chore: rm comments

* feat: add stream resource type

* feat: enqueue stream event

* fix: contracts

* feat: protos

* chore: set properties correctly for typing

* fix: stream example

* chore: rm old example

* fix: async on

* fix: bytea type

* fix: worker

* feat: put stream data

* feat: stream type

* fix: correct queue

* feat: streaming payloads

* fix: cleanup

* fix: validation

* feat: example file streaming

* chore: rm unused query

* fix: tenant check and read only consumer

* fix: check tenant-steprun relation

* Update prisma/schema.prisma

Co-authored-by: abelanger5 <belanger@sas.upenn.edu>

* chore: generate protos

* chore: rename migration

* release: 0.20.0

* feat(go-sdk): implement streaming in go

---------

Co-authored-by: gabriel ruttner <gabe@hatchet.run>
Co-authored-by: abelanger5 <belanger@sas.upenn.edu>
2024-04-01 15:46:21 -04:00
abelanger5 cdf203dc3e feat: new listen strategy with worker-side heartbeats (#308) 2024-03-31 22:45:10 -04:00