This is the first version of the Durable Functions SDK with official support for public preview of V4 of the Node.js programming model! 🎉 This changelog is meant as a detailed list of changes in this new version. We are working on a less detailed, more user-friendly upgrade guide for Durable Functions, and will include that link here when it's ready! Learn more about the v4 programming model.
Added
- APIs to register Durable functions (orchestrations, activities, and entities) using code, under the
app
namespace (#453 and #384) - APIs to obtain trigger options for Durable triggers (orchestrations, activities, and entities) under the
trigger
namespace (#453 and #384) - API to obtain a Durable Client input options under the
input
namespace (#453 and #384)
Removed
- The old
orchestrator()
andentity()
APIs (#453)
Changed
- Update minimum version of Node.js to
18.x
- Update minimum version of TypeScript to
4.x
- Update minimum version of core tools required for local testing to
4.0.5085
- Update
@azure/functions
dependency to4.x
(Seev4.0.0-alpha.9
changelog for a more detailed list of changes to@azure/functions
) - Improve exported types
- Rename the
IOrchestrationFunctionContext
interface toOrchestrationContext
, and export it from the root of the package (#455) - Rename the
IEntityFunctionContext<T>
interface toEntityContext<T>
and export it from the root of the package (#455) - Rename the
DurableOrchestrationClient
class toDurableClient
and export it from the root of the package (#154) - Export new type definitions
OrchestrationHandler
,OrchestrationTrigger
, andOrchestrationOptions
for orchestrationsEntityHandler
,EntityTrigger
, andEntityOptions
for entitiesActivityHandler
,ActivityTrigger
, andActivityOptions
for activitiesDurableClientInput
for client functions
- Switch to manual declaration of type definitions (#458)
- Remove private fields from exported class definitions
- Remove
@hidden
fields from exported class definitions - Remove non-user facing classes/interfaces from public type definitions (#352)
- Rename the
- Where applicable, switch
DurableClient
APIs from using discrete optional arguments to using an options object (#441 and #415)getStatus()
getStatusBy()
purgeInstanceHistoryBy()
raiseEvent()
readEntityState()
rewind()
signalEntity()
startNew()
waitForCompletionOrCreateCheckStatusResponse()
- Update the
callHttp()
API under theDurableOrchestrationContext
class (#456 and #439)- Switch to using one options object for all arguments
- Rename
uri
argument tourl
- Rename
content
argument tobody
- Deprecate
asynchronousPatternEnabled
flag in favor ofenablePolling
- Remove the Durable-specific
IHTTPRequest
,IHttpResponse
,DurableHttpRequest
andDurableHttpResponse
classes, in favor ofHttpRequest
andHttpResponse
from@azure/functions
, which represent a subset of the fetch standard based on the undici npm package. See Changelog here for more details. - Breaking bug-fixes