61 lines
2.3 KiB
TypeScript
61 lines
2.3 KiB
TypeScript
import { createDirectus, rest, staticToken, updateCollection, createPermission, readCollections, readPermissions, createDashboard, createPanel, createItems } from '@directus/sdk';
|
|
import { config } from '../lib/config';
|
|
|
|
async function finalFix() {
|
|
const url = 'http://localhost:8059';
|
|
const token = '59fb8f4c1a51b18fe28ad947f713914e';
|
|
const client = createDirectus(url).with(staticToken(token)).with(rest());
|
|
|
|
try {
|
|
console.log('--- 1. UPDATE COLLECTION ACCOUNTABILITY ---');
|
|
await client.request(updateCollection('visual_feedback', {
|
|
meta: { accountability: null }
|
|
} as any));
|
|
console.log('✅ Accountability set to null.');
|
|
|
|
console.log('\n--- 2. GRANT PUBLIC READ ---');
|
|
// Policy ID for Public is always 'abf8a154-5b1c-4a46-ac9c-7300570f4f17' in v11 bootstrap usually,
|
|
// but let's check first.
|
|
try {
|
|
await client.request(createPermission({
|
|
policy: 'abf8a154-5b1c-4a46-ac9c-7300570f4f17',
|
|
collection: 'visual_feedback',
|
|
action: 'read',
|
|
fields: ['*']
|
|
} as any));
|
|
console.log('✅ Public READ granted.');
|
|
} catch (e) {
|
|
console.log(' (Public READ might already exist)');
|
|
}
|
|
|
|
console.log('\n--- 3. RECREATE DASHBOARD ---');
|
|
const dash = await client.request(createDashboard({
|
|
name: 'Feedback Final',
|
|
icon: 'check_circle',
|
|
color: '#00FF00'
|
|
}));
|
|
console.log(`✅ Dashboard "Feedback Final" ID: ${dash.id}`);
|
|
|
|
await client.request(createPanel({
|
|
dashboard: dash.id,
|
|
name: 'Visible Feedbacks',
|
|
type: 'metric',
|
|
width: 12,
|
|
height: 6,
|
|
position_x: 1,
|
|
position_y: 1,
|
|
options: { collection: 'visual_feedback', function: 'count', field: 'id' }
|
|
} as any));
|
|
|
|
console.log('\n--- 4. VERIFY READ VIA TOKEN ---');
|
|
const items = await client.request(() => ({ path: '/items/visual_feedback', method: 'GET' }));
|
|
console.log(`✅ Items count via token: ${items.data.length}`);
|
|
|
|
} catch (e: any) {
|
|
console.error('❌ Final fix failed:', e);
|
|
if (e.errors) console.error(JSON.stringify(e.errors, null, 2));
|
|
}
|
|
}
|
|
|
|
finalFix();
|