Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Zanzibar Annotationen benutzen #132

Open
d135-1r43 opened this issue Nov 3, 2024 · 7 comments
Open

Zanzibar Annotationen benutzen #132

d135-1r43 opened this issue Nov 3, 2024 · 7 comments
Assignees

Comments

@d135-1r43
Copy link
Collaborator

Status Quo:
Der org-Service verwendet derzeit eine manuelle Implementierung zur Berechtigungsprüfung, bei der OpenFGA über den Client explizit aufgerufen wird. Diese direkte Interaktion führt zu einem erhöhten Aufwand für die Verwaltung und Wartung der Berechtigungen und erschwert zukünftige Änderungen.

Soll-Zustand:
Der org-Service soll, soweit möglich, die Quarkus-Zanzibar-Annotationen verwenden, um die Berechtigungslogik zu vereinfachen und zu standardisieren. Ziel ist es, die manuelle Implementierung durch Annotationen zu ersetzen und dadurch den Code lesbarer, wartbarer und weniger fehleranfällig zu machen. Diese Annotationen sind in der offiziellen Dokumentation beschrieben: Quarkus-Zanzibar Doku.

Beispiel-Annotationen, die eingeführt werden sollen:

  • @FGAPathObject(param = "id", type = "thing") - Verknüpft das Objekt id mit dem entsprechenden Typ, hier als thing definiert.
  • @FGARelation("owner") - Legt fest, dass der Benutzer die Berechtigung als owner benötigt, um auf das Objekt zugreifen zu können.
  • @FGAUserType("user") - Bestimmt, dass die Anfragen für den Benutzertyp user gelten.

Akzeptanzkriterien

  1. Alle relevanten Endpunkte im org-Service nutzen die Quarkus-Zanzibar-Annotationen anstelle der bisherigen manuellen Implementierung für Berechtigungen.
  2. Die Funktionalität zur Berechtigungsprüfung funktioniert einwandfrei und ist vollständig getestet.
  3. Dokumentation für Entwickler, die die Verwendung der neuen Berechtigungsannotation erklärt und die bisherigen Implementierungen ersetzt.
  4. Tests validieren die korrekte Berechtigungsüberprüfung mit den neuen Annotationen (z.B. für Zugriffsrechte owner).

Technische Hinweise

  • Prüfen, ob zusätzliche Anpassungen für Parameter oder Typen erforderlich sind, um den Annotationsansatz vollständig anzuwenden.
  • Berücksichtigen, ob spezifische Mappings für den thing-Typ in der Konfiguration oder Implementierung vorgenommen werden müssen.
  • Prüfen, ob das Schema im Dev Servcie schon automatisch hergestellt wird
@byte-sized-emi
Copy link
Contributor

Ist das Issue durch #114 geblockt? Ich würde sagen das es keinen Sinn macht, die Auth neu zu schreiben, wenn man sie danach eh nochmal ändern muss

@d135-1r43
Copy link
Collaborator Author

Ja, is geblockt.

@3thr3n 3thr3n self-assigned this Nov 6, 2024
@3thr3n
Copy link
Contributor

3thr3n commented Nov 6, 2024

Kleiner MVP für tests ohne mocks und den annotations

@d135-1r43
Copy link
Collaborator Author

Jo, das ist nice. Genau so war es gedacht.

Kannst du mal nach deinem XML-Formatter schauen? Da ist ein großer Diff nur für Format-Änderungen in der pom.xml. Wir können auch gern den maven-formatter so konfigurieren, dass er die XMLs mit validiert.

@3thr3n
Copy link
Contributor

3thr3n commented Nov 9, 2024

Ja ich schau mal nach, ich habe die default Einstellung von Intellij. Anscheinend machen wir nicht tabs in den XMLs

@d135-1r43
Copy link
Collaborator Author

Die hab ich eigentlich auch. Strange…

@d135-1r43
Copy link
Collaborator Author

Ich schau mal, dass ich die Tage einen XML Linter konfiguriert bekomme 👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants