Site Admin: quota override management UI #58
Labels
No Label
area:auth
area:docs
area:export
area:ops
area:storage
area:supply-chain
auth
backend
blocked
collab
deployment
docs
effort:L
effort:M
effort:S
frontend
plugins
qa
vs-nfd
vs-nfd:blocker
No Milestone
No project
No Assignees
2 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: stwaidele/dorfteich#58
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Context
Site Admins tune quotas per user and per pond (kickoff: three-level ladder).
Scope
Admin area 'Quotas': view instance defaults (edit them here — moves the raw settings from #19 into a proper form), search users/ponds and set/clear per-user and per-pond overrides for every quota key, with effective-value preview and current usage display (
pond_usage).Acceptance criteria
pond_usageand flags ponds over quota (soft warning; enforcement stays at consumption points)Technical notes
Dependencies
Depends on #22, #52.
Size: ~1 day
Conventions: English code/comments, clear human-readable code, no hard-coded UI strings (ADR 0012, add
deanden), permission checks only via the shared guard (docs/architecture/permissions.md). Read the referenced ADRs before starting.Umgesetzt in
6d3db7d(Claude Opus 4.8), Pipeline komplett grün (CI + CD: Deploy Test, Smoke, Int-Promotion). Live auf Test verifiziert.Was #58 liefert
admin/:QuotaAdminService+ Site-Admin-gated/admin/quotas—GET /admin/quotas/lookup?type=user|pond&q=(Username/E-Mail bzw. Slug → id+label),GET /admin/quotas/:type/:id(pro Quota-Key: override / instance-default / effektiv über die Drei-Ebenen-Leiter + Nutzung),PUT/DELETE :type/:id/:key(set/clear, audit-geloggt). Effektiv-Auflösung geht durch die vorhandeneQuotaService(der einzige Consumption-Pfad), daher greift ein Override sofort; für einen Pond löst er über eigenen Override → Owner-Override → Default, passend zu den Consumption-Checks.quotas-i18n-Namespace (de+en).Acceptance criteria
additional_pondslässt den Nutzer sofort einen weiteren Shared-Pond anlegen).pond_usage/Grants und markiert Über-Kontingent (Soft-Warnung; Enforcement bleibt an den Consumption-Punkten).Live-Check (Test): Quota-View für fixture-user liefert Defaults (5/50/0/1 GiB/25 MiB) + effektive Werte + Nutzung.
Tests:
quota-admin.e2e.db.test.ts(Override → effektiv ändert sich sofort + QuotaService sieht es; Clear → Fallback; Lookup; Site-Admin-Gating); Browser-admin-quotas-Pack (UI-Override → sofort Pond-Erstellung erlaubt) mit eigenem CI-Step.