feat(appliance): initial release of MERICA standalone appliance v1.0.0
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
from typing import Optional, List, Any
|
||||
from pydantic import BaseModel, model_validator
|
||||
|
||||
class ConnectionItem(BaseModel):
|
||||
conn_id: str
|
||||
conn_type: str
|
||||
host: str
|
||||
|
||||
class ConnectionListResponse(BaseModel):
|
||||
connections: List[ConnectionItem]
|
||||
|
||||
class CustomConnectionRequest(BaseModel):
|
||||
conn_id: str
|
||||
conn_type: str = "postgres"
|
||||
host: str
|
||||
port: int = 5432
|
||||
db_schema: str = "public"
|
||||
login: str = "postgres"
|
||||
password: Optional[str] = ""
|
||||
|
||||
@model_validator(mode="before")
|
||||
@classmethod
|
||||
def handle_schema_alias(cls, data: Any) -> Any:
|
||||
"""Support both 'schema' and 'db_schema' JSON payload keys safely."""
|
||||
if isinstance(data, dict):
|
||||
if "schema" in data and "db_schema" not in data:
|
||||
data["db_schema"] = data.pop("schema")
|
||||
return data
|
||||
|
||||
class ConnectionTestRequest(BaseModel):
|
||||
connection_id: str
|
||||
Reference in New Issue
Block a user