{"action":"created","comment":{"url":"https://api.github.com/repos/OCA/knowledge/pulls/comments/70218605","id":70218605,"diff_hunk":"@@ -0,0 +1,91 @@\n+.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg\n+    :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html\n+    :alt: License: AGPL-3\n+\n+====\n+SFTP\n+====\n+\n+This module allows you to access your data (= documents attached to records)\n+via SFTP. There will be different virtual roots to get your browsing started,","path":"document_sftp/README.rst","position":10,"original_position":10,"commit_id":"f5a26b028c4dea4297d23f088460cb0c5b30d52a","original_commit_id":"7dd3ce4dc8d6022f742eb6d2335845b34e86cf0f","user":{"login":"hbrunn","id":2563186,"avatar_url":"https://avatars.githubusercontent.com/u/2563186?v=3","gravatar_id":"","url":"https://api.github.com/users/hbrunn","html_url":"https://github.com/hbrunn","followers_url":"https://api.github.com/users/hbrunn/followers","following_url":"https://api.github.com/users/hbrunn/following{/other_user}","gists_url":"https://api.github.com/users/hbrunn/gists{/gist_id}","starred_url":"https://api.github.com/users/hbrunn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hbrunn/subscriptions","organizations_url":"https://api.github.com/users/hbrunn/orgs","repos_url":"https://api.github.com/users/hbrunn/repos","events_url":"https://api.github.com/users/hbrunn/events{/privacy}","received_events_url":"https://api.github.com/users/hbrunn/received_events","type":"User","site_admin":false},"body":"file a PR with your proposal","created_at":"2016-07-11T08:27:39Z","updated_at":"2016-07-11T08:27:39Z","html_url":"https://github.com/OCA/knowledge/pull/95#discussion_r70218605","pull_request_url":"https://api.github.com/repos/OCA/knowledge/pulls/95","_links":{"self":{"href":"https://api.github.com/repos/OCA/knowledge/pulls/comments/70218605"},"html":{"href":"https://github.com/OCA/knowledge/pull/95#discussion_r70218605"},"pull_request":{"href":"https://api.github.com/repos/OCA/knowledge/pulls/95"}}},"pull_request":{"url":"https://api.github.com/repos/OCA/knowledge/pulls/95","id":76875992,"html_url":"https://github.com/OCA/knowledge/pull/95","diff_url":"https://github.com/OCA/knowledge/pull/95.diff","patch_url":"https://github.com/OCA/knowledge/pull/95.patch","issue_url":"https://api.github.com/repos/OCA/knowledge/issues/95","number":95,"state":"open","locked":false,"title":"[ADD] document_sftp","user":{"login":"hbrunn","id":2563186,"avatar_url":"https://avatars.githubusercontent.com/u/2563186?v=3","gravatar_id":"","url":"https://api.github.com/users/hbrunn","html_url":"https://github.com/hbrunn","followers_url":"https://api.github.com/users/hbrunn/followers","following_url":"https://api.github.com/users/hbrunn/following{/other_user}","gists_url":"https://api.github.com/users/hbrunn/gists{/gist_id}","starred_url":"https://api.github.com/users/hbrunn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hbrunn/subscriptions","organizations_url":"https://api.github.com/users/hbrunn/orgs","repos_url":"https://api.github.com/users/hbrunn/repos","events_url":"https://api.github.com/users/hbrunn/events{/privacy}","received_events_url":"https://api.github.com/users/hbrunn/received_events","type":"User","site_admin":false},"body":"====\r\nSFTP\r\n====\r\n\r\nThis module allows you to access your data (= documents attached to records)\r\nvia SFTP. There will be different \r\n\r\nInstallation\r\n============\r\n\r\nTo install this module, you need to:\r\n\r\n#. install paramiko\r\n#. install the module. It will generate a new host key during installation\r\n\r\nConfiguration\r\n=============\r\n\r\nTo configure this module, you need to:\r\n\r\n#. be sure there's a proper hostkey in config parameter ``document_sftp.hostkey``\r\n#. add some authorized key on the users' form who should be allowed to login via SFTP\r\n\r\nUsage\r\n=====\r\n\r\nTo use this module, you need to:\r\n\r\n#. add some keys to your user's authorized key field\r\n#. say ``sftp -p 2222 $yourodoohost`` and browse through the possibilities\r\n#. when you found what you want, say ``sshfs -p 2222 \"admin@localhost:By model/res.company/1\" $yourmountpoint`` to see all attachments of your main company in ``$yourmountpoint``\r\n#. pay someone to implement locking (see below) in order to be able to write on this\r\n\r\n.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas\r\n    :alt: Try me on Runbot\r\n    :target: https://runbot.odoo-community.org/runbot/118/8.0\r\n\r\nKnown issues / Roadmap\r\n======================\r\n\r\n* implement writing. This is not trivial, because we need some concept of locking, UI for that and take care of some corner cases\r\n* allow to restrict actions on SFTP that are allowed normally (because ``rf -rf $yourmountpoint/`` can become a serious problem)\r\n* should support directories\r\n* implement some other useful virtual roots (Mails, By Directory, By name, ...)\r\n  This should look like symlinks to the rigid designator (model+id) from the point of view of the user.\r\n* with this, `auth_ssh` should be simple to implement enabling passwordless logins for your scripts\r\n* if you want to see error messages from the SFTP server thread, use ``--log-handler=paramiko:DEBUG``\r\n","created_at":"2016-07-10T15:26:42Z","updated_at":"2016-07-11T08:27:39Z","closed_at":null,"merged_at":null,"merge_commit_sha":"14194bf29c7967d5ab3e4b68f5f920617e17031f","assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/OCA/knowledge/milestones/1","html_url":"https://github.com/OCA/knowledge/milestones/8.0","labels_url":"https://api.github.com/repos/OCA/knowledge/milestones/1/labels","id":863466,"number":1,"title":"8.0","description":null,"creator":{"login":"bwrsandman","id":1013356,"avatar_url":"https://avatars.githubusercontent.com/u/1013356?v=3","gravatar_id":"","url":"https://api.github.com/users/bwrsandman","html_url":"https://github.com/bwrsandman","followers_url":"https://api.github.com/users/bwrsandman/followers","following_url":"https://api.github.com/users/bwrsandman/following{/other_user}","gists_url":"https://api.github.com/users/bwrsandman/gists{/gist_id}","starred_url":"https://api.github.com/users/bwrsandman/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bwrsandman/subscriptions","organizations_url":"https://api.github.com/users/bwrsandman/orgs","repos_url":"https://api.github.com/users/bwrsandman/repos","events_url":"https://api.github.com/users/bwrsandman/events{/privacy}","received_events_url":"https://api.github.com/users/bwrsandman/received_events","type":"User","site_admin":false},"open_issues":5,"closed_issues":23,"state":"open","created_at":"2014-11-12T15:00:29Z","updated_at":"2016-07-10T15:26:42Z","due_on":null,"closed_at":null},"commits_url":"https://api.github.com/repos/OCA/knowledge/pulls/95/commits","review_comments_url":"https://api.github.com/repos/OCA/knowledge/pulls/95/comments","review_comment_url":"https://api.github.com/repos/OCA/knowledge/pulls/comments{/number}","comments_url":"https://api.github.com/repos/OCA/knowledge/issues/95/comments","statuses_url":"https://api.github.com/repos/OCA/knowledge/statuses/f5a26b028c4dea4297d23f088460cb0c5b30d52a","head":{"label":"hbrunn:8.0-document_sftp","ref":"8.0-document_sftp","sha":"f5a26b028c4dea4297d23f088460cb0c5b30d52a","user":{"login":"hbrunn","id":2563186,"avatar_url":"https://avatars.githubusercontent.com/u/2563186?v=3","gravatar_id":"","url":"https://api.github.com/users/hbrunn","html_url":"https://github.com/hbrunn","followers_url":"https://api.github.com/users/hbrunn/followers","following_url":"https://api.github.com/users/hbrunn/following{/other_user}","gists_url":"https://api.github.com/users/hbrunn/gists{/gist_id}","starred_url":"https://api.github.com/users/hbrunn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hbrunn/subscriptions","organizations_url":"https://api.github.com/users/hbrunn/orgs","repos_url":"https://api.github.com/users/hbrunn/repos","events_url":"https://api.github.com/users/hbrunn/events{/privacy}","received_events_url":"https://api.github.com/users/hbrunn/received_events","type":"User","site_admin":false},"repo":{"id":22380378,"name":"knowledge","full_name":"hbrunn/knowledge","owner":{"login":"hbrunn","id":2563186,"avatar_url":"https://avatars.githubusercontent.com/u/2563186?v=3","gravatar_id":"","url":"https://api.github.com/users/hbrunn","html_url":"https://github.com/hbrunn","followers_url":"https://api.github.com/users/hbrunn/followers","following_url":"https://api.github.com/users/hbrunn/following{/other_user}","gists_url":"https://api.github.com/users/hbrunn/gists{/gist_id}","starred_url":"https://api.github.com/users/hbrunn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hbrunn/subscriptions","organizations_url":"https://api.github.com/users/hbrunn/orgs","repos_url":"https://api.github.com/users/hbrunn/repos","events_url":"https://api.github.com/users/hbrunn/events{/privacy}","received_events_url":"https://api.github.com/users/hbrunn/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/hbrunn/knowledge","description":"","fork":true,"url":"https://api.github.com/repos/hbrunn/knowledge","forks_url":"https://api.github.com/repos/hbrunn/knowledge/forks","keys_url":"https://api.github.com/repos/hbrunn/knowledge/keys{/key_id}","collaborators_url":"https://api.github.com/repos/hbrunn/knowledge/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/hbrunn/knowledge/teams","hooks_url":"https://api.github.com/repos/hbrunn/knowledge/hooks","issue_events_url":"https://api.github.com/repos/hbrunn/knowledge/issues/events{/number}","events_url":"https://api.github.com/repos/hbrunn/knowledge/events","assignees_url":"https://api.github.com/repos/hbrunn/knowledge/assignees{/user}","branches_url":"https://api.github.com/repos/hbrunn/knowledge/branches{/branch}","tags_url":"https://api.github.com/repos/hbrunn/knowledge/tags","blobs_url":"https://api.github.com/repos/hbrunn/knowledge/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/hbrunn/knowledge/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/hbrunn/knowledge/git/refs{/sha}","trees_url":"https://api.github.com/repos/hbrunn/knowledge/git/trees{/sha}","statuses_url":"https://api.github.com/repos/hbrunn/knowledge/statuses/{sha}","languages_url":"https://api.github.com/repos/hbrunn/knowledge/languages","stargazers_url":"https://api.github.com/repos/hbrunn/knowledge/stargazers","contributors_url":"https://api.github.com/repos/hbrunn/knowledge/contributors","subscribers_url":"https://api.github.com/repos/hbrunn/knowledge/subscribers","subscription_url":"https://api.github.com/repos/hbrunn/knowledge/subscription","commits_url":"https://api.github.com/repos/hbrunn/knowledge/commits{/sha}","git_commits_url":"https://api.github.com/repos/hbrunn/knowledge/git/commits{/sha}","comments_url":"https://api.github.com/repos/hbrunn/knowledge/comments{/number}","issue_comment_url":"https://api.github.com/repos/hbrunn/knowledge/issues/comments{/number}","contents_url":"https://api.github.com/repos/hbrunn/knowledge/contents/{+path}","compare_url":"https://api.github.com/repos/hbrunn/knowledge/compare/{base}...{head}","merges_url":"https://api.github.com/repos/hbrunn/knowledge/merges","archive_url":"https://api.github.com/repos/hbrunn/knowledge/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/hbrunn/knowledge/downloads","issues_url":"https://api.github.com/repos/hbrunn/knowledge/issues{/number}","pulls_url":"https://api.github.com/repos/hbrunn/knowledge/pulls{/number}","milestones_url":"https://api.github.com/repos/hbrunn/knowledge/milestones{/number}","notifications_url":"https://api.github.com/repos/hbrunn/knowledge/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/hbrunn/knowledge/labels{/name}","releases_url":"https://api.github.com/repos/hbrunn/knowledge/releases{/id}","deployments_url":"https://api.github.com/repos/hbrunn/knowledge/deployments","created_at":"2014-07-29T13:17:17Z","updated_at":"2014-07-08T13:11:58Z","pushed_at":"2016-07-11T08:09:22Z","git_url":"git://github.com/hbrunn/knowledge.git","ssh_url":"git@github.com:hbrunn/knowledge.git","clone_url":"https://github.com/hbrunn/knowledge.git","svn_url":"https://github.com/hbrunn/knowledge","homepage":null,"size":2058,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"OCA:8.0","ref":"8.0","sha":"46811e3e5a49c00ef25c04a92b41d2ae27a99c7b","user":{"login":"OCA","id":7600578,"avatar_url":"https://avatars.githubusercontent.com/u/7600578?v=3","gravatar_id":"","url":"https://api.github.com/users/OCA","html_url":"https://github.com/OCA","followers_url":"https://api.github.com/users/OCA/followers","following_url":"https://api.github.com/users/OCA/following{/other_user}","gists_url":"https://api.github.com/users/OCA/gists{/gist_id}","starred_url":"https://api.github.com/users/OCA/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/OCA/subscriptions","organizations_url":"https://api.github.com/users/OCA/orgs","repos_url":"https://api.github.com/users/OCA/repos","events_url":"https://api.github.com/users/OCA/events{/privacy}","received_events_url":"https://api.github.com/users/OCA/received_events","type":"Organization","site_admin":false},"repo":{"id":20894051,"name":"knowledge","full_name":"OCA/knowledge","owner":{"login":"OCA","id":7600578,"avatar_url":"https://avatars.githubusercontent.com/u/7600578?v=3","gravatar_id":"","url":"https://api.github.com/users/OCA","html_url":"https://github.com/OCA","followers_url":"https://api.github.com/users/OCA/followers","following_url":"https://api.github.com/users/OCA/following{/other_user}","gists_url":"https://api.github.com/users/OCA/gists{/gist_id}","starred_url":"https://api.github.com/users/OCA/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/OCA/subscriptions","organizations_url":"https://api.github.com/users/OCA/orgs","repos_url":"https://api.github.com/users/OCA/repos","events_url":"https://api.github.com/users/OCA/events{/privacy}","received_events_url":"https://api.github.com/users/OCA/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/OCA/knowledge","description":"Odoo Document & Knowledge Management","fork":false,"url":"https://api.github.com/repos/OCA/knowledge","forks_url":"https://api.github.com/repos/OCA/knowledge/forks","keys_url":"https://api.github.com/repos/OCA/knowledge/keys{/key_id}","collaborators_url":"https://api.github.com/repos/OCA/knowledge/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/OCA/knowledge/teams","hooks_url":"https://api.github.com/repos/OCA/knowledge/hooks","issue_events_url":"https://api.github.com/repos/OCA/knowledge/issues/events{/number}","events_url":"https://api.github.com/repos/OCA/knowledge/events","assignees_url":"https://api.github.com/repos/OCA/knowledge/assignees{/user}","branches_url":"https://api.github.com/repos/OCA/knowledge/branches{/branch}","tags_url":"https://api.github.com/repos/OCA/knowledge/tags","blobs_url":"https://api.github.com/repos/OCA/knowledge/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/OCA/knowledge/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/OCA/knowledge/git/refs{/sha}","trees_url":"https://api.github.com/repos/OCA/knowledge/git/trees{/sha}","statuses_url":"https://api.github.com/repos/OCA/knowledge/statuses/{sha}","languages_url":"https://api.github.com/repos/OCA/knowledge/languages","stargazers_url":"https://api.github.com/repos/OCA/knowledge/stargazers","contributors_url":"https://api.github.com/repos/OCA/knowledge/contributors","subscribers_url":"https://api.github.com/repos/OCA/knowledge/subscribers","subscription_url":"https://api.github.com/repos/OCA/knowledge/subscription","commits_url":"https://api.github.com/repos/OCA/knowledge/commits{/sha}","git_commits_url":"https://api.github.com/repos/OCA/knowledge/git/commits{/sha}","comments_url":"https://api.github.com/repos/OCA/knowledge/comments{/number}","issue_comment_url":"https://api.github.com/repos/OCA/knowledge/issues/comments{/number}","contents_url":"https://api.github.com/repos/OCA/knowledge/contents/{+path}","compare_url":"https://api.github.com/repos/OCA/knowledge/compare/{base}...{head}","merges_url":"https://api.github.com/repos/OCA/knowledge/merges","archive_url":"https://api.github.com/repos/OCA/knowledge/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/OCA/knowledge/downloads","issues_url":"https://api.github.com/repos/OCA/knowledge/issues{/number}","pulls_url":"https://api.github.com/repos/OCA/knowledge/pulls{/number}","milestones_url":"https://api.github.com/repos/OCA/knowledge/milestones{/number}","notifications_url":"https://api.github.com/repos/OCA/knowledge/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/OCA/knowledge/labels{/name}","releases_url":"https://api.github.com/repos/OCA/knowledge/releases{/id}","deployments_url":"https://api.github.com/repos/OCA/knowledge/deployments","created_at":"2014-06-16T17:40:10Z","updated_at":"2016-06-21T16:09:45Z","pushed_at":"2016-07-11T08:09:23Z","git_url":"git://github.com/OCA/knowledge.git","ssh_url":"git@github.com:OCA/knowledge.git","clone_url":"https://github.com/OCA/knowledge.git","svn_url":"https://github.com/OCA/knowledge","homepage":"http://www.odoo-community.org/project/22","size":3315,"stargazers_count":21,"watchers_count":21,"language":"JavaScript","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":71,"mirror_url":null,"open_issues_count":12,"forks":71,"open_issues":12,"watchers":21,"default_branch":"9.0"}},"_links":{"self":{"href":"https://api.github.com/repos/OCA/knowledge/pulls/95"},"html":{"href":"https://github.com/OCA/knowledge/pull/95"},"issue":{"href":"https://api.github.com/repos/OCA/knowledge/issues/95"},"comments":{"href":"https://api.github.com/repos/OCA/knowledge/issues/95/comments"},"review_comments":{"href":"https://api.github.com/repos/OCA/knowledge/pulls/95/comments"},"review_comment":{"href":"https://api.github.com/repos/OCA/knowledge/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/OCA/knowledge/pulls/95/commits"},"statuses":{"href":"https://api.github.com/repos/OCA/knowledge/statuses/f5a26b028c4dea4297d23f088460cb0c5b30d52a"}}}}
{"actor":{"display_login":"hbrunn"}}