Skip to content

v0.7.2 — outbound provider fixes for daprd 1.17/1.18

Choose a tag to compare

@sideeffffect sideeffffect released this 13 Oct 17:36

Bug-fix release for the outbound providers, found by dapr4s's import probe against daprd 1.17.7 and 1.18.7. The WIT interfaces have not changed since 0.7.1. Only the package version moves to 0.7.2, because the release tag must match it.

Fixes

  • conversation.converse no longer traps when the answer reports usage (wasi-http). daprd writes 64-bit integers as JSON strings, for example "totalTokens":"4". Token counts and the choice index now accept either a string or a number. The gRPC and go providers read protobuf, so they were never affected.
  • Jobs work on daprd 1.17 (wasi-http and wasi-gRPC).
    • Up to 1.17, daprd serves jobs only at /v1.0-alpha1/jobs/{name} over HTTP and as *JobAlpha1 over gRPC.
    • Before this fix, schedule failed and get reported a 404 as "job not found".
    • Both providers now use the alpha1 API, which also works on 1.18, where it is a deprecated alias.
  • actors.register-timer returns a typed error instead of trapping (all three providers). When the actor type is not hosted, daprd answers with a generic 500 (ERR_ACTOR_TIMER_CREATE … actor type not registered). This is now actors-error.permission-denied, the same answer daprd gives (403) for reminders. Any other timer failure still traps.
  • Error payloads (wasi-http): the string in a setup error case (store-not-found, permission-denied, …) is now daprd's message, as on the gRPC provider. Before, it was "HTTP 400: {raw JSON}". The rule is documented in types.wit, the README and INTERFACES.md.
  • compose.sh exits 0 on success and no longer leaks temp directories.

Build and CI

  • New unit tests in CI: the wasi-gRPC provider tests (run under wasmtime) and the go daprerr tests.
  • Publishing: releases publish the WIT package with wkg publish under the name wkg wit fetch resolves (ghcr.io/sideeffffect/dapr-wasm-components/interfaces). Copy wkg-config.toml to consume it.

Docs

  • README limitation notes on the jobs alpha1 API and on how the timer error maps.
  • Corrected the jobs version map in the wiki: jobs moved to /v1.0 only in daprd 1.18.