This commit introduces a new endpoint to test database connection. The frontend now includes a button to test the connection before creating a target, with real-time feedback on success or failure. Related styles and components were updated for better user experience.
44 lines
855 B
Python
44 lines
855 B
Python
from datetime import datetime
|
|
from pydantic import BaseModel, Field
|
|
|
|
|
|
class TargetBase(BaseModel):
|
|
name: str
|
|
host: str
|
|
port: int = 5432
|
|
dbname: str
|
|
username: str
|
|
sslmode: str = "prefer"
|
|
tags: dict = Field(default_factory=dict)
|
|
|
|
|
|
class TargetCreate(TargetBase):
|
|
password: str
|
|
|
|
|
|
class TargetConnectionTestRequest(BaseModel):
|
|
host: str
|
|
port: int = 5432
|
|
dbname: str
|
|
username: str
|
|
password: str
|
|
sslmode: str = "prefer"
|
|
|
|
|
|
class TargetUpdate(BaseModel):
|
|
name: str | None = None
|
|
host: str | None = None
|
|
port: int | None = None
|
|
dbname: str | None = None
|
|
username: str | None = None
|
|
password: str | None = None
|
|
sslmode: str | None = None
|
|
tags: dict | None = None
|
|
|
|
|
|
class TargetOut(TargetBase):
|
|
id: int
|
|
created_at: datetime
|
|
|
|
model_config = {"from_attributes": True}
|