feat(PROJ-29): Tenant-Quotas & Usage-Limits vollständig implementiert

- storage/quota.go: SQL-Bug gefixt (emails.size → size_bytes, email_refs JOIN)
- tenantstore/quota.go: GetUsage nutzt jetzt email_refs JOIN für korrekte Tenant-Isolation
- smtpd: ErrQuotaExceeded → SMTP 452 statt 554 (MTA-retry statt permanent reject)
- admin_handlers: handleCreateUser prüft max_users-Quota → HTTP 402 bei Überschreitung
- quota_handlers: handleGetTenantUsage gibt jetzt warnings-Feld mit soft-limit-Prozenten zurück
- server.go: spec-konforme Alias-Route GET /api/admin/tenants/{id}/usage registriert

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
sysops
2026-04-04 01:27:59 +02:00
parent 22cbfb5df6
commit 4ef5897e68
8 changed files with 87 additions and 12 deletions
+5
View File
@@ -266,6 +266,7 @@ Commands:
import E-Mails importieren (EML, MBOX, Verzeichnis)
import-piler Aus mailpiler migrieren (pilerexport oder direkte Store-Methode)
export E-Mails exportieren (EML, MBOX)
reindex Index neu aufbauen (alle oder pro Mandant)
version Version anzeigen
help Diese Hilfe anzeigen
@@ -300,5 +301,9 @@ archivmail export [flags]
--query Volltext-Suche
--force Vorhandene Dateien überschreiben
--json Maschinenlesbare JSON-Ausgabe
archivmail reindex [flags]
--config Pfad zur Konfigurationsdatei (Standard: /etc/archivmail/config.yml)
--tenant Mandanten-ID für partiellen Reindex (0 = alle)
`, AppVersion)
}