{"id":19686312,"url":"https://github.com/closeio/sync-engine","last_synced_at":"2025-04-29T06:31:25.153Z","repository":{"id":38187876,"uuid":"278426826","full_name":"closeio/sync-engine","owner":"closeio","description":null,"archived":false,"fork":false,"pushed_at":"2025-03-19T13:59:34.000Z","size":28952,"stargazers_count":29,"open_issues_count":67,"forks_count":11,"subscribers_count":16,"default_branch":"master","last_synced_at":"2025-04-05T13:51:23.875Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/closeio.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-07-09T17:19:42.000Z","updated_at":"2025-03-19T13:59:35.000Z","dependencies_parsed_at":"2024-05-21T23:38:14.301Z","dependency_job_id":"c788e163-f830-4500-bfca-994f0e6ecd19","html_url":"https://github.com/closeio/sync-engine","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/closeio%2Fsync-engine","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/closeio%2Fsync-engine/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/closeio%2Fsync-engine/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/closeio%2Fsync-engine/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/closeio","download_url":"https://codeload.github.com/closeio/sync-engine/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251450656,"owners_count":21591407,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-11T18:27:22.295Z","updated_at":"2025-04-29T06:31:20.384Z","avatar_url":"https://github.com/closeio.png","language":"Python","funding_links":[],"categories":["others"],"sub_categories":[],"readme":"# Sync Engine [![CircleCI](https://circleci.com/gh/closeio/sync-engine.svg?style=svg)](https://circleci.com/gh/closeio/sync-engine)\n\nThis is a fork of the Nylas [sync-engine project](https://github.com/nylas/sync-engine). \nFor those looking for a hosted email syncing service, check out \n[their current offerings](https://www.nylas.com/).\n\n### Installation and Setup\n\nTODO: Add Docker steps\n\nAuth an account via the commandline to start syncing:\n\n    bin/inbox-auth ben.bitdiddle1861@gmail.com\n\nThe `inbox-auth` command will walk you through the process of obtaining an \nauthorization token from Google or another service for syncing your mail. Your credentials are stored to the local MySQL database for simplicity.\n\nThe sync engine will automatically begin syncing your account with the underlying provider. The `inbox-sync` command allows you to manually stop or restart the sync by running `inbox-sync stop [YOUR_ACCOUNT]@example.com` or `inbox-sync start [YOUR_ACCOUNT]@example.com`. Note that an initial sync can take quite a while depending on how much mail you have.\n\n### API Service\n\nThe API service provides a REST API for interacting with your data. To start \nit in your development environment, run the command below:\n\n```bash\n$ bin/inbox-api\n```\n\nThis will start the API Server on port 5555. At this point **You're now ready to make requests!** If you're using VirtualBox or VMWare fusion with Vagrant, port 5555 has already been forwarded to your host machine, so you can hit the API from your regular web browser.\n\nYou can get a list of all connected accounts by requesting `http://localhost:5555/accounts`. This endpoint requires no authentication.\n\nFor subsequent requests to retreive mail, contacts, and calendar data, your app should pass the `account_id` value from the previous step as the \"username\" parameter in HTTP Basic auth. For example:\n\n```\ncurl --user 'ACCOUNT_ID_VALUE_HERE:' http://localhost:5555/threads\n```\n\nIf you are using a web browser and would like to clear your cached HTTP Basic Auth values, simply visit http://localhost:5555/logout and click \"Cancel\".\n\n## Security\n\nFor the sake of simplicity and setup speed, the development environment does \nnot include any authentication or permission. For developing with sensitive \ndata, we encourage developers to add their own protection, such as only \nrunning sync-engine on a local machine or behind a controlled firewall.\nNote that passwords and OAuth tokens are stored unencrypted in the local MySQL data store on disk. This is intentional, for the same reason as above.\n\n\n## Running tests\n\nTo run the test suite execute the following command: `docker-compose run app pytest`\n\n## License\n\nThis code is free software, licensed under the The GNU Affero General Public License (AGPL). See the `LICENSE` file for more details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcloseio%2Fsync-engine","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcloseio%2Fsync-engine","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcloseio%2Fsync-engine/lists"}