Initial commit

This commit is contained in:
Codex
2026-01-23 11:12:31 +01:00
commit 0c420a8697
27 changed files with 1767 additions and 0 deletions

62
server/app/schemas.py Normal file
View File

@@ -0,0 +1,62 @@
from __future__ import annotations
from datetime import datetime
from enum import Enum
from typing import List, Optional
from pydantic import BaseModel, Field, constr
class TokenType(str, Enum):
bearer = "bearer"
class AuthToken(BaseModel):
access_token: str
token_type: TokenType
expires_at: datetime
class ProfileBase(BaseModel):
name: constr(min_length=1)
folders: List[str] = Field(..., min_items=1)
description: Optional[str] = None
schedule_enabled: bool = False
class ProfileCreate(ProfileBase):
pass
class ProfileRead(ProfileBase):
id: int
created_at: datetime
updated_at: datetime
class BackupStartRequest(BaseModel):
profile_id: int
client_host: str
ssh_username: str
ssh_password: str
folders: Optional[List[str]] = None
class JobStatusResponse(BaseModel):
job_id: int
status: str
progress: int
summary: Optional[str]
last_log_lines: List[str] = []
created_at: datetime
updated_at: datetime
class BackupLog(BaseModel):
job_id: int
lines: List[str]
class HealthResponse(BaseModel):
status: str
version: str