Update IModifyCreator to expose IUserBuilder to enable user creation
What? :boat:
Updated IModifyCreator to expose APIs to create & finish IUserBuilder to enable user creation for Roket.Chat Apps.
Why? :thinking:
I'm a contributor for GSOC 2022 and currently working on a Rocket.Chat App to enable interop between Rocket.Chat and Microsoft Teams. The core approach for the interop is we create "dummy users" in Rocket.Chat. Each "dummy user" represents a real Teams user in Rocket.Chat world. Rocket.Chat users just need to send message to "dummy user" and the App will do the message delivery to Teams in order to build a smooth interop experience.
With this "dummy user" approach, we need this API to enable user creation for Apps.
Links :earth_americas:
Document for "dummy user" approach
PS :eyes:
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.
One suggestion when you are making "dummy users", mark them as bots. Some customers are limited in the amount of users they can have in their environments and are charged per seats, so make sure you're not accidently increasing their billing.
While looking into this, we need to take into account several factors and figure out answers to some questions:
Some Rocket.Chat instances are billed per user in their system, apps shouldn't be responsible for causing huge biling. Currently users which are marked as federated are excluded from billing, so is that the route to go? Do we limit what type of users the apps can create?
Do we automatically delete users created by the app when it is uninstalled?
While looking into this, we need to take into account several factors and figure out answers to some questions:
Some Rocket.Chat instances are billed per user in their system, apps shouldn't be responsible for causing huge biling. Currently users which are marked as federated are excluded from billing, so is that the route to go? Do we limit what type of users the apps can create?
Do we automatically delete users created by the app when it is uninstalled?
About the billed seats, we had a discussion and decided to allow to create only bot users. (It may change if necessary)
We'll implement the feature to delete all users when you uninstall the app. Probably, we'll use the appId to find all users created by the app and delete them.