Commit Graph

48 Commits

Author SHA1 Message Date
abelanger5 f16a9cd0dc feat: add github sso to dashboard (#373) 2024-04-11 15:32:12 -04: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 2d61324643 fix: rest client (#338)
* fix: rest client

* release: py 0.21.1

---------

Co-authored-by: gabriel ruttner <gabe@hatchet.run>
2024-04-04 09:04:30 -07: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 91b0dda46e feat(py): global rate limits (#328)
* chore: regen protos

* feat: admin put rate limit

* fix: client type

* feat: rate limit example

* feat: workflow config

* feat: step config

* release: py 0.21.0

* fix: RateLimitDuration in init

---------

Co-authored-by: gabriel ruttner <gabe@hatchet.run>
2024-04-02 13:01:22 -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
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
Gabe Ruttner d426c9316d feat(py-sdk): spawn and join (#299)
* chore: expose full client to context

* chore: update protos

* feat: add parent options to trigger

* feat: example fanout worker

* fix: typehint

* feat: add spawn workflow to context

* wip: polling and streaming

* fix: correct request

* chore: rm logging

* feat: working polling

* feat: functional polling

* chore: separate connection

* feat: functional streaming and listening

* fix: get result payload

* fix: increased initial poll interval

* release (py): 0.19.0

---------

Co-authored-by: gabriel ruttner <gabe@hatchet.run>
2024-03-29 14:07:39 -07: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
Gabe Ruttner 1dccc387b0 feat(py): schedule_workflows (#287)
* feat: schedule workflows

* docs: delay events

* fix: linting

* release: py 0.18.0
2024-03-22 20:46:20 -04: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 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
abelanger5 5ddc9f80d8 feat(python-sdk): logs api endpoint (#253) 2024-03-11 13:20:38 -04:00
g 49f16ba953 fix: register timeout 2024-03-07 17:02:32 -08:00
abelanger5 38688adce5 feat: sns integrations from frontend (#249) 2024-03-07 18:52:08 -05:00
g 5b1787cf6f fix: register workflow with name param 2024-03-07 13:59:27 -08:00
g 8597ac7d52 hotfix: context serialization 2024-03-07 09:34:08 -08:00
Gabe Ruttner b9f3ff1609 feat(py-sdk): async steps (#246)
* feat: async wrapper

* feat: async examples

* release: bump version 0.15.1
2024-03-06 15:24:44 -08: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 d376b953aa feat: python rest api (#223)
* feat: Adds a generated REST API client and exposes workflow methods for programmatic usage
2024-03-02 20:33:20 -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
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
abelanger5 149fa7b15e docs: improvements, launch post (#183)
* docs: improvements, launch post

* fix: python sdk exception

* Update README.md

* add videos, remove gifs

* docs logo link should be homepage

* Update README.md

* copy edits and feedback
2024-02-22 14:56:51 -05:00
Gabe Ruttner a7cff7f218 fix: worker listener retires (#181)
* hotfix: add repository for npm publish

* release(py-sdk): bump version

* chore: ignore venv

* fix: add timeout to retry

* chore: rm change

* fix: remove duplicate logic and favor retries in dispatcher

* release: bump version

* fix: retry on general failures

* chore: rm unused code

* fix: retries reset if greater than interval
2024-02-21 18:54:42 -08:00
abelanger5 e44c3a1290 fix: link github issues and support insecure py opt (#180) 2024-02-20 13:14:30 -05:00
abelanger5 2f14e74b5c chore: rename overrides to playground (#179) 2024-02-19 20:29:27 -05:00
abelanger5 6b747711fb fix: engine bugs and python sdk (#178)
* fix: engine bugs and python sdk

* chore: fix linting
2024-02-19 18:57:05 -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
Alexander Belanger 011125abfd feat(wip): add overrides data and input schema to database 2024-02-09 10:03:20 -05:00
Gabe Ruttner 511b91a4ec fix: async generator (#155)
* hotfix: add repository for npm publish

* release(py-sdk): bump version

* fix: async generator

* release: bump version

* fix: remove unused logging
2024-02-06 07:17:56 -05:00
Gabe Ruttner 5f06e8cfce feat (py-sdk): python streaming generator (#154)
* hotfix: add repository for npm publish

* release(py-sdk): bump version

* feat: expose generator

* release: bump version
2024-02-05 18:16:23 -05:00
Gabe Ruttner 5ccc5614a9 feat(py-sdk): event streaming and manual triggering (#152)
* hotfix: add repository for npm publish

* chore: generate protos

* feat: trigger workflow

* fix: remove tenant id from schedule workflow

* fix: logging

* feat: run returns workflow_run_id

* feat: listen for run events

* feat: listener calls handler

* chore: address review comment
2024-02-05 12:32:04 -05:00
abelanger5 73adb7791e feat: custom claims for setting grpc/server addr in token (#150) 2024-02-05 00:18:19 -05:00
abelanger5 aed11c3958 feat: workflow visualization and qol improvements (#140)
* feat: workflow visualization and qol improvements

* fix: npm build
2024-02-02 01:35:05 -05:00
abelanger5 52ba01bf06 chore: qol improvements (#137) 2024-01-30 00:08:52 -05:00
abelanger5 d63b66a837 feat: concurrency groups (#135)
* first pass at moving controllers around

* feat: concurrency limits for strategy CANCEL_IN_PROGRESS

* fix: linting

* chore: bump python sdk version
2024-01-30 00:00:28 -05:00
abelanger5 40760e0951 chore(python-sdk): improved thread cancellation handling, docs, and custom sleep method (#134)
* feat: timeout on python steps

* chore(python-sdk): improved thread handling and docs

* docs: default timeout
2024-01-27 22:14:48 -05:00
Gabe Ruttner 6401b56611 chore: rename sdk for consistency (#131) 2024-01-26 19:46:17 -07:00