Skip to content

Commit 5cf68f6

Browse files
committed
fix: restore shared trigger idempotency contract
1 parent b56b701 commit 5cf68f6

6 files changed

Lines changed: 82 additions & 40 deletions

File tree

api-contracts/v1/shared/trigger.proto

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,4 +74,7 @@ message TriggerWorkflowRequest {
7474

7575
// (optional) the desired worker labels for the workflow run, which will be used to determine which workers can pick up the workflow's tasks. if not set, defaults to an empty set of labels, which means any worker can pick up the tasks.
7676
map<string, DesiredWorkerLabels> desired_worker_labels = 10;
77+
78+
// (optional) idempotency key for deduplicating workflow runs
79+
optional string idempotency_key = 11;
7780
}

internal/services/shared/proto/v1/trigger.pb.go

Lines changed: 44 additions & 31 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pkg/repository/idempotency_trigger_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ func setupRepositoryWithTTL(t *testing.T, pool *pgxpool.Pool, ttl time.Duration,
3434

3535
repo, cleanup := NewRepository(
3636
pool,
37+
nil,
3738
&logger,
3839
0,
3940
24*time.Hour,

sdks/python/hatchet_sdk/contracts/v1/shared/trigger_pb2.py

Lines changed: 6 additions & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

sdks/python/hatchet_sdk/contracts/v1/shared/trigger_pb2.pyi

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ class DesiredWorkerLabels(_message.Message):
3737
def __init__(self, str_value: _Optional[str] = ..., int_value: _Optional[int] = ..., required: bool = ..., comparator: _Optional[_Union[WorkerLabelComparator, str]] = ..., weight: _Optional[int] = ...) -> None: ...
3838

3939
class TriggerWorkflowRequest(_message.Message):
40-
__slots__ = ("name", "input", "parent_id", "parent_task_run_external_id", "child_index", "child_key", "additional_metadata", "desired_worker_id", "priority", "desired_worker_labels")
40+
__slots__ = ("name", "input", "parent_id", "parent_task_run_external_id", "child_index", "child_key", "additional_metadata", "desired_worker_id", "priority", "desired_worker_labels", "idempotency_key")
4141
class DesiredWorkerLabelsEntry(_message.Message):
4242
__slots__ = ("key", "value")
4343
KEY_FIELD_NUMBER: _ClassVar[int]
@@ -55,6 +55,7 @@ class TriggerWorkflowRequest(_message.Message):
5555
DESIRED_WORKER_ID_FIELD_NUMBER: _ClassVar[int]
5656
PRIORITY_FIELD_NUMBER: _ClassVar[int]
5757
DESIRED_WORKER_LABELS_FIELD_NUMBER: _ClassVar[int]
58+
IDEMPOTENCY_KEY_FIELD_NUMBER: _ClassVar[int]
5859
name: str
5960
input: str
6061
parent_id: str
@@ -65,4 +66,5 @@ class TriggerWorkflowRequest(_message.Message):
6566
desired_worker_id: str
6667
priority: int
6768
desired_worker_labels: _containers.MessageMap[str, DesiredWorkerLabels]
68-
def __init__(self, name: _Optional[str] = ..., input: _Optional[str] = ..., parent_id: _Optional[str] = ..., parent_task_run_external_id: _Optional[str] = ..., child_index: _Optional[int] = ..., child_key: _Optional[str] = ..., additional_metadata: _Optional[str] = ..., desired_worker_id: _Optional[str] = ..., priority: _Optional[int] = ..., desired_worker_labels: _Optional[_Mapping[str, DesiredWorkerLabels]] = ...) -> None: ...
69+
idempotency_key: str
70+
def __init__(self, name: _Optional[str] = ..., input: _Optional[str] = ..., parent_id: _Optional[str] = ..., parent_task_run_external_id: _Optional[str] = ..., child_index: _Optional[int] = ..., child_key: _Optional[str] = ..., additional_metadata: _Optional[str] = ..., desired_worker_id: _Optional[str] = ..., priority: _Optional[int] = ..., desired_worker_labels: _Optional[_Mapping[str, DesiredWorkerLabels]] = ..., idempotency_key: _Optional[str] = ...) -> None: ...

sdks/typescript/src/protoc/v1/shared/trigger.ts

Lines changed: 24 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)