Send through a bot token so messages can be deleted again

Incoming webhooks return no message id, so nothing can be removed later.
Settings now take a bot token plus channel, chat.postMessage records channel
and timestamp on the run, and the history carries a delete button per
message. The webhook stays as a fallback and is marked as not deletable.
This commit is contained in:
Matthias G
2026-08-03 12:45:04 +02:00
parent 6c78acdd6d
commit 81d0489c78
16 changed files with 2450 additions and 42 deletions
+27 -6
View File
@@ -289,7 +289,13 @@
"reportSent": "The digest is out.",
"reportEmpty": "Nothing was published in the last seven days, so no message went out.",
"reportNoWebhook": "No webhook is stored.",
"reportRejected": "Slack rejected the message."
"reportRejected": "Slack rejected the message.",
"messageDeleted": "The message is deleted in Slack.",
"runUnknown": "That run does not exist.",
"runNotDeletable": "That run went through the webhook, so there is no message id.",
"runNoToken": "Without a bot token nothing can be deleted in Slack.",
"runDeleteFailed": "Slack refused the deletion.",
"tokenInvalid": "A bot token starts with xoxb or xoxp."
},
"errors": {
"nameRequired": "Enter a name.",
@@ -726,7 +732,8 @@
"total": "Entries",
"projects": "Projects",
"result": "Result",
"trigger": "Triggered by"
"trigger": "Triggered by",
"message": "Message"
},
"results": {
"sent": "Sent",
@@ -736,16 +743,30 @@
},
"fields": {
"webhook": "Incoming webhook",
"includeInternal": "Include internal entries"
"includeInternal": "Include internal entries",
"botToken": "Bot token",
"channel": "Channel"
},
"hints": {
"webhook": "From Slack under Incoming Webhooks. The address is bound to one channel.",
"includeInternal": "Slack is internal, so this is on by default. Off means customer and public entries only.",
"sendNow": "Sends the last seven days into the channel right away."
"sendNow": "Sends the last seven days into the channel right away.",
"botToken": "From the Slack app under OAuth & Permissions, starts with xoxb. A bot token lets messages be deleted later.",
"channel": "Channel name or id, for example logbuch or C01234567."
},
"errors": {
"webhookInvalid": "That does not look like a Slack webhook address."
}
"webhookInvalid": "That does not look like a Slack webhook address.",
"tokenInvalid": "A bot token starts with xoxb or xoxp."
},
"tokenStored": "Stored, no longer shown.",
"replaceToken": "Enter a different token",
"messageDelete": "Delete in Slack",
"messageDeleting": "Deleting",
"messageDeleted": "Deleted",
"messageWebhook": "Sent by webhook, cannot be deleted",
"pathBot": "Sending through the bot token. Messages can be deleted from here.",
"pathWebhook": "Sending through the webhook. Messages cannot be deleted afterwards, that needs a bot token.",
"pathNone": "No route stored yet, nothing goes out."
}
},
"filter": {