feat: API planning pour remplacer le CGI + fichier XML partagé#79
Merged
Conversation
Termine UnionRolistes/Bot_Planning_python#11 ("create an real discord api, not with cgi") et corrige la persistance des événements du calendrier, qui ne fonctionnait déjà pas avant Docker (self.new_event du bot toujours vide, écriture XML commentée côté CGI, TAGS_TO_FORM sans entrée pour la date dans Calendar.add_event). Nouveau service planning-api (FastAPI, port 3000) : - POST /webhooks : enregistre le webhook du salon d'annonce pour un utilisateur (remplace le fichier pickle local que $jdr écrivait) - POST /events : reçoit les vraies données du formulaire, envoie l'embed Discord via le webhook enregistré, persiste dans events.xml (repris de Bot_Base/src/urpy/xml.py::Calendar, adapté et le bug TAGS_TO_FORM corrigé) events.xml et webhooks.json vivent sur un volume dédié au service, plus de dépendance à un système de fichiers partagé entre bot et site web.
Signalé par dependency-review sur la PR. Pas de vecteur d'exploitation direct ici (XMLParser() sans resolve_entities, pas iterparse()/ ETCompatXMLParser()), mais autant utiliser la version corrigée.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Réfère #14 (complète la partie API planning, pas l'ensemble du plan V2) et #69 (le webhook n'a plus besoin de transiter par le navigateur/session — mais ne supprime pas les secrets déjà exposés dans l'historique git d'autres fichiers, hors scope ici).
Termine la migration V2 amorcée par la branche
14-new-bot-modular-in-docker-compose(abandonnée depuis 2023) pour la partie planning : une vraie API HTTP remplace le CGI qui envoyait lui-même le webhook Discord, et le fichierevents.xmlpartagé entre bot et site web (incompatible avec des conteneurs séparés).Corrige au passage la persistance des événements, qui ne fonctionnait déjà pas avant (
self.new_eventtoujours vide côté bot, écriture XML commentée côté CGI, bugTAGS_TO_FORMsans entrée pour la date dans l'ancienCalendar.add_event).Nouveau service
planning-api(FastAPI, port 3000, ajouté audocker-compose.ymlà côté d'urbot) :POST /webhooks: enregistre le webhook du salon d'annonce pour un utilisateurPOST /events: reçoit les données réelles du formulaire, envoie l'embed Discord, persiste dansevents.xmlTesté de bout en bout localement (register → create → vérification du XML généré, gestion d'erreur sur date invalide et webhook inconnu, persistance après redémarrage du conteneur).
PRs liées :