Commit Graph

231 Commits

Author SHA1 Message Date
abelanger5
b0b2e26952 feat: hatchet-lite (#560)
* feat: hatchet-lite mvp

* fix: init shadow db

* fix: install atlas

* fix: correct env

* fix: wait for db ready

* fix: remove name flag

* fix: add hatchet-lite to build
2024-06-06 14:03:53 -04:00
Gabe Ruttner
8b1417b1d8 feat: worker semaphore v2 (#540)
* wip: semaphore slot table

* wip: acquire and release semaphore

* Fix deadlock/pool exhaustion

* fix: update skip locked cte

* feat: release resolver

* wip: migration

* chore: migrate running steps to semaphore

* 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

* fix: migration with loop

* chore: generate

* chore: remove unused fn

* feat: add worker id index on slot

* chore: rm unused fn

* fix: typo

* feat: optimized query

* chore: generate all

* chore: collapse migration

---------

Co-authored-by: Alexander Belanger <alexander@hatchet.run>
2024-06-04 07:56:29 -07: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
abelanger5
e94d60538c fix: old Listen endpoint not setting worker to active (#534)
* fix: remove active checks from sdk

* fix: add back isActive check
2024-05-28 11:37:47 -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
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
abelanger5
7e70ddee93 fix: handle last alerted null case + some logging/cleanup improvements (#468) 2024-05-08 19:36:13 -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
67b7dc522c fix: report slot count from semaphore (#459) 2024-05-07 15:36:11 -07: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
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
abelanger5
f71f17f5f7 fix: semaphores increasing on manual replays (#441)
* fix: semaphores increasing on manual replays

* chore: remove metrics queries
2024-05-01 14:05:39 -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
abelanger5
08494db1b6 feat: send emails from postmark (#434) 2024-04-30 15:49:58 -04:00
abelanger5
8768e889c1 fix: small UI changes for metrics view and remove worker status (#432)
* fix: small UI changes

* fix: remove all references to worker status
2024-04-30 12:58:19 -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
1a4c6eebee fix: health check improvements (#399)
* fix: health check improvements

* fix: panic on dispatcher task cancelled
2024-04-19 16:36:29 -04: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
Abhiuday Gupta
c8a79aabf3 chore(format): added pre-commit hooks and formatted files (#294)
Co-authored-by: steebchen <contact@luca-steeb.com>
2024-04-16 22:19:21 +04:00
Luca Steeb
181a8e48aa fix(auth): improve error messages in auth (#367) 2024-04-15 14:31:03 +07:00
Gabe Ruttner
ca68eee45c feat(api): posthog telemetry (#374)
* feat: add posthog dep

* feat: posthog analytics

* feat: user events

* fix: nil tenant

* feat: tenant ident

* chore: linting

* Update pkg/analytics/posthog/posthog.go

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

* fix: typo

---------

Co-authored-by: abelanger5 <belanger@sas.upenn.edu>
2024-04-12 06:16:14 -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
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
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
abelanger5
0daa62974a feat(frontend): basic list of child workflows (#293) 2024-03-29 14:07:39 -07:00
abelanger5
ad9e9aedbf feat(engine/api): implementation of child/parent workflow runs (#292) 2024-03-29 14:07:39 -07:00
abelanger5
092f54c64f refactor: separate api and engine repositories, change ticker logic (#281)
* refactor: separate api and engine repositories, change ticker logic

* fix: nil error blocks

* fix: run migration on load test

* fix: generate db package in load test

* fix: test.yml

* fix: add pnpm to load test

* fix: don't lock CTEs with columns that don't get updated

* fix: update heartbeat for worker every 4 seconds, not 5

* chore: remove dead code

* chore: update python sdk

* chore: add back telemetry attributes
2024-03-21 14:10:34 -04:00
Luca Steeb
d91a8d7bc3 fix: handle inefficient assignments (#263) 2024-03-16 17:09:35 +07:00
abelanger5
d9360520de chore: add better telemetry to database (#268)
* chore: add better telemetry to database

* fix: span end on query
2024-03-15 15:08:40 -04:00
abelanger5
c66f97c856 fix: deadlocks on workers and tickers (#241)
* chore: add sentry support to engine

* fix: deadlocks on workers and tickers

* refactor: reduce prisma calls in engine

* trigger

* fix: remove some tenant lookups

* feat: dlx and renamed taskqueue -> msgqueue

* refactor: get group key run logic

* fix: retry counts on messages and concurrency edge cases

* fix: rabbitmq integration tests

* feat: add consumer timeouts

---------

Co-authored-by: Luca Steeb <contact@luca-steeb.com>
2024-03-12 00:45:18 -04:00
Luca Steeb
78962596aa fix(engine): do not panic on regular exit (#242) 2024-03-08 14:46:56 +07:00
abelanger5
38688adce5 feat: sns integrations from frontend (#249) 2024-03-07 18:52:08 -05:00
abelanger5
85d89886d3 feat: display concurrency settings on the UI (#236)
* feat: display concurrency settings on the UI

* feat: show triggering settings as well
2024-03-04 22:15:56 -05:00
abelanger5
d3534edc4c fix: parse schema in API, not engine (#233)
* no schema parsing in core engine

* fix: parse schema in api, not engine

* fix: parsing of input schema should not use json keys as field names
2024-03-04 18:39:54 -05:00
abelanger5
c4fc355805 feat: events list filtering by status (#232) 2024-03-04 17:10:44 -05:00
abelanger5
043f23e2a3 feat: support ingestion from SNS (#231) 2024-03-04 16:52:45 -05:00
abelanger5
f256b258d8 feat: logging from step run executions (#217)
* fix: job cancellations with shared ctx

* fix: found the bug

* fix: all job runs were getting cancelled

* feat: support logging from executions

* fix: place logging in background

* add back split screen
2024-03-01 17:55:31 -05:00
Luca Steeb
9b68115fb5 refactor: cleanup functions in api + worker (#192) 2024-03-02 00:37:02 +07:00
Luca Steeb
4bd1b6f2ec feat(api): add healthcheck routes (#191) 2024-03-01 23:48:10 +07:00
abelanger5
6ea38a99f2 feat: support maxRuns parameter on workers (#195)
* feat: round robin queueing

* feat: configurable max runs per worker

* fix: address PR review

* docs for max runs and group round robin
2024-02-26 00:48:46 -05:00