feat: phase 1C JWT UI, events/hosts API, Vue frontend

This commit is contained in:
2026-05-26 21:46:34 +10:00
parent d8a8329397
commit bdfc7016e6
27 changed files with 2498 additions and 23 deletions
+55
View File
@@ -0,0 +1,55 @@
from datetime import datetime
from pydantic import BaseModel, Field
class HostSummary(BaseModel):
id: int
hostname: str
display_name: str | None
os_family: str
product: str
product_version: str | None
ipv4: str | None
last_seen_at: datetime
event_count: int | None = None
model_config = {"from_attributes": True}
class HostListResponse(BaseModel):
items: list[HostSummary]
total: int
page: int
page_size: int
class EventSummary(BaseModel):
id: int
event_id: str
host_id: int
hostname: str
occurred_at: datetime
received_at: datetime
category: str
type: str
severity: str
title: str
summary: str
model_config = {"from_attributes": True}
class EventDetail(EventSummary):
details: dict | None = None
raw: dict | None = None
dedup_key: str | None = None
correlation_id: str | None = None
payload: dict
class EventListResponse(BaseModel):
items: list[EventSummary]
total: int
page: int
page_size: int