""" Check what action categories are exposed by the backend """ import requests import json # Authenticate login_response = requests.post('http://localhost:8000/api/v1/auth/login', json={ 'username': 'admin', 'password': 'admin123' }) if login_response.status_code != 200: print(f"Login failed: {login_response.status_code}") exit(1) token = login_response.json()['access_token'] headers = {'Authorization': f'Bearer {token}'} # Get action categories print("="*80) print("ACTION CATEGORIES FROM BACKEND API") print("="*80) print() response = requests.get('http://localhost:8000/api/v1/configuration/action-categories', headers=headers) if response.status_code == 200: data = response.json() categories = data.get('categories', {}) print(f"Total categories: {len(categories)}") print() # Group by type base_categories = [] gcore_categories = [] gsc_categories = [] for category, actions in categories.items(): if category.startswith('G-Core'): gcore_categories.append((category, len(actions))) elif category.startswith('GSC'): gsc_categories.append((category, len(actions))) else: base_categories.append((category, len(actions))) print("BASE CATEGORIES:") for cat, count in sorted(base_categories): print(f" - {cat}: {count} actions") print() print("G-CORE SERVER CATEGORIES:") for cat, count in sorted(gcore_categories): print(f" - {cat}: {count} actions") print() print("GEVISCOPE (GSC) SERVER CATEGORIES:") for cat, count in sorted(gsc_categories): print(f" - {cat}: {count} actions") print() print("="*80) print(f"SUMMARY: {len(base_categories)} base + {len(gcore_categories)} G-Core + {len(gsc_categories)} GSC = {len(categories)} total") print("="*80) else: print(f"Failed to get categories: {response.status_code}") print(response.text)