import { createDirectus, rest, authentication, readCollections } from '@directus/sdk'; import * as dotenv from 'dotenv'; import * as path from 'path'; dotenv.config({ path: path.resolve(__dirname, '../credentials.env') }); const DIRECTUS_URL = process.env.DIRECTUS_PUBLIC_URL; const EMAIL = process.env.DIRECTUS_ADMIN_EMAIL; const PASSWORD = process.env.DIRECTUS_ADMIN_PASSWORD; async function verifySystem() { console.log('šŸ” System Diagnostic Starting...\n'); // 1. Directus Connection console.log(`[1/3] Testing Directus Connection at ${DIRECTUS_URL}...`); if (!DIRECTUS_URL || !EMAIL || !PASSWORD) { console.error('āŒ Missing credentials in credentials.env'); return; } try { const client = createDirectus(DIRECTUS_URL).with(authentication()).with(rest()); await client.login(EMAIL, PASSWORD); console.log('āœ… Directus Auth: SUCCESS'); // Check Priority 1 Collections const requiredCollections = [ 'avatars', 'avatar_variants', 'geo_clusters', 'spintax_dictionaries', 'cartesian_patterns' ]; console.log('\nChecking Priority 1 Collections:'); // @ts-ignore const collections = await client.request(readCollections()); const collectionNames = collections.map((c: any) => c.collection); let missing = []; for (const req of requiredCollections) { if (collectionNames.includes(req)) { console.log(` āœ… ${req}`); } else { console.log(` āŒ ${req} (MISSING)`); missing.push(req); } } if (missing.length === 0) { console.log('\nāœ… All Priority 1 Collections Configured.'); } else { console.error('\nāŒ Critical Collections Missing!'); } } catch (error: any) { console.error('āŒ Directus Connection Failed:', error.message); } // 2. Coolify Token (Static Check) console.log('\n[2/3] Checking Coolify Configuration...'); if (process.env.COOLIFY_TOKEN) { console.log('āœ… COOLIFY_TOKEN found in env.'); } else { console.log('āš ļø COOLIFY_TOKEN not found in credentials.env (Deployment checks may fail).'); } // 3. SSH (Environment Check) console.log('\n[3/3] Checking SSH Configuration...'); if (process.env.SSH_PRIVATE_KEY) { console.log('āœ… SSH_PRIVATE_KEY found in env.'); } else { console.log('āš ļø SSH_PRIVATE_KEY not found in credentials.env.'); } } verifySystem();