$ the-wire · showcase
SCRAM channel binding restored over TLS, C# array parsing fixed
By RepoJournal · Filed · About Supabase · Composed from the cited sources · methodology
Supabase's ETL connector repaired a SILENT TLS regression that had switched off SCRAM channel binding, while the C# client stopped mangling Postgres array literals and the remote MCP server got a new home.
fix(postgres): restore SCRAM channel binding over TLS supabase/etl
The TLS adapter parsed complete certificates as `TbsCertificate`, so channel binding was silently disabled on every TLS connection. It now parses `Certificate` and hashes the original DER using its signature algorithm, and drops the unsupported Ed25519 digest assumption while keeping the existing fallback policy.
fix: reject empty source TLS trust bundles supabase/etl
Blank TLS trust bundles are now rejected during config validation and before pipeline startup, and bundles containing no certificates are rejected when the replication TLS config is built. SQLx store connections keep their default trust roots, so a misconfigured bundle fails loudly instead of quietly downgrading trust.
fix(realtime): parse postgres array literals instead of splitting on commas supabase/supabase-csharp
`IntArrayConverter` and `StringArrayConverter` used to split literals on commas, so `{"a,b",c}` came back as `["\"a", "b\"", "c"]` and `{NULL,a}` as `["NULL", "a"]`; they now parse the literal the way supabase-flutter does, yielding `["a,b", "c"]` and `[null, "a"]`.
fix(postgrest): allow null reference values in Set supabase/supabase-csharp
`Set(row => row.Data, null)` rejected reference-type columns other than `string` before sending a request, because the null guard used `Nullable.GetUnderlyingType`, which only applies to value types. The guard now applies only to value types, so `JObject`, `JsonObject` and nullable list columns can be cleared.
chore: fix nuget package descriptions, tags and repository urls supabase/supabase-csharp
Every nuget.org package now gets a one-sentence Description, 4 to 9 search tags covering auth, postgres, realtime and storage, and corrected RepositoryUrl and project urls; Title, Summary and Owners are dropped because `pack` ignores Summary and Owners and nuget.org indexes Title without showing it.
feat(sandbox): stage Docker-less local stacks via a docker option supabase/evals
`dockerAwareLocalStackRuntime` dissolves into `localStackRuntime`, so any experiment can request `docker: 'absent'` and stage a Docker-less local stack; `docker` defaults to `'available'`, which is the existing code path. Elsewhere in evals, `upload-braintrust` turns `results/` into Braintrust experiments, `cli` lands as an eval and experiment suite, the custom claims and RBAC guide gets covere...