/
ncit
/
multiagentsystem
Обзор
Документация
Войти
/
ncit
/
multiagentsystem
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
supabase/migrations/000_roles.sql
82 строки
4 KB
Nikita
feat: update API and add supabase initialization
09 июн 2026, 12:07
09 июн 2026, 12:07
f18df6f
Код
Авторство
О чём код?
-- ═══════════════════════════════════════════════════════════════════════════════ -- SUPABASE ROLES — Must be created before Supabase services start -- ═══════════════════════════════════════════════════════════════════════════════ -- Required roles for Supabase stack DO $$ DECLARE db_password TEXT := current_setting('app.password', true); BEGIN -- Use the POSTGRES_PASSWORD for all service roles IF db_password IS NULL OR db_password = '' THEN -- Fallback if env var not set db_password := 'changeme'; END IF; -- Core roles IF NOT EXISTS (SELECT FROM pg_roles WHERE rolname = 'anon') THEN CREATE ROLE anon NOLOGIN NOINHERIT; END IF; IF NOT EXISTS (SELECT FROM pg_roles WHERE rolname = 'authenticated') THEN CREATE ROLE authenticated NOLOGIN NOINHERIT; END IF; IF NOT EXISTS (SELECT FROM pg_roles WHERE rolname = 'service_role') THEN CREATE ROLE service_role NOLOGIN NOINHERIT BYPASSRLS; END IF; IF NOT EXISTS (SELECT FROM pg_roles WHERE rolname = 'authenticator') THEN EXECUTE format('CREATE ROLE authenticator NOINHERIT LOGIN PASSWORD %L', db_password); GRANT anon TO authenticator; GRANT authenticated TO authenticator; GRANT service_role TO authenticator; END IF; -- Supabase admin roles IF NOT EXISTS (SELECT FROM pg_roles WHERE rolname = 'supabase_auth_admin') THEN EXECUTE format('CREATE ROLE supabase_auth_admin NOINHERIT CREATEROLE LOGIN PASSWORD %L', db_password); END IF; IF NOT EXISTS (SELECT FROM pg_roles WHERE rolname = 'supabase_storage_admin') THEN EXECUTE format('CREATE ROLE supabase_storage_admin NOINHERIT CREATEROLE LOGIN PASSWORD %L', db_password); END IF; IF NOT EXISTS (SELECT FROM pg_roles WHERE rolname = 'supabase_admin') THEN EXECUTE format('CREATE ROLE supabase_admin NOINHERIT CREATEROLE LOGIN PASSWORD %L', db_password); END IF; IF NOT EXISTS (SELECT FROM pg_roles WHERE rolname = 'supabase_replication_admin') THEN EXECUTE format('CREATE ROLE supabase_replication_admin REPLICATION LOGIN PASSWORD %L', db_password); END IF; END $$; -- Grant necessary permissions GRANT ALL PRIVILEGES ON DATABASE postgres TO supabase_admin; GRANT ALL PRIVILEGES ON DATABASE postgres TO supabase_auth_admin; GRANT ALL PRIVILEGES ON DATABASE postgres TO supabase_storage_admin; -- Create schemas CREATE SCHEMA IF NOT EXISTS _realtime; CREATE SCHEMA IF NOT EXISTS auth; CREATE SCHEMA IF NOT EXISTS storage; CREATE SCHEMA IF NOT EXISTS _analytics; GRANT ALL ON SCHEMA _realtime TO supabase_admin; GRANT ALL ON SCHEMA auth TO supabase_auth_admin; GRANT ALL ON SCHEMA storage TO supabase_storage_admin; -- Grant usage on public schema to anon/authenticated/service_role GRANT USAGE ON SCHEMA public TO anon, authenticated, service_role; GRANT ALL ON ALL TABLES IN SCHEMA public TO anon, authenticated, service_role; GRANT ALL ON ALL SEQUENCES IN SCHEMA public TO anon, authenticated, service_role; GRANT ALL ON ALL FUNCTIONS IN SCHEMA public TO anon, authenticated, service_role; -- Set default privileges ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL ON TABLES TO anon, authenticated, service_role; ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL ON SEQUENCES TO anon, authenticated, service_role; ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL ON FUNCTIONS TO anon, authenticated, service_role; -- Extensions CREATE EXTENSION IF NOT EXISTS "uuid-ossp"; CREATE EXTENSION IF NOT EXISTS pgcrypto;