feat(PROJ-34): Retention-Tab + pro-Mandant Aufbewahrungsfristen
- tenantstore: retention_days Spalte, GetRetentionDays/SetRetentionDays
- storage.Save(): per-tenant retention überschreibt globale config
- API: GET /api/admin/retention, PUT /api/admin/tenant/{id}/retention
- Frontend: RetentionTab mit globaler Policy-Anzeige, Mandanten-Tabelle,
Bearbeiten-Dialog und Purge-Button (superadmin only)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -177,6 +177,7 @@ func main() {
|
||||
}
|
||||
srv := api.New(apiCfg, mailStore, idx, authMgr, users, audlog, logger)
|
||||
srv.SetVersion(AppVersion, Modules)
|
||||
srv.SetGlobalRetentionDays(cfg.Storage.RetentionDays)
|
||||
|
||||
bind := cfg.API.Bind
|
||||
if bind == "" {
|
||||
|
||||
@@ -12,17 +12,17 @@ const AppVersion = "0.9.1"
|
||||
// MAJOR: Interface-Änderungen, Breaking changes innerhalb des Moduls
|
||||
// MINOR: Neue Funktionen, Bugfixes, Security-Patches
|
||||
var Modules = map[string]string{
|
||||
"storage": "1.7", // PROJ-33 MailWithUID, GetMailsWithUID, GetMailsByRecipient
|
||||
"storage": "1.8", // PROJ-34 per-tenant retention lookup in Save()
|
||||
"smtpd": "1.3", // PROJ-28 FQDN-Fallback für EHLO-Banner
|
||||
"imapserver": "1.3", // PROJ-28 FQDN-Greeting (RFC 3501)
|
||||
"auth": "1.3", // JWT, bcrypt cost 12, TOTP
|
||||
"audit": "1.1", // PostgreSQL append-only, QueryFilter
|
||||
"index": "1.0", // Xapian-Wrapper, Async-Worker, Tenant-Index
|
||||
"api": "1.7", // PROJ-33 IMAP-Modus-Einstellungen
|
||||
"api": "1.8", // PROJ-34 Retention-API + pro-Mandant Endpoints
|
||||
"userstore": "1.3", // domain_auditor Rolle, bcrypt, LDAP-Auth
|
||||
"imap": "1.2", // IMAP-Sync, Scheduler, POP3
|
||||
"labelstore": "1.0", // Labels, Tenant-Isolation
|
||||
"tenantstore": "1.2", // PROJ-33 imap_mode, GetIMAPMode, SetIMAPMode
|
||||
"tenantstore": "1.3", // PROJ-34 retention_days, GetRetentionDays, SetRetentionDays
|
||||
"ldapconfig": "1.1", // Pro-Mandant LDAP, TLS
|
||||
"mailparser": "1.1", // RFC-2822, MIME, MessageID-Extraktion
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user