Minor Changes
-
#16239
f360829Thanks @jamesopstad! - Support Cloudflare Access local development configuration incloudflare.config.tsWorkers can now configure an Access audience and mock identity under
access.dev, andcf migratepreserves this setting when converting a Wrangler configuration. Miniflare v5 now reads the setting fromconfig.access.dev, aligning its Worker configuration with@cloudflare/config; the Miniflare v4 compatibility adapter continues to accept its existingaccessoption.export default defineConfig({ worker: { name: "api", access: { dev: { aud: "my-access-audience", identity: { email: "developer@example.com" }, }, }, }, });
This is a breaking change for direct Miniflare v5 users: move
workers[].dev.accesstoworkers[].config.access.dev. Miniflare v5 is currently in beta. -
#16220
97b2fb1Thanks @FlorentCollin! - Support local D1 queries through the experimentald1_binding_jsrpccompatibility flagLocal D1 bindings now implement the RPC query backend used by
D1Database.query()and prepared-statement methods when the flag is enabled. Queries reuse local SQLite execution, including transactional batches, execution metadata, and session bookmarks, while bindings without the flag continue to use HTTP. Update the bundled workerd runtime to1.20261012.1and align the default compatibility date with that release.
Patch Changes
-
#16220
97b2fb1Thanks @FlorentCollin! - Align local D1 query metadata with production D1Local D1 queries now report
served_by_primary: true,total_attempts: 1, andtimings.sql_duration_msthrough both HTTP and RPC bindings.durationmeasures SQL execution rather than result conversion and metadata bookkeeping. Region and colo fields remain absent because local databases do not run in a Cloudflare colo. -
#16236
acd2822Thanks @danlapid! - ThrowERR_ADDRESS_IN_USEagain when a port is already takenRecent workerd versions no longer print
Address already in use; toString() = <address>, so a taken port surfaced asERR_RUNTIME_FAILUREwith workerd's raw log. Miniflare now also recognises workerd's newer forms,bind(): Address already in use (os error <n>)andSocket "<name>": bind(): ...(on Windows also the access-denied error a port held withSO_EXCLUSIVEADDRUSEgives), throwsERR_ADDRESS_IN_USE(naming the address when workerd says which socket failed), and no longer shows the raw log line on top of that error.