Gepardec / mega

Make the End-of-the-month-process Great Again! - A Gepardec Learning Friday Project
GNU General Public License v3.0
8 stars 2 forks source link

Scheduler um Endpunkte ergänzen und absichern #735

Open Ollitod opened 9 months ago

Ollitod commented 9 months ago

IST: Scheduler in MEGA verhindern, dass die Applikation bei keiner Auslastung downgescaled wird.

SOLL: Für alle Scheduled-Jobs sollen Endpunkte geschaffen werden, die extern aufgerufen werden können, um die Applikation "anzustupsen" und ein Startup einzuleiten.

Beschreibung: Um die dafür notwendigen Endpunkte abzusichern, ist auf quarkus-oidc umzustellen und die Applikation multi-tenancy-fähig zu machen. Die Authentifizierung erfolgt über einen OAuth Client Credentials Flow. Eine besondere Problemstelle beim Scheduling ist das Polling der Mailbox. Um davon loszukommen, soll MEGA benachrichtigt werden, wenn eine neue, relevante Email, in der Mailbox landet. Dazu wird Google Cloud Pub/Sub genutzt. MEGA sendet einen watch-Request an die Google Mail API. Anschließend benachrichtigt die Google Mail API ein Pub/Sub Topic. Darauf reagiert eine Subscription in der Google Cloud und sendet einen authentifizierten Request an MEGA (Webhook), woraufhin die Verarbeitung der Email angestoßen wird.