|
|
from typing import Protocol, Any, Dict, List, Optional, Tuple |
|
|
from .domain.entities import MCPCredential, MCPCredentialProfile |
|
|
|
|
|
|
|
|
class DatabaseConnection(Protocol): |
|
|
@property |
|
|
async def client(self) -> Any: |
|
|
... |
|
|
|
|
|
|
|
|
class Logger(Protocol): |
|
|
def info(self, message: str) -> None: |
|
|
... |
|
|
|
|
|
def debug(self, message: str) -> None: |
|
|
... |
|
|
|
|
|
def warning(self, message: str) -> None: |
|
|
... |
|
|
|
|
|
def error(self, message: str) -> None: |
|
|
... |
|
|
|
|
|
|
|
|
class EncryptionService(Protocol): |
|
|
def encrypt_config(self, config: Dict[str, Any]) -> Tuple[bytes, str]: |
|
|
... |
|
|
|
|
|
def decrypt_config(self, encrypted_config: bytes, expected_hash: str) -> Dict[str, Any]: |
|
|
... |
|
|
|
|
|
|
|
|
class ProfileManager(Protocol): |
|
|
async def get_profiles( |
|
|
self, |
|
|
account_id: str, |
|
|
app_slug: Optional[str] = None, |
|
|
is_active: bool = True |
|
|
) -> List[Any]: |
|
|
... |