I have been researching CouchDB and TouchDB for sometime now and seriously contemplating their suitability for a mobile app I have in mind. I have a few questions and I would really appreciate if anyone can point me in the right direction. The scenario is I have 2 mobile clients running on TouchDB. I want Mobile Client A to be able to replicate a specific document on to Mobile Client B. Then I want Mobile Client B to be able to make changes and sync those changes back to with Mobile Client A. From an architectural standpoint I figure that I would need a centralized couchdb database that both clients can pull/push. The problem that I am having is how do I ensure that Client B is only able to replicate documents that he is authorized replicate. I understand that I can use a replication filter to limit the documents that are replicated but how do I enforce it on Mobile Client B? Also what would be the ideal architecture for the above scenario? Any assistance will be greatly appreciated. Thanks!
Related Questions in ANDROID
- Delay in loading Html Page(WebView) from assets folder in real android device
- MPAndroidChart method setWordWrapEnabled() not found
- Designing a 'new post' android activity
- Android :EditText inside ListView always update first item in the listview
- Android: Transferring Data via ContentIntent
- Wrong xml being inflated android
- AsyncTask Class
- Unable to receive extras in Android Intent
- Website zoomed out on Android default browser
- Square FloatingActionButton with Android Design Library
- Google Maps API Re-size
- Push toolbar content below statusbar
- Android FragmentPagerAdapter Circular listview
- Layout not shifting up when keyboard is open
- auDIO_OUTPUT_FLAG_FAST denied by client can't connect to localhost
Related Questions in MOBILE
- Is there a way to save offline google map on hybrid mobile app on ionic?
- Is there a data format lighter than json?
- Using Azure MobileServices library with my own LAN WebApi
- Chack number from contacts is mobile or fixed line(landline) number
- ng-click event not getting cleared in Ionic app
- Javascript Battery API returning Infinite discharging time
- Saving images as a burst on iOS
- Fastest/easiest way to build a HTML5 mobile app (agile)
- can Adobe Flash CS6 export for mobile correctly?
- How do I vertically fix an element in a mobile browser but still allow for horizontal scroll?
- Jquery Mobile: Horizontal Buttons, fill container
- How to make :hover more mobile friendly and accessible?
- Launch a web browser or youtube using textview in android
- I'm using htaccess to redirect mobile users from desktop to website but i keep getting the $_GET variables inside
- How to Remove class or activate class for specific view port only
Related Questions in COUCHDB
- Sort continents by amount of countries
- SImple reduce function is not working, what is wrong with my reduce function code in couchDB?
- Do 'reduce' with results from Cloudant search?
- DB candidate as CouchDB/Schema replacement
- CouchDB sum by date range and type
- Couchdb View does not re-index
- Retrieve data without _id and _ref from coucgdb
- How do I get rid of unused views on CouchDB using futon?
- Using node-couchdb to query a database
- Import data from CouchDB to Sql Server
- Architecture of an app when using CouchDB/PouchDB
- How to create and maintain couchDB/pcouchDB doc _id's
- How do I query X specific documents all at once using an index with pouchdb?
- Installing CouchDB on IaaS?
- Download file, retrieved from port on the local server
Related Questions in REPLICATION
- How to handle sequences in Bucardo Postgresql multi master
- percona replication -slave does not follow the master
- sql server for replication and web application
- does slave-skip-errors avoid remove errors from the logs
- MySQL Replication tables needed to be replicated is working except for 2 tables
- Cancel DELETE on MySQL REPLICATE
- How to fix jobs conflict in transactional replication
- Trigger to update a table when data in other table is updated
- Replicating Master-slave on mysql using gtid in mysql-5.6
- Where I can find MariaDB protocol document that different from MySQL
- Create Trigger does not replicate in mysql
- How to delete replication slot in postgres 9.4
- Performance/Latency when using mysql replication
- What connection string to use for Azure SQL DB using Active Geo Replication?
- how hdfs removes over-replicated blocks
Related Questions in TOUCHDB
- The pricing programs of hosted CouchDB providers do not make sense
- How do I include class TDCollateJSon in my my code?
- Distribute preloaded TouchDB database for iOS
- _replicate db does not exists in couchDb on Android
- How can I embed TouchDB in a phonegap html5 app?
- Couchdb - is it possible to "disreplicate" a replicated document
- Cost of continuous replications vs one-shot replications (using TouchDB and Cloudant)
- TouchDB - CouchbaseLite Libraries?
- Replication from CouchDB to TouchDB
- View TouchDB mobile database in desktop
- LiteServAndroid could not able to configuring project
- TouchDB Android dynamic views for query
- Enforcing Access Control on CouchDB
- Migrate between two CouchDB designs
- Cast from Object to List<String>: CastClassException
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
I have a similar setup with TouchDB and BigCouch in EC2 (the centralized database). It can be quite an adventure to get the pushing and pulling working right. =)
I think you are on the right track with using a replication filter with the pulls. If you limit the pulls for Client B with a replication filter, your life will most likely be easier because Client B can modify anything on his local TouchDB and it won't hurt anything.
In other words, don't replicate down documents you don't want Client B to modify.
To do that you would have to introduce a field into the document that specifies an access level - or some array maybe that has Client B's user id in it. That way he only sees what he is authorized to see.
Two notes before I forget: a) TouchDB on Android is sketchy right now. They are working to make it better, but it's behind the iOS version. b) I strongly recommend looking into writing your replication filter in Erlang. I got a 50% speed increase from doing that.