Search 1.9 billion lines of Odoo code on GitHub

sync

Author: IT-Projects LLC, Ivan Yelizariev
License: Other OSI approved licence
Branch: 13.0-sync-port
Repository: trojikman/sync-addons
Dependencies: base, base_automation, http_routing, mail, queue_job, and website
Languages: HTML (101, 2.5%), Python (1662, 40.7%), and XML (2322, 56.8%)
Other branches: 11.0, 11.0-sync-port, 11.0-sync-transfer-major-update, 12.0, 12.0-openapi-cors-with-swagger, 12.0-sync-no-imports-2, 12.0-sync-no-imports-2-test, 12.0-sync_woo, 13.0, 14.0, 14.0-sync-clear-links, 14.0-sync-fix-test, 14.0-sync-test-remove-record, 14.0-sync_facebook, 14.0-sync_telegram-channel-settings, and 14.0-sync_twindis
Other repositories: SeuMarco/sync-addons, brain-tec/sync-addons, em230418/sync-addons, itpp-labs/sync-addons, and yelizariev/sync-addons

<a class="reference external image-reference" href="https://opensource.org/licenses/MIT"><img alt="License: MIT" src="https://img.shields.io/badge/license-MIT-blue.svg"> </a> <a name="sync-studio"></a> <h2>Sync Studio</h2> <p>Synchronize anything with anything:</p> <ul class="simple"> <li>System X ↔ Odoo</li> <li>Odoo 1 ↔ Odoo 2</li> <li>System X ↔ System Y</li> </ul> <p>Provides a single place to handle synchronization trigered by one of the following events:</p> <ul class="simple"> <li><strong>Cron</strong> -- provided by <code>ir.cron</code></li> <li><strong>DB Event</strong> -- provided by <code>base.automation</code></li> <li><strong>Incoming webhook</strong> -- provided by <code>ir.actions.server::website_published</code> (search for <code>/website/action</code> in <code>website</code> module)</li> <li><strong>Manual Triggering</strong> -- provided by <code>ir.actions.server</code>. User needs to click a button to run this action</li> </ul> <p>Difference with built-in code evaluation:</p> <ul class="simple"> <li>Allows to add extra imports to eval context</li> <li>Allows to use json format for incomming webhooks</li> <li>Provides helpers for resource linking. See <em>Links</em> section in <a class="reference external" href="doc/index.rst">doc/index.rst</a></li> <li>Uses queue_job module as a job broker</li> <li>Asynchronous calls to split big task into few small ones</li> <li>Allows repeat job on temporary fails (e.g. when external API is not available)</li> </ul> <a name="roadmap"></a> <h3>Roadmap</h3> <ul class="simple"> <li>Code widget: show line numbers</li> <li>Webhooks: add a possibility to retry failed webhook (e.g. to debug code)</li> </ul> <a name="developer-hints"></a> <h3 class="with-subtitle">Developer Hints</h3> <h3 class="section-subtitle" id="public-webhook-address"><span class="section-subtitle">Public webhook address</span></h3> <p>If you run Odoo locally and need to test webhook, you can use ssh tunneling:</p> <ul> <li><p class="first">Connect your server:</p> <ul> <li><p class="first">Edit file <code>/etc/ssh/sshd_config</code>:</p> <ul class="simple"> <li>Find <code>GatewayPorts</code> attribute and set value to <code>yes</code></li> </ul> </li> <li><p class="first">Restart ssh daemon:</p> <pre> <code>service ssh restart</code> </pre> </li> </ul> </li> <li><p class="first">Connect to your server with <code>-R</code> attribute:</p> <pre> <code>ssh user&#64;yourserver.example -R 0.0.0.0:8069:localhost:8069</code> </pre> </li> </ul> <p>Now you can set <code>http://yourserver.example:8069</code> as a value for <code>web.base.url</code> in Odoo (menu <code>[[ Settings ]] &gt;&gt; System Parameters</code>). Also, you need to set any value to parameter <a class="reference external" href="https://odoo-source.com/?q=web.base.url.freeze&amp;i=nope&amp;files=&amp;excludeFiles=po%24%7Cpot%24%7Cyml%24%7Cyaml%24%7Ccss%24%7C%2Fstatic%2Flib%2F&amp;repos=odoo">web.base.url.freeze</a></p> <p>Few more steps requires to use https connection (e.g. telegram api works with https only). In your server do as following:</p> <ul> <li><p class="first">Install nginx in your server</p> </li> <li><p class="first">Add nginx config:</p> <pre> <code>server { listen 80; server_name yourserver.example; location / { proxy_set_header Host $host; proxy_pass http://localhost:8069; } }</code> </pre> </li> <li><p class="first">Install <a class="reference external" href="https://certbot.eff.org/lets-encrypt/ubuntuxenial-nginx.html">certbot</a></p> </li> <li><p class="first">Run</p> <pre> <code>sudo certbot --nginx</code> </pre> </li> <li><p class="first">Done!</p> </li> </ul> <p>Now set corresponding <code>https://...</code> value for <code>web.base.url</code> parameter.</p> <a name="credits"></a> <h3 class="with-subtitle">Credits</h3> <h3 class="section-subtitle" id="contributors"><span class="section-subtitle">Contributors</span></h3> <ul> <li><p class="first"><a class="reference external" href="https://twitter.com/yelizariev">Ivan Yelizariev</a>:</p> <blockquote> <ul class="simple"> <li>:one::zero: init version of the module</li> </ul> </blockquote> </li> </ul> <a name="further-information"></a> <h3>Further information</h3> <p>HTML Description: <a class="reference external" href="https://apps.odoo.com/apps/modules/13.0/sync/">https://apps.odoo.com/apps/modules/13.0/sync/</a></p> <p>Usage instructions: <a class="reference external" href="doc/index.rst">doc/index.rst</a></p> <p>Changelog: <a class="reference external" href="doc/changelog.rst">doc/changelog.rst</a></p> <p>Notifications on updates: <a class="reference external" href="https://github.com/itpp-labs/sync-addons/commits/13.0/sync.atom">via Atom</a>, <a class="reference external" href="https://blogtrottr.com/?subscribe=https://github.com/itpp-labs/sync-addons/commits/13.0/sync.atom">by Email</a></p> <p>Tested on Odoo 13.0 9fe7d55e64867d177519e99cc45f9ecfeb3746a3</p>