First commit - backup RDOC
This commit is contained in:
102
scripts/setup-supabase.js
Normal file
102
scripts/setup-supabase.js
Normal file
@@ -0,0 +1,102 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
import { readFileSync, writeFileSync } from 'fs';
|
||||
import { join } from 'path';
|
||||
import readline from 'readline';
|
||||
|
||||
const rl = readline.createInterface({
|
||||
input: process.stdin,
|
||||
output: process.stdout
|
||||
});
|
||||
|
||||
const question = (query) => new Promise(resolve => rl.question(query, resolve));
|
||||
|
||||
async function setupSupabase() {
|
||||
console.log(`
|
||||
╔═══════════════════════════════════════════════════════════════╗
|
||||
║ ║
|
||||
║ 🔗 CONFIGURAR CONEXÃO COM SUPABASE "RDO" ║
|
||||
║ ║
|
||||
╚═══════════════════════════════════════════════════════════════╝
|
||||
`);
|
||||
|
||||
console.log('📋 Você vai precisar das credenciais do seu projeto Supabase "RDO"');
|
||||
console.log(' Acesse: https://supabase.com/dashboard');
|
||||
console.log(' Selecione o projeto "RDO"');
|
||||
console.log(' Vá em: Settings → API\n');
|
||||
|
||||
// Obter credenciais
|
||||
const supabaseUrl = await question('🔗 Project URL (https://...supabase.co): ');
|
||||
const anonKey = await question('🔑 Anon Public Key: ');
|
||||
|
||||
// Validar
|
||||
if (!supabaseUrl || !anonKey) {
|
||||
console.error('\n❌ Erro: Credenciais não podem estar vazias!');
|
||||
rl.close();
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
if (!supabaseUrl.includes('supabase.co')) {
|
||||
console.error('\n❌ Erro: URL do Supabase inválida!');
|
||||
rl.close();
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
if (!anonKey.startsWith('eyJ')) {
|
||||
console.error('\n❌ Erro: Anon Key parece inválida (deve começar com "eyJ")!');
|
||||
rl.close();
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
// Atualizar .env
|
||||
console.log('\n⏳ Atualizando arquivo .env...');
|
||||
|
||||
const envPath = join(process.cwd(), '.env');
|
||||
const envContent = `# Supabase Configuration
|
||||
VITE_SUPABASE_URL=${supabaseUrl}
|
||||
VITE_SUPABASE_ANON_KEY=${anonKey}
|
||||
|
||||
# Service Role Key (Backend Only - Never use in frontend)
|
||||
# SUPABASE_SERVICE_ROLE_KEY=
|
||||
`;
|
||||
|
||||
try {
|
||||
writeFileSync(envPath, envContent);
|
||||
console.log('✅ Arquivo .env atualizado com sucesso!\n');
|
||||
} catch (error) {
|
||||
console.error('❌ Erro ao atualizar .env:', error.message);
|
||||
rl.close();
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
// Extrair project-ref
|
||||
const projectRef = supabaseUrl.match(/https:\/\/([^.]+)\.supabase\.co/)?.[1];
|
||||
|
||||
console.log('📊 Resumo da configuração:');
|
||||
console.log(` Project URL: ${supabaseUrl}`);
|
||||
console.log(` Project Ref: ${projectRef}`);
|
||||
console.log(` Anon Key: ${anonKey.substring(0, 20)}...`);
|
||||
|
||||
console.log('\n✅ Configuração concluída!\n');
|
||||
|
||||
console.log('📝 Próximos passos:\n');
|
||||
console.log('1️⃣ Linkar projeto Supabase CLI:');
|
||||
console.log(` supabase link --project-ref ${projectRef}\n`);
|
||||
|
||||
console.log('2️⃣ Verificar conexão:');
|
||||
console.log(' node check-supabase-status.js\n');
|
||||
|
||||
console.log('3️⃣ Aplicar migrations:');
|
||||
console.log(' supabase db push\n');
|
||||
|
||||
console.log('4️⃣ Iniciar desenvolvimento:');
|
||||
console.log(' npm run dev\n');
|
||||
|
||||
rl.close();
|
||||
}
|
||||
|
||||
setupSupabase().catch(error => {
|
||||
console.error('❌ Erro:', error.message);
|
||||
rl.close();
|
||||
process.exit(1);
|
||||
});
|
||||
Reference in New Issue
Block a user