1.1.2 • Published 6 years ago

@raincatcher/datasync-cloud v1.1.2

Weekly downloads
1
License
MIT
Repository
-
Last release
6 years ago

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

  1. 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);
  }
});
  1. 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.