Skip to content
cross platform, client encrypted, cloud data sync 🔼✨🔮✨🔼
Branch: staging
Clone or download
Latest commit 17af3d5 Apr 16, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
architecture
bundles
client Check text on bad request status Mar 26, 2019
lib
server SNS cleanup, SNS has been superseded by SQS Nov 19, 2018
test Fixed receiving objects in chunk Dec 27, 2018
.flowconfig
.gitignore Fixes windows copy problem Nov 5, 2018
.travis.yml fix format May 15, 2018
LICENSE.txt
README.md
appspec.yml
index.html
package-lock.json
package.json update tape-run@5.0.0 Dec 14, 2018

README.md

Brave Sync

Build Status

A client/server for Brave sync

Building

Install dependencies:

npm install

Build a bundled JS library for the client:

npm run build

Run the server:

npm run start

Testing

The sync client uses Browserify to transform Node js into browser js. To unittest the library in a browser (default: electron), run npm run browsertest. To test in a different browser run npm run browsertest -- --browser chrome. Results appear in both the browser inspector and your terminal.

To run tests in Node, just do npm test.

To do a basic client/server integration test against the production server, run npm run client and navigate to http://localhost:8000/). The page should not show any 'ERROR' messages and should end with 'success'.

Development

Server

server/config contains settings; defaults in defaults.json and environment variable mappings in custom-environment-variables.json.

To configure locally you can create a file config-dev.sh and source config-dev.sh when needed:

#!/bin/bash
export AWS_ACCESS_KEY_ID="{stuff}"
export AWS_SECRET_ACCESS_KEY="{secret stuff}"

Run the server with file watching and autoreloading:

npm run start-dev

Client integration

To integrate Brave sync on a platform (iOS, Android, Laptop):

  1. Make a new branch.
  2. In the main browser process, implement an IPC message handler as specified in client/constants/messages.js.
  3. If webviews on your platform do not support chrome.ipcRenderer.{send, on}, edit client/polyfill/chrome.js as needed to polyfill this functionality.

Building for browser-laptop

  1. Make sure this repo is checked out next to browser-laptop/
  2. Checkout the feature/syncing branch in browser-laptop
  3. npm run dist
  4. If developing, do npm start in browser-laptop. Console messages from the sync client will be logged in Library/Application Support/brave-development/chrome-debug.log.

Tests

To run tests you need to configure these environment variables:

  • AWS_REGION
  • AWS_S3_BUCKET
  • AWS_ACCESS_KEY_ID
  • AWS_SECRET_ACCESS_KEY
You can’t perform that action at this time.