// Analyze action parameters from API const authResp = await fetch('http://100.81.138.77:8000/api/v1/auth/login', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ username: 'admin', password: 'admin123' }) }); const { access_token } = await authResp.json(); const resp = await fetch('http://100.81.138.77:8000/api/v1/configuration/action-mappings', { headers: { 'Authorization': `Bearer ${access_token}` } }); const data = await resp.json(); console.log('='.repeat(80)); console.log('ACTION PARAMETER ANALYSIS'); console.log('='.repeat(80)); // Collect all unique action types and their parameters const actionTypes = new Map(); data.mappings.forEach(mapping => { mapping.output_actions.forEach(outputAction => { const actionName = outputAction.action; const params = outputAction.parameters; if (!actionTypes.has(actionName)) { actionTypes.set(actionName, []); } actionTypes.get(actionName).push(params); }); }); // Display analysis console.log(`\nTotal unique action types: ${actionTypes.size}\n`); // Sort by action name const sortedActions = Array.from(actionTypes.entries()).sort((a, b) => a[0].localeCompare(b[0])); sortedActions.forEach(([actionName, paramsList]) => { console.log(`\n${'='.repeat(80)}`); console.log(`ACTION: ${actionName}`); console.log(`${'='.repeat(80)}`); console.log(`Occurrences: ${paramsList.length}`); // Collect all unique parameter keys const allKeys = new Set(); paramsList.forEach(params => { Object.keys(params).forEach(key => allKeys.add(key)); }); if (allKeys.size > 0) { console.log(`\nParameters:`); allKeys.forEach(key => { // Get all values for this key const values = paramsList .filter(p => p[key] !== undefined) .map(p => p[key]); const uniqueValues = [...new Set(values)]; const types = [...new Set(values.map(v => typeof v))]; console.log(` - ${key}:`); console.log(` Type: ${types.join(' | ')}`); console.log(` Examples: ${JSON.stringify(uniqueValues.slice(0, 3))}`); }); } else { console.log(` (No parameters)`); } // Show 1-2 complete examples console.log(`\nExample(s):`); paramsList.slice(0, 2).forEach((params, i) => { console.log(` ${i + 1}. ${JSON.stringify(params, null, 2).split('\n').join('\n ')}`); }); }); console.log(`\n${'='.repeat(80)}`); console.log('SUMMARY'); console.log('='.repeat(80)); console.log(`Total action types analyzed: ${actionTypes.size}`); console.log(`Total action instances: ${data.mappings.reduce((sum, m) => sum + m.output_actions.length, 0)}`);