apioo / fusio

Open source API management platform
https://www.fusio-project.org
Apache License 2.0
1.87k stars 223 forks source link

How to create connection for specific user? #570

Open yeyenpamula opened 4 months ago

yeyenpamula commented 4 months ago

@chriskapp Hi Chris, I want to create connection for specific user/consumer. But, right now I can create connection for me and other user can see and check my connection. For security reason, this is too risk. How to create connection then other user can't see.

chriskapp commented 3 months ago

Hi @yeyenpamula so the connections are currently not assigned to a user, since in general the idea of the Fusio backend is, that only trusted people have access to the backend to manage the API. But you could create a user account which has not the backend.connection scope, then the user is not able to see or create any connections. Or could you explain your use-case more in detail how you plan to use the Fusio backend?

yeyenpamula commented 3 months ago

@chriskapp I have users who can both access the backend. However, I want each user to be able to create their own connection. For example: I create one connection, then this connection only appears to me. Likewise, when another user makes a connection, his connection only appears to him.

chriskapp commented 3 months ago

Ok, I understand, so then there is another feature of Fusio which might solve your use case. You could create a custom category and role and assign the role to this user, then the user sees only the resources which are assigned to this category, but this affects besides connections also operations, actions and schemas. Basically through this a user has a dedicated space.

yeyenpamula commented 3 months ago

Yes, right. I have created custom categories and roles. For operations, actions, and schemes it does work. Users have their own space. But it doesn't work for connection. The connection does not have category_id in the table. I think, that's why connections can be seen between users.

chriskapp commented 3 months ago

yes, this indeed true, the initial idea of the category was, that it is intended for external developers i.e. you as an owner of the Fusio app could create a custom category/role for a project and then you create an account for an external developer to implement this feature and give the external developer only partial access to your Fusio instance.

The idea was, that the connections are always managed by the Fusio owner and that the external developer can only use those connections which the owner has provided, since you dont want to give them any credentials. But that being said, we could also think about adding the category_id to the connection. In general there are also other entities without category_id i.e. an app or page since those are entities which an external developer does not need to access. But adding the category_id to the connections would solve your problem or do you may want to restrict also other entities?

yeyenpamula commented 3 months ago

@chriskapp Hi Chris. At the moment, adding category_id to the connections will solved my problem. For other entities, I can use category to create custom space for users.