DEV Community

Supabase .NET DevLog #1

Welcome to the first entry of our weekly log for the Supabase .NET SDK! ๐ŸŽ‰

Being still a new joiner in the company, I'm still ramping up. I've been working on a plan to set up the direction of the SDK and prioritise what needs to be done first. I'm far from my full velocity, but there's a lot to catch up on.

I started with critical fixes, as the SDK was broken in some places:

Critical Fixes

  • [GoTrue] Auth kept dead sessions alive: when a refresh token got rejected, the client only cleared the session in one specific case.
  • [GoTrue] Email OTP sign-in and password reset were broken: SignInWithOtp and ResetPasswordForEmail had the PKCE verifier and challenge swapped (the SHA-256 hash was sent as the raw value, and vice-versa).
  • [PostgREST] Negation dropped in predicates: a silent issue where conditions like x => !(x.Name == "foo") were dropping the negation on Where, Update, and Delete.
  • [PostgREST] Truncated DateTime: reading dropped sub-second precision and UTC offset. Any round-trip was failing.
  • [PostgREST] Where improvements:
    • ids.Contains(x.Id) now translates into an in filter rather than throwing
    • boolean columns (ex: x.IsActive) can be used directly
    • comparing two columns to each other throws a clear error explaining why PostgREST can't do that

It's worth noting that all of these changes are yet unreleased. I will ship more critical fixes, and an improvement on the SDK's telemetry, before releasing a clean version this week.

This will be a good opportunity to align dependencies, as the SDK doesn't reference all the latest versions of its sub-packages at the moment.

Once we stabilize the usage, the first milestone will be to migrate to a monorepo. Hopefully, soon.

Have a great day, and keep coding!

Comments

No comments yet. Start the discussion.