Commit Graph

539 Commits

Author SHA1 Message Date
matt 36924936fa Feat: Webhook fixes / improvements (#2131)
* feat: webhook update

* feat: add headers to cel env

* fix: header casing

* feat: wire up edits

* fix: updates

* fix: finish wiring up updates

* fix: handle save on enter

* fix: lint

* feat: add slack and discord

* feat: initial slack setup

* fix: get slack working

* fix: rm discord for now

* fix: lint

* chore: gen

* fix: explicit save button

* feat: add link to CEL docs

* feat: add callout for reaching out to support

* feat: docs

* refactor: challenge

* fix: naming

* fix: return

* fix: resp codes

* fix: webhooks beta flag

* fix: rm discord

* fix: docs
2025-08-14 10:46:57 -05:00
Mohammed Nafees 3dcc92cbc5 upgrade axios (#2119) 2025-08-12 20:46:31 +02:00
Mohammed Nafees 51a037d493 Workflow combobox search functionality (#2118)
* add pagination support for trigger workflow dropdown

* fix lint

* message fix

* no pagination but search

* no need for useless allocation

* PR comments
2025-08-12 20:43:30 +02:00
matt d85f6a042f fix: add back sync docs script (#2123) 2025-08-12 14:13:25 -04:00
matt 815a94e25c chore: regen snippets (#2122) 2025-08-12 11:29:45 -04:00
matt 1eb1634093 Chore: Remove /next/ dir on the FE, Part I (#2083)
* feat: nuke the next dir

* fix: clean up some refs
2025-08-12 10:51:55 -04:00
matt d81f7db5e2 Fix: TS CI (#2117)
* fix: ts ci

* chore: gen
2025-08-12 07:54:03 -04:00
matt c8d5144ed4 [Python] Feat: Dependency Injection, Improved error handling (#2067)
* feat: first pass at dependency injection

* feat: add DI example + tests

* feat: finish up tests

* feat: docs

* chore: gen

* chore: lint

* chore: changelog + ver

* fix: split up paragraphs

* refactor: improve impl

* chore: gen

* feat: inject input + ctx into deps

* chore: gen

* [Python] Feat: More use of `logger.exception` (#2069)

* feat: add more instances of `logger.exception`

* chore: ver

* chore: changelog

* fix: one more error log

* chore: gen

* chore: gen

* chore: lint

* fix: improve shutdown

* chore: changelog

* unwind: exit handler

* feat: task run error

* feat: improve error serde with more context

* chore: changelog

* fix: changelog

* chore: gen

* fix: rm celpy + lark dep, casing issues

* chore: changelog

* fix: respect log levels over the API

* fix: changelog

* refactor: rename log forwarder

* fix: circular import
2025-08-11 23:10:44 -04:00
matt 4d654f34ec Debug: Fail task tracing (#2101)
* feat: add some span attributes to see how big the batches are

* fix: span naming

* fix: naming

* fix: issues + lint
2025-08-07 12:05:28 -04:00
Sam Wolk 15576254ab Add wsl note for python (#2093)
* add wsl note for python

* lint
2025-08-06 16:30:46 -04:00
matt 9ad051cd8f fix: doc location (#2082) 2025-08-04 19:42:54 -04:00
matt 1776648382 Fix: Webhook copy improvements (#2081)
* fix: webhook empty state

* feat: improve copy

* fix: one more copy fix

* fix: colors and icons
2025-08-04 16:11:42 -04:00
mrkaye97 16aaafafc1 Merge branch 'main' into v0.70.0 2025-08-04 12:23:12 -04:00
Gabe Ruttner 0ddd6a2852 feat: activity detection (#2055)
* feat: activity detection

* address comments
2025-07-31 07:54:15 -07:00
Mohammed Nafees 59888a9be8 fix string interpolation payment methods (#2072) 2025-07-31 14:43:45 +02:00
Mohammed Nafees e6c50ca1a0 Allow member roles to be changed by owners and admins (#2044)
* allow member roles to be changed by owners and admins

* PR comments

* chore: gen

* fix: rm changes to /next/

* chore: gen

---------

Co-authored-by: mrkaye97 <mrkaye97@gmail.com>
2025-07-30 17:42:34 -04:00
matt d6f8be2c0f Feat: OLAP Table for CEL Eval Failures (#2012)
* feat: add table, wire up partitioning

* feat: wire failures into the OLAP db from rabbit

* feat: bubble failures up to controller

* fix: naming

* fix: hack around enum type

* fix: typo

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix: typos

* fix: migration name

* feat: log debug failure

* feat: pub message from debug endpoint to log failure

* fix: error handling

* fix: use ingestor

* fix: olap suffix

* fix: pass source through

* fix: dont log ingest failure

* fix: rm debug as enum opt

* chore: gen

* Feat: Webhooks (#1978)

* feat: migration + go gen

* feat: non unique source name

* feat: api types

* fix: rm cruft

* feat: initial api for webhooks

* feat: handle encryption of incoming keys

* fix: nil pointer errors

* fix: import

* feat: add endpoint for incoming webhooks

* fix: naming

* feat: start wiring up basic auth

* feat: wire up cel event parsing

* feat: implement authentication

* fix: hack for plain text content

* feat: add source to enum

* feat: add source name enum

* feat: db source name enum fix

* fix: use source name enums

* feat: nest sources

* feat: first pass at stripe

* fix: clean up source name passing

* fix: use unique name for webhook

* feat: populator test

* fix: null values

* fix: ordering

* fix: rm unnecessary index

* fix: validation

* feat: validation on create

* fix: lint

* fix: naming

* feat: wire triggering webhook name through to events table

* feat: cleanup + python gen + e2e test for basic auth

* feat: query to insert webhook validation errors

* refactor: auth handler

* fix: naming

* refactor: validation errors, part II

* feat: wire up writes through olap

* fix: linting, fallthrough case

* fix: validation

* feat: tests for failure cases for basic auth

* feat: expand tests

* fix: correctly return 404 out of task getter

* chore: generated stuff

* fix: rm cruft

* fix: longer sleep

* debug: print name + events to logs

* feat: limit to N

* feat: add limit env var

* debug: ci test

* fix: apply namespaces to keys

* fix: namespacing, part ii

* fix: sdk config

* fix: handle prefixing

* feat: handle partitioning logic

* chore: gen

* feat: add webhook limit

* feat: wire up limits

* fix: gen

* fix: reverse order of generic fallthrough

* fix: comment for potential unexpected behavior

* fix: add check constraints, improve error handling

* chore: gen

* chore: gen

* fix: improve naming

* feat: scaffold webhooks page

* feat: sidebar

* feat: first pass at page

* feat: improve feedback on UI

* feat: initial work on create modal

* feat: change default to basic

* fix: openapi spec discriminated union

* fix: go side

* feat: start wiring up placeholders for stripe and github

* feat: pre-populated fields for Stripe + Github

* feat: add name section

* feat: copy improvements, show URL

* feat: UI cleanup

* fix: check if tenant populator errors

* feat: add comments

* chore: gen again

* fix: default name

* fix: styling

* fix: improve stripe header processing

* feat: docs, part 1

* fix: lint

* fix: migration order

* feat: implement rate limit per-webhook

* feat: comment

* feat: clean up docs

* chore: gen

* fix: migration versions

* fix: olap naming

* fix: partitions

* chore: gen

* feat: store webhook cel eval failures properly

* fix: pk order

* fix: auth tweaks, move fetches out of populator

* fix: pgtype.Text instead of string pointer

* chore: gen

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-07-30 13:27:38 -04:00
Mohammed Nafees 78be038e1d update self hosting configuration options (#2039) 2025-07-24 13:15:42 +02:00
matt cca0999eea [Python]: Fixing logging bugs, fixing duped sleep key bug (#2040)
* feat: add flag to disable log capture

* fix: sleep bug with duped key

* fix: allow formatters to be passed through

* feat: support filters too

* fix: cruft

* chore: gen

* feat: changelog

* fix: lint

* [Python] Fix: Don't retry gRPC requests on 4xx (#2024)

* fix: dont retry on 4xx

* chore: ver

* fix: sleep conditions with index

* fix: bug in sleep conditions

* chore: gen
2025-07-23 15:15:31 -04:00
matt d3577e62fb Feat: Show filters on events FE (#2013)
* feat: first pass at filters view

* feat: improve popover

* fix: borders

* fix: properly hide filters

* fix: always show runs

* fix: breakpoints

* fix: no need to refetch filters

* feat: styling improvements

* fix: eslint is silly

* fix: show workflow id

* fix: tailwind styling
2025-07-20 22:47:47 -04:00
matt c202ec8359 Feat: CEL Debug Endpoint (#2010)
* feat: openapi spec + gen

* feat: scaffold cel service

* feat: impl with discriminated union

* fix: reversed

* chore: gen py

* chore: gen + add cel to hatchet client

* feat: wire up TS CEL client

* chore: versions

* feat: impl for go

* fix: error handling

* feat: python tests
2025-07-20 22:44:08 -04:00
Matt Kaye f1f276f6dc Feat: Python task unit tests (#1990)
* feat: add mock run methods for tasks

* feat: docs

* feat: first pass at unit tests

* cleanup: split out tests

* feat: pass lifespan through

* fix: rm comment

* drive by: retry on 404 to help with races

* chore: changelog

* chore: ver

* feat: improve logging everywhere

* chore: changelog

* fix: rm print cruft

* feat: print statement linter

* feat: helper for getting result of a standalone

* feat: docs for mock run

* feat: add task run getter

* feat: propagate additional metadata properly

* chore: gen

* fix: date

* chore: gen

* feat: return exceptions

* chore: gen

* chore: changelog

* feat: tests + gen again

* fix: rm print cruft
2025-07-17 13:54:40 -04:00
Mohammed Nafees b4544f170e Add notice that prom metrics only work with v1 tenants (#2017)
* add notice that prom metrics only work with v1 tenants

* lint fix
2025-07-17 17:54:35 +05:30
Matt Kaye 02601fa0ef Fix: Replay bugs (#2001)
* fix: dedupe tasks before replaying

* fix: two toasts

* fix: send workflow run external id through

* fix: send messages to queue immediately

* fix: clean up types

* fix: dedupe

* fix: return task ids instead of workflow ones
2025-07-16 11:42:36 -04:00
Matt Kaye b4e96f301b fix: handle unauthed (#2009) 2025-07-16 11:42:27 -04:00
Matt Kaye 4676ae8508 FIx: Feedback on replay / cancel (#1997)
* feat: return a response from replays

* fix: return correct thing

* feat: wire up cancel + replay toasts on FE

* fix: naming

* fix: other refs

* fix: linter setup
2025-07-15 13:29:52 -04:00
Matt Kaye 62dee6d3f6 Fix: One more routing issue (#1993)
* fix: restart tutorial redirect

* fix: clear queries on tenant switch

* fix: linter
2025-07-14 17:30:44 -04:00
Mohammed Nafees 1c035887e1 Fix popover contents to have word wrap, sanitized input and max width (#1966)
* fix wordwrap and width of popover content

* address pr comments

* no need for verbose

* fix lint

* better styling

* fix lint

* no inline styles please

* fix lint

* use tailwind breakpoint classes instead
2025-07-11 16:41:38 -04:00
Mohammed Nafees c86a65bb0f Add new streaming support to Go SDK (#1955)
* add Go SDK streaming support

* make docs changes for go sdk streaming

* fix git lfs warning

* streaming go example

* fix lint

* fix auto generated snip

* revert poetry lock changes

* some cleanup
2025-07-11 18:00:30 +02:00
Matt Kaye 1302d62957 Hotfix: Add available slots back to worker page (#1983)
* fix: add available slots to worker page

* fix: add runtime info to py sdk

* chore: ver

* chore: changelog
2025-07-11 10:17:18 -04:00
Matt Kaye 9b39ac92e4 Feat: Improve metrics feature client (#1976)
* feat: add optional replacement to remove null unicode char

* feat: rework metrics client

* feat: rm unused

* chore: changelog

* chore: gen

* feat: add tenant prom metrics scraper

* feat: docs

* chore: changelog, naming

* fix: lint

* fix: type

* fix: pass replacement through
2025-07-10 11:50:55 -04:00
Matt Kaye fde5cf26cd Hotfix: Tenant switching bugs (#1971)
* fix: use the jotai atom for last tenant instead of custom local storage

* fix: rm console
2025-07-10 08:32:47 -04:00
Matt Kaye 63004ec9ab Feat: Add workflow delete API to workflows client (#1970)
* feat: add workflow delete api to workflows client

* feat: add delete methods to workflows + runnables

* chore: docs gen
2025-07-09 16:20:21 -04:00
Matt Kaye 2cfb345dcf Feat: Handle unicode error, fix OTel error capturing (#1959)
* feat: raise illegal task output error out of the runner if we get a null unicode escape sequence

* feat: add helper for sanitizing outputs

* feat: improve error

* fix: lock index

* feat: use async stream method in example

* chore: ver

* chore: changelog

* fix: turns out we don't need to lock

* fix: return exception for instrumentation

* chore: changelog

* chore: bunch of generated crap

* fix: comment placement

* fix: copilot

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-07-09 14:18:41 -04:00
Matt Kaye 7c84c7f664 Fix: Persist tenant to local storage (#1965)
* fix: correctly read previous tenant

* fix: modify key

* fix: cleanup

* fix: cleanup

* fix: lint

* remove debug

---------

Co-authored-by: Alexander Belanger <alexander@hatchet.run>
2025-07-09 13:08:47 -04:00
abelanger5 0fa6afe846 fix: data key in waterfall rows and truncate children (#1968) 2025-07-09 12:50:31 -04:00
abelanger5 75012adf7c fix: don't render on non-standalone task views (#1961) 2025-07-07 15:38:45 -04:00
Mohammed Nafees 33ec5fb7d8 add docs for Go SDK bulk operations (#1954) 2025-07-07 13:04:49 +02:00
Mohammed Nafees 1d5d638081 Add task start-dev-tmux (#1946)
* start-dev-tmux: start-dev with tmux support for clear output per process

* update instructions

* fix lint
2025-07-05 12:08:50 +02:00
abelanger5 6e820a120c feat: waterfall component (#1952)
* tmp: waterfall component

* feat: waterfall component

* address pr review comments
2025-07-04 14:47:30 -04:00
Matt Kaye cff9ffa794 Fix: More flashing metadata popovers (#1950)
* fix: signature, remove old component, fix scheduled runs flicker

* fix: the rest of them

* fix: lint
2025-07-04 09:29:26 -04:00
Matt Kaye d8d2e0b4d1 Hotfix: One more broken redirect (#1949)
* hotfix: tenanted path fix

* fix: actual fix

* fix: padding + spacing
2025-07-03 19:52:01 -04:00
Matt Kaye 3442c11106 Feat: Top-level stream consumer in the SDKs (#1917)
* feat: add stream sub on top level

* feat: clean up examples

* chore: gen

* feat: move stream onto the runs client in ts

* fix: examples

* chore: gen

* fix: circular import issues

* chore: lint

* feat: first pass at Next app

* fix: pull next out to top level

* fix: all the things

* fix: get it all wired up

* fix: imports

* fix: lint rule

* fix: just use js

* fix: revert tsconfig changes

* fix: check in pages

* fix: hangup event in streaming impl

* chore: gen

* chore: generate again, remove lots of nextjs stuff

* fix: one more ignore

* fix: gen

* fix: ignore

* fix: ugh

* fix: simplify a bunch

* fix: lint

* fix: rm gen cruft

* fix: changelog

* feat: implement list with pagination

* feat: add some tests

* feat: add warnings

* fix: update workflow / task methods

* chore: version

* feat: retries
2025-07-03 18:49:16 -04:00
Matt Kaye 7679732b15 Fix: Skipping conditions with multiple parents (#1948)
* fix: skipping bug

* fix: move `waits` -> `conditions`

* fix: refs

* chore: ver

* feat: add skipped task to test

* feat: start implementing or groups in wait for

* feat: test of or groups on durable context

* fix: lint

* chore: gen

* fix: lint

* fix: branching hell
2025-07-03 16:50:57 -04:00
Matt Kaye 7af4cfa3ab hotfix: sheet overflow (#1947) 2025-07-03 11:05:38 -04:00
Matt Kaye 8d467dee5c Fix: Remove task-runs route + lots of dead code (#1934)
* fix: unified runs page

* fix: nullish cases

* fix: rm `task-runs` page

* fix: nuke tons of unused code

* fix: un-nuke `/next/`

* Feat: Improve overflow / scroll behavior on table pages (#1937)

* feat: fix events view overflow

* fix: overflow

* fix: clean up runs view a bit

* fix: task runs table overflow

* fix: workflows view

* fix: worker table

* fix: lint + tsc

* fix: crons view

* fix: scheduled runs view

* fix: lint

* fix: rate limits view

* fix: change pagination options

* feat: first pass at new time range

* Revert "feat: first pass at new time range"

This reverts commit def610a12e.

* fix: remove ring

* fix: rm unused style

* feat: duration fix

* fix: clean up more table styling

* feat: improve metadata view

* fix: tsc

* feat: breadcrumbs

* feat: cleanup

* feat: janky metadata fix

* fix: copy

* fix: task run detail odd scroll behavior

* fix: workflow page
2025-07-03 09:15:39 -04:00
Mohammed Nafees 2ccd434ebf Add Prometheus metric for reassigned task total (#1943)
* add reassigned total metric

* lint fix
2025-07-03 10:52:20 +02:00
Mohammed Nafees 23773b85ce fix typo for cron name (#1940) 2025-07-02 19:24:42 +02:00
Matt Kaye 23bdbbd8a3 Feat: Tenant-in-path (#1923)
* chore: gen

* feat: hook for tenant

* feat: add tenanted routes

* fix: no need for v1 prefix

* feat: remove v1 routes

* fix: remove ui version switcher stuff

* fix: more broken redirects

* fix: start using hooks to fetch tenant

* fix: add (commented out) linting rules

* fix: sidebar

* fix: cruft comment

* fix: layout

* fix: collapsibles

* fix: more refs to v1 paths

* fix: more refs to hold hooks

* fix: more refs

* fix: last few

* fix: more redirects

* fix: rm more refs to `useOutletContext`

* fix: rm tenant-as-prop

* fix: small bugs

* fix: revert unintended changes

* fix: couple more

* fix: last few

* fix: last few

* fix: oooone more

* fix: redirects

* fix: add more redirects

* fix: clean up a bunch more redirects

* fix: copy paste

* fix: more redirects

* fix: zero value bug

* hack: don't set query param on v1

* fix: lint

* fix: copy

* fix: copy

* fix: lint

* fix: rm /next redirect

* make default engine version v1

* feat: crons with timezones

* fix: handle case where tenant is in path

* fix: more hard redirects

* fix: delete v0 cancellation test

---------

Co-authored-by: Alexander Belanger <alexander@hatchet.run>
2025-07-01 11:56:54 -04:00
Mohammed Nafees ef498a6235 Introduce tenant Prometheus metrics (#1875)
* introduce tenant workflow completed metric

* expose tenant prom metrics via handler

* fix workflow and worker id in metrics

* correctly add workflow metrics from workflow controller

* use olap DB to gather information for workflow completion

* fix prom metrics endpoint for tenant

* workflow name from external id

* simplify tenant registry based metrics

* add docs for prometheus metrics

* fix docs lint

* run prettier fix

* WIP metrics work

* use federate prom server URL to proxy metrics

* implement workflow duration histogram metric

* separate prom stack docker compose

* fix duration metrics calls

* move scheduler metrics to prom tenant specific file

* update docs for prom metrics

* fix lint

* use proper indices to query for durations

* reorg tenant metrics

* fix lint for doc

* update docs with promql examples and casing around prom metrics enabled

* update prom server url

* fix lint

* enabled prom metrics for v1 only from controller
2025-06-27 11:46:31 -04:00