@raincatcher/datasync-cloud
v1.1.2
Published
Raincatcher DataSync cloud
Downloads
86
Keywords
Readme
RainCatcher Sync Cloud
Raincatcher wrapper for Feedhenry DataSync server. This module creates server side service that allows mobile applications to sync offline data to preferred database. By default server connects and stores all client data in mongodb database. This behavior can be changed by providing custom handlers.
For advanced usage see FeedHenry Sync documentation.
Note: Cloud service is utilized by one of the sync clients. See datasync-js
Quick start
- Start sync service process
Starting sync service will monitor and process mew tasks are sent from sync clients
import SyncServer, { SyncApi, SyncExpressMiddleware, SyncOptions } from '@raincatcher/datasync-cloud';
const sync: SyncApi = SyncServer;
// Connect sync
const connectOptions: SyncOptions = {
// Use intelisense to get list of options
};
sync.connect(connectOptions, function(err) {
if (err) {
console.log(err);
}
});
- Create api endpoint for sync.
This endpoint will be called by all clients that wish to synchronize their local data with server.
//middleware
app.use(bodyParser.json());
app.use(cors());
// Use api path of your wish
// Same endpoint needs to be configured in js client
const path = '/sync/:datasetId';
const middleware: SyncExpressMiddleware = new SyncExpressMiddleware();
const router = middleware.createSyncExpressRouter();
app.use('/', router);
See example app for complete runnable example.
Accessing underlying sync library
For advanced use cases developers can access sync library using sync
namespace.
Library is shipped with their own typings. You can import this directly into your application as below:
import { sync } from '../src/index'
sync.anyapicall(...) ;
Where anyapicall
is one of the types defined in:
https://github.com/feedhenry/fh-sync/blob/master/types/fh-sync.d.ts
For more advanced usages please follow FeedHenry sync documentation
Overriding sync filter on server
By default sync clients can specify any type of filter and efectivelly get access to
every record for dataset. If you wish to disable user query_filters for certain datasets for security reasons userMapperMiddleware
should be used, before mounting sync express router.