41 lines
1.9 KiB
SQL
41 lines
1.9 KiB
SQL
-- ============================================================
|
|
-- post-boot — runs after all migrations have been applied.
|
|
-- Grants permissions to authenticator and supabase_admin,
|
|
-- then seeds initial admin user (telegram_id 298181113).
|
|
-- ============================================================
|
|
|
|
-- -----------------------------------------------------------
|
|
-- supabase_admin — role for Supabase Studio / pg-meta
|
|
-- Uses explicit grants rather than SUPERUSER + hardcoded pass.
|
|
-- -----------------------------------------------------------
|
|
DO $$ BEGIN
|
|
IF NOT EXISTS (SELECT FROM pg_roles WHERE rolname = 'supabase_admin') THEN
|
|
CREATE ROLE supabase_admin WITH LOGIN;
|
|
END IF;
|
|
END $$;
|
|
|
|
GRANT USAGE ON SCHEMA public TO supabase_admin;
|
|
GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO supabase_admin;
|
|
GRANT USAGE, SELECT ON ALL SEQUENCES IN SCHEMA public TO supabase_admin;
|
|
ALTER DEFAULT PRIVILEGES IN SCHEMA public
|
|
GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO supabase_admin;
|
|
ALTER DEFAULT PRIVILEGES IN SCHEMA public
|
|
GRANT USAGE, SELECT ON SEQUENCES TO supabase_admin;
|
|
|
|
-- -----------------------------------------------------------
|
|
-- authenticator — writes to user-facing tables (PostgREST)
|
|
-- -----------------------------------------------------------
|
|
GRANT SELECT, INSERT, UPDATE ON ALL TABLES IN SCHEMA public TO authenticator;
|
|
GRANT USAGE, SELECT ON ALL SEQUENCES IN SCHEMA public TO authenticator;
|
|
ALTER DEFAULT PRIVILEGES IN SCHEMA public
|
|
GRANT SELECT, INSERT, UPDATE ON TABLES TO authenticator;
|
|
ALTER DEFAULT PRIVILEGES IN SCHEMA public
|
|
GRANT USAGE, SELECT ON SEQUENCES TO authenticator;
|
|
|
|
-- -----------------------------------------------------------
|
|
-- Seed: initial admin user
|
|
-- -----------------------------------------------------------
|
|
INSERT INTO users (telegram_id, username, first_name, is_admin, is_active)
|
|
VALUES (298181113, NULL, 'Admin', true, true)
|
|
ON CONFLICT (telegram_id) DO NOTHING;
|