Rotate and delete API access, not just revoke

Rotating hands out a fresh token, voids the old one and lifts a revocation.
Deleting removes the row for good, taking its idempotency keys with it.
Both are admin only and land in the audit log.
This commit is contained in:
Matthias G
2026-08-14 09:08:43 +02:00
parent 7b4b5e1a14
commit 97b8092914
10 changed files with 325 additions and 43 deletions
+11 -2
View File
@@ -302,7 +302,10 @@
"runNotFound": "Im Kanal war keine passende Nachricht zu finden. Braucht der Bot noch das Recht channels:history?",
"channelRequired": "Zum Bot-Token gehört ein Kanal, sonst weiß Logbuch nicht, wohin.",
"slackSaid": "Slack sagt: {detail}",
"windowReset": "Der Zeitraum ist zurückgesetzt. Der nächste Bericht umfasst wieder die letzten sieben Tage."
"windowReset": "Der Zeitraum ist zurückgesetzt. Der nächste Bericht umfasst wieder die letzten sieben Tage.",
"clientRotated": "Das alte Token gilt nicht mehr. Das neue steht einmalig hier.",
"clientDeleted": "Der Zugang ist gelöscht.",
"clientUnknown": "Diesen Zugang gibt es nicht mehr."
},
"errors": {
"nameRequired": "Trag einen Namen ein.",
@@ -712,7 +715,13 @@
"project": "Ohne Bindung gilt der Zugang für alle Projekte."
},
"publishTitle": "Veröffentlichen",
"publishHint": "Kein Zugang darf veröffentlichen. Das bleibt an Konten gebunden."
"publishHint": "Kein Zugang darf veröffentlichen. Das bleibt an Konten gebunden.",
"rotate": "Neues Token",
"rotating": "Wird erneuert",
"delete": "Löschen",
"deleteConfirm": "Wirklich löschen?",
"deleting": "Wird gelöscht",
"keep": "Behalten"
},
"recentEntries": "Zuletzt bearbeitet",
"allEntries": "Alle Beiträge",
+11 -2
View File
@@ -302,7 +302,10 @@
"runNotFound": "No matching message found in the channel. Does the bot still need channels:history?",
"channelRequired": "A bot token needs a channel, otherwise Logbuch has no target.",
"slackSaid": "Slack says: {detail}",
"windowReset": "The window is reset. The next digest covers the last seven days again."
"windowReset": "The window is reset. The next digest covers the last seven days again.",
"clientRotated": "The old token is void. The new one is shown here once.",
"clientDeleted": "The access is deleted.",
"clientUnknown": "That access no longer exists."
},
"errors": {
"nameRequired": "Enter a name.",
@@ -712,7 +715,13 @@
"project": "Without a binding the access covers all projects."
},
"publishTitle": "Publishing",
"publishHint": "No access may publish. That stays bound to accounts."
"publishHint": "No access may publish. That stays bound to accounts.",
"rotate": "New token",
"rotating": "Rotating",
"delete": "Delete",
"deleteConfirm": "Really delete?",
"deleting": "Deleting",
"keep": "Keep"
},
"recentEntries": "Recently edited",
"allEntries": "All entries",