Bewerbungen zusätzlich per Discord-Webhook direkt in echte Kanäle posten

Ticketanizers Inbound-Ticket-API erzeugt bei API-Tickets nachweislich
keinen echten Discord-Kanal (nur Web-Inbox + Rollen-Ping im Log-Kanal,
auch nach manuellem Uebernehmen nicht) - das wurde heute gemeinsam mit
Dogi live in der Ticketanizer-Inbox und in Discord verifiziert. Deshalb
zusaetzlich ein normaler Discord-Webhook pro Zielkanal, der die komplette
Bewerbung garantiert sichtbar direkt postet.

Kanal-Zuordnung (von Dogi aus Discord kopiert):
  modi        -> #modi-bewerbung        (DISCORD_WEBHOOK_MODI)
  kooperation -> #kooperations-bewerbung (DISCORD_WEBHOOK_KOOPERATION)
  scout + creator -> #scout-bewerbung gemeinsam (DISCORD_WEBHOOK_SCOUT_MANAGER)

- Neu: cloudflare-worker/src/lib/discord-webhooks.js
- applications.js: postet jetzt parallel zu Ticketanizer (Promise.all,
  weiterhin ueber ctx.waitUntil im Hintergrund, blockiert nie die Antwort)
- Alle 3 Secrets bereits live gesetzt und deployed
- Getestet mit allen 4 Bewerbungstypen (modi/kooperation/scout/creator) -
  laut Log alle erfolgreich gepostet, Testdaten aus D1 wieder entfernt
- README.md: Einschraenkung von Ticketanizer dokumentiert + neue
  Webhook-Einrichtungsanleitung
This commit is contained in:
2026-08-01 14:27:08 +02:00
parent aa219922fd
commit 0d31fb8bb0
3 changed files with 170 additions and 5 deletions
+42
View File
@@ -143,6 +143,48 @@ Ticketanizer-Dashboard unter **Panels**:
eröffnen). Das Nachladen von Staff-Antworten (Schritt 3, "pollen") ist
hier nicht eingebaut, da eine Bewerbung ein einmaliger Vorgang ist und
kein dauerhaft laufender Chat.
- **Wichtige Einschränkung (2026-08-01 festgestellt):** Über die Inbound-
Ticket-API angelegte Tickets landen bei Ticketanizer nur in der
**Web-Inbox** (eigene Weboberfläche, siehe Dashboard → "Inbox") und lösen
lediglich einen Rollen-Ping im Log-Kanal aus — es entsteht **kein**
echter, sichtbarer Ticket-Kanal in Discord (auch nicht nach manuellem
"Übernehmen" in der Inbox). Deshalb zusätzlich der Discord-Webhook-Weg
weiter unten, der die Bewerbung garantiert sichtbar direkt in den
passenden Kanal postet.
## Bewerbungen direkt in Discord-Kanälen (Webhooks)
Zusätzlich zu Ticketanizer wird jede Bewerbung als formatierte Nachricht
(Embed) direkt per normalem Discord-Webhook in den passenden Kanal gepostet —
das ist der Weg, der garantiert sichtbar in Discord ankommt (siehe
Einschränkung oben).
### Kanal-Zuordnung (von Dogi aus Discord kopiert, 2026-08-01)
| Bewerbung auf der Website | Discord-Kanal | Secret |
|---|---|---|
| Modi | `#modi-bewerbung` | `DISCORD_WEBHOOK_MODI` |
| Kooperation | `#kooperations-bewerbung` | `DISCORD_WEBHOOK_KOOPERATION` |
| Scout **und** Creator | `#scout-bewerbung` (gemeinsam) | `DISCORD_WEBHOOK_SCOUT_MANAGER` |
### Einrichtung (pro Kanal ca. 1 Minute)
1. Im jeweiligen Discord-Kanal: Kanal bearbeiten → **Integrationen**
**Webhooks****Neuer Webhook****Webhook-URL kopieren**.
2. Als Secret hinterlegen:
```bash
npx wrangler secret put DISCORD_WEBHOOK_MODI
npx wrangler secret put DISCORD_WEBHOOK_KOOPERATION
npx wrangler secret put DISCORD_WEBHOOK_SCOUT_MANAGER
```
3. Danach einmal `npx wrangler deploy`.
Genau wie bei Ticketanizer: **rein informativ, kein Ausfallpunkt.** Fehlt
eine Webhook-URL oder ist Discord kurz nicht erreichbar, wird die Bewerbung
trotzdem ganz normal gespeichert. Die Zuordnung Typ → Webhook steht in
`src/lib/discord-webhooks.js` (`WEBHOOK_ENV_KEYS`).
## Wer den Owner-Code kennen darf