Download src/integrations/supabase/client.server.ts from incname/web: direct link, hf CLI and curl.
- Browser
- Download file 1.87 kB
-
https://huggingface.co/spaces/incname/web/resolve/main/src/integrations/supabase/client.server.ts
- Command line
-
hf download hf://spaces/incname/web/src/integrations/supabase/client.server.ts
-
curl -L -o client.server.ts https://huggingface.co/spaces/incname/web/resolve/main/src/integrations/supabase/client.server.ts
1.87 kB
| // This file is automatically generated. Do not edit it directly. | |
| // Server-side Supabase client with service role key - bypasses RLS. | |
| // Use this for admin operations in server functions and server routes only. | |
| // For user-authenticated queries (with RLS), use the auth middleware instead. | |
| import { createClient } from '@supabase/supabase-js'; | |
| import type { Database } from './types'; | |
| function createSupabaseAdminClient() { | |
| const SUPABASE_URL = process.env.SUPABASE_URL; | |
| const SUPABASE_SERVICE_ROLE_KEY = process.env.SUPABASE_SERVICE_ROLE_KEY; | |
| if (!SUPABASE_URL || !SUPABASE_SERVICE_ROLE_KEY) { | |
| const missing = [ | |
| ...(!SUPABASE_URL ? ['SUPABASE_URL'] : []), | |
| ...(!SUPABASE_SERVICE_ROLE_KEY ? ['SUPABASE_SERVICE_ROLE_KEY'] : []), | |
| ]; | |
| const message = `Missing Supabase environment variable(s): ${missing.join(', ')}. Connect Supabase in Lovable Cloud.`; | |
| console.error(`[Supabase] ${message}`); | |
| throw new Error(message); | |
| } | |
| return createClient<Database>(SUPABASE_URL, SUPABASE_SERVICE_ROLE_KEY, { | |
| auth: { | |
| storage: undefined, | |
| persistSession: false, | |
| autoRefreshToken: false, | |
| } | |
| }); | |
| } | |
| let _supabaseAdmin: ReturnType<typeof createSupabaseAdminClient> | undefined; | |
| // Server-side Supabase client with service role - bypasses RLS | |
| // SECURITY: Only use this for trusted server-side operations, never expose to client code | |
| // Load inside server handlers: const { supabaseAdmin } = await import("@/integrations/supabase/client.server"); | |
| // Top-level import is safe only in other .server.ts modules - route files and *.functions.ts ship to the client bundle. | |
| export const supabaseAdmin = new Proxy({} as ReturnType<typeof createSupabaseAdminClient>, { | |
| get(_, prop, receiver) { | |
| if (!_supabaseAdmin) _supabaseAdmin = createSupabaseAdminClient(); | |
| return Reflect.get(_supabaseAdmin, prop, receiver); | |
| }, | |
| }); | |