@supabase/server, Edge Functions ve serverless ortamlarda kimlik doğrulama, RLS kapsamlı istemci ve CORS'u tek wrapper ile otomatikleştiriyor.
Ne oldu?
Supabase, sunucu tarafında tekrarlayan bağlantı ve kimlik doğrulama kodlarından kurtaran yeni `@supabase/server` paketini duyurdu. Paket; Edge Functions, Vercel Functions, Cloudflare Workers, Hono ve Bun gibi ortamlarda çalışacak şekilde tasarlandı. `withSupabase` adlı tek bir wrapper ile geliştirici, isteğin kimliğini doğrulama, iki ayrı Supabase istemcisi oluşturma, RLS politikalarını uygulama ve CORS başlıklarını yönetme işlemlerini tek seferde hallediyor. Bu sayede her fonksiyonun başında kopyala-yapıştır `supabaseClient.ts` dosyaları veya manuel JWT doğrulama döngülerine gerek kalmıyor.
Neden önemli?
Supabase ekosisteminde sunucu tarafı, genellikle anon key ile service role key arasındaki geçiş, JWT imza kontrolü, JWKS yapılandırması ve RLS kapsamlı istemci üretimi gibi işlemlerle doluyordu. `@supabase/server`, bu işlemleri `SupabaseContext` nesnesiyle birleştirerek her handler'a hazır bir bağlam sunuyor: `ctx.supabase` çağrıyı yapan kullanıcıya göre RLS kurallarına tabi çalışırken, `ctx.supabaseAdmin` yönetimsel işlemler için RLS'yi atlıyor. Ayrıca CORS, kimlik doğrulama ve ortam değişkeni yönetimi paket tarafından içselleştirildiği için, geliştiriciler iş mantığına odaklanabiliyor.
Güvenlik açısından da önemli bir kazanım var: yeni anahtar doğrulama ve JWT doğrulama paketin kendisinde çözüldüğü için `jose` gibi harici kütüphaneler veya elle yapılan JWKS ayarlarına olan ihtiyaç azalıyor. Kimlik doğrulama handler çalışmadan önce tamamlandığından, yetkisiz istekler iş mantığına ulaşmadan geri çevriliyor.
Kim veya ne etkileniyor?
Doğrudan etkilenenler, Supabase kullanan Edge Function ve serverless API geliştiricileri, frontend-arkası backend ekipleri ve BaaS tabanlı SaaS ürünleri. Özellikle Cloudflare Workers, Vercel Functions, Hono veya kendi Supabase Edge Functions'ları ile veri kaydeden uygulamalar, bu paket sayesinde daha az şablon kodla daha tutarlı bir güvenlik modeline kavuşacak. Kullanıcı kapsamlı istemciler ve admin istemciler arasındaki ayrım netleştiği için, yanlışlıkla service role key'in anon istemciye sızması gibi hataların önüne geçilmesine yardımcı olacak.
Ne yapılmalı?
Mevcut Supabase tabanlı sunucu fonksiyonları olan projeler, `@supabase/server` paketine geçişi bir deneme dalında değerlendirmeli. Yeni projelerde ise Edge Function veya serverless handler'ları `withSupabase` wrapper'ıyla başlatmak, güvenlik ve bakım yükünü azaltmak için doğrudan tercih edilebilir. Ancak `ctx.supabaseAdmin` istemcisinin RLS'yi bypass ettiği unutulmamalı ve bu istemci yalnızca sunucu tarafında, güvenilir iş mantığı çerçevesinde kullanılmalı. Paketin desteklediği auth modları (`user`, `publishable`, `secret`, `none`) ve CORS davranışı dokümantasyondan dikkatle incelenmeli; production'a geçmeden önce yetkilendirme senaryoları test edilmeli.