Skip to main content
Glama
check-auth-and-users.cjs•4.24 kB
#!/usr/bin/env node const https = require('https'); const axios = require('axios'); // Create axios instance that ignores SSL certificate errors (for testing) const axiosInstance = axios.create({ httpsAgent: new https.Agent({ rejectUnauthorized: false }) }); async function checkAuth() { const baseUrl = 'https://api.umbrellacost.io/api/v1'; console.log('Testing authentication and user endpoints...\n'); try { // Try authentication with correct password console.log('Attempting authentication...'); const authResponse = await axiosInstance.post(`${baseUrl}/authentication/token/generate`, { username: 'david+allcloud@umbrellacost.com', password: 'Dsamsung1!123' }); console.log('Auth successful!'); console.log('Token type:', authResponse.data.tokenType || 'Bearer'); console.log('Token length:', authResponse.data.token?.length || authResponse.data.access_token?.length); const token = authResponse.data.token || authResponse.data.access_token; // Try to get users console.log('\nGetting /users endpoint...'); const usersResponse = await axiosInstance.get(`${baseUrl}/users`, { headers: { 'Authorization': `Bearer ${token}` } }); console.log('Users response received'); console.log('Number of accounts:', usersResponse.data?.length); // Look for Bank Leumi related accounts if (Array.isArray(usersResponse.data)) { console.log('\n=== Looking for Bank Leumi / Reseller-1 ==='); usersResponse.data.forEach(account => { const name = (account.accountName || '').toLowerCase(); const key = account.accountKey; if (name.includes('leumi') || name.includes('reseller') || key === '22676' || key === 22676) { console.log(`\n📍 Found potential match:`); console.log(` Name: ${account.accountName}`); console.log(` Key: ${account.accountKey}`); console.log(` Type: ${account.accountType}`); console.log(` Full:`, JSON.stringify(account, null, 2)); } }); } // Try plain-sub-users console.log('\n\nTrying /users/plain-sub-users endpoint...'); try { const plainResponse = await axiosInstance.get(`${baseUrl}/users/plain-sub-users`, { headers: { 'Authorization': `Bearer ${token}` } }); console.log('Plain-sub-users response received'); console.log('Has customerDivisions:', !!plainResponse.data?.customerDivisions); if (plainResponse.data?.customerDivisions) { const divisions = plainResponse.data.customerDivisions; console.log('Number of customers:', Object.keys(divisions).length); // Look for Reseller-1 if (divisions['Reseller-1']) { console.log('\n✅ Found "Reseller-1" in customerDivisions!'); console.log(JSON.stringify(divisions['Reseller-1'], null, 2)); } } } catch (plainErr) { console.log('Plain-sub-users failed:', plainErr.response?.status, plainErr.response?.data?.message || plainErr.message); } } catch (error) { console.error('Error:', error.response?.status, error.response?.data || error.message); if (error.response?.status === 401) { console.log('\nTrying alternative auth endpoint...'); try { const altAuth = await axiosInstance.post(`${baseUrl}/auth`, { username: 'david+allcloud@umbrellacost.com', password: 'Dsamsung1!123' }); console.log('Alternative auth successful!'); } catch (altErr) { console.log('Alternative auth also failed'); } } } } checkAuth();

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/daviddraiumbrella/invoice-monitoring'

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