Repository navigation
v0.7.0 — authority-split interfaces, subscription resource, typed workflow status
Interfaces split by authority, configuration subscriptions as a resource, and typed workflow status. This release has breaking changes to the dapr-wasm-components:interfaces WIT package since v0.6.0. Motivation: dapr4s Wasm components proposal.
Breaking
- Read interfaces split out (W1). Five interfaces now have a read-only twin that owns the shared types:
state-read:get,get-bulk,query.state:save,delete,execute-transaction.secrets-read:get-secret.secrets:get-bulk-secret.configuration-read:get.configuration:subscribe.jobs-read:get.jobs:schedule,delete.workflow-read:get.workflow:start,terminate,raise-event,pause,resume,purge.- Update imports and
usepaths.dapr-appre-exports both halves.
- Configuration subscription is a resource (W2).
subscribereturns asubscriptionhandle withid(). Dropping it unsubscribes. The freeunsubscribefunction andunsubscribe-errorare gone. - Typed
workflow-instance(W3). New fields:workflow-name,runtime-status(enum),input,output,failure. These keys are removed fromproperties. - No
workflow-componentparameter (W4). Providers always usedapr.workflow-error.component-not-foundnow means "workflow engine not available".
New
- The import list is the authority list. A component imports only the interfaces and functions it calls. An app that only reads state imports
state-readwith onlyget. CI checks this ine2e/tests/authority.rs.- Every app also imports
state-readandconfiguration-readwith no functions, because the callback exports use their types. These give no authority.
- Every app also imports
runtime-statusenum. It has daprd's 8 statuses, includingcanceled, plusunknown. Matching ignores case. Forunknown, the raw string stays inproperties["dapr.workflow.runtime_status"].
Fixes and notes
- If unsubscribe fails when a
subscriptionis dropped, the HTTP provider logs it and does not trap. - The gRPC provider still does not support
subscribe. - The subscription resource and typed workflow
getare tested against the mock sidecar only. Real-Dapr coverage is on the ROADMAP.