This repository was archived by the owner on Aug 25, 2026. It is now read-only.
EdgeBase 0.3.2
EdgeBase 0.3.2
Provider parity release: aligns the Durable Object, D1, and PostgreSQL database backends so the same request behaves identically on all three, and closes an access-rule bypass on D1 batch operations.
🔒 Security
- D1 batch access-rule bypass fixed. Batch update/delete and batch-by-filter on the D1 backend skipped row-level access rules (batch updates ran no update rule, batch deletes evaluated the delete rule once against an empty row, and batch-by-filter ignored auth/service-key context). Authenticated clients could bypass row-level authorization. All batch paths now evaluate rules per row, matching the Durable Object handler.
⚠️ Behavior changes
- PostgreSQL response shapes aligned with D1/DO: search without a term returns an empty result instead of
400; an empty update body returns the existing record instead of400; delete returns{ deleted: true }; the legacyerrorsfield was removed from validation responses. - PostgreSQL batch inserts are now atomic (BEGIN/COMMIT) and support updates/deletes.
- D1 field-name aliasing removed (snake_case↔camelCase auto-mapping); all backends now require exact field names.
- Rule-rejection messages and driver-error normalization unified across backends.
✨ Improvements
includeTotalquery parameter (skip the COUNT query on list) promoted to all backends and documented.- Multi-table atomic transact API and PostgreSQL transact support (session-scoped BEGIN/COMMIT).
- New SDK support-tiers documentation.
📦 SDKs
SDK packages are versioned in lockstep at 0.3.2. Registry publishing (npm, PyPI, crates.io, NuGet, RubyGems, Hex, pub.dev) is performed separately by the maintainer; JVM SDKs (Java/Kotlin/Scala) publish via JitPack on this tag, and the PHP/Swift split repositories sync automatically.
🤖 Generated with Claude Code