dapr v1.15.0 版本更新介绍
发布日期: 2025-02-27
版本号: v1.15.0
Dapr 1.15版本正式发布,主要更新包括以下内容:核心功能方面,Dapr工作流正式稳定,支持长时运行的状态化应用,并优化了性能与动态扩缩容能力;Actor运行时引擎经过重构,提升了大规模场景下的可靠性,并为未来扩展奠定基础;调度服务(Scheduler)进入稳定阶段,默认接管Actor提醒功能,旧版提醒数据将自动迁移。新增对话API(Alpha),简化与多种大语言模型(如OpenAI、AWS Bedrock等)的交互,支持提示缓存和PII数据脱敏。各语言SDK均有显著改进:.NET SDK新增任务API、流式发布订阅及支持.NET 9;Python SDK加入流式订阅和Actor模拟测试,移除Python 3.8支持;Java SDK集成Spring Boot并强化测试工具;Go SDK扩展对话API及工作流管理功能;Rust SDK新增对话API支持。组件方面新增SFTP绑定和对话组件,AWS密钥管理器升级至Beta。Kubernetes改进包括调度服务RBAC权限优化和生产环境配置建议。升级时需注意:调度服务升级将清空旧数据,建议提前备份;降级需手动清理调度服务Pod。破坏性变更涉及调度服务数据迁移、.NET配置键名大小写处理调整及Java SDK放弃Spring Boot 2.x支持。部分功能如工作流客户端方法、HTTP参数将被弃用,建议用户查阅文档适配。
更新内容 (中文)
Dapr 1.15
我们很高兴宣布 Dapr 1.15 版本发布!
感谢各位的耐心等待,同时也感谢所有新老贡献者帮助实现本次发布。
如果您是 Dapr 的新用户,请访问入门指南并熟悉 Dapr。
文档已更新本次发布的所有新功能和变更。要开始使用本版本引入的新功能,请前往概念和应用开发章节。
请仔细阅读破坏性变更。如果遇到任何问题,请在 Discord 上报告。以下核心维护者将为您提供帮助:@joshvanl, @yaron2, @cassie1coyle
。
注意:本版本包含部分破坏性变更。
有关升级到 Dapr 1.15 版本的说明,请参阅此章节。
致谢
感谢所有促成此次发布的贡献者!
@adrianhr91, @alicejgibbons, @antontroshin, @aqeelat, @arslanmusta, @artur-ciocanu, @arturotrenard, @artursouza, @bhagya05, @cicoyle, @daixiang0, @diegodocs, @divzi-p, @Druid-of-Luhn, @elena-kolevska, @emsearcy, @evhen14, @famarting, @filintod, @GowthamHN, @hhunter-ms, @humandigital-ruud, @ItalyPaleAle, @Jeroen-VdB, @jev-e, @JoshVanL, @jseguillon, @LeonMatthesKDAB, @lor1113, @luigirende, @m3nax, @marcduiker, @mikeee, @MregXN, @msfussell, @olitomlinson, @passuied, @paule96, @paulyuk, @qustavo, @RafaelJCamara, @rochabr, @salaboy, @shubham1172, @Shubhdeep02, @sicoyle, @siri-varma, @SpiffyEight77, @Taction, @ThomasVitale, @tomhreb, @vil02, @WhitWaldo, @yaron2, @ytimocin, @znd4
特别感谢 Rob J - 您知道我们说的是您!
亮点
以下是 v1.15 版本的亮点功能:
Dapr 工作流(稳定版)
Dapr 工作流通过持久化执行简化了长时运行的有状态应用开发。您可以通过快速入门示例体验 Dapr 工作流。编写和运行工作流的功能现已稳定,包括 Dapr 运行时以及 .NET、Java、Python、Go 和 JavaScript SDK。
工作流运行时引擎进行了重大重构,实现了显著的性能和可扩展性提升,同时具备在超大规模下运行关键任务应用所需的可靠性和稳定性。工作流现在支持从 0 到多个副本动态伸缩,同时保持运行时任务的持久性。
Dapr Actors
Actor 运行时引擎进行了实现层面的重构。虽然 Actor API 表面没有变更,但此次重构显著提升了大规模和动态伸缩环境下处理 Actor 的可靠性。这项工作也为现在稳定的工作流引擎实现动态化和持久化奠定了基础。
新的 Actor 运行时实现为未来扩展新的高需求 Actor API 或面向应用和工作流之外的新 Actor 目标提供了可能。
调度器服务(稳定版)
调度器服务是用于调度作业的控制平面服务,可在自托管模式或 Kubernetes 上运行。使用 Dapr CLI 安装时会部署该服务,负责管理定时作业。调度器服务现已稳定。
- 注意:在 Dapr v1.15 之前,Actor 提醒默认通过 Placement 服务运行。v1.15 默认将
SchedulerReminders
功能标志设为 true,所有新创建的 Actor 提醒都将通过调度器服务运行。部署 Dapr v1.15 时,现有 Actor 提醒会从 Placement 服务一次性迁移到调度器服务(每个 Actor 类型各迁移一次)。您可以通过在 Actor 类型的应用配置文件中将SchedulerReminders
标志设为false
来阻止迁移。详见调度器 Actor 提醒
对话 API(Alpha)
新的对话 API(Alpha)降低了与大规模大型语言模型(LLM)交互的复杂度,提供了与 LLM 供应商交互的一致性 API。通过对话 API,您可以:
- 向 Anthropic、AWS Bedrock、Hugging Face、Mistral、OpenAI 和 DeepSeek 等 LLM 发送提示和接收响应
- 启用关键性能和安防功能,包括提示缓存以减少调用次数和PII 脱敏来清理 PII 数据
Go、.NET 和 Rust SDK 已在本版本中实现对话 API。与所有 API 一样,Dapr 通过为 LLM 交互发布指标来提供可观测性。
详细了解对话 API,或尝试 .NET 或 Go 快速入门。
SDK 改进
.NET SDK
.NET SDK 新增对作业、对话和流式发布/订阅 API 的支持。
- 支持面向 .NET 9 的服务。
Python SDK
Python SDK 新增对流式发布/订阅 API 和对话 API 的支持。
- 新增用于单元测试的Mock Actor。
- Dapr Client 工作流函数已弃用,推荐使用 DaprWorkflowClient。(待定 需指向文档/示例)
wait_for_orchestration_start
和wait_for_orchestration_completion
的默认超时从 60 秒改为无超时- 移除对 Python 3.8 的支持,新增支持 Python 3.13。
Java SDK
Java SDK 新增 Spring Boot 集成,包括用于与 Dapr API 交互的 Spring Boot Starter 和使用 Testcontainers 的测试能力。Spring Boot 集成现支持:
- DaprClient 和 DaprWorkflowClient Bean 注入
- 使用 Dapr 状态存储 + 绑定实现 Spring Data CrudRepository 支持
- 使用 Dapr PubSub API 实现 Spring Messaging 支持
- Dapr 工作流支持,自动注册工作流和活动,支持 Bean 注入
- 提供 DaprContainer 和 PlacementServiceContainer 的 Testcontainers 集成
Javascript SDK
JavaScript SDK 新增对工作流 API 的 Pause、Resume 和 SetStatus 方法支持。正在改进 JavaScript SDK 文档。
Go SDK
- Go SDK 新增对对话 API 的支持。
- 订阅的 Dead Letter Topic 支持现已可用。
- 使用该 SDK 编写和管理工作流的功能已“稳定”。
- 新增重试策略。
- 可为工作流设置自定义状态。
- 支持清除选项。
- 现可应用 ID 重用策略。
- 流式订阅现会在未知/不可用的 gRPC 连接状态时自动重连。
Rust SDK(Alpha)
Rust SDK 新增对话 API 支持。其他领域正在进行重构以实现 Beta/稳定状态。
CLI 和环境变量
- 将密钥作为环境变量注入到可能需要组件等的 Dapr 边车
- 多应用运行新增 Kubernetes 的
containerImagePullPolicy
设置
组件
新增组件
新增以下组件:
组件改进
- AWS 密钥管理器升级至 Beta 状态
- Azure Eventhubs 绑定现可读取所有消息属性
- Pulsar 发布/订阅新增
receiverQueueSize
参数
Kubernetes 改进
- 调度器服务 RBAC
ClusterRole
新增规则,授予对namespaces
资源的只读访问权限,允许["get", "list", "watch"]
操作。 - 改进生产环境运行 Placement 服务的建议,以更好处理 Actor 故障。
本版本修复的问题列表
Dapr 运行时
- 新增 服务调用弹性的状态过滤器 6683
- 修复 事件发布的 W3C 关联 7275
- 新增 api: 新增对话 API 7858
- 修复 调用 Job 调度 API 时抛出异常 7897
- 新增 Placement Service 现可配置 Actor 服务故障检测(文档) 7955
- 新增 Dapr Actor 按 FIFO 顺序处理 7956
- 新增 边车注入器选项新增
securityContext/runAsGroup
和securityContext/runAsUser
7958 - 破坏性变更 调度器现默认用于 Actor 提醒。需从现有状态存储支持的提醒系统迁移。8045
- 修复 更新 Dapr Chart image.name README 为当前值 8051
- 修复 更新
app.kubernetes.io/managed-by
的默认值 8052 - 修复 在 volumeClaimTemplates 中添加 apiVersion 和 kind 8067
- 修复 运行时在启动时输出指标规范的内存地址 8169
- 新增 启用 LLM 输入/输出的 PII 脱敏 8189
- 修复 将 Helm priority class 声明移至
dapr_placement_statefulset.yaml
清单的正确位置 8205 - 新增 通过 Dapr Pod 注解配置 dapr grpc 端口 8227
- 新增 注册 sftp 组件 8263
- 修复 在本地暴露调度器的 localhost 8412
- 新增 从密钥注入 Daprd 环境变量 8180
- 修复 修复 Placement Service 在流挂起时的传播失败问题 8326
- 新增 将 raft 和 Placement Service 领导状态暴露为指标(
dapr_placement_leader_status
和dapr_placement_raft_leader_status
)8245 - 修复 修复 Scheduler 的 readOnlyRootFilesystem: true 8465
- 新增 Otel 追踪支持为令牌认证添加头信息 8143
Dapr CLI
- 更新 将 CLI 更新至运行时 1.14 和 Go 1.22 1440
- 修复 修复自托管模式下 schedulerhostaddress 的填充 1475
- 更新 固定 Go 版本为 1.23.5 1477
组件
- 修复 订阅 Azure Events 发布/订阅时缺少属性和系统属性 2530
- 新增 SFTP 绑定 3206
- 修复 致命错误:解锁未锁定的互斥锁 3443
- 修复 snssqs: 修复消费者饥饿问题 3479
- 修复 Windows 机器上 Dapr 1.13.5 版本出现错误 net/http: invalid header field value for "__key" 3503
- 修复 EventHub 组件传递乱序消息(发布/订阅、绑定)3568
- 修复 Event Hub 绑定应允许将所有自定义属性转换为头信息,而不仅仅是 iot-hub 系统属性 3570
- 修复 当存储账户返回 503 时 Azure Event Hub 绑定停止工作 3573
- 修复 [Mongo] - 事务插入操作的序列化问题 3575
- 修复 修复 Azure Blob 存储元数据头值清理 3581
- 修复 Pulsar
key_shared
功能 3601 - 更新 将 AWS 密钥管理器密钥存储组件升级至 Beta 3504
.NET SDK
- 新增 [actors] Actor 的增量源代码生成器 1334
- 新增 [client] 可选的 DI 生命周期变更 1408
- 新增 [conversation] 添加 .NET 客户端支持 LLM 对话 1382
- 新增 [docs] 向文档添加 Jobs API .NET 客户端示例 1322
- 新增 [examples] 新增工作流示例:任务链 1387
- 新增 [examples] 新增工作流示例:监控 1388
- 新增 [examples] 新增工作流示例:
更新内容 (原始)
Dapr 1.15
We’re excited to announce the release of Dapr 1.15!
We would like to thank you all for your patience and also give our thanks to all the new and existing contributors who helped make this release happen.
If you’re new to Dapr, visit the getting started page and familiarize yourself with Dapr.
Docs have been updated with all the new features and changes of this release. To get started with new capabilities introduced in this release, go to the Concepts and the Developing applications.
Please read the Breaking Changes carefully. If you’re experiencing any issues, please report them on Discord. The following core maintainers are available to help you: @joshvanl, @yaron2, @cassie1coyle
.
Note: This release contains a few Breaking Changes.
See this section on upgrading Dapr to version 1.15.
Acknowledgements
Thanks to everyone who made this release possible!
@adrianhr91, @alicejgibbons, @antontroshin, @aqeelat, @arslanmusta, @artur-ciocanu, @arturotrenard, @artursouza, @bhagya05, @cicoyle, @daixiang0, @diegodocs, @divzi-p, @Druid-of-Luhn, @elena-kolevska, @emsearcy, @evhen14, @famarting, @filintod, @GowthamHN, @hhunter-ms, @humandigital-ruud, @ItalyPaleAle, @Jeroen-VdB, @jev-e, @JoshVanL, @jseguillon, @LeonMatthesKDAB, @lor1113, @luigirende, @m3nax, @marcduiker, @mikeee, @MregXN, @msfussell, @olitomlinson, @passuied, @paule96, @paulyuk, @qustavo, @RafaelJCamara, @rochabr, @salaboy, @shubham1172, @Shubhdeep02, @sicoyle, @siri-varma, @SpiffyEight77, @Taction, @ThomasVitale, @tomhreb, @vil02, @WhitWaldo, @yaron2, @ytimocin, @znd4
Special thanks go to Rob J - You know who you are!
Highlights
These are the v1.15 release highlights:
Dapr Workflow (stable)
Dapr workflow makes it easy to write long running stateful applications using durable execution. You can try out Dapr workflow with the Quickstart Samples. The ability to author and run workflows is now stable. This includes the Dapr runtime along with the Dapr .NET, Java, Python, Go and Javascript SDKs.
The workflow runtime engine has undergone a major overwrite to achieve substantial performance and scalability improvements, as well as reliability and stability traits that are required to run mission critical apps at massive scale. Workflows now support dynamically scaling your Workflow applications from 0 to many replicas, whilst maintaining durability of your tasks at runtime.
Dapr Actors
The Actor runtime engine has had a rewrite in its implementation. Although no changes have been made to the API surface of Actors, this overhaul significantly improves the reliability of handling Actors at scale and in dynamically scaling environments. This work has also been instrumental in making the, now stable, Workflows engine dynamic and durable.
The Actor runtime implementation is now capable of being extended upon to implement new highly requested Actor APIs, or even targeting new Actor targets beyond your app and Workflows in future.
Scheduler Service (stable)
The Scheduler service is the control plane service used to schedule jobs, running in self-hosted mode or on Kubernetes. It is installed when using the Dapr CLI and is the service responsible for managing scheduled jobs. The Scheduler service is now stable
- Note: Prior to Dapr v1.15, actor reminders were run using the Placement service by default. Now, by default in v1.15, the
SchedulerReminders
feature flag is set to true, and all new actor reminders you create are run using the Scheduler service. When you deploy Dapr v1.15, any existing actor reminders are migrated from the Placement service to the Scheduler service as a one time operation for each actor type. You can prevent this migration by setting theSchedulerReminders
flag tofalse
in the application configuration file for the actor type. See Scheduler Actor Reminders
Conversation API (alpha)
A new Conversation API (alpha) reduces the complexity of interacting with large language models (LLM) at scale, providing a consistent API to talk to LLM providers. With the Conversation API, you can:
- Send prompt and responses LLMs including Anthropic, AWS Bedrock, Hugging Face, Mistral, OpenAI and DeepSeek
- Enable critical performance and security functionality, including prompt caching to reduce the number of calls and PII obfuscation to scrub PII data.
The Go, .NET, and Rust SDKs have the conversation API implemented as part of this release. As with all APIs, Dapr provides observability by issuing metrics for your LLM interactions.
Learn more about the Conversation API, or dive into a .NET or Go Quickstart.
SDK Improvements
.NET SDK
The .NET SDK added support for the Jobs, Conversation and streaming pub/sub APIs.
- Support for services targeting .NET 9.
Python SDK
The Python SDK added support for streaming pub/sub APIs and the Conversation API.
- Added Mock actors for unit testing.
- The Dapr Client workflow functions were deprecated in favor of the DaprWorkflowClient. (TBD need to point to docs/example)
- The default timeout for
wait_for_orchestration_start
andwait_for_orchestration_completion
was changed from 60 seconds to no timeout - Support for Python 3.8 was removed and support for Python 3.13 was added.
Java SDK
The Java SDK added a Spring Boot integration, including Spring Boot Starters for interacting with the Dapr APIs and testing capabilities using Testcontainers. The Spring Boot integration now supports:
- DaprClient and DaprWorkflowClient bean injection
- Spring Data CrudRepository support using Dapr StateStore + Bindings
- Spring Messaging support using Dapr PubSub APIs
- Dapr Workflows support with automatic Workflows and Activities registration and support for bean injection
- Testcontainers integration providing DaprContainer and PlacementServiceContainer
Javascript SDK
The JavaScript SDK added support for the Pause, Resume and SetStatus methods on the Workflow API. Progress is being made to improve the JavaScript SDK documentation.
Go SDK
- The Go SDK added support for the Conversation API.
- Dead Letter Topic support for subscriptions is now available.
- Workflow authoring and management with this SDK are ‘stable’.
- Retry policies have been added.
- Custom statuses on workflows can be set.
- Purge options are now supported.
- An ID re-use policy can now be applied.
- Streaming subscriptions now re-connect automatically on unknown/unavailable grpc connection statuses.
Rust SDK (alpha)
The Rust SDK added support for the Conversation API support. Progress is being made in other areas towards a refactor for beta/stable state.
CLI and Env Vars
- Ability to inject secrets as env variables into the Dapr sidecar that may be need by components etc.
- Multi-App Run has a new setting for the
containerImagePullPolicy
on Kubernetes
Components
New components
The following new components have been added
Component improvements
- AWS Secrets Manager moved to Beta status
- Azure Eventhubs binding now reads all message properties
- Pulsar pub/sub
receiverQueueSize
added
Kubernetes improvements
- The Scheduler service RBAC
ClusterRole
new rule granting read-only access tonamespaces
resources allowing["get", "list", "watch"]
operations. - Recommendations when running Placement Service in production to better handle actor failures.
List of issues in this release
Dapr Runtime
- ADDED Status filter for service invocation resiliency 6683
- FIXED W3C Correlation of Event Publishing 7275
- ADDED api: add Conversation API 7858
- FIXED Exception thrown during Job schedule API call 7897
- ADDED Actor service failure detection by Placement Service is now configurable (docs) 7955
- ADDED Dapr Actor Processing in FIFO 7956
- ADDED
securityContext/runAsGroup
andsecurityContext/runAsUser
as sidecar injector options. 7958 - BREAKING The scheduler is now used by default for actor reminders. Migration is required from an existing statestore-backed reminder system. 8045
- FIXED Update Dapr Chart image.name README with current values 8051
- FIXED Update the default value of
app.kubernetes.io/managed-by
8052 - FIXED Add apiVersion and kind to volumeClaimTemplates 8067
- FIXED Runtime outputs memory address on startup for metrics spec 8169
- ADDED Enable PII scrubbing for LLM inputs/outputs 8189
- FIXED Moved helm priority class declaration in the right position of
dapr_placement_statefulset.yaml
manifests 8205 - ADDED Provide ability to configure dapr grpc ports through dapr pod annotations. 8227
- ADDED sftp component register 8263
- FIXED Expose localhost on scheduler locally. 8412
- ADDED Daprd Env Variables from Secrets 8180
- FIXED Fixes placement service dissemination failure on stream hang 8326
- ADDED Exposed raft and placement service leadership status as metrics (
dapr_placement_leader_status
anddapr_placement_raft_leader_status
)8245 - FIXED Fix Scheduler readOnlyRootFilesystem: true 8465
- ADDED Otel tracing support to add headers for token authentication 8143
Dapr CLI
- UPDATED Update CLI to runtime 1.14 and Go 1.22 1440
- FIXED fix: population of the schedulerhostaddress in self-hosted mode 1475
- UPDATED Pin go to 1.23.5 1477
Components
- FIXED Properties and System properties missing when subscribing to Azure Events pubsub 2530
- ADDED Sftp binding 3206
- FIXED fatal error: unlock of unlocked mutex 3443
- FIXED snssqs: fix consumer starvation 3479
- FIXED Error net/http: invalid header field value for "__key\ in Dapr version 1.13.5 on Windows machine 3503
- FIXED EventHub component delivers out of order messages (pubsub, binding) 3568
- FIXED Event Hub binding should allow transforming ALL custom properties as headers, not just iot-hub systemproperties 3570
- FIXED Azure Event Hub binding stops working if storage act returns 503 3573
- FIXED [Mongo] - Serialization issues with Transaction upsert operation 3575
- FIXED Fix Azure blob storage metadata header value sanitization 3581
- FIXED Pulsar
key_shared
functionality. 3601 - UPDATED Promoted AWS Secrets Manager secret store component to Beta 3504
.NET SDK
- ADDED [actors] Incremental source generator for actors 1334
- ADDED [client] Optional DI lifecycle change 1408
- ADDED [conversation] Add .NET client for LLM Conversations support 1382
- ADDED [docs] Add Jobs API .NET client example to doc 1322
- ADDED [examples] Added workflow sample: Task chaining 1387
- ADDED [examples] Added workflow sample: Monitor 1388
- ADDED [examples] Added workflow example: External interaction 1389
- ADDED [examples] Added workflow sample: Async operations 1394
- ADDED [examples] Added workflow sample: Sub-workflows 1395
- ADDED [examples] Added workflow example: Fan out/fan in 1396
- ADDED [jobs] Add .NET client for Dapr Jobs API 1384
- ADDED [pubsub] Add .NET client for pub/sub support - streaming subscriptions 1381
- ADDED [invoke] Adding instance-based CreateInvokableHttpClient 1319
- ADDED [misc] Support .NET 9 1404
- ADDED [misc] Support gRPC richer error model 1436
- ADDED [state] Support for saving and retrieving state as byte arrays without serialization to and from JSON 906
- ADDED [state] Added methods in state API supports for saving and reading binary data 1116
- ADDED [tests] Validate method invocation with extraneous headers 1355
- ADDED [tests] Provide the ability to Mock WorkflowActivityContext 1358
- ADDED [tests] Added unit test to Secrets API test suite 1347
- ADDED [workflow] Added option to override GrpcChannelOptions when adding DaprWorkflow (#7218) 1244
- ADDED [workflow] Adds workflow replay-safe logger 1434
- FIXED [actors] Multiple methods per interface with JSON serialization doesn´t work 1343
- FIXED [actors] Actor source generator generates invalid code for generic interfaces 1419
- FIXED [actors] Actor reminders should return null if not registered 1468
- FIXED [client] DI registration not completing as expected 1386
- FIXED [client] Prioritize retrieval of environment variables from IConfiguration instead of directly 1363
- ADDED [client] Additional lifecycle registration changes 1410
- FIXED [actors] Actor reminders should return null if not registered 1468
- FIXED [config] BREAKING CHANGE Preserve comparer of the original dictionary 935
- FIXED [config]
DaprConfigurationStoreProvider
not applying case-insensitive configuration updates correctly. 934 - FIXED [conversation] Conversation builder consistency changes 1423
- FIXED [conversation] Conversation SDK updated to reflect changes to protos 1469
- FIXED [crypto] Crypto ReadOnlyMemory
decryption times out 1443 - FIXED [jobs] Single-invocation point-in-time job fails to register 1455
- FIXED [jobs] Invoked job not populating payload from inbound request 1457
- FIXED [jobs] Fix for
GetJobAsync
deserialization issue 1461 - FIXED [jobs] Fix for duration-based scheduling being incorrected formatted 1462
- FIXED [jobs] Fix Jobs mapping handler to properly assign cancellation tokens per-request instead of globally 1474
- FIXED [misc] Remove unused using statements. 1313
- FIXED [misc] Remove unused variables 1314
- FIXED [misc] Removes floating classes and introduces Dapr.Common project 1365
- FIXED [misc] Fixed security advisory updates across dependencies (transitive and direct) 1366
- FIXED [pubsub] Fixes + unit tests for streaming PubSub implementation 1415
- FIXED [pubsub] NullReferenceException when trying to sub with streaming subscriptions 1412
- FIXED [workflow] Bug during workflow client registration 1385
- FIXED [workflow] Added missing workflow status branch 1348
- DOCS [docs] Updating actor serialization documentation 1371
- DOCS [docs] Document That Users Can Self-Assign Issues 1149
- DOCS [docs] Improvement of the dotnet-contributing files 1330
- DOCS [docs] Updated prereqs to specify .NET 6 and .NET 8 in v1.15 1398
- DOCS [docs] Updating Dapr .NET SDK documentation 1409
- DOCS [docs] Update Workflow to stable 1418
- DOCS [examples] Modify workflow sample README 1210
- DOCS [examples] Simplfying Crypto example 1442
- UPDATED [misc] Consolidated version of nugets used in test project 1315
- UPDATED [misc] Updated protos to latest in dapr/dapr 1420
- UPDATED [misc] Extracted Protos out to common project 1367
- UPDATED [misc] Migrate from FluentAssertions 1450
Go SDK
- FIXED Fixed superfluous bug 619
- BREAKING Remove obsolete workflow methods 634
- ADDED Conversation API support 645
- UPDATED Update Dependencies - fix sec vulnerability 658
- UPDATED chore: bump validation dapr runtime to 1.15.0-rc.2 667
- UPDATED release: version bump and tidy 673
- UPDATED Bump gover, tag, x/deps and dapr 674
- UPDATED ci: include pre-release label for RCs 675
- UPDATED Adding the name of the failing activity for more detail 678
Java SDK
- BREAKING Drop Spring Boot 2.x support as it is no longer supported by the spring community 1039
- ADDED Support Spring Boot baseline of 3.2.x 1050
- ADDED Include metadata on actor method invocation to support headers. 1071
- ADDED Streaming Subscription Support 1072
- ADDED Spring Boot enhancements, Spring Data Repository, Testcontainers 1089
- ADDED Dapr Container default wait strategy based on healthz/outbound 1105
- ADDED Configuration overrides for DaprWorkflowClient and WorkflowRuntimeBuilder 1113
- FIXED handling of timeout in
waitForSidecar
1145
Python SDK
- ADDED Implemented bidirectional streaming for pubsub 735
- ADDED Added support for the Dapr Conversation API 787
- ADDED Mock actors for unit testing actor methods 750
- UPDATED Deprecated Dapr Client workflows API functions in favour of DaprWorkflowClient 749
- FIXED Fixes missing docker-compose in examples 736
- FIXED Makes data argument optional on transactional delete 752
- FIXED Fixed not being able to save new keys with
try_add_state
756 - ADDED Added an integration test for http service invocation 758
- UPDATED Removed support for Python 3.8 (EOL) and added support for Python 3.13 763
- FIXED When calling an actor method results in an InternalDaprError being raised, the exception details are properly returned instead of a json serialisation error 765
- UPDATED Removes default timeout for
wait_for_orchestration_start
andwait_for_orchestration_completion
784
Rust SDK
- UPDATED Remove tonic-build and protoc dependency 205
- UPDATED refactor!: dapr no longer requires protoc or tonic_build 206
- UPDATED GH Workflows to more modern versions 207
- UPDATED chore(deps): upgrade deps and regen protos 214
- ADDED Docs validation workflow 219
- UPDATED chore(release): v0.16.0-rc.0 221
- ADDED
save_state
function lacks metadata argument, resulting in states being stored as serialized strings instead of objects. 226 - ADDED feat: conversation api initial implementation 234
- UPDATED fix(ci): fix installer bundle creation logic 239
- UPDATED Client dependencies in the RUST SDK. 240
- UPDATED How to configure the client in the Rust SDK. 241
- UPDATED Specify that the client is connecting to the gRPC server in the Rust SDK. 242
- UPDATED Update Dapr Rust docs 245
- UPDATED refactor state methods 246
- UPDATED chore: bump rc versions 247
- UPDATED feat: add proto check and make directives 248
- UPDATED chore: remove macro dep from main crate 249
- UPDATED docs: clarify and fix mistakes 251
- UPDATED chore: bump protos to 1.15.0-rc.1 tag 252
- UPDATED Return Result when creating DaprHttpServer 253
- UPDATED release: bump 256
- UPDATED Add fallback handler to axum Router 258
JavaScript SDK
- ADDED Added pause/resume methods in DaprWorkflowClient 661
- FIXED PubSub with large message does not trigger subscriber 562
- UPDATED workflows: update durabletask fork and finish set custom status 647
- FIXED fix current packages with vulnerability 648
- FIXED Fix README to be consistent 649
- FIXED docs: fix contributing to sdk docs 651
- FIXED docs: fix path for getting started documentation 652
- UPDATED [docs] Remove beta from JS SDK workflow docs 654
- UPDATED chore(deps): Bump golang.org/x/net from 0.17.0 to 0.33.0 in /examples/grpc/proxying/server 656
Documentation
- RESOLVED Resiliency - Service Invocation allow to ignore resiliency policy based on response http status code 3859
- RESOLVED [Workflow] Docs enhancements with stable release 3870
- RESOLVED Authenticate components to services using Dapr SPIFFE identity X.509 certificate 4130
- RESOLVED [Workflow] Add examples for reuse ID policy 4237
- RESOLVED Resiliency: Action based on response HTTP status code for retry 4254
- RESOLVED Propagate trace inforation from incoming headers 4277
- RESOLVED Fixed yaml syntax for Subscription v2alpha1 spec example 4335
- RESOLVED Updates to new value 4372
- RESOLVED Conversation API docs 4374
- RESOLVED Scheduler service stable 4375
- RESOLVED Added .NET example to jobs HowTo page 4385
- RESOLVED Python SDK docs are outdated 4410
- RESOLVED Updates documentation for circuit breaker with possible values and adds examples 4413
- RESOLVED Add Pulsar metadata for receiver queue size 4416
- RESOLVED Sftp Binding Component Docs 4418
- RESOLVED [Conversation API] initial docs setup 4419
- RESOLVED Examples(code snippets) needed for subscription streaming 4424
- RESOLVED Add metadata option for event hubs in-order delivery 4432
- RESOLVED Fix Observability YouTube URL timestamp 4435
- RESOLVED Document deprecation of Workflows API Alpha1 in breaking changes 4436
- RESOLVED Update docs for scheduler ephemeral storage 4438
- RESOLVED v1.15 docs release endgame 4445
- RESOLVED Updating valid .NET SDK targets for Quickstart docs 4447
- RESOLVED [EventHub pubsub/binding] Add in order message delivery metadata 4448
- RESOLVED Jobs/scheduler is stable 4449
- RESOLVED Update docs for Scheduler service going stable 4452
- RESOLVED [Pulsar] Add metadata for pub/sub component 4453
- RESOLVED Workflow as stable 4455
- RESOLVED docs(aws): revamp aws docs + iam role anywhere profile 4456
- RESOLVED [Conversation] Finish how-to 4462
- RESOLVED New error codes topic 4465
- RESOLVED Upmerge 12-16 4466
- RESOLVED [Endgame] Prep v1.14 branch for v1.15 release 4467
- RESOLVED [Endgame] Prep v1.15 branch for v1.15 release 4468
- RESOLVED Upmerge 12/18: 1.15 -> 1.16 4472
- RESOLVED [Endgame] Update config.toml for 1.16 4475
- RESOLVED [1.15] First submodule pull of 2025 🎊 4483
- RESOLVED add python to streaming subscriptions 4485
- RESOLVED Quick update for JS submodule 4486
- RESOLVED Conversation quickstart doc 4487
- RESOLVED [Conversation] Beef up overview 4489
- RESOLVED Conversation quickstart 4493
- RESOLVED [Conversation overview] Removing old paragraph 4494
- RESOLVED Update error codes reference 4497
- RESOLVED Added .NET jobs example 4499
- RESOLVED Moved technical details of Jobs implementation out of How To docs 4500
- RESOLVED Actors do not support gRPC today 4501
Quickstarts
- RESOLVED Quickstarts for conversation API 1099
- ADDED Go Conversation API quickstart 1102
- ADDED .NET Conversation API quickstart 1103
- RESOLVED HTTP Java Conversation API quickstart 1104
- ADDED HTTP .NET Conversation API quickstart 1105
- ADDED HTTP Go Conversation API quickstart 1106
- ADDED HTTP JS Conversation API quickstart 1107
- ADDED HTTP Python Conversation API quickstart 1108
- RESOLVED Quickstarts for Jobs API 1109
- RESOLVED HTTP Python Jobs API Quickstart 1110
- RESOLVED HTTP Java Jobs API Quickstart 1111
- ADDED HTTP JS Jobs API Quickstart 1112
- ADDED HTTP .NET Jobs API Quickstart 1113
- RESOLVED SDK dotnet Jobs API Quickstart 1114
- RESOLVED SDK Java Jobs API Quickstart 1115
- RESOLVED SDK Python Jobs API Quickstart 1116
- RESOLVED SDK JS Jobs API Quickstart 1117
- FIXED No console for node app when debugging helloworld tutorial in vscode 1124
- FIXED helloworld: add terminal to node app for vscode 1125
- UPDATED chore: bump runtime version to rc.2 1126
- UPDATED chore: cleanup & unify workflows and bump kind version 1127
- UPDATED Bump CLI&Runtime incorporating patch fix 1138
- FIXED Python Quickstarts tests failing 1143
- UPDATED Merge changes from master to release-1.15 branch 1145
Upgrading to Dapr 1.15
To upgrade to this release of Dapr, follow the steps here to ensure a smooth upgrade. You know, the one where you don’t get red errors on the terminal.. we all hate that, right?
Local Machine / Self-hosted
Uninstall Dapr using the CLI you currently have installed. Note that this will remove the default $HOME/.dapr directory, binaries and all containers dapr_redis, dapr_placement and dapr_zipkin. Linux users need to run sudo if docker command needs sudo:
dapr uninstall --all
For RC releases like this, download the latest and greatest release from here and put the dapr
binary in your PATH.
Once you have installed the CLI, run:
dapr init
Wait for the update to finish, ensure you are using the latest version of Dapr(1.15.0) with:
$ dapr --version
CLI version: 1.15.0
Runtime version: 1.15.0
Kubernetes
Upgrading from previous version
You can perform zero-downtime upgrades using both Helm 3 and the Dapr CLI.
Upgrade using the CLI
Download the latest RC release from here and put the dapr
binary in your PATH.
To upgrade Dapr, run:
dapr upgrade --runtime-version 1.15.0 -k
To upgrade with high availability mode:
dapr upgrade --runtime-version 1.15.0 --enable-ha=true -k
Wait until the operation is finished and check your status with dapr status -k
.
All done!
Note: Make sure your deployments are restarted to pick the latest version of the Dapr sidecar
Upgrade using Helm
To upgrade Dapr using Helm, run:
helm repo add dapr https://dapr.github.io/helm-charts/
helm repo update
helm upgrade dapr dapr/dapr --version 1.15.0 --namespace=dapr-system --wait
Wait until the operation is finished and check your status with dapr status -k
.
All done!
Note: Make sure your deployments are restarted to pick the latest version of the Dapr sidecar
Starting a fresh install on a cluster
Please see how to deploy Dapr on a Kubernetes cluster for a complete guide to installing Dapr on Kubernetes
You can use Helm 3 to install Dapr:
helm repo add dapr https://dapr.github.io/helm-charts/
helm repo update
kubectl create namespace dapr-system
helm install dapr dapr/dapr --version 1.15.0 --namespace dapr-system --wait
Alternatively, you can use the latest version of CLI:
dapr init --runtime-version=1.15.0 -k
Post installation
Verify the control plane pods are running and are healthy:
$ dapr status -k
NAME NAMESPACE HEALTHY STATUS REPLICAS VERSION AGE CREATED
dapr-sidecar-injector dapr-system True Running 1 1.15.0 15s 2025-01-31 13:07.39
dapr-sentry dapr-system True Running 1 1.15.0 15s 2025-01-31 13:07.39
dapr-operator dapr-system True Running 1 1.15.0 15s 2025-01-31 13:07.39
dapr-placement dapr-system True Running 1 1.15.0 15s 2025-01-31 13:07.39
dapr-scheduler-server dapr-system True Running 1 1.15.0 15s 2025-01-31 13:07.39
After Dapr 1.15.0 has been installed, perform a rolling restart for your deployments to pick up the new version of the sidecar. This can be done with:
kubectl rollout restart deploy/<deployment-name>
Breaking Changes
Scheduler Service
When upgrading from Dapr 1.14 to 1.15, the existing data directory will be removed, resulting in the loss of all jobs and, if the SchedulerReminders
preview feature is enabled, actor reminders as well. In Dapr 1.15, the Scheduler is reaching Stable status and this upgrade introduces significant improvements, but also requires a fresh start. To avoid losing this data permanently, you can create a snapshot of the embedded etcd instance (within the Scheduler Service) using the etcdctl
tool before upgrading. For example:
kubectl port-forward svc/dapr-scheduler-server 23879:2379
etcdctl --endpoints=http://localhost:23879 snapshot save snapshot.db
Then you can restore the snapshot in a local etcd cluster following the instructions in the etcd docs.
Downgrading from 1.15
When downgrading Dapr from 1.15 to previous Dapr versions on Kubernetes, the Scheduler service will not be able to successfully roll the dapr-scheduler-server
StatefulSet, this is due to the Scheduler service updated the communication between hosts to use mTLS, introduced in PR 8395
The old Scheduler service pods must be manually deleted to fix the issue.
kubectl delete -n dapr-system pods/dapr-scheduler-server-0
kubectl delete -n dapr-system pods/dapr-scheduler-server-1
kubectl delete -n dapr-system pods/dapr-scheduler-server-2
.NET SDK
Dapr Configuration
The original implementation of the ConfigurationProvider
used in Microsoft.Extensions.Configuration maintains the configuration values in an explicitly case-insensitive manner. In our DaprConfigurationStoreProvider
, the returned configuration keys were not compared in a case-insensitive manner which led to a reported inconsistency in this behavior. Keys are now compared in a case-insensitive manner as one would expect when also utilizing the Microsoft.Extensions.Configuration
library.
.NET Version Support
The release of Dapr v1.15 features support for .NET 6, .NET 8 and .NET 9, except Dapr.Workflows
which is only compatible with .NET 7, .NET 8 and .NET 9.
Since .NET 6 and .NET 7 are no longer actively supported, per the .NET support policy, the release of Dapr v1.16 will only include support for .NET 8 and .NET 9 across all packages.
Java SDK
- RESOLVED Bump supported Spring Boot baseline to version 3.2.x 1050
Deprecation Notices
Workflows
As part of workflows going to stable, the ineffective workflow methods provided in the Dapr Client are deprecated, please use the provided dedicated workflow client in each SDK going forwards for orchestrating your workflows.
Arguments and annotations
http-read-buffer-size
and http-max-request-size
darpd arguments are deprecated and replaced with read-buffer-size
and max-body-size
. See https://github.com/dapr/docs/pull/4401, https://github.com/dapr/cli/pull/1490 and annotations reference
下载链接
- daprd_darwin_amd64.tar.gz
- daprd_darwin_amd64.tar.gz.sha256
- daprd_darwin_arm64.tar.gz
- daprd_darwin_arm64.tar.gz.sha256
- daprd_linux_amd64-stablecomponents.tar.gz
- daprd_linux_amd64-stablecomponents.tar.gz.sha256
- daprd_linux_amd64.tar.gz
- daprd_linux_amd64.tar.gz.sha256
- daprd_linux_arm-stablecomponents.tar.gz
- daprd_linux_arm-stablecomponents.tar.gz.sha256
- daprd_linux_arm.tar.gz
- daprd_linux_arm.tar.gz.sha256
- daprd_linux_arm64-stablecomponents.tar.gz
- daprd_linux_arm64-stablecomponents.tar.gz.sha256
- daprd_linux_arm64.tar.gz
- daprd_linux_arm64.tar.gz.sha256
- daprd_windows_amd64.zip
- daprd_windows_amd64.zip.sha256
- grafana-actor-dashboard.json
- grafana-actor-dashboard.json.sha256
- grafana-sidecar-dashboard.json
- grafana-sidecar-dashboard.json.sha256
- grafana-system-services-dashboard.json
- grafana-system-services-dashboard.json.sha256
- injector_darwin_amd64.tar.gz
- injector_darwin_amd64.tar.gz.sha256
- injector_darwin_arm64.tar.gz
- injector_darwin_arm64.tar.gz.sha256
- injector_linux_amd64.tar.gz
- injector_linux_amd64.tar.gz.sha256
- injector_linux_arm.tar.gz
- injector_linux_arm.tar.gz.sha256
- injector_linux_arm64.tar.gz
- injector_linux_arm64.tar.gz.sha256
- injector_windows_amd64.zip
- injector_windows_amd64.zip.sha256
- operator_darwin_amd64.tar.gz
- operator_darwin_amd64.tar.gz.sha256
- operator_darwin_arm64.tar.gz
- operator_darwin_arm64.tar.gz.sha256
- operator_linux_amd64.tar.gz
- operator_linux_amd64.tar.gz.sha256
- operator_linux_arm.tar.gz
- operator_linux_arm.tar.gz.sha256
- operator_linux_arm64.tar.gz
- operator_linux_arm64.tar.gz.sha256
- operator_windows_amd64.zip
- operator_windows_amd64.zip.sha256
- placement_darwin_amd64.tar.gz
- placement_darwin_amd64.tar.gz.sha256
- placement_darwin_arm64.tar.gz
- placement_darwin_arm64.tar.gz.sha256
- placement_linux_amd64.tar.gz
- placement_linux_amd64.tar.gz.sha256
- placement_linux_arm.tar.gz
- placement_linux_arm.tar.gz.sha256
- placement_linux_arm64.tar.gz
- placement_linux_arm64.tar.gz.sha256
- placement_windows_amd64.zip
- placement_windows_amd64.zip.sha256
- scheduler_darwin_amd64.tar.gz
- scheduler_darwin_amd64.tar.gz.sha256
- scheduler_darwin_arm64.tar.gz
- scheduler_darwin_arm64.tar.gz.sha256
- scheduler_linux_amd64.tar.gz
- scheduler_linux_amd64.tar.gz.sha256
- scheduler_linux_arm.tar.gz
- scheduler_linux_arm.tar.gz.sha256
- scheduler_linux_arm64.tar.gz
- scheduler_linux_arm64.tar.gz.sha256
- scheduler_windows_amd64.zip
- scheduler_windows_amd64.zip.sha256
- sentry_darwin_amd64.tar.gz
- sentry_darwin_amd64.tar.gz.sha256
- sentry_darwin_arm64.tar.gz
- sentry_darwin_arm64.tar.gz.sha256
- sentry_linux_amd64.tar.gz
- sentry_linux_amd64.tar.gz.sha256
- sentry_linux_arm.tar.gz
- sentry_linux_arm.tar.gz.sha256
- sentry_linux_arm64.tar.gz
- sentry_linux_arm64.tar.gz.sha256
- sentry_windows_amd64.zip
- sentry_windows_amd64.zip.sha256