Archived
Polish KarlDNS production UI and docs
This commit is contained in:
1 parent
ca92dc211a
commit
5beee0e5c6
61 files changed
+1566
-523
No files matched your search
@@ -19,6 +19,7 @@ from ..web.templates import _copy_row
|
||||
from ..web.templates_admin import _admin_secret_panel, _render_admin_page
|
||||
|
||||
ADMIN_TABLE_LIMIT = 100
|
||||
ADMIN_JSON_OFFSET_CAP = 10_000
|
||||
|
||||
|
||||
def make_router(admin_path: str = "/admin") -> APIRouter:
|
||||
@@ -42,6 +43,7 @@ def make_router(admin_path: str = "/admin") -> APIRouter:
|
||||
store.list_cleanup_runs(limit=ADMIN_TABLE_LIMIT, offset=table_offsets.get("cleanup_runs", 0)),
|
||||
store.list_scheduled_tasks(),
|
||||
store.list_update_events(ADMIN_TABLE_LIMIT, offset=table_offsets.get("update_events", 0)),
|
||||
store.get_service_metrics(),
|
||||
{
|
||||
"accounts": store.count_accounts(),
|
||||
"domain_challenges": store.count_domain_challenges(),
|
||||
@@ -131,7 +133,7 @@ def make_router(admin_path: str = "/admin") -> APIRouter:
|
||||
"router update URL rotated by admin",
|
||||
client_ip(request, settings),
|
||||
)
|
||||
notice = _admin_secret_panel("Update URL rotated", [_copy_row("Update-URL:", service.fritz_update_url(rotated))]) if rotated else None
|
||||
notice = _admin_secret_panel("Update URL changed", [_copy_row("Update-URL:", service.fritz_update_url(rotated))]) if rotated else None
|
||||
elif action == "management":
|
||||
rotated = await run_in_threadpool(store.rotate_management_slug, hostname)
|
||||
await run_in_threadpool(
|
||||
@@ -143,7 +145,7 @@ def make_router(admin_path: str = "/admin") -> APIRouter:
|
||||
"management URL rotated by admin",
|
||||
client_ip(request, settings),
|
||||
)
|
||||
notice = _admin_secret_panel("Private status page rotated", [_copy_row("Private status page:", service.magic_management_url(rotated))]) if rotated else None
|
||||
notice = _admin_secret_panel("Dashboard link changed", [_copy_row("Private dashboard:", service.magic_management_url(rotated))]) if rotated else None
|
||||
elif action == "password":
|
||||
rotated = await run_in_threadpool(store.rotate_password, hostname)
|
||||
await run_in_threadpool(
|
||||
@@ -157,10 +159,10 @@ def make_router(admin_path: str = "/admin") -> APIRouter:
|
||||
)
|
||||
if rotated:
|
||||
notice = _admin_secret_panel(
|
||||
"Router password rotated",
|
||||
"Router password changed",
|
||||
[
|
||||
_copy_row("Domainnamen:", str(rotated["hostname"]), "Public"),
|
||||
_copy_row("One-box update URL:", service.credentialed_update_url(rotated), "Secret"),
|
||||
_copy_row("Full update URL:", service.credentialed_update_url(rotated), "Secret"),
|
||||
_copy_row("Benutzername (optional):", str(rotated["username"]), "Public"),
|
||||
_copy_row("Kennwort (optional):", str(rotated["password"]), "Secret"),
|
||||
],
|
||||
@@ -187,7 +189,7 @@ def make_router(admin_path: str = "/admin") -> APIRouter:
|
||||
settings.cleanup_event_history_hours,
|
||||
)
|
||||
notice = _admin_secret_panel(
|
||||
"Cleanup completed",
|
||||
"Cleanup done",
|
||||
[
|
||||
_copy_row("Domain claims removed", str(result["domain_challenges"])),
|
||||
_copy_row("Unused hostnames removed", str(result["unused_accounts"])),
|
||||
@@ -202,7 +204,7 @@ def make_router(admin_path: str = "/admin") -> APIRouter:
|
||||
store: StoreDep,
|
||||
_: None = Depends(authenticate_admin),
|
||||
limit: int = Query(100, ge=1, le=500),
|
||||
offset: int = Query(0, ge=0),
|
||||
offset: int = Query(0, ge=0, le=ADMIN_JSON_OFFSET_CAP),
|
||||
) -> dict[str, object]:
|
||||
return {
|
||||
"items": store.list_records_page(limit=limit, offset=offset),
|
||||
@@ -216,12 +218,16 @@ def make_router(admin_path: str = "/admin") -> APIRouter:
|
||||
store: StoreDep,
|
||||
_: None = Depends(authenticate_admin),
|
||||
limit: int = Query(100, ge=1, le=500),
|
||||
offset: int = Query(0, ge=0),
|
||||
offset: int = Query(0, ge=0, le=ADMIN_JSON_OFFSET_CAP),
|
||||
before: str | None = Query(None, max_length=64),
|
||||
) -> dict[str, object]:
|
||||
items = store.list_update_events_before(limit=limit, before=before) if before else store.list_update_events_page(limit=limit, offset=offset)
|
||||
next_before = str(items[-1]["created_at"]) if len(items) == limit and items[-1].get("created_at") else None
|
||||
return {
|
||||
"items": store.list_update_events_page(limit=limit, offset=offset),
|
||||
"items": items,
|
||||
"limit": limit,
|
||||
"offset": offset,
|
||||
"next_before": next_before,
|
||||
"total": store.count_update_events(),
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user