bollwerk/.github/skills/admin-message-e2ee/SKILL.md

3 KiB

name description
admin-message-e2ee Admin-Kommunikation fuer E2EE-Testnachrichten auf dem Bollwerk-Server. Nutze diesen Skill fuer Generaltests mit POST /api/admin/send-message per Bearer-Admin-Token (ohne Admin-Login). Trigger: 'admin message', 'send-message', 'e2ee test', 'generaltest nachrichten', 'bob alice nachrichten als admin'.

Skill: Admin Message E2EE Generaltest

Dieser Skill beschreibt den sicheren Testablauf fuer den Admin-Message-Dienst auf dem Server.

Ziel:

  • E2EE-Nachrichten serverseitig erzeugen und an reale User zustellen
  • Endpunkt korrekt mit Bearer-Admin-Token verwenden
  • Zustellung anschliessend ueber Conversation-API verifizieren

Technischer Hintergrund

Der Endpunkt ist:

  • POST /api/admin/send-message

Pflichtbedingungen:

  • Authorization: Bearer <BOLLWERK_ADMIN_TOKEN>

Wichtig:

  • Kein Admin-Login erforderlich.
  • Absender wird explizit per senderUsername uebergeben (z. B. bob oder alice).
  • Empfaenger kann per receiverUsername (z. B. admin) adressiert werden.
  • Dieser Endpunkt eignet sich fuer Admin-initiierte Testnachrichten im E2EE-Format.

Vorbedingungen

  1. Server erreichbar (z. B. https://bollwerk.online)
  2. Bearer-Admin-Token (BOLLWERK_ADMIN_TOKEN) vorhanden

API-Schritte

  1. Health pruefen
Invoke-WebRequest -Uri "https://bollwerk.online/api/health" -UseBasicParsing
  1. Userliste holen (IDs fuer admin/bob/alice)
$users = Invoke-RestMethod -Method GET -Uri "https://bollwerk.online/api/admin/users" -Headers @{ Authorization = "Bearer $env:BOLLWERK_ADMIN_TOKEN" }
  1. E2EE-Admin-Nachricht senden
$headers = @{
  Authorization = "Bearer $env:BOLLWERK_ADMIN_TOKEN"
  "Content-Type" = "application/json"
}
$payload = @{
  senderUsername = "bob"
  receiverUsername = "admin"
  body       = "Testnachricht"
  sentAt     = [DateTimeOffset]::UtcNow.ToUnixTimeMilliseconds()
} | ConvertTo-Json -Compress
Invoke-RestMethod -Method POST -Uri "https://bollwerk.online/api/admin/send-message" -Headers $headers -Body $payload
  1. Zustellung verifizieren
Invoke-RestMethod -Method GET -Uri "https://bollwerk.online/api/messages/<OTHER_USER_ID>" -Headers @{ Authorization = "Bearer $env:BOLLWERK_ADMIN_TOKEN" }

Erwartete Fehlerbilder

  • 401 Unauthorized: Bearer-Token fehlt
  • 403 Forbidden: Bearer-Token stimmt nicht
  • 404 Sender not found: senderUsername existiert nicht
  • 400 Encryption failed: Empfaenger hat keinen gueltigen E2EE Public Key
  • 404 Receiver not found: falsche receiverId

Generaltest-Standardfall

Wenn User explizit "1x Bob, mehrere x Alice" wuenscht und Admin-Route genutzt wird:

  • Sende 1 Nachricht an Admin-Konversation mit Prefix [bob] ...
  • Sende 3 Nachrichten an Admin-Konversation mit senderUsername = "alice"
  • Dokumentiere klar, welcher senderUsername je Request verwendet wurde

Security-Hinweise

  • Secrets nie im Chat ausgeben
  • Tokens nur maskiert loggen
  • Keine Passwoerter fuer diesen Endpunkt erforderlich