VIBN Frontend for Coolify deployment

This commit is contained in:
2026-02-15 19:25:52 -08:00
commit 40bf8428cd
398 changed files with 76513 additions and 0 deletions

View File

@@ -0,0 +1,86 @@
/**
* Quick script to verify session associations in Firestore
*/
import { config } from 'dotenv';
import { resolve } from 'path';
// Load environment variables from .env.local
config({ path: resolve(__dirname, '../.env.local') });
import { getAdminDb } from '../lib/firebase/admin';
async function checkSessionLinks() {
const db = getAdminDb();
console.log('🔍 Checking session associations...\n');
// Get all sessions
const sessionsSnapshot = await db.collection('sessions').get();
console.log(`📊 Total sessions: ${sessionsSnapshot.size}\n`);
// Group by status
const linked: any[] = [];
const unlinked: any[] = [];
sessionsSnapshot.docs.forEach(doc => {
const data = doc.data();
const sessionInfo = {
id: doc.id,
workspaceName: data.workspaceName || 'Unknown',
workspacePath: data.workspacePath,
projectId: data.projectId,
needsProjectAssociation: data.needsProjectAssociation,
createdAt: data.createdAt?.toDate?.() || data.createdAt,
};
if (data.projectId) {
linked.push(sessionInfo);
} else {
unlinked.push(sessionInfo);
}
});
console.log(`✅ Linked to projects: ${linked.length}`);
console.log(`⚠️ Not linked: ${unlinked.length}\n`);
if (linked.length > 0) {
console.log('📌 Linked Sessions:');
linked.forEach(s => {
console.log(` - ${s.workspaceName} → Project: ${s.projectId?.substring(0, 8)}...`);
console.log(` needsProjectAssociation: ${s.needsProjectAssociation}`);
});
console.log('');
}
if (unlinked.length > 0) {
console.log('⚠️ Unlinked Sessions:');
unlinked.forEach(s => {
console.log(` - ${s.workspaceName}`);
console.log(` Path: ${s.workspacePath}`);
console.log(` needsProjectAssociation: ${s.needsProjectAssociation}`);
});
console.log('');
}
// Check projects
const projectsSnapshot = await db.collection('projects').get();
console.log(`📁 Total projects: ${projectsSnapshot.size}\n`);
projectsSnapshot.docs.forEach(doc => {
const data = doc.data();
console.log(` - ${data.productName || data.name || 'Unnamed'}`);
console.log(` ID: ${doc.id}`);
console.log(` Workspace: ${data.workspacePath || 'Not set'}`);
console.log('');
});
process.exit(0);
}
checkSessionLinks().catch(error => {
console.error('Error:', error);
process.exit(1);
});