Add integration configuration from remix

This commit is contained in:
gpt-engineer-app[bot]
2026-05-14 02:54:11 +00:00
parent 0e82ccc05a
commit d315e2ce0d
5 changed files with 36 additions and 25 deletions
+5 -5
View File
@@ -1,5 +1,5 @@
SUPABASE_PUBLISHABLE_KEY="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6Inl2b2FlbGN1bHR1YXRzdmtoZGl1Iiwicm9sZSI6ImFub24iLCJpYXQiOjE3NzYzNzIwMTYsImV4cCI6MjA5MTk0ODAxNn0.dXU0K_7fE1uih0kzbxTeVhfsbjG1V9CEl17DIPL_tfo"
SUPABASE_URL="https://yvoaelcultuatsvkhdiu.supabase.co"
VITE_SUPABASE_PROJECT_ID="yvoaelcultuatsvkhdiu"
VITE_SUPABASE_PUBLISHABLE_KEY="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6Inl2b2FlbGN1bHR1YXRzdmtoZGl1Iiwicm9sZSI6ImFub24iLCJpYXQiOjE3NzYzNzIwMTYsImV4cCI6MjA5MTk0ODAxNn0.dXU0K_7fE1uih0kzbxTeVhfsbjG1V9CEl17DIPL_tfo"
VITE_SUPABASE_URL="https://yvoaelcultuatsvkhdiu.supabase.co"
SUPABASE_PUBLISHABLE_KEY="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6ImNjemx6aHZuZmJ2cmJ6cGZtZXRwIiwicm9sZSI6ImFub24iLCJpYXQiOjE3Nzg3MTU5OTQsImV4cCI6MjA5NDI5MTk5NH0.6a6U5fOnLVeeIyS8SRNLsKhlMJ7RacZgwOIxH_3_FBo"
SUPABASE_URL="https://cczlzhvnfbvrbzpfmetp.supabase.co"
VITE_SUPABASE_PROJECT_ID="cczlzhvnfbvrbzpfmetp"
VITE_SUPABASE_PUBLISHABLE_KEY="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6ImNjemx6aHZuZmJ2cmJ6cGZtZXRwIiwicm9sZSI6ImFub24iLCJpYXQiOjE3Nzg3MTU5OTQsImV4cCI6MjA5NDI5MTk5NH0.6a6U5fOnLVeeIyS8SRNLsKhlMJ7RacZgwOIxH_3_FBo"
VITE_SUPABASE_URL="https://cczlzhvnfbvrbzpfmetp.supabase.co"
+16 -13
View File
@@ -13,31 +13,34 @@ export const requireSupabaseAuth = createMiddleware({ type: 'function' }).server
const SUPABASE_PUBLISHABLE_KEY = process.env.SUPABASE_PUBLISHABLE_KEY;
if (!SUPABASE_URL || !SUPABASE_PUBLISHABLE_KEY) {
throw new Response(
'Missing Supabase environment variables. Ensure SUPABASE_URL and SUPABASE_PUBLISHABLE_KEY are set.',
{ status: 500 }
);
const missing = [
...(!SUPABASE_URL ? ['SUPABASE_URL'] : []),
...(!SUPABASE_PUBLISHABLE_KEY ? ['SUPABASE_PUBLISHABLE_KEY'] : []),
];
const message = `Missing Supabase environment variable(s): ${missing.join(', ')}. Connect Supabase in Lovable Cloud.`;
console.error(`[Supabase] ${message}`);
throw new Error(message);
}
const request = getRequest();
if (!request?.headers) {
throw new Response('Unauthorized: No request headers available', { status: 401 });
throw new Error('Unauthorized: No request headers available');
}
const authHeader = request.headers.get('authorization');
if (!authHeader) {
throw new Response('Unauthorized: No authorization header provided', { status: 401 });
throw new Error('Unauthorized: No authorization header provided');
}
if (!authHeader.startsWith('Bearer ')) {
throw new Response('Unauthorized: Only Bearer tokens are supported', { status: 401 });
throw new Error('Unauthorized: Only Bearer tokens are supported');
}
const token = authHeader.replace('Bearer ', '');
if (!token) {
throw new Response('Unauthorized: No token provided', { status: 401 });
throw new Error('Unauthorized: No token provided');
}
const supabase = createClient<Database>(
@@ -59,11 +62,11 @@ export const requireSupabaseAuth = createMiddleware({ type: 'function' }).server
const { data, error } = await supabase.auth.getClaims(token);
if (error || !data?.claims) {
throw new Response('Unauthorized: Invalid token', { status: 401 });
throw new Error('Unauthorized: Invalid token');
}
if (!data.claims.sub) {
throw new Response('Unauthorized: No user ID found in token', { status: 401 });
throw new Error('Unauthorized: No user ID found in token');
}
return next({
@@ -72,6 +75,6 @@ export const requireSupabaseAuth = createMiddleware({ type: 'function' }).server
userId: data.claims.sub,
claims: data.claims,
},
})
}
)
});
},
);
+7 -3
View File
@@ -10,9 +10,13 @@ function createSupabaseAdminClient() {
const SUPABASE_SERVICE_ROLE_KEY = process.env.SUPABASE_SERVICE_ROLE_KEY;
if (!SUPABASE_URL || !SUPABASE_SERVICE_ROLE_KEY) {
throw new Error(
'Missing Supabase server environment variables. Ensure SUPABASE_URL and SUPABASE_SERVICE_ROLE_KEY are set.'
);
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, {
+7 -3
View File
@@ -9,9 +9,13 @@ function createSupabaseClient() {
const SUPABASE_PUBLISHABLE_KEY = import.meta.env.VITE_SUPABASE_PUBLISHABLE_KEY || process.env.SUPABASE_PUBLISHABLE_KEY;
if (!SUPABASE_URL || !SUPABASE_PUBLISHABLE_KEY) {
throw new Error(
'Missing Supabase environment variables. Ensure SUPABASE_URL and SUPABASE_PUBLISHABLE_KEY (or VITE_ prefixed versions) are set in your .env file.'
);
const missing = [
...(!SUPABASE_URL ? ['SUPABASE_URL'] : []),
...(!SUPABASE_PUBLISHABLE_KEY ? ['SUPABASE_PUBLISHABLE_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_PUBLISHABLE_KEY, {
+1 -1
View File
@@ -1 +1 @@
project_id = "yvoaelcultuatsvkhdiu"
project_id = "cczlzhvnfbvrbzpfmetp"