# Amazon Cognito Sync Manager for JavaScript
Developer Preview: We welcome developer feedback on this project. You can reach us by creating an issue on the GitHub repository or post to the Amazon Cognito forums:
- https://github.com/aws/amazon-cognito-js/issues
- https://forums.aws.amazon.com/forum.jspa?forumID=173
Introduction
The Cognito Sync Manager for JavaScript allows your web application to store data in the cloud for your users and synchronize across other devices. The library uses the browser's local storage API to create a local cache for the data, similar to our mobile SDK. This allows your web application to access stored data even when there is no connectivity.
Note: This library is designed to run in the browser. It has not been tested for use in other environments.
Setup
- Download and include the AWS JavaScript SDK:
- Download and include the Cognito Sync Manager for JavaScript:
<script src="/path/to/amazon-cognito.min.js"></script>
- Or...
import 'amazon-cognito-js';
- Or...
require('amazon-cognito-js');
Usage
Step 1. Log into Amazon Cognito management console and create a new identity pool. Be sure to enable the "unauthenticated identities" option. On the last step of the wizard, make a note of your Account ID, Identity Pool ID, and Unauthenticated Role ARN.
Step 2. Instantiate the AWS JavaScript SDK using the AWS.CognitoIdentityCredentials class, using the information you gathered from the previous step.
AWSconfigregion = 'us-east-1'; AWSconfigcredentials = IdentityPoolId: 'YOUR IDENTITY POOL ID';
Step 3. Make the call to obtain the credentials you configured, and in the callback, instantiate the CognitoSyncManager class. It will assume the credentials from the AWS SDK.
AWSconfigcredentials;
Step 4. Now you need to open or create a new dataset to start saving data to. Call .openOrCreateDataset() and pass in the desired dataset name.
client;
Step 5. Once you have the dataset object, you can write, read, and delete records to that dataset. It is also possible to get all the records from a given dataset, get the amount of data used by a dataset, and more.
<!-- Read Records -->dataset; <!-- Write Records -->dataset; <!-- Delete Records -->dataset;
Step 6. Finally, synchronize the data to Cognito. You pass the synchronize function an object with callbacks to handle the various outcomes: onSuccess, onFailure, onConflict, onDatasetsMerged, onDatasetDeleted.
<!-- Synchronize -->dataset;
Change Log
v1.0.0:
- Initial release. Developer preview.