💌 A beautiful, fast and fully open source mail client for Mac, Windows and Linux.
Find a file
Evan Morikawa e197de86e0 [local-sync] fix attribute scanning in sync worker
Summary:
Fixes https://phab.nylas.com/T7435

The old deepScan (now `scanForAttributeChanges`) and shallowScan (now
`fetchLatestAttributeChanges`) had some fatal flaws.

If you deep scanned it would attempt to load the message attributes of all
messages ever and cause very bad memory leaks.

Also, if you left a mailbox running for a long time, there was a query
that would eventually run `Message.findAll` and, even though it was just
returning the headers, would still run insanely expensive operations

This fixes (and renames) these issues.

Test Plan: manual

Reviewers: spang, halla, juan

Reviewed By: juan

Differential Revision: https://phab.nylas.com/D3657
2017-01-13 12:00:45 -08:00
.ebextensions Fixes to Docker and better docs/debugging 2017-01-03 09:32:08 -08:00
arclib [local-private] move old edgehill src/pro into packages/local-private 2016-12-12 10:09:58 -05:00
packages [local-sync] fix attribute scanning in sync worker 2017-01-13 12:00:45 -08:00
scripts [*] Add basic babel toolchain 2016-12-16 13:08:21 -05:00
.arcconfig [local-private] move old edgehill src/pro into packages/local-private 2016-12-12 10:09:58 -05:00
.arclint [local-private] move old edgehill src/pro into packages/local-private 2016-12-12 10:09:58 -05:00
.babelrc [*] Add basic babel toolchain 2016-12-16 13:08:21 -05:00
.dockerignore Fixes to Docker and better docs/debugging 2017-01-03 09:32:08 -08:00
.eslintrc
.gitignore [*] Add basic babel toolchain 2016-12-16 13:08:21 -05:00
.tern-project Enable nodejs completion with tern 2016-12-07 07:25:48 -08:00
Dockerfile [*] Add basic babel toolchain 2016-12-16 13:08:21 -05:00
lerna.json [*] update lerna to 2.0.0-beta.30 2016-12-06 16:03:31 -08:00
package.json Update Nylas N1 to Nylas Mail 2017-01-12 11:25:39 -08:00
pm2-debug-cloud-api.yml Add ability to debug with chrome dev tools in cloud-api 2017-01-10 17:31:51 -08:00
pm2-dev.yml [cloud-api] refactor cloud API routes to use es6 & fix Gmail Auth 2016-12-19 09:25:07 -08:00
pm2-prod-api.yml [*] Add basic babel toolchain 2016-12-16 13:08:21 -05:00
pm2-prod-workers.yml [*] Add basic babel toolchain 2016-12-16 13:08:21 -05:00
README.md Update Nylas N1 to Nylas Mail 2017-01-12 11:25:39 -08:00
test_accounts.txt

K2 - Local Sync Engine & Cloud Services for Nylas Mail

This is a collection of all sync and cloud components required to run N1.

  1. Cloud API: The cloud-based auth and metadata APIs for N1
  2. Cloud Core: Shared code used in all remote cloud services
  3. Cloud Workers: Cloud workers for services like send later
  4. Isomorphic Core: Shared code across local client and cloud servers
  5. Local Sync: The local mailsync engine integreated in Nylas Mail

See /packages for the separate pieces. Each folder in /packages is designed to be its own stand-alone repositoriy. They are all bundled here for the ease of source control management.

Initial Setup for All Local & Cloud Services:

New Computer (Mac):

  1. Install Homebrew
  2. Install NVM brew install nvm
  3. Install Node 6 via NVM: nvm install 6
  4. Install Redis locally brew install redis

New Computer (Linux - Debian/Ubuntu):

  1. Install Node 6+ via NodeSource (trusted):
  2. curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
  3. sudo apt-get install -y nodejs
  4. Install Redis locally sudo apt-get install -y redis-server redis-tools benefit of letting us use subdomains.