Auth.Nexus / init_supabase_sql.txt
ChandimaPrabath's picture
varchar 16
56d9508
-- Users table
CREATE TABLE IF NOT EXISTS public.users (
user_id varchar(16) PRIMARY KEY, -- Use BIGINT for larger integer values
username TEXT UNIQUE NOT NULL,
password TEXT NOT NULL,
email TEXT,
date_joined TIMESTAMP WITH TIME ZONE NOT NULL,
access_level TEXT NOT NULL
);
-- Sessions table with composite primary key (user_id, token)
create table if not exists public.sessions (
user_id varchar(16) references public.users(user_id),
token text not null,
expires timestamp with time zone not null,
device text not null,
primary key (user_id, token) -- Composite primary key
);
-- Create indexes for better performance
create index if not exists idx_users_username on public.users(username);
create index if not exists idx_users_user_id on public.users(user_id);
create index if not exists idx_sessions_user_id on public.sessions(user_id);
create index if not exists idx_sessions_token on public.sessions(token);
-- Set up Row Level Security (RLS)
alter table public.users enable row level security;
alter table public.sessions enable row level security;
-- Create policies
create policy "Enable read access for all users"
on public.users for select
using (true);
create policy "Enable insert for authenticated users only"
on public.users for insert
with check (true);
create policy "Enable update for authenticated users"
on public.users for update
using (true);
create policy "Enable all access for sessions"
on public.sessions for all
using (true);