/**
* IT Glue MCP Server Constants
*/
// API Base URLs by region
export const API_BASE_URLS = {
us: 'https://api.itglue.com',
eu: 'https://api.eu.itglue.com',
au: 'https://api.au.itglue.com'
} as const;
export type ApiRegion = keyof typeof API_BASE_URLS;
// Default configuration
export const DEFAULT_REGION: ApiRegion = 'us';
export const DEFAULT_PAGE_SIZE = 50;
export const MAX_PAGE_SIZE = 1000;
export const DEFAULT_TIMEOUT = 30000; // 30 seconds
// Response limits
export const CHARACTER_LIMIT = 25000;
// Rate limiting (3000 requests per 5 minutes)
export const RATE_LIMIT = {
requests: 3000,
windowMs: 5 * 60 * 1000 // 5 minutes
};
// Common field mappings for filtering
export const FILTER_FIELDS = {
organizations: ['id', 'name', 'organization_type_id', 'organization_status_id', 'psa_id', 'psa_integration_type'],
configurations: ['id', 'name', 'organization_id', 'configuration_type_id', 'configuration_status_id', 'contact_id', 'serial_number', 'asset_tag', 'psa_id', 'rmm_id'],
passwords: ['id', 'name', 'organization_id', 'password_category_id', 'url', 'archived'],
contacts: ['id', 'first_name', 'last_name', 'organization_id', 'contact_type_id', 'psa_id'],
flexible_assets: ['id', 'name', 'organization_id', 'flexible_asset_type_id'],
locations: ['id', 'name', 'organization_id', 'psa_id', 'city', 'region_id', 'country_id'],
domains: ['id', 'name', 'organization_id']
} as const;
// Sort fields
export const SORTABLE_FIELDS = {
organizations: ['name', 'id', 'updated_at', 'created_at', 'organization_status_name', 'organization_type_name'],
configurations: ['name', 'id', 'updated_at', 'created_at'],
passwords: ['name', 'id', 'updated_at', 'created_at'],
contacts: ['first_name', 'last_name', 'id', 'updated_at', 'created_at'],
flexible_assets: ['name', 'id', 'updated_at', 'created_at'],
locations: ['name', 'id', 'updated_at', 'created_at'],
domains: ['name', 'id', 'expires_on', 'updated_at', 'created_at']
} as const;