Skip to main content
Glama
debug_ssb_api.py•6.61 kB
#!/usr/bin/env python3 """ Debug script to test different SSB API endpoints and authentication methods. """ import json import requests import sys import os # Add parent directory to Python path to import config module sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..')) from config.config_loader import ConfigLoader def test_different_endpoints(): """Test different possible SSB API endpoints.""" # Load Cloud SSB configuration config_loader = ConfigLoader() cloud_config = config_loader.get_cloud_ssb_config() knox_url = cloud_config.get('knox_gateway_url') jwt_token = cloud_config.get('jwt_token') print("šŸ” Debugging SSB API Endpoints") print("=" * 50) print(f"Knox URL: {knox_url}") print(f"JWT Token: {jwt_token[:50]}...") # Different possible endpoints to try endpoints = [ f"{knox_url}/irb-ssb-test/cdp-proxy-token/ssb-sse-api/", f"{knox_url}/irb-ssb-test/cdp-proxy-token/ssb-sse-api/api/v1", f"{knox_url}/irb-ssb-test/cdp-proxy-token/ssb-sse-api/api/", f"{knox_url}/irb-ssb-test/cdp-proxy-token/ssb-sse-api/api/v1/tables", f"{knox_url}/irb-ssb-test/cdp-proxy-token/ssb-sse-api/api/v1/jobs", f"{knox_url}/irb-ssb-test/cdp-proxy-token/ssb-sse-api/api/v2/projects", f"{knox_url}/irb-ssb-test/cdp-proxy/ssb-mve-api/api/v1/info", f"{knox_url}/irb-ssb-test/cdp-proxy/ssb-mve-api/api/v1", f"{knox_url}/irb-ssb-test/cdp-proxy/ssb-mve-api/api/", f"{knox_url}/gateway/irb-ssb-test/cdp-proxy-token/ssb-mve-api/api/v1/info", f"{knox_url}/gateway/irb-ssb-test/cdp-proxy/ssb-mve-api/api/v1/info", f"{knox_url}/gateway/irb-ssb-test/cdp-proxy/ssb-mve-api/api/v1", f"{knox_url}/gateway/irb-ssb-test/cdp-proxy/ssb-mve-api/api/", ] headers = { 'Authorization': f'Bearer {jwt_token}', 'Content-Type': 'application/json' } successful_endpoints = [] for i, endpoint in enumerate(endpoints, 1): print(f"\n{i}. Testing: {endpoint}") try: response = requests.get(endpoint, headers=headers, timeout=10, verify=True) print(f" Status: {response.status_code}") if response.status_code == 200: print(f" āœ… SUCCESS! Response: {response.json()}") successful_endpoints.append(endpoint) else: print(f" āŒ Failed: {response.text[:200]}") except Exception as e: print(f" āŒ Error: {e}") if successful_endpoints: print(f"\nšŸŽ‰ Found {len(successful_endpoints)} working endpoint(s):") for endpoint in successful_endpoints: print(f" āœ… {endpoint}") return True else: print("\nāŒ No working endpoints found") return False def test_authentication_methods(): """Test different authentication methods.""" # Load Cloud SSB configuration config_loader = ConfigLoader() cloud_config = config_loader.get_cloud_ssb_config() knox_url = cloud_config.get('knox_gateway_url') jwt_token = cloud_config.get('jwt_token') print("\nšŸ” Testing Different Authentication Methods") print("=" * 50) # Test endpoint (using the most likely one) endpoint = f"{knox_url}/irb-ssb-test/cdp-proxy-token/ssb-sse-api/api/v1/info" # Different auth methods auth_methods = [ ("Bearer Token", {'Authorization': f'Bearer {jwt_token}'}), ("Token Header", {'X-Auth-Token': jwt_token}), ("Custom Header", {'X-Knox-Token': jwt_token}), ("Basic Auth", None, jwt_token), # This won't work but let's try ] for method_name, headers in auth_methods: if headers is None: continue print(f"\nTesting {method_name}:") try: response = requests.get(endpoint, headers=headers, timeout=10, verify=True) print(f" Status: {response.status_code}") if response.status_code == 200: print(f" āœ… SUCCESS with {method_name}!") return True else: print(f" āŒ Failed: {response.text[:200]}") except Exception as e: print(f" āŒ Error: {e}") return False def test_knox_gateway_info(): """Test Knox Gateway information endpoints.""" # Load Cloud SSB configuration config_loader = ConfigLoader() cloud_config = config_loader.get_cloud_ssb_config() knox_url = cloud_config.get('knox_gateway_url') print("\n🌐 Testing Knox Gateway Information") print("=" * 50) # Test basic Knox Gateway connectivity try: response = requests.get(knox_url, timeout=10, verify=True) print(f"Knox Gateway Status: {response.status_code}") if response.status_code == 200: print("āœ… Knox Gateway is accessible") else: print(f"āŒ Knox Gateway error: {response.text[:200]}") except Exception as e: print(f"āŒ Knox Gateway error: {e}") # Test Knox Gateway info endpoint try: info_url = f"{knox_url}/gateway/irb-ssb-test/info" response = requests.get(info_url, timeout=10, verify=True) print(f"Knox Info Status: {response.status_code}") if response.status_code == 200: print(f"āœ… Knox Info: {response.json()}") else: print(f"āŒ Knox Info error: {response.text[:200]}") except Exception as e: print(f"āŒ Knox Info error: {e}") if __name__ == "__main__": print("šŸš€ SSB API Debug Tool") print("=" * 50) # Test 1: Different endpoints print("\n" + "="*60) print("TEST 1: Testing Different Endpoints") print("="*60) success1 = test_different_endpoints() # Test 2: Different auth methods print("\n" + "="*60) print("TEST 2: Testing Different Authentication Methods") print("="*60) success2 = test_authentication_methods() # Test 3: Knox Gateway info print("\n" + "="*60) print("TEST 3: Testing Knox Gateway Information") print("="*60) test_knox_gateway_info() # Summary print("\n" + "="*60) print("SUMMARY") print("="*60) if success1: print("āœ… Found working endpoint(s) in Test 1!") if success2: print("āœ… Found working authentication method in Test 2!") if not success1 and not success2: print("āŒ No working endpoints or authentication methods found.") print(" Check the JWT token and network access.")

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/BrooksIan/SSB-MCP-Server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server