python-sdk icon indicating copy to clipboard operation
python-sdk copied to clipboard

get_store should have an optional store_id parameter

Open misterflop opened this issue 2 years ago • 8 comments

In the current implementation, get_store return the OpenFGA store specified in the client_api configuration. Except by listing all the stores with list_stores, I don't see any other way to get a specific store different of the one defined in the configuration. A way to arrange that would be to add an optional store_id parameter to get_store.

Part of https://github.com/openfga/sdk-generator/issues/118


We should do something similar to what @jimmyjames mentions here: https://github.com/openfga/java-sdk/issues/150#issuecomment-2666996341

  • for requests that use the storeId in the path, update the request options object to include a storeId
  • In OpenFgaClient, if the options are not null and storeId is non-null and non-empty, use that to build the path. Otherwise, use the storeId configured on the client
  • Update the tests to verify that the storeId can be overridden per request, and that the value on the client is used if not overridden.

In general, it should be pretty similar to how the authorizationModelId is allowed to be overridden per request.

misterflop avatar Mar 12 '23 16:03 misterflop

Same issue with delete_store. In the current implemantation, we have to create a specific client_api for every store that we would like to delete.

misterflop avatar Mar 12 '23 17:03 misterflop

Hi @misterflop

Currently, our SDKs now expect you to generate a new client per store. In the future (as part of https://github.com/openfga/sdk-generator/issues/118) we are exploring offering two different interfaces which would allow us to have one that allows calling one with dynamic storeIds, but I don't expect that to be soon

Can you elaborate on your use-case where you would need to call multiple stores with the same client?

rhamzeh avatar Mar 16 '23 18:03 rhamzeh

Hello,

Thank you for your answer.

I see two use cases on my side:

  • I'm currently implementing a multi tenancy application and I would like to have a store per tenant.
  • For maintenance, if you need to upgrade schema of several stores with the same script.

The openFGA API allows to request per store ID. The SDK should ideally have the same contract.

misterflop avatar May 02 '23 12:05 misterflop

In my organization, we are also facing the similar kind of Issue. To solve that we have built another wrapper microservice around the openfga sdk. You can also try the same. It will be more flexible for you

JRudransh avatar Jan 16 '24 09:01 JRudransh

interested @rhamzeh Please assign

gagandeepp avatar Oct 05 '24 09:10 gagandeepp

@evansims can you please assign this to me?

gagandeepp avatar Oct 08 '24 00:10 gagandeepp

👋🏻 Thanks for the offer @gagandeepp. Sorry about this, we feel this issue isn't well defined for hacktoberfest as it requires working on some pieces of the SDK generation that are quite awkward to update.

We've specifically labelled issues that we're looking for help with with the hacktoberfest or good first issue labels if you'd like to take a look through.

ewanharris avatar Oct 18 '24 09:10 ewanharris