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
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
70a05f86cf
feat: contracts for spawn/join feature ( #290 )
...
* feat: contracts for spawn/join feature
* add parent step run ids to model
* add parent ids to schedule request
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
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
4bd1b6f2ec
feat(api): add healthcheck routes ( #191 )
2024-03-01 23:48:10 +07:00
Gabe Ruttner
70edf5d928
feat: add array to type ( #210 )
...
* feat: add array to type
* feat: add rest of data to context
* fix: tests
* feat: workflowRunId in TS context
---------
Co-authored-by: Alexander Belanger <belanger@sas.upenn.edu >
2024-02-29 00:38:41 -05:00
abelanger5
46967db3ad
feat: configurable scheduling timeouts ( #204 )
...
* feat: configurable scheduling timeouts
* fix: remove validator for now
2024-02-28 01:02:13 -05: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
abelanger5
2d625fec81
feat: round robin queueing ( #194 )
2024-02-26 00:16:40 -05:00
Alexander Belanger
0f47188c09
feat: github app integration with playground
2024-02-18 21:39:29 -05:00
abelanger5
df3f540748
feat: add retries to the engine and SDKs ( #171 )
...
This PR adds support for retrying failed step runs against the engine and SDKs. This was tested up to 30 retries per step run, with both failure and success at the 30th step run. Each SDK now has a `retries` configurable param for steps when declaring a workflow.
2024-02-16 13:00:22 -05:00
abelanger5
3743746657
feat: github app integration ( #163 )
...
* feat: github app integration
* chore: proto
* fix: migrate instead of push
* fix: db migrate -> migrate
* fix: migrate again
* remove skip-generate
* add back generate
* setup pnpm
2024-02-13 21:34:16 -05:00
Gabe Ruttner
45813fdb1b
feat: dashboard playground ui ( #162 )
...
* hotfix: add repository for npm publish
* release(py-sdk): bump version
* chore: ignore venv
* feat(dashboard): collapsible sidebar
* fix: hangup workflow listener when workflow run finishes (#161 )
* wip: class based listener pattern
* fix: workflow run listener hangups
* fix: hang up workflow listener on finished
* fix: case for current workflow run
* address review comments
* bump version
---------
Co-authored-by: g <gabriel.ruttner@gmail.com >
* wip: focus state and flat playground
* fix: focus state
* feat: unify state
* wip: playground state
* cleanup: rm logging
* fix: default output
* cleanup: rm deadcode
* feat: can replay individual steps
* feat: icon tabs
* feat: sticky output
* cleanup: linting
---------
Co-authored-by: abelanger5 <belanger@sas.upenn.edu >
2024-02-13 10:24:46 -07:00