Skip to content

Commit 30a68b0

Browse files
authored
Merge branch 'main' into andystaples/add-replay-safe-logging
2 parents 95186e9 + 45233b5 commit 30a68b0

11 files changed

Lines changed: 456 additions & 262 deletions

File tree

CHANGELOG.md

Lines changed: 53 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22

33
All notable changes to this project will be documented in this file.
44

5-
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6-
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
5+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project
6+
adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

88
## Unreleased
99

@@ -34,15 +34,17 @@ ADDED
3434
package with `BlobPayloadStore` and `BlobPayloadStoreOptions`
3535
- Added `PayloadStore` abstract base class in
3636
`durabletask.payload` for custom storage backends
37-
- Added `durabletask.testing` module with `InMemoryOrchestrationBackend` for testing orchestrations without a sidecar process
37+
- Added `durabletask.testing` module with `InMemoryOrchestrationBackend` for testing orchestrations
38+
without a sidecar process
3839
- Added `AsyncTaskHubGrpcClient` for asyncio-based applications using `grpc.aio`
3940
- Added `DefaultAsyncClientInterceptorImpl` for async gRPC metadata interceptors
4041
- Added `get_async_grpc_channel` helper for creating async gRPC channels
4142
- Added orchestration restart client support
4243
- Added batch client actions for purge and query operations across orchestrations and entities
4344
- Added worker work item filtering support
4445
- Added new `work_item_filtering` sample
45-
- Improved distributed tracing support with full span coverage for orchestrations, activities, sub-orchestrations, timers, and events
46+
- Improved distributed tracing support with full span coverage for orchestrations, activities,
47+
sub-orchestrations, timers, and events
4648

4749
CHANGED
4850

@@ -115,7 +117,8 @@ FIXED:
115117

116118
## v0.4.1
117119

118-
- Fixed an issue where orchestrations would still throw non-determinism errors even when versioning logic should have prevented it
120+
- Fixed an issue where orchestrations would still throw non-determinism errors even when versioning
121+
logic should have prevented it
119122

120123
## v0.4.0
121124

@@ -126,7 +129,8 @@ FIXED:
126129

127130
ADDED
128131

129-
- Added `ConcurrencyOptions` class for fine-grained concurrency control with separate limits for activities and orchestrations. The thread pool worker count can also be configured.
132+
- Added `ConcurrencyOptions` class for fine-grained concurrency control with separate limits for
133+
activities and orchestrations. The thread pool worker count can also be configured.
130134

131135
FIXED
132136

@@ -136,15 +140,29 @@ FIXED
136140

137141
ADDED
138142

139-
- Added `set_custom_status` orchestrator API ([#31](https://github.com/microsoft/durabletask-python/pull/31)) - contributed by [@famarting](https://github.com/famarting)
140-
- Added `purge_orchestration` client API ([#34](https://github.com/microsoft/durabletask-python/pull/34)) - contributed by [@famarting](https://github.com/famarting)
141-
- Added new `durabletask-azuremanaged` package for use with the [Durable Task Scheduler](https://learn.microsoft.com/azure/azure-functions/durable/durable-task-scheduler/durable-task-scheduler) - by [@RyanLettieri](https://github.com/RyanLettieri)
143+
- Added `set_custom_status` orchestrator API
144+
([#31](https://github.com/microsoft/durabletask-python/pull/31)) - contributed by
145+
[@famarting](https://github.com/famarting)
146+
- Added `purge_orchestration` client API
147+
([#34](https://github.com/microsoft/durabletask-python/pull/34)) - contributed by
148+
[@famarting](https://github.com/famarting)
149+
- Added new `durabletask-azuremanaged` package for use with the [Durable Task
150+
Scheduler](https://learn.microsoft.com/azure/azure-functions/durable/durable-task-scheduler/durable-task-scheduler)
151+
- by [@RyanLettieri](https://github.com/RyanLettieri)
142152

143153
CHANGED
144154

145-
- Protos are compiled with gRPC 1.62.3 / protobuf 3.25.X instead of the latest release. This ensures compatibility with a wider range of grpcio versions for better compatibility with other packages / libraries ([#36](https://github.com/microsoft/durabletask-python/pull/36)) - by [@berndverst](https://github.com/berndverst)
146-
- Http and grpc protocols and their secure variants are stripped from the host name parameter if provided. Secure mode is enabled if the protocol provided is https or grpcs ([#38](https://github.com/microsoft/durabletask-python/pull/38) - by [@berndverst)(https://github.com/berndverst)
147-
- Improve ProtoGen by downloading proto file directly instead of using submodule ([#39](https://github.com/microsoft/durabletask-python/pull/39) - by [@berndverst](https://github.com/berndverst)
155+
- Protos are compiled with gRPC 1.62.3 / protobuf 3.25.X instead of the latest release. This ensures
156+
compatibility with a wider range of grpcio versions for better compatibility with other packages /
157+
libraries ([#36](https://github.com/microsoft/durabletask-python/pull/36)) - by
158+
[@berndverst](https://github.com/berndverst)
159+
- Http and grpc protocols and their secure variants are stripped from the host name parameter if
160+
provided. Secure mode is enabled if the protocol provided is https or grpcs
161+
([#38](https://github.com/microsoft/durabletask-python/pull/38)) - by
162+
[@berndverst](https://github.com/berndverst)
163+
- Improve ProtoGen by downloading proto file directly instead of using submodule
164+
([#39](https://github.com/microsoft/durabletask-python/pull/39) - by
165+
[@berndverst](https://github.com/berndverst)
148166

149167
CHANGED
150168

@@ -154,45 +172,59 @@ CHANGED
154172

155173
ADDED
156174

157-
- Add recursive flag in terminate_orchestration to support cascade terminate ([#27](https://github.com/microsoft/durabletask-python/pull/27)) - contributed by [@shivamkm07](https://github.com/shivamkm07)
175+
- Add recursive flag in terminate_orchestration to support cascade terminate
176+
([#27](https://github.com/microsoft/durabletask-python/pull/27)) - contributed by
177+
[@shivamkm07](https://github.com/shivamkm07)
158178

159179
## v0.1.0
160180

161181
ADDED
162182

163-
- Retry policies for activities and sub-orchestrations ([#11](https://github.com/microsoft/durabletask-python/pull/11)) - contributed by [@DeepanshuA](https://github.com/DeepanshuA)
183+
- Retry policies for activities and sub-orchestrations
184+
([#11](https://github.com/microsoft/durabletask-python/pull/11)) - contributed by
185+
[@DeepanshuA](https://github.com/DeepanshuA)
164186

165187
FIXED
166188

167-
- Fix try/except in orchestrator functions not being handled correctly ([#21](https://github.com/microsoft/durabletask-python/pull/21)) - by [@cgillum](https://github.com/cgillum)
168-
- Updated `durabletask-protobuf` submodule reference to latest distributed tracing commit - by [@cgillum](https://github.com/cgillum)
189+
- Fix try/except in orchestrator functions not being handled correctly
190+
([#21](https://github.com/microsoft/durabletask-python/pull/21)) - by
191+
[@cgillum](https://github.com/cgillum)
192+
- Updated `durabletask-protobuf` submodule reference to latest distributed tracing commit - by
193+
[@cgillum](https://github.com/cgillum)
169194

170195
## v0.1.0a5
171196

172197
ADDED
173198

174-
- Adds support for secure channels ([#18](https://github.com/microsoft/durabletask-python/pull/18)) - contributed by [@elena-kolevska](https://github.com/elena-kolevska)
199+
- Adds support for secure channels ([#18](https://github.com/microsoft/durabletask-python/pull/18))
200+
- contributed by [@elena-kolevska](https://github.com/elena-kolevska)
175201

176202
FIXED
177203

178-
- Fix zero argument values sent to activities as None ([#13](https://github.com/microsoft/durabletask-python/pull/13)) - contributed by [@DeepanshuA](https://github.com/DeepanshuA)
204+
- Fix zero argument values sent to activities as None
205+
([#13](https://github.com/microsoft/durabletask-python/pull/13)) - contributed by
206+
[@DeepanshuA](https://github.com/DeepanshuA)
179207

180208
## v0.1.0a3
181209

182210
ADDED
183211

184-
- Add gRPC metadata option ([#16](https://github.com/microsoft/durabletask-python/pull/16)) - contributed by [@DeepanshuA](https://github.com/DeepanshuA)
212+
- Add gRPC metadata option ([#16](https://github.com/microsoft/durabletask-python/pull/16)) -
213+
contributed by [@DeepanshuA](https://github.com/DeepanshuA)
185214

186215
CHANGED
187216

188-
- Removed Python 3.7 support due to EOL ([#14](https://github.com/microsoft/durabletask-python/pull/14)) - contributed by [@berndverst](https://github.com/berndverst)
217+
- Removed Python 3.7 support due to EOL
218+
([#14](https://github.com/microsoft/durabletask-python/pull/14)) - contributed by
219+
[@berndverst](https://github.com/berndverst)
189220

190221
## v0.1.0a2
191222

192223
ADDED
193224

194225
- Continue-as-new ([#9](https://github.com/microsoft/durabletask-python/pull/9))
195-
- Support for Python 3.7+ ([#10](https://github.com/microsoft/durabletask-python/pull/10)) - contributed by [@DeepanshuA](https://github.com/DeepanshuA)
226+
- Support for Python 3.7+ ([#10](https://github.com/microsoft/durabletask-python/pull/10)) -
227+
contributed by [@DeepanshuA](https://github.com/DeepanshuA)
196228

197229
## v0.1.0a1
198230

CONTRIBUTING.md

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,14 @@
22

33
This project welcomes contributions and suggestions. Most contributions require you to agree to a
44
Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us
5-
the rights to use your contribution. For details, visit https://cla.opensource.microsoft.com.
5+
the rights to use your contribution. For details, visit
6+
[https://cla.opensource.microsoft.com](https://cla.opensource.microsoft.com).
67

7-
When you submit a pull request, a CLA bot will automatically determine whether you need to provide
8-
a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions
8+
When you submit a pull request, a CLA bot will automatically determine whether you need to provide a
9+
CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions
910
provided by the bot. You will only need to do this once across all repos using our CLA.
1011

11-
This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).
12-
For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or
13-
contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.
12+
This project has adopted the [Microsoft Open Source Code of
13+
Conduct](https://opensource.microsoft.com/codeofconduct/). For more information see the [Code of
14+
Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact
15+
[opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.

README.md

Lines changed: 25 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,47 @@
11
# Durable Task SDK for Python
22

3-
[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)
4-
[![Build Validation](https://github.com/microsoft/durabletask-python/actions/workflows/pr-validation.yml/badge.svg)](https://github.com/microsoft/durabletask-python/actions/workflows/pr-validation.yml)
3+
[![License:
4+
MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)
5+
[![Build
6+
Validation](https://github.com/microsoft/durabletask-python/actions/workflows/pr-validation.yml/badge.svg)](https://github.com/microsoft/durabletask-python/actions/workflows/pr-validation.yml)
57
[![PyPI version](https://badge.fury.io/py/durabletask.svg)](https://badge.fury.io/py/durabletask)
68

7-
This repo contains a Python SDK for use with the [Azure Durable Task Scheduler](https://github.com/Azure/Durable-Task-Scheduler). With this SDK, you can define, schedule, and manage durable orchestrations using ordinary Python code.
9+
This repo contains a Python SDK for use with the [Azure Durable Task
10+
Scheduler](https://github.com/Azure/Durable-Task-Scheduler). With this SDK, you can define,
11+
schedule, and manage durable orchestrations using ordinary Python code.
812

9-
> Note that this SDK is **not** currently compatible with [Azure Durable Functions](https://learn.microsoft.com/azure/azure-functions/durable/durable-functions-overview). If you are looking for a Python SDK for Azure Durable Functions, please see [this repo](https://github.com/Azure/azure-functions-durable-python).
13+
> Note that this SDK is **not** currently compatible with [Azure Durable
14+
Functions](https://learn.microsoft.com/azure/azure-functions/durable/durable-functions-overview). If
15+
you are looking for a Python SDK for Azure Durable Functions, please see [this
16+
repo](https://github.com/Azure/azure-functions-durable-python).
17+
18+
## References
1019

11-
# References
1220
- [Supported Patterns](./docs/supported-patterns.md)
1321
- [Available Features](./docs/features.md)
1422
- [Getting Started](./docs/getting-started.md)
15-
- [Development Guide](./docs/development.md)
23+
- [Development Guide](./docs/development.md)
1624
- [Contributing Guide](./CONTRIBUTING.md)
1725

1826
## Optional Features
1927

2028
### Large Payload Externalization
2129

22-
Install the `azure-blob-payloads` extra to automatically offload
23-
oversized orchestration payloads to Azure Blob Storage:
30+
Install the `azure-blob-payloads` extra to automatically offload oversized orchestration payloads to
31+
Azure Blob Storage:
2432

2533
```bash
2634
pip install durabletask[azure-blob-payloads]
2735
```
2836

29-
See the [feature documentation](./docs/features.md#large-payload-externalization)
30-
and the [example](./examples/large_payload/) for usage details.
37+
See the [feature documentation](./docs/features.md#large-payload-externalization) and the
38+
[example](./examples/large_payload/) for usage details.
3139

3240
## Trademarks
33-
This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft
34-
trademarks or logos is subject to and must follow
35-
[Microsoft's Trademark & Brand Guidelines](https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general).
36-
Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.
37-
Any use of third-party trademarks or logos are subject to those third-party's policies.
41+
42+
This project may contain trademarks or logos for projects, products, or services. Authorized use of
43+
Microsoft trademarks or logos is subject to and must follow [Microsoft's Trademark & Brand
44+
Guidelines](https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general).
45+
Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion
46+
or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those
47+
third-party's policies.

SECURITY.md

Lines changed: 35 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,60 @@
1+
# Security
2+
13
<!-- BEGIN MICROSOFT SECURITY.MD V0.0.8 BLOCK -->
24

3-
## Security
5+
## Overview
46

5-
Microsoft takes the security of our software products and services seriously, which includes all source code repositories managed through our GitHub organizations, which include [Microsoft](https://github.com/microsoft), [Azure](https://github.com/Azure), [DotNet](https://github.com/dotnet), [AspNet](https://github.com/aspnet), [Xamarin](https://github.com/xamarin), and [our GitHub organizations](https://opensource.microsoft.com/).
7+
Microsoft takes the security of our software products and services seriously, which includes all
8+
source code repositories managed through our GitHub organizations, which include
9+
[Microsoft](https://github.com/microsoft), [Azure](https://github.com/Azure),
10+
[DotNet](https://github.com/dotnet), [AspNet](https://github.com/aspnet),
11+
[Xamarin](https://github.com/xamarin), and [our GitHub
12+
organizations](https://opensource.microsoft.com/).
613

7-
If you believe you have found a security vulnerability in any Microsoft-owned repository that meets [Microsoft's definition of a security vulnerability](https://aka.ms/opensource/security/definition), please report it to us as described below.
14+
If you believe you have found a security vulnerability in any Microsoft-owned repository that meets
15+
[Microsoft's definition of a security vulnerability](https://aka.ms/opensource/security/definition),
16+
please report it to us as described below.
817

918
## Reporting Security Issues
1019

1120
**Please do not report security vulnerabilities through public GitHub issues.**
1221

13-
Instead, please report them to the Microsoft Security Response Center (MSRC) at [https://msrc.microsoft.com/create-report](https://aka.ms/opensource/security/create-report).
22+
Instead, please report them to the Microsoft Security Response Center (MSRC) at
23+
[https://msrc.microsoft.com/create-report](https://aka.ms/opensource/security/create-report).
1424

15-
If you prefer to submit without logging in, send email to [secure@microsoft.com](mailto:secure@microsoft.com). If possible, encrypt your message with our PGP key; please download it from the [Microsoft Security Response Center PGP Key page](https://aka.ms/opensource/security/pgpkey).
25+
If you prefer to submit without logging in, send email to
26+
[secure@microsoft.com](mailto:secure@microsoft.com). If possible, encrypt your message with our PGP
27+
key; please download it from the [Microsoft Security Response Center PGP Key
28+
page](https://aka.ms/opensource/security/pgpkey).
1629

17-
You should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we received your original message. Additional information can be found at [microsoft.com/msrc](https://aka.ms/opensource/security/msrc).
30+
You should receive a response within 24 hours. If for some reason you do not, please follow up via
31+
email to ensure we received your original message. Additional information can be found at
32+
[microsoft.com/msrc](https://aka.ms/opensource/security/msrc).
1833

19-
Please include the requested information listed below (as much as you can provide) to help us better understand the nature and scope of the possible issue:
34+
Please include the requested information listed below (as much as you can provide) to help us better
35+
understand the nature and scope of the possible issue:
2036

21-
* Type of issue (e.g. buffer overflow, SQL injection, cross-site scripting, etc.)
22-
* Full paths of source file(s) related to the manifestation of the issue
23-
* The location of the affected source code (tag/branch/commit or direct URL)
24-
* Any special configuration required to reproduce the issue
25-
* Step-by-step instructions to reproduce the issue
26-
* Proof-of-concept or exploit code (if possible)
27-
* Impact of the issue, including how an attacker might exploit the issue
37+
* Type of issue (e.g. buffer overflow, SQL injection, cross-site scripting, etc.)
38+
* Full paths of source file(s) related to the manifestation of the issue
39+
* The location of the affected source code (tag/branch/commit or direct URL)
40+
* Any special configuration required to reproduce the issue
41+
* Step-by-step instructions to reproduce the issue
42+
* Proof-of-concept or exploit code (if possible)
43+
* Impact of the issue, including how an attacker might exploit the issue
2844

2945
This information will help us triage your report more quickly.
3046

31-
If you are reporting for a bug bounty, more complete reports can contribute to a higher bounty award. Please visit our [Microsoft Bug Bounty Program](https://aka.ms/opensource/security/bounty) page for more details about our active programs.
47+
If you are reporting for a bug bounty, more complete reports can contribute to a higher bounty
48+
award. Please visit our [Microsoft Bug Bounty Program](https://aka.ms/opensource/security/bounty)
49+
page for more details about our active programs.
3250

3351
## Preferred Languages
3452

3553
We prefer all communications to be in English.
3654

3755
## Policy
3856

39-
Microsoft follows the principle of [Coordinated Vulnerability Disclosure](https://aka.ms/opensource/security/cvd).
57+
Microsoft follows the principle of [Coordinated Vulnerability
58+
Disclosure](https://aka.ms/opensource/security/cvd).
4059

4160
<!-- END MICROSOFT SECURITY.MD BLOCK -->

0 commit comments

Comments
 (0)