Skip to content

Commit 4ff9dde

Browse files
committed
sdks: add idempotency_key to trigger workflow requests
1 parent 37fd674 commit 4ff9dde

16 files changed

Lines changed: 150 additions & 78 deletions

File tree

sdks/python/hatchet_sdk/contracts/v1/workflows_pb2.py

Lines changed: 40 additions & 40 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/workflows_pb2.pyi

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -119,16 +119,18 @@ class ReplayTasksResponse(_message.Message):
119119
def __init__(self, replayed_tasks: _Optional[_Iterable[str]] = ...) -> None: ...
120120

121121
class TriggerWorkflowRunRequest(_message.Message):
122-
__slots__ = ("workflow_name", "input", "additional_metadata", "priority")
122+
__slots__ = ("workflow_name", "input", "additional_metadata", "priority", "idempotency_key")
123123
WORKFLOW_NAME_FIELD_NUMBER: _ClassVar[int]
124124
INPUT_FIELD_NUMBER: _ClassVar[int]
125125
ADDITIONAL_METADATA_FIELD_NUMBER: _ClassVar[int]
126126
PRIORITY_FIELD_NUMBER: _ClassVar[int]
127+
IDEMPOTENCY_KEY_FIELD_NUMBER: _ClassVar[int]
127128
workflow_name: str
128129
input: bytes
129130
additional_metadata: bytes
130131
priority: int
131-
def __init__(self, workflow_name: _Optional[str] = ..., input: _Optional[bytes] = ..., additional_metadata: _Optional[bytes] = ..., priority: _Optional[int] = ...) -> None: ...
132+
idempotency_key: str
133+
def __init__(self, workflow_name: _Optional[str] = ..., input: _Optional[bytes] = ..., additional_metadata: _Optional[bytes] = ..., priority: _Optional[int] = ..., idempotency_key: _Optional[str] = ...) -> None: ...
132134

133135
class TriggerWorkflowRunResponse(_message.Message):
134136
__slots__ = ("external_id",)

sdks/python/hatchet_sdk/contracts/workflows_pb2.py

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

sdks/python/hatchet_sdk/contracts/workflows_pb2.pyi

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -275,7 +275,7 @@ class BulkTriggerWorkflowResponse(_message.Message):
275275
def __init__(self, workflow_run_ids: _Optional[_Iterable[str]] = ...) -> None: ...
276276

277277
class TriggerWorkflowRequest(_message.Message):
278-
__slots__ = ("name", "input", "parent_id", "parent_step_run_id", "child_index", "child_key", "additional_metadata", "desired_worker_id", "priority")
278+
__slots__ = ("name", "input", "parent_id", "parent_step_run_id", "child_index", "child_key", "additional_metadata", "desired_worker_id", "priority", "idempotency_key")
279279
NAME_FIELD_NUMBER: _ClassVar[int]
280280
INPUT_FIELD_NUMBER: _ClassVar[int]
281281
PARENT_ID_FIELD_NUMBER: _ClassVar[int]
@@ -285,6 +285,7 @@ class TriggerWorkflowRequest(_message.Message):
285285
ADDITIONAL_METADATA_FIELD_NUMBER: _ClassVar[int]
286286
DESIRED_WORKER_ID_FIELD_NUMBER: _ClassVar[int]
287287
PRIORITY_FIELD_NUMBER: _ClassVar[int]
288+
IDEMPOTENCY_KEY_FIELD_NUMBER: _ClassVar[int]
288289
name: str
289290
input: str
290291
parent_id: str
@@ -294,7 +295,8 @@ class TriggerWorkflowRequest(_message.Message):
294295
additional_metadata: str
295296
desired_worker_id: str
296297
priority: int
297-
def __init__(self, name: _Optional[str] = ..., input: _Optional[str] = ..., parent_id: _Optional[str] = ..., parent_step_run_id: _Optional[str] = ..., child_index: _Optional[int] = ..., child_key: _Optional[str] = ..., additional_metadata: _Optional[str] = ..., desired_worker_id: _Optional[str] = ..., priority: _Optional[int] = ...) -> None: ...
298+
idempotency_key: str
299+
def __init__(self, name: _Optional[str] = ..., input: _Optional[str] = ..., parent_id: _Optional[str] = ..., parent_step_run_id: _Optional[str] = ..., child_index: _Optional[int] = ..., child_key: _Optional[str] = ..., additional_metadata: _Optional[str] = ..., desired_worker_id: _Optional[str] = ..., priority: _Optional[int] = ..., idempotency_key: _Optional[str] = ...) -> None: ...
298300

299301
class TriggerWorkflowResponse(_message.Message):
300302
__slots__ = ("workflow_run_id",)

sdks/typescript/generate-protoc.sh

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
#!/usr/bin/env bash
2+
3+
set -euo pipefail
4+
15
# Directory to write generated code to (.js and .d.ts files)
26

37
OUT_DIR="./src/protoc"
@@ -8,12 +12,22 @@ else
812
IN_DIR="../../api-contracts"
913
fi
1014

11-
# Generate code
12-
./node_modules/.bin/grpc_tools_node_protoc \
15+
# Generate code.
16+
# Prefer system `protoc` (available in Nix environments) over `grpc-tools`' bundled protoc.
17+
PROTOC_BIN="${PROTOC_BIN:-}"
18+
if [ -z "$PROTOC_BIN" ]; then
19+
if command -v protoc >/dev/null 2>&1; then
20+
PROTOC_BIN="protoc"
21+
else
22+
PROTOC_BIN="./node_modules/.bin/grpc_tools_node_protoc"
23+
fi
24+
fi
25+
26+
"$PROTOC_BIN" \
1327
--plugin=protoc-gen-ts_proto=./node_modules/.bin/protoc-gen-ts_proto \
14-
--ts_proto_out=$OUT_DIR \
28+
--ts_proto_out="$OUT_DIR" \
1529
--ts_proto_opt=outputServices=nice-grpc,outputServices=generic-definitions,useExactTypes=false \
16-
--proto_path=$IN_DIR \
17-
$IN_DIR/**/*.proto
30+
--proto_path="$IN_DIR" \
31+
$(find "$IN_DIR" -type f -name '*.proto' -print)
1832

1933
pnpm lint:fix

sdks/typescript/src/clients/admin/admin-client.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ export type WorkflowRun<T = object> = {
4242
parentStepRunId?: string | undefined;
4343
childIndex?: number | undefined;
4444
childKey?: string | undefined;
45+
idempotencyKey?: string | undefined;
4546
additionalMetadata?: Record<string, string> | undefined;
4647
};
4748
};
@@ -153,6 +154,7 @@ export class AdminClient {
153154
parentStepRunId?: string | undefined;
154155
childIndex?: number | undefined;
155156
childKey?: string | undefined;
157+
idempotencyKey?: string | undefined;
156158
additionalMetadata?: Record<string, string> | undefined;
157159
}
158160
) {
@@ -175,6 +177,7 @@ export class AdminClient {
175177
parentStepRunId?: string | undefined;
176178
childIndex?: number | undefined;
177179
childKey?: string | undefined;
180+
idempotencyKey?: string | undefined;
178181
additionalMetadata?: Record<string, string> | undefined;
179182
desiredWorkerId?: string | undefined;
180183
priority?: Priority;
@@ -215,6 +218,7 @@ export class AdminClient {
215218
parentStepRunId?: string | undefined;
216219
childIndex?: number | undefined;
217220
childKey?: string | undefined;
221+
idempotencyKey?: string | undefined;
218222
additionalMetadata?: Record<string, string> | undefined;
219223
desiredWorkerId?: string | undefined;
220224
priority?: Priority;

sdks/typescript/src/protoc/dispatcher/dispatcher.ts

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

sdks/typescript/src/protoc/events/events.ts

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

sdks/typescript/src/protoc/google/protobuf/timestamp.ts

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

sdks/typescript/src/protoc/v1/dispatcher.ts

Lines changed: 1 addition & 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)