grafana_fetch_folders
Retrieve all Grafana folders with metadata and permissions to organize and manage dashboard access.
Instructions
Fetches all folders from Grafana with their metadata and permissions.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- The handler logic that makes the API request to Grafana to fetch folders and processes the response.
def grafana_fetch_folders(self) -> dict[str, Any]: """ Fetches all folders from Grafana. Returns: Dict containing list of folders """ try: url = f"{self.__host}/api/folders" logger.info("Fetching all folders") response = requests.get(url, headers=self.headers, verify=self.__ssl_verify, timeout=20) if response.status_code == 200: folders = response.json() # Extract relevant information folder_list = [] for folder in folders: folder_list.append( { "id": folder.get("id"), "uid": folder.get("uid"), "title": folder.get("title"), "url": folder.get("url"), "has_acl": folder.get("hasAcl", False), "can_save": folder.get("canSave", False), "can_edit": folder.get("canEdit", False), "can_admin": folder.get("canAdmin", False), "created": folder.get("created"), "updated": folder.get("updated"), "created_by": folder.get("createdBy"), "updated_by": folder.get("updatedBy"), "version": folder.get("version"), } ) return { "status": "success", "total_count": len(folder_list), "folders": folder_list, } else: raise Exception(f"Failed to fetch folders. Status: {response.status_code}, Response: {response.text}") except Exception as e: logger.error(f"Error fetching folders: {e!s}") raise e