44 lines
1.1 KiB
Python
44 lines
1.1 KiB
Python
"""
|
|
Adapters for different managed app frameworks.
|
|
"""
|
|
|
|
from typing import Dict, List, Any, Optional
|
|
from abc import ABC, abstractmethod
|
|
|
|
|
|
class BaseAdapter(ABC):
|
|
"""Base adapter interface."""
|
|
|
|
def __init__(self, config: Dict[str, Any]):
|
|
"""
|
|
Initialize adapter with configuration.
|
|
|
|
Args:
|
|
config: Database connection or API endpoint configuration
|
|
"""
|
|
self.config = config
|
|
|
|
@abstractmethod
|
|
def navigate(
|
|
self,
|
|
query: Optional[str] = None,
|
|
entity: Optional[str] = None,
|
|
id: Optional[int] = None
|
|
) -> Dict[str, Any]:
|
|
"""
|
|
Navigate data graph.
|
|
|
|
Returns:
|
|
{
|
|
"nodes": [{"id": str, "type": str, "label": str, "data": dict}],
|
|
"edges": [{"from": str, "to": str, "label": str}],
|
|
"summary": {"title": str, "credentials": str|None, "fields": dict}
|
|
}
|
|
"""
|
|
pass
|
|
|
|
@abstractmethod
|
|
def get_queries(self) -> List[str]:
|
|
"""Return list of available query names."""
|
|
pass
|