You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Αυτό το issue ουσιαστικά απαρχαιώνει το issue #3 και το αντικαθιστά τελείως.
Το έτοιμο REST API που δίνει το keycloak στο δικό μας use case με τους οργανισμούς δεν είναι και πολύ ευέλικτο. Οπότε σκοπός είναι να κατασκευαστεί ένα custom endpoint που θα διευκολύνει όλο το business logic που έχει να κάνει με αυτό. Οπότε το νέο endpoint πρέπει εν συντομία:
Να μπορεί να επιστρέφει με pagination μηχανισμό τους οργανισμούς
Να μπορεί να δημιουργεί νέους οργανισμούς (μάζι με τα subgroups, ρόλους των subgroup κτλ μέσω μονάχα μιας κλήσης)
Να μπορεί να επιστρέφει με ευκολία τους supervisors και τους employees κάθε οργανισμού πάλι μέσω pagination
Τέλος πολύ σημαντικό είναι να μπορούν να χρησιμοποιηθούν και τα συμβατικά endpoints μέσω του νέου endpoint. Οπότε με κάτι μαγικά του RESTEasy (ένος Web Services framework που στηρίζεται πάνω στο JAX-RS και χρησιμοποιεί το Keycloak - θα σας εξηγήσω κάποια βασικά πραγματάκια σε skype call μας) θα υπάρχει η δυνατότητα να χρησιμοποιήσετε εύκολα τα συμβατικά endpoints μόλις εντοπίσετε το resource που θέλετε (User/Group κτλ).
Επίσης για να κάνω το integration ακόμα πιο εύκολο, θα τροποποιήσω και την REST Client βιβλιοθήκη που δίνουν οι devs του keycloak. Οπότε για παράδειγμα, αν κάποιος θέλει μια λίστα με τους πρώτους 100 supervisors του οργανισμού HUA , τότε απλά θα πρέπει να κάνει αυτό :
δεδομένου βέβαια ότι έχει κάνει σωστό config όταν φτιάχνει το HermesKeycloak client του (το οποίο δεν θα διαφέρει από το κλασικό Keycloak client στο config - αυτό είναι το ζητούμενο):
Κάποιες σημειώσεις τώρα πιο DevOps - Μaintainance χαρακτήρα σχετικά με αυτό. Σε ένα κανονικό πρότζεκτ, πιστεύω ότι η καλύτερη τακτική θα ήταν να δημιουργηθεί ένα maven repository που θα είχε artifacts του custom client που θα φτιαχτεί. Έτσι κάθε φορά που θα γινόταν μια αλλαγή στο API, τότε μέσω CI/CD οι αλλαγές του client θα πακεταριζόντουσαν σε νέο artifact, έτοιμο να κουμπωθεί σε οποιοδήποτε άλλο πρότζεκτ θέλαμε. Το θεωρώ περιττό όμως για αυτό το πρότζεκτ, ο κόπος του να στήσω τέτοιο pipeline είναι μεγαλύτερος από τον κόπο του να το διαχειριστούμε manually. Αυτό που πρέπει να θυμόμαστε λοιπόν είναι ότι αν γίνει κάποια αλλαγή σε αυτό το API που χρειάζεται αλλαγή και στον client, τότε ο client πρέπει να ενημερωθεί επίσης σε κάθε πρότζεκτ το οποίο το χρησιμοποιούμε.
Περισσότερες πληροφορίες πάνω στη χρήση αυτού του endpoint, θα δωθούν σε skype call.
The text was updated successfully, but these errors were encountered:
Adds some basic utils that will come handy
Adds Error handling / views
Adds HermesKeycloak client ( NickDelta/hermes-keycloak-image#4 )
Adds KeycloakTokenHelper (same with backend)
Αυτό το issue ουσιαστικά απαρχαιώνει το issue #3 και το αντικαθιστά τελείως.
Το έτοιμο REST API που δίνει το keycloak στο δικό μας use case με τους οργανισμούς δεν είναι και πολύ ευέλικτο. Οπότε σκοπός είναι να κατασκευαστεί ένα custom endpoint που θα διευκολύνει όλο το business logic που έχει να κάνει με αυτό. Οπότε το νέο endpoint πρέπει εν συντομία:
Επίσης για να κάνω το integration ακόμα πιο εύκολο, θα τροποποιήσω και την REST Client βιβλιοθήκη που δίνουν οι devs του keycloak. Οπότε για παράδειγμα, αν κάποιος θέλει μια λίστα με τους πρώτους 100 supervisors του οργανισμού
HUA
, τότε απλά θα πρέπει να κάνει αυτό :δεδομένου βέβαια ότι έχει κάνει σωστό config όταν φτιάχνει το
HermesKeycloak
client του (το οποίο δεν θα διαφέρει από το κλασικόKeycloak
client στο config - αυτό είναι το ζητούμενο):Κάποιες σημειώσεις τώρα πιο DevOps - Μaintainance χαρακτήρα σχετικά με αυτό. Σε ένα κανονικό πρότζεκτ, πιστεύω ότι η καλύτερη τακτική θα ήταν να δημιουργηθεί ένα maven repository που θα είχε artifacts του custom client που θα φτιαχτεί. Έτσι κάθε φορά που θα γινόταν μια αλλαγή στο API, τότε μέσω CI/CD οι αλλαγές του client θα πακεταριζόντουσαν σε νέο artifact, έτοιμο να κουμπωθεί σε οποιοδήποτε άλλο πρότζεκτ θέλαμε. Το θεωρώ περιττό όμως για αυτό το πρότζεκτ, ο κόπος του να στήσω τέτοιο pipeline είναι μεγαλύτερος από τον κόπο του να το διαχειριστούμε manually. Αυτό που πρέπει να θυμόμαστε λοιπόν είναι ότι αν γίνει κάποια αλλαγή σε αυτό το API που χρειάζεται αλλαγή και στον client, τότε ο client πρέπει να ενημερωθεί επίσης σε κάθε πρότζεκτ το οποίο το χρησιμοποιούμε.
Περισσότερες πληροφορίες πάνω στη χρήση αυτού του endpoint, θα δωθούν σε skype call.
The text was updated successfully, but these errors were encountered: