feat(nextcloud-status): Benachrichtigung abonnieren und Mail bei Störung
- Glocke je Kachel (persönlich, Benutzen-Ebene), Tabelle NextcloudAlertSubscription mit RLS - Zwei-Fehlschläge-Regel und gemeldeter Zustand auf der Zeile, Anspruch vor dem Mailversand - Mail (nur Deutsch) über MailService, bis zu drei Versuche, Zugriff beim Senden erneut geprüft - Fehlercodes in der Mail als lesbarer Hinweis Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -58,6 +58,7 @@ model User {
|
||||
moduleGrants ModuleGrant[]
|
||||
customModules CustomModule[]
|
||||
reminders Reminder[]
|
||||
nextcloudAlertSubscriptions NextcloudAlertSubscription[]
|
||||
|
||||
@@index([tenantId])
|
||||
@@index([username])
|
||||
@@ -807,12 +808,38 @@ model NextcloudInstance {
|
||||
productName String?
|
||||
errorKind String?
|
||||
errorDetail String?
|
||||
// quick-261002-kxc: Zwei-Fehlschlaege-Regel und zuletzt gemeldeter Zustand.
|
||||
// consecutiveFailures/firstFailureAt: aufeinanderfolgende fehlgeschlagene
|
||||
// Abrufe (der erste aendert den gespeicherten Zustand nicht).
|
||||
consecutiveFailures Int @default(0)
|
||||
firstFailureAt DateTime?
|
||||
// zuletzt gemeldeter Zustand: 'ok' | 'red' (Anspruch vor dem Mailversand)
|
||||
alertState String @default("ok")
|
||||
alertReason String?
|
||||
alertChangedAt DateTime?
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
subscriptions NextcloudAlertSubscription[]
|
||||
|
||||
@@index([tenantId])
|
||||
}
|
||||
|
||||
// quick-261002-kxc: persoenliche Benachrichtigung (Glocke) je Benutzer und
|
||||
// Nextcloud-Cloud. Zeilenschutz MIT Benutzerdimension wie "Reminder"; faellt
|
||||
// Benutzer oder Cloud weg, faellt das Abonnement mit.
|
||||
model NextcloudAlertSubscription {
|
||||
id String @id @default(uuid())
|
||||
tenantId String
|
||||
userId String
|
||||
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
|
||||
instanceId String
|
||||
instance NextcloudInstance @relation(fields: [instanceId], references: [id], onDelete: Cascade)
|
||||
createdAt DateTime @default(now())
|
||||
|
||||
@@unique([instanceId, userId])
|
||||
@@index([tenantId, userId])
|
||||
}
|
||||
|
||||
// Eigene Module (quick-260929-9wc): vom Administrator angelegte Seitenleisten-
|
||||
// Eintraege, die eine externe https-Seite im Rahmen zeigen. Sichtbar fuer alle
|
||||
// Benutzer des Mandanten. Zeilenschutz nach Muster ProxmoxServer (tenantId,
|
||||
|
||||
Reference in New Issue
Block a user