Future work related to Trello integration
krshubham opened this issue · comments
Trello integration has two major faces
- Teem to Trello
- Trello to Teem
Teem to Trello integration
This part deals with syncing the changes from the Teem web client to the Trello backend. The part is simple and can be achieved by using the REST API interface of the Trello API.
-
All Teems are by default unlinked with Trello. Whenever a user chooses to integrate Trello with Teem, they can click on the button , which then starts the Auth workflow, which takes the client token and provides it to Trello which then gives us the secret token that we need to provide for every subsequent API request that we will be making in the future. Some points to note here:
- The API key needs to be stored in a config file which should be protected properly.
- Currently the secret key provided by the Trello API is kept as a part of the Project model, which is open to all and can be queried by everyone, thus it needs to stored at some safe place.
- Option to remove the Trello integration can be added.
Trello to Teem integration
Trello provides us with an interesting way to deal with this part and it is known as a webhook. However, we need a server to listen to all these changes.
- As part of GSoC'17 I started implementing another server that would listen to such changes and then update the model in SwellRT, but the thing is that SwellRT doesn't support editing of the models simply using a REST API and we need a browser based client to do this editing of the model.
- We can use Selenium or PhantomJs as a solution, but that would simply increase the complexity of the integration and doesn't work as expected and at the same time, needs lots of memory.
- I would like to propose two solutions that can be carried out in future as part of SwellRT which can help in making such future integrations:
- SwellRT can provide a simple and secured REST API that can allow us to edit the Teem project model by simply making authenticated HTTP requests.
- Another thing that can be done is to add these Trello event listeners into SwellRT itself and then SwellRT can update the model itself.
The first approach is better because it allows us to extend the capabilities beyond Trello integration. If we have a REST API to edit the object model then we can even integrate Telegram or other such apps. Remember, the main idea is to make Teem a central collaborative platform! 👍🏻