Allow setting Store Id per request for multi tenant implementations
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 42/100
- Type d'issue
- Fonctionnalité
- Clarté
- Plutôt claire
- Activité
- À l'abandon
- Stack technique
- java
- Domaine
- api, authorization, backend-api-design
Piste de recherche
Commencez par suivre le point d’entrée fgaClient.check(request, options) et l’API ClientCheckOptions présentée dans l’issue. Déterminez comment l’ID du store configuré est actuellement sélectionné et comment les options de la requête sont propagées. Le travail est terminé lorsqu’une requête peut remplacer l’ID du store configuré sans modifier l’état partagé du client, tout en conservant le comportement de configuration existant.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Describe the problem you'd like to have solved
In multitenant solutions it would be nice to have a single client instance and the possibility to set the store id for each request, this way the connection pool can be reused without the need to have multiple client instances.
Describe the ideal solution
The store id should available as a client option:
var request = new ClientCheckRequest()
.user("user:81684243-9356-4421-8fbf-a4f8d36aa31b")
.relation("writer")
._object("document:0192ab2a-d83f-756d-9397-c5ed9f3cb69a");
var options = new ClientCheckOptions()
.additionalHeaders(Map.of("Some-Http-Header", "Some value"))
// You can rely on the model id set in the configuration or override it for this specific request
.authorizationModelId("01GXSA8YR785C4FYS3C0RTG7B1")
// SET THE STORE ID PER REQUEST
.storeId("01ARZ3NDEKTSV4RRFFQ69G5FAV");
var response = fgaClient.check(request, options).get();
// response.getAllowed() = true
Alternatives and current workarounds
There are two alternatives:
- Having one client for each store id
- Explicitly calling
fgaClient.setStoreId(store.getId());on each request, but my guess is there could be race condition issues
Additional context
N/A
- Langage dominant
- Java
- Étoiles
- 54
- Forks
- 26
- Merge moyen
- 2 j 15 h
- PR mergées (30 j)
- 11
Préparer son environnement
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de openfga/java-sdk
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 3/5 1-2 jours Accessibilité débutants 72/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 25/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 4/5 3-5 jours Accessibilité débutants 35/100
openfga/java-sdk#370 · 2 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 35/100
openfga/java-sdk#361 · 1 réaction ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de openfga/java-sdk
Issues similaires
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 92/100
-
Black theme and viewing mode.Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
oracle/javavscode#652 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
OpenAPITools/openapi-generator#25014 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 92/100
AloisSeckar/demos-java#380 ·