feat(settings): add log retention settings page
Sysadmin/admin-only settings page for configuring how long device log history is kept before pruning. GET/PUT /api/settings/log-retention, new LogRetentionSettings page, nav entry, and route. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -4,8 +4,10 @@ from auth.dependencies import require_permission, require_roles
|
||||
from auth.models import Role
|
||||
from settings.models import MelodySettings, MelodySettingsUpdate
|
||||
from settings.public_features_models import PublicFeaturesSettings, PublicFeaturesSettingsUpdate
|
||||
from settings.log_retention_models import LogRetentionSettings, LogRetentionSettingsUpdate
|
||||
from settings import service
|
||||
from settings import public_features_service
|
||||
from settings import log_retention_service
|
||||
|
||||
router = APIRouter(prefix="/api/settings", tags=["settings"])
|
||||
|
||||
@@ -40,3 +42,20 @@ async def update_public_features(
|
||||
_user: TokenPayload = Depends(require_roles(Role.sysadmin, Role.admin)),
|
||||
):
|
||||
return public_features_service.update_public_features(body)
|
||||
|
||||
|
||||
# ── Log Retention Settings (sysadmin / admin only) ───────────────────────────
|
||||
|
||||
@router.get("/log-retention", response_model=LogRetentionSettings)
|
||||
async def get_log_retention(
|
||||
_user: TokenPayload = Depends(require_roles(Role.sysadmin, Role.admin)),
|
||||
):
|
||||
return log_retention_service.get_log_retention()
|
||||
|
||||
|
||||
@router.put("/log-retention", response_model=LogRetentionSettings)
|
||||
async def update_log_retention(
|
||||
body: LogRetentionSettingsUpdate,
|
||||
_user: TokenPayload = Depends(require_roles(Role.sysadmin, Role.admin)),
|
||||
):
|
||||
return log_retention_service.update_log_retention(body)
|
||||
|
||||
Reference in New Issue
Block a user