mirror of
https://github.com/hatchet-dev/hatchet.git
synced 2026-01-07 01:09:38 -06:00
* feat: add events tables * fix: tweak PK * feat: migration * feat: gen models * fix: add external id col + index * fix: uuid pk * fix: types * chore: gen * feat: add index * Feat: Write events into OLAP tables (#1634) * feat: query for event creation * feat: olap impl * feat: wire up the olap event write * feat: goroutine? * feat: start wiring up inserts to triggers * fix: no `RETURNING` * fix: hack * fix: inner join * feat: attempt 2 * fix: return errors * chore: lint * fix: diff * feat: add new partitions * fix: eof * fix: write external ids into table * chore: gen * fix: wiring * fix: event deduping * fix: insert in bulk * fix: bug * refactor: return type of trigger * fix: unnest ids * fix: unnest tenant ids * fix: run ids in bulk insert * feat: two bulk inserts, one tx * fix: cruft * fix: bug * Update pkg/repository/v1/olap.go Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * fix: rework to avoid n^2 loop * fix: transaction timeout * fix: lint * fix: use error * fix: rm penultimate version * fix: rm penultimate test part ii * Feat: CEL-based filtering of events (#1676) * feat: add optional expression to workflow trigger event ref * feat: proto field for expression * feat: write and parse the expression * feat: wire up through put workflow ver request * feat: query * fix: naming * fix: cleanup * fix: rebase * Update pkg/repository/v1/trigger.go Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * fix: skip workflow on cel eval failure * fix: zero value * fix: cel evaluator * fix: usage * fix: naming + type * fix: rm event filter from v0 defn * feat: tests + fix typing * fix: usage * fix: construct input * feat: always write events --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * fix: select existing partitions * feat: add prio to push event request * feat: priority from pushed events * fix: missed a spot * fix: write events even if they're not tied to any workflows * fix: revert cel event filtering * fix: couple more * fix: simplify * feat: filters api * feat: table for storing filters * feat: migration * fix: pk ordering * feat: wiring up initial api * feat: impl filter list * feat: wire up inserts of filters * feat: add resource hint to push event * feat: multi-select filters * feat: wire up resource hint on event push * feat: filtering * fix: small bug * fix: rm version id * fix: query * fix: panic * fix: schema * fix: naming * fix: rm python changes * chore: lint * fix: uuid hint Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * fix: use overwrite for listing filters b/c of nullable arg * fix: naming * feat: add events tables * fix: tweak PK * feat: migration * feat: gen models * fix: add external id col + index * fix: uuid pk * fix: types * chore: gen * feat: add index * Feat: Write events into OLAP tables (#1634) * feat: query for event creation * feat: olap impl * feat: wire up the olap event write * feat: goroutine? * feat: start wiring up inserts to triggers * fix: no `RETURNING` * fix: hack * fix: inner join * feat: attempt 2 * fix: return errors * chore: lint * fix: diff * feat: add new partitions * fix: eof * fix: write external ids into table * chore: gen * fix: wiring * fix: event deduping * fix: insert in bulk * fix: bug * refactor: return type of trigger * fix: unnest ids * fix: unnest tenant ids * fix: run ids in bulk insert * feat: two bulk inserts, one tx * fix: cruft * fix: bug * Update pkg/repository/v1/olap.go Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * fix: rework to avoid n^2 loop * fix: transaction timeout * fix: lint * fix: use error * fix: rm penultimate version * fix: rm penultimate test part ii * Feat: CEL-based filtering of events (#1676) * feat: add optional expression to workflow trigger event ref * feat: proto field for expression * feat: write and parse the expression * feat: wire up through put workflow ver request * feat: query * fix: naming * fix: cleanup * fix: rebase * Update pkg/repository/v1/trigger.go Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * fix: skip workflow on cel eval failure * fix: zero value * fix: cel evaluator * fix: usage * fix: naming + type * fix: rm event filter from v0 defn * feat: tests + fix typing * fix: usage * fix: construct input * feat: always write events --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * fix: select existing partitions * feat: add prio to push event request * feat: priority from pushed events * fix: missed a spot * fix: write events even if they're not tied to any workflows * fix: revert cel event filtering * fix: couple more * fix: simplify * fix: gen api * fix: merge issues * feat: filter delete endpoint * fix: overwrite * fix: delete filter api wiring * fix: migration patch * chore: gen * fix: merge hell * Revert "Revert "Feat: Events in the OLAP Repo (#1633)" (#1706)" This reverts commitbf29269a27. * Feat: Events Frontend (#1678) * feat: add events tables * fix: tweak PK * feat: migration * feat: gen models * fix: add external id col + index * fix: uuid pk * fix: types * chore: gen * feat: add index * Feat: Write events into OLAP tables (#1634) * feat: query for event creation * feat: olap impl * feat: wire up the olap event write * feat: goroutine? * feat: start wiring up inserts to triggers * fix: no `RETURNING` * fix: hack * fix: inner join * feat: attempt 2 * fix: return errors * chore: lint * fix: diff * feat: add new partitions * fix: eof * fix: write external ids into table * chore: gen * fix: wiring * fix: event deduping * fix: insert in bulk * fix: bug * refactor: return type of trigger * fix: unnest ids * fix: unnest tenant ids * fix: run ids in bulk insert * feat: two bulk inserts, one tx * fix: cruft * fix: bug * Update pkg/repository/v1/olap.go Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * fix: rework to avoid n^2 loop * fix: transaction timeout * fix: lint * fix: use error * fix: rm penultimate version * fix: rm penultimate test part ii * Feat: CEL-based filtering of events (#1676) * feat: add optional expression to workflow trigger event ref * feat: proto field for expression * feat: write and parse the expression * feat: wire up through put workflow ver request * feat: query * fix: naming * fix: cleanup * fix: rebase * Update pkg/repository/v1/trigger.go Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * fix: skip workflow on cel eval failure * fix: zero value * fix: cel evaluator * fix: usage * fix: naming + type * fix: rm event filter from v0 defn * feat: tests + fix typing * fix: usage * fix: construct input * feat: always write events --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * fix: select existing partitions * feat: add prio to push event request * feat: priority from pushed events * fix: missed a spot * fix: write events even if they're not tied to any workflows * fix: revert cel event filtering * fix: couple more * fix: simplify * feat: initial API work * chore: gen ts * feat: fe skeleton * feat: wiring up skeleton data * feat: hook * fix: bugs * fix: lint on gen * fix: couple more * feat: wire up counts * feat: initial events cols + styling * feat: layout * feat: styling * fix: cleanup * feat: use external ids on the FE * fix: separate openapi spec for new events route * fix: required param * fix: update queries and api * feat: event detail * fix: page * fix: rebase * tweak: table * feat: add events page to sidebar * feat: modify queries to allow fetching by triggering event * feat: add triggering event id to api * chore: lint * feat: wire up events api * fix: rm log * fix: gen * feat: wire up status counts * fix: rm time series * fix: rm state * fix: lint * fix: eof * chore: lint * feat: wire up filters * fix: lint * chore: api gen * feat: add events tables * fix: tweak PK * feat: migration * feat: gen models * fix: add external id col + index * fix: uuid pk * fix: types * chore: gen * feat: add index * Feat: Write events into OLAP tables (#1634) * feat: query for event creation * feat: olap impl * feat: wire up the olap event write * feat: goroutine? * feat: start wiring up inserts to triggers * fix: no `RETURNING` * fix: hack * fix: inner join * feat: attempt 2 * fix: return errors * chore: lint * fix: diff * feat: add new partitions * fix: eof * fix: write external ids into table * chore: gen * fix: wiring * fix: event deduping * fix: insert in bulk * fix: bug * refactor: return type of trigger * fix: unnest ids * fix: unnest tenant ids * fix: run ids in bulk insert * feat: two bulk inserts, one tx * fix: cruft * fix: bug * Update pkg/repository/v1/olap.go Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * fix: rework to avoid n^2 loop * fix: transaction timeout * fix: lint * fix: use error * fix: rm penultimate version * fix: rm penultimate test part ii * Feat: CEL-based filtering of events (#1676) * feat: add optional expression to workflow trigger event ref * feat: proto field for expression * feat: write and parse the expression * feat: wire up through put workflow ver request * feat: query * fix: naming * fix: cleanup * fix: rebase * Update pkg/repository/v1/trigger.go Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * fix: skip workflow on cel eval failure * fix: zero value * fix: cel evaluator * fix: usage * fix: naming + type * fix: rm event filter from v0 defn * feat: tests + fix typing * fix: usage * fix: construct input * feat: always write events --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * fix: select existing partitions * feat: add prio to push event request * feat: priority from pushed events * fix: missed a spot * fix: write events even if they're not tied to any workflows * fix: revert cel event filtering * fix: couple more * fix: simplify * fix: gen api * fix: gen * fix: more merge issues * chore: gen * fix: lockfile * fix: merge issues * chore: gen again * fix: rm unused fields from openapi spec --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * fix: migration ver * fix: insert trigger, event types * fix: bunch o refs * fix: migration * fix: queries * fix: finish wiring up inserts * fix: misc bugs * fix: fe filtering * chore: gen * fix: migration ver * chore: lint * fix: missed a couple * fix: whitespace * fix: formatting, gen * fix: uuid id for filters * feat: rest api for filters * fix: tag * feat: add event id, payload, and metadata to cel env * fix: rename resource hint to scope * chore: gen * fix: same conflict, different day * feat: send filter payload with input * fix: lint * fix: invert filter to "positive" case * fix: naming * feat: send payloads back with trigger data * fix: add case to check if no filters were found * fix: send additional meta back on bulk push * fix: cleanup from self review * fix: more small cleanup * feat: initial pr feedback * feat: validation * fix: populator * Feat: SDK changes for event filtering (#1677) * feat: query for event creation * feat: wire up the olap event write * feat: goroutine? * feat: start wiring up inserts to triggers * fix: no `RETURNING` * fix: hack * fix: inner join * feat: attempt 2 * fix: return errors * fix: diff * feat: add new partitions * fix: write external ids into table * chore: gen * fix: wiring * fix: event deduping * fix: insert in bulk * fix: unnest ids * fix: run ids in bulk insert * feat: two bulk inserts, one tx * fix: rework to avoid n^2 loop * feat: proto field for expression * fix: rm event filter from v0 defn * chore: gen python * Revert "fix: select existing partitions" This reverts commit fefbdd5122b85c5d807c3dce3aed7d974f01a7d8. * fix: rebase hell * feat: prio * chore: docs * feat: gen ts * feat: ts wiring * feat: go * fix: prio test bug * chore: gen * fix: validation bug * feat: extend events client * feat: e2e test * chore: docs * fix: test * fix: unwind event filter * fix: rm should skip * chore: gen * chore: gen * chore: gen * feat: resource hints + more e2e tests * fix: use `cached_property` for id * fix: raises * fix: rm print cruft * feat: wiring + e2e test * chore: gen * feat: wire up python sdk * feat: static payload in test * fix: use test run id in payload * fix: longer sleeps * feat: more tests * feat: intermediate work * feat: add validator for filter payload * fix: rm cruft * fix: event example * fix: event example * fix: e2e tests * fix: finish cleaning up tests * fix: __hash__ method * fix: copilot comments! * fix: apply namespaces to workflow names in a couple of the feature clients * fix: handle case where namespace is falsey * refactor: factor out * fix: all the other refs to namespaced things * fix: put `apply_namespace` on the client config * fix: namespace overrides * fix: implicitly use function name for hatchet task * fix: name * fix: refs * chore: ver * fix: durable tests * feat: add a changelog! * fix: changelog format * feat: start wiring up filters in ts * feat: scopes on event push * feat: wire up triggering event id filter * feat: initial ts e2e test work * fix: run the test * fix: drive-by bug in AI-gen slop * fix: test naming * feat: more test cleanup * fix: api * fix: ns override * fix: test + API * fix: lint * fix: cruft * chore: gen * fix: dont run in ci? * fix: wire up Go SDK * fix: compiler * fix: examples * fix: event snippet, I think * chore: docs * Revert "fix: examples" This reverts commitcbf33d6299. * Revert "fix: compiler" This reverts commit52336abeb2. * fix: add push opt funcs for prio and scope * chore: ver --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
180 lines
5.4 KiB
TOML
180 lines
5.4 KiB
TOML
[tool.poetry]
|
|
name = "hatchet-sdk"
|
|
version = "1.10.0"
|
|
description = ""
|
|
authors = ["Alexander Belanger <alexander@hatchet.run>"]
|
|
readme = "README.md"
|
|
include = ["hatchet_sdk/py.typed"]
|
|
license = "MIT"
|
|
|
|
[tool.poetry.dependencies]
|
|
python = "^3.10"
|
|
grpcio = [
|
|
{ version = ">=1.64.1, !=1.68.*", markers = "python_version < '3.13'" },
|
|
{ version = ">=1.69.0", markers = "python_version >= '3.13'" },
|
|
]
|
|
grpcio-tools = [
|
|
{ version = ">=1.64.1, !=1.68.*", markers = "python_version < '3.13'" },
|
|
{ version = ">=1.69.0", markers = "python_version >= '3.13'" },
|
|
]
|
|
protobuf = "^5.29.1"
|
|
pydantic = "^2.6.3"
|
|
python-dateutil = "^2.9.0.post0"
|
|
urllib3 = ">=1.26.20"
|
|
aiostream = "^0.5.2"
|
|
aiohttp = "^3.10.5"
|
|
aiohttp-retry = "^2.8.3"
|
|
tenacity = ">=8.4.1"
|
|
cel-python = "^0.2.0"
|
|
opentelemetry-api = { version = "^1.28.0", optional = true }
|
|
opentelemetry-sdk = { version = "^1.28.0", optional = true }
|
|
opentelemetry-instrumentation = { version = ">=0.49b0", optional = true }
|
|
opentelemetry-distro = { version = ">=0.49b0", optional = true }
|
|
opentelemetry-exporter-otlp = { version = "^1.28.0", optional = true }
|
|
opentelemetry-exporter-otlp-proto-http = { version = "^1.28.0", optional = true }
|
|
prometheus-client = "^0.21.1"
|
|
pydantic-settings = "^2.7.1"
|
|
|
|
[tool.poetry.group.lint.dependencies]
|
|
mypy = "^1.14.0"
|
|
types-protobuf = "^5.28.3.20241030"
|
|
black = "^24.10.0"
|
|
isort = "^5.13.2"
|
|
types-psutil = "^6.1.0.20241221"
|
|
ruff = "^0.9.7"
|
|
types-requests = "^2.32.0.20241016"
|
|
psutil = "^6.0.0"
|
|
grpc-stubs = "^1.53.0.5"
|
|
|
|
[tool.poetry.group.test.dependencies]
|
|
pytest = "^8.3.5"
|
|
pytest-asyncio = "^0.25.3"
|
|
pytest-env = "^1.1.5"
|
|
pytest-retry = "^1.7.0"
|
|
psycopg = { extras = ["pool"], version = "^3.2.6" }
|
|
|
|
|
|
[tool.poetry.group.docs.dependencies]
|
|
mkdocs = "^1.6.1"
|
|
mkdocstrings = { extras = ["python"], version = "^0.29.1" }
|
|
pydoclint = "^0.6.6"
|
|
markdownify = "^1.1.0"
|
|
openai = "^1.75.0"
|
|
bs4 = "^0.0.2"
|
|
types-beautifulsoup4 = "^4.12.0.20250204"
|
|
|
|
[tool.poetry.extras]
|
|
otel = [
|
|
"opentelemetry-api",
|
|
"opentelemetry-sdk",
|
|
"opentelemetry-instrumentation",
|
|
"opentelemetry-distro",
|
|
"opentelemetry-exporter-otlp",
|
|
"opentelemetry-exporter-otlp-proto-http",
|
|
]
|
|
|
|
[build-system]
|
|
requires = ["poetry-core"]
|
|
build-backend = "poetry.core.masonry.api"
|
|
|
|
[tool.pytest.ini_options]
|
|
log_cli = true
|
|
env = ["HATCHET_CLIENT_WORKER_HEALTHCHECK_ENABLED=True"]
|
|
asyncio_mode = "auto"
|
|
asyncio_default_fixture_loop_scope = "session"
|
|
|
|
[tool.isort]
|
|
profile = "black"
|
|
known_third_party = [
|
|
"grpcio",
|
|
"grpcio_tools",
|
|
"loguru",
|
|
"protobuf",
|
|
"pydantic",
|
|
"python_dotenv",
|
|
"python_dateutil",
|
|
"pyyaml",
|
|
"urllib3",
|
|
]
|
|
extend_skip = ["hatchet_sdk/contracts/", "hatchet_sdk/v0/contracts/"]
|
|
|
|
[tool.black]
|
|
extend_exclude = "(hatchet_sdk/contracts/|hatchet_sdk/v0/contracts/|site)"
|
|
|
|
[tool.mypy]
|
|
files = ["."]
|
|
exclude = [
|
|
"hatchet_sdk/clients/rest/api/*",
|
|
"hatchet_sdk/clients/rest/models/*",
|
|
"hatchet_sdk/contracts",
|
|
"hatchet_sdk/clients/rest/api_client.py",
|
|
"hatchet_sdk/clients/rest/configuration.py",
|
|
"hatchet_sdk/clients/rest/exceptions.py",
|
|
"hatchet_sdk/clients/rest/rest.py",
|
|
"hatchet_sdk/v0/*",
|
|
"site/*",
|
|
]
|
|
strict = true
|
|
enable_error_code = [
|
|
"possibly-undefined",
|
|
"truthy-bool",
|
|
"redundant-expr",
|
|
"truthy-iterable",
|
|
]
|
|
|
|
[tool.ruff]
|
|
exclude = [
|
|
"hatchet_sdk/clients/rest/api/*",
|
|
"hatchet_sdk/clients/rest/models/*",
|
|
"hatchet_sdk/contracts",
|
|
"hatchet_sdk/clients/rest/api_client.py",
|
|
"hatchet_sdk/clients/rest/configuration.py",
|
|
"hatchet_sdk/clients/rest/exceptions.py",
|
|
"hatchet_sdk/clients/rest/rest.py",
|
|
"hatchet_sdk/v0/*",
|
|
"site/*",
|
|
]
|
|
target-version = "py310"
|
|
|
|
[tool.poetry.scripts]
|
|
|
|
api = "examples.api.api:main"
|
|
async = "examples.async.worker:main"
|
|
fanout = "examples.fanout.worker:main"
|
|
fanout_sync = "examples.fanout_sync.worker:main"
|
|
cancellation = "examples.cancellation.worker:main"
|
|
concurrency_limit = "examples.concurrency_limit.worker:main"
|
|
concurrency_limit_rr = "examples.concurrency_limit_rr.worker:main"
|
|
dag = "examples.dag.worker:main"
|
|
delayed = "examples.delayed.worker:main"
|
|
events = "examples.events.worker:main"
|
|
logger = "examples.logger.worker:main"
|
|
manual_trigger = "examples.manual_trigger.worker:main"
|
|
on_failure = "examples.on_failure.worker:main"
|
|
programatic_replay = "examples.programatic_replay.worker:main"
|
|
dynamic_rate_limit = "examples.rate_limit.dynamic:main"
|
|
rate_limit = "examples.rate_limit.worker:main"
|
|
simple = "examples.simple.worker:main"
|
|
timeout = "examples.timeout.worker:main"
|
|
blocked = "examples.blocked_async.worker:main"
|
|
existing_loop = "examples.worker_existing_loop.worker:main"
|
|
bulk_fanout = "examples.bulk_fanout.worker:main"
|
|
retries_with_backoff = "examples.retries_with_backoff.worker:main"
|
|
pydantic = "examples.pydantic.worker:main"
|
|
v2_simple = "examples.v2.simple.worker:main"
|
|
otel = "examples.opentelemetry_instrumentation.worker:main"
|
|
waits = "examples.waits.worker:main"
|
|
durable = "examples.durable.worker:main"
|
|
streaming = "examples.streaming.worker:main"
|
|
lifespans = "examples.lifespans.worker:main"
|
|
docs-gen = "docs.generator.generate:main"
|
|
|
|
[tool.pydoclint]
|
|
style = 'sphinx'
|
|
exclude = 'v0|clients/rest/*|contracts/*|.venv|site/*'
|
|
arg-type-hints-in-docstring = false # Automatically checked by mypy and mkdocs
|
|
check-return-types = false # Automatically checked by mypy and mkdocs
|
|
|
|
[tool.poetry.plugins."mkdocs.plugins"]
|
|
"markdown-export" = "docs.generator.markdown_export:MarkdownExportPlugin"
|