Skip to main content
Glama
auth.py2.32 kB
""" Authentication utilities for Frappe API. This module handles API key/secret validation and provides authentication helpers for Frappe API interactions. """ import os from typing import Dict, Any def validate_api_credentials() -> Dict[str, Any]: """ Validate that required API credentials are available. Returns: Dict containing validation status and details """ api_key = os.getenv("FRAPPE_API_KEY") api_secret = os.getenv("FRAPPE_API_SECRET") if not api_key and not api_secret: return { "valid": False, "message": "Both API key and API secret are missing", "details": { "api_key_available": False, "api_secret_available": False, "auth_method": "API key/secret (token)" } } elif not api_key: return { "valid": False, "message": "API key is missing", "details": { "api_key_available": False, "api_secret_available": True, "auth_method": "API key/secret (token)" } } elif not api_secret: return { "valid": False, "message": "API secret is missing", "details": { "api_key_available": True, "api_secret_available": False, "auth_method": "API key/secret (token)" } } return { "valid": True, "message": "API credentials are properly configured", "details": { "api_key_available": True, "api_secret_available": True, "auth_method": "API key/secret (token)" } } def get_api_credentials() -> Dict[str, str]: """ Get API credentials from environment variables. Returns: Dict containing api_key and api_secret Raises: ValueError: If credentials are missing """ api_key = os.getenv("FRAPPE_API_KEY") api_secret = os.getenv("FRAPPE_API_SECRET") if not api_key or not api_secret: validation = validate_api_credentials() raise ValueError(f"Authentication failed: {validation['message']}") return { "api_key": api_key, "api_secret": api_secret }

Implementation Reference

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/appliedrelevance/frappe-mcp-server'

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