feat: add automated configuration checker script

This commit is contained in:
Carlos (Almeira) 2026-03-27 16:37:46 -05:00
parent 0ecfa29bf0
commit ded6045fdb
2 changed files with 76 additions and 1 deletions

74
check_config.js Normal file
View File

@ -0,0 +1,74 @@
const { Client, Databases } = require('node-appwrite');
async function checkConfig() {
console.log('🔍 Validando configuración de Almeira Web...\n');
const requiredVars = [
'NEXT_PUBLIC_APPWRITE_ENDPOINT',
'NEXT_PUBLIC_APPWRITE_PROJECT_ID',
'APPWRITE_API_KEY',
'APPWRITE_DATABASE_ID'
];
let missing = false;
requiredVars.forEach(v => {
if (!process.env[v]) {
console.error(`❌ Faltante: Variable de entorno ${v}`);
missing = true;
} else {
console.log(`✅ Presente: ${v}`);
}
});
if (missing) {
console.error('\n🛑 Error: Faltan variables de entorno críticas. Revisa tu archivo .env.local.');
process.exit(1);
}
const client = new Client()
.setEndpoint(process.env.NEXT_PUBLIC_APPWRITE_ENDPOINT)
.setProject(process.env.NEXT_PUBLIC_APPWRITE_PROJECT_ID)
.setKey(process.env.APPWRITE_API_KEY);
const databases = new Databases(client);
const databaseId = process.env.APPWRITE_DATABASE_ID;
try {
console.log(`\n📡 Conectando a Appwrite (${process.env.NEXT_PUBLIC_APPWRITE_ENDPOINT})...`);
const db = await databases.get(databaseId);
console.log(`✅ Conexión exitosa a la base de datos: "${db.name}" (${databaseId})`);
const collectionsToCheck = [
'posts',
'settings',
'publication_types',
'categories',
'whatsapp_messages',
'entidad'
];
console.log('\n📦 Verificando colecciones críticas...');
for (const colId of collectionsToCheck) {
try {
const col = await databases.getCollection(databaseId, colId);
console.log(`✅ Colección encontrada: ${col.name} (${colId})`);
} catch (err) {
console.error(`❌ Error en colección ${colId}: ${err.message}`);
missing = true;
}
}
} catch (err) {
console.error(`❌ Error de conexión a Appwrite: ${err.message}`);
process.exit(1);
}
if (missing) {
console.error('\n🛑 Algunas colecciones no fueron encontradas. Revisa la base de datos en Appwrite.');
process.exit(1);
}
console.log('\n✨ ¡Configuración validada correctamente para producción!');
}
checkConfig();

View File

@ -6,7 +6,8 @@
"dev": "next dev",
"build": "next build",
"start": "next start",
"lint": "eslint"
"lint": "eslint",
"check-config": "node --env-file=.env.local check_config.js"
},
"dependencies": {
"@tiptap/extension-color": "^3.21.0",