Requestly is using
StorageService - A wrapper over chrome storage to store rules.
This means user owns all his data and is stored in his computer.
Chrome Storage service is great and provides sufficient storage capacity to storage ~100 rules.
But there is a requirement of backend service to store some global objects. e.g Consider this use case:
Sharing Public Url for a list of rules
Data Storage (Firebase)
Following Options were explored considering Requestly Use cases.
- Node.js + MongoDB
Pros & Cons for each option is captured here on github. After above analysis, Firebase is chosen to serve as data storage.
Data Storage Schema
Following is the data schema thought so far:
Above database schema allows us to do the following:
- Create multiple collections
- Create groups inside each collection
- Activate/Deactivate entire group or collection
- Only an owner can delete his public shared link i.e. Set write ACL on Public/SharedLists/$list1 for the user who created it.