wulf-pulse/test-config.js
root 6eee14f8af Add comprehensive admin features and multi-system integration
- Add admin dashboard with sync controls and data browser
- Implement RMM, Auvik, and Addigy organization mappings
- Add chunked ticket sync with progress tracking
- Implement entity sync service with rate limiting
- Add analytics engine and performance optimizer
- Create data browser for all PSA entities
- Add navigation components and UI improvements
- Implement background processing and sync services
- Add comprehensive documentation and migration scripts
- Update configuration items with multi-system support
- Enhance contact management and purchase history
- Add issue type assignment and LLM analyzer
- Improve error handling and logging utilities
2025-11-19 14:18:16 -05:00

72 lines
2.5 KiB
JavaScript

// Quick test to fetch Auvik device configuration
const deviceId = 'NTAyNzUxNTczODUzNjc1MjYxLDExNDk1OTYxNzUxOTczNTA4MjU';
const tenantId = '502751573853675261'; // hynesindustries tenant
const apiUrl = process.env.AUVIK_API_URL;
const apiUser = process.env.AUVIK_API_USER;
const apiKey = process.env.AUVIK_API_KEY;
const credentials = Buffer.from(`${apiUser}:${apiKey}`).toString('base64');
// Try configuration endpoints with proper tenant parameter
const endpoints = [
{ name: 'Configuration with tenant and deviceId filter', url: `${apiUrl}/v1/inventory/configuration?tenants=${tenantId}&filter[deviceId]=${deviceId}` },
{ name: 'Configuration with tenant only', url: `${apiUrl}/v1/inventory/configuration?tenants=${tenantId}` },
{ name: 'Single Configuration', url: `${apiUrl}/v1/inventory/configuration/${deviceId}?tenants=${tenantId}` },
];
console.log('Testing Auvik API endpoints for device:', deviceId);
console.log('Device: YNGHYNSWP19 (Serial: TW35L3R0FS)\n');
async function testEndpoint(endpoint) {
console.log(`\n=== Testing: ${endpoint.name} ===`);
console.log('URL:', endpoint.url);
try {
const response = await fetch(endpoint.url, {
headers: {
'Authorization': `Basic ${credentials}`,
'Accept': 'application/json',
}
});
console.log('Status:', response.status, response.statusText);
const text = await response.text();
if (!response.ok) {
console.error('Error:', text.substring(0, 200));
return;
}
try {
const data = JSON.parse(text);
console.log('✓ Success! Response:');
console.log(JSON.stringify(data, null, 2).substring(0, 2000));
// Special handling for configuration
if (endpoint.name === 'Configuration' && data.data && data.data.length > 0) {
const latest = data.data[0];
console.log('\n=== Latest Configuration Details ===');
console.log('Type:', latest.attributes.configType);
console.log('Backup Date:', latest.attributes.backupDate);
console.log('Size:', latest.attributes.configSize, 'bytes');
if (latest.attributes.configText) {
console.log('\n=== Configuration Text (first 1000 chars) ===');
console.log(latest.attributes.configText.substring(0, 1000));
}
}
} catch (e) {
console.log('Response (not JSON):', text.substring(0, 500));
}
} catch (error) {
console.error('Fetch error:', error.message);
}
}
async function runTests() {
for (const endpoint of endpoints) {
await testEndpoint(endpoint);
}
}
runTests();