const sqlite3 = require('sqlite3').verbose(); const db = new sqlite3.Database('/directus/database/data.db'); db.serialize(() => { console.log('--- INTERNAL REPAIR START ---'); // 1. Grant to Public Policy db.run(`INSERT INTO directus_permissions (collection, action, fields, permissions, validation, presets, policy) VALUES ('visual_feedback', 'read', '["*"]', '{}', '{}', '{}', 'abf8a154-5b1c-4a46-ac9c-7300570f4f17')`, (err) => { if (err) console.log('Public grant note:', err.message); else console.log('✅ Public READ granted.'); }); // 2. Grant to Admin Policy db.run(`INSERT INTO directus_permissions (collection, action, fields, permissions, validation, presets, policy) VALUES ('visual_feedback', 'read', '["*"]', '{}', '{}', '{}', 'bed7c035-28f7-4a78-b11a-0dc0e7fc3cd4')`, (err) => { if (err) console.log('Admin grant note:', err.message); else console.log('✅ Admin READ granted.'); }); // 3. Mark collection as non-hidden db.run(`UPDATE directus_collections SET hidden = 0, accountability = NULL WHERE collection = 'visual_feedback'`, (err) => { if (err) console.log('Collection update error:', err.message); else console.log('✅ Collection metadata cleared.'); }); db.all(`SELECT COUNT(*) as count FROM visual_feedback`, (err, rows) => { if (err) console.log('Item count error:', err.message); else console.log(`📊 Items in visual_feedback: ${rows[0].count}`); }); }); db.close();