3.4 KiB
title, description, order, status
| title | description | order | status |
|---|---|---|---|
| İlk Admin Kurulumu | Neta'da ilk yönetici hesabının nasıl oluşturulduğu. | 9 | legacy-v2-archive |
İlk Admin Kurulumu
Arşiv: Aşağıdaki Supabase Auth kurulumu v2'ye aittir. v3 ilk owner hesabını
/registerüzerinden Better Auth + SQLite transaction'ıyla oluşturur; güncel akış repositoryREADME.mddosyasındadır.
Neta'yı kişisel bir freelancer çalışma alanı olarak düşündüğüm için sistemde herkesin serbestçe kayıt olmasını istemedim. Bu yüzden ilk admin oluşturulduktan sonra public kayıt akışı kapanır.
İlk kurulumun temel akışı şudur:
- Uygulama Supabase'e bağlanır.
/registersayfası açılır.- İlk freelancer/admin hesabı oluşturulur.
profilestablosunda ilk profil oluşur.- Sonraki public kayıt girişimleri engellenir.
İlk Admin Nasıl Oluşturulur?
Deploy tamamlandıktan sonra şu adrese gidin:
/register
E-posta ve şifre girerek ilk hesabı oluşturun. Bu hesap freelancer/admin olarak kabul edilir.
Kayıt sırasında server tarafında service role kullanılır. Bu yüzden SUPABASE_SERVICE_ROLE_KEY ortam değişkeni doğru olmalıdır.
Kayıt Neden Kapanıyor?
Neta'nın mevcut rol modeli şu şekilde:
freelancer: Ana kullanıcı.client: Müşteri portal kullanıcısı.
Ana freelancer hesabı public kayıtla yalnızca ilk kez oluşturulur. Bundan sonra sistem herkesin kayıt olmasına izin vermez. Çünkü bu proje çok kullanıcılı açık bir SaaS olarak değil, kişisel self-host çalışma alanı olarak tasarlandı.
Setup Kontrolü Nasıl Yapılır?
Uygulama ilk admin var mı diye Supabase tarafında şu function'ı kullanır:
is_first_admin_setup_available
Bu function genellikle profiles tablosunda kayıt var mı diye bakar.
Eğer function Supabase tarafında eksikse veya PostgREST schema cache henüz güncel değilse fallback kontrol devreye girebilir. Bunun için service role key gerekir.
İlk Admin Oluşturulamıyorsa
Şunları kontrol edin:
SUPABASE_SERVICE_ROLE_KEYdoğru mu?- Supabase URL doğru projeyi mi gösteriyor?
profilestablosu var mı?request_internal_auth_creationfunction'ı var mı?- Auth trigger yeni kullanıcı için profile oluşturuyor mu?
- Supabase SQL schema güncel mi?
Yanlış Kullanıcı İlk Admin Olduysa
Bu durumda dikkatli ilerlemek gerekir. Çünkü Supabase Auth ve public tablolar birlikte çalışır.
Kontrol edilecek yerler:
- Supabase Auth users.
profilestablosu.- Kullanıcının
rolealanı.
Geliştirme ortamında yanlış ilk admin oluştuysa ilgili auth user ve profile kaydı silinip tekrar denenebilir. Production ortamında bunu yapmadan önce database backup almak daha güvenlidir.
Müşteri Kullanıcıları Nasıl Oluşturulur?
Müşteri kullanıcıları public /register üzerinden oluşturulmaz. Freelancer paneli içinden bir müşteri kaydına portal hesabı açılır.
Bu işlem sonucunda:
- Supabase Auth içinde yeni client user oluşur.
profiles.roledeğericlientolur.clients.client_auth_idbu auth user id'sine bağlanır.
Müşteri login olduğunda dashboard'a değil, /portal alanına yönlendirilir.
Güvenlik Notu
İlk admin kurulumu tamamlandıktan sonra /register linki görünse bile kayıt denemesi server tarafında tekrar kontrol edilir. Yani sadece linki saklamak güvenlik önlemi değildir; asıl kontrol server action ve Supabase tarafındadır.