{"action":"created","issue":{"url":"https://api.github.com/repos/ssbc/phoenix/issues/349","labels_url":"https://api.github.com/repos/ssbc/phoenix/issues/349/labels{/name}","comments_url":"https://api.github.com/repos/ssbc/phoenix/issues/349/comments","events_url":"https://api.github.com/repos/ssbc/phoenix/issues/349/events","html_url":"https://github.com/ssbc/phoenix/issues/349","id":62479378,"number":349,"title":"Apps and perms: shared or isolated feeds?","user":{"login":"pfraze","id":1270099,"avatar_url":"https://avatars.githubusercontent.com/u/1270099?v=3","gravatar_id":"","url":"https://api.github.com/users/pfraze","html_url":"https://github.com/pfraze","followers_url":"https://api.github.com/users/pfraze/followers","following_url":"https://api.github.com/users/pfraze/following{/other_user}","gists_url":"https://api.github.com/users/pfraze/gists{/gist_id}","starred_url":"https://api.github.com/users/pfraze/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pfraze/subscriptions","organizations_url":"https://api.github.com/users/pfraze/orgs","repos_url":"https://api.github.com/users/pfraze/repos","events_url":"https://api.github.com/users/pfraze/events{/privacy}","received_events_url":"https://api.github.com/users/pfraze/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/ssbc/phoenix/labels/discussion","name":"discussion","color":"006b75"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":9,"created_at":"2015-03-17T18:35:08Z","updated_at":"2015-03-22T15:33:40Z","closed_at":null,"body":"Bringing this conversation back to the issues board from IRC\r\n\r\nMy position on this hasn't changed, so I'm going to do my best to describe it convincingly\r\n\r\n**At issue**: do we want applications on a device to share a single feed, or do we want each application to maintain its own feed?\r\n\r\n**Why this is complicated**: we need to control the read and write permissions of the applications. Some specific messages will need to be read controlled (most likely through encryption) and some broad classes of messages will also need to be read/write controlled (eg `type: contact`). It's important that SSB's indexes don't leak privileged information either.\r\n\r\n**How a shared feed would work**: applications would access the main feed and indexes using scuttlebot's RPC methods. To control read/write permissions, policies would act as filters on the method calls or on their executions. Most permissions (particularly write-access) would be deny-by-default and granted explicitly by the user. Encryption may also be used as a way to read-control specific messages, but the indexes must be filtered to make sure information about the encrypted messages isn't leaked (and so encryption alone is not effective).\r\n\r\n**How isolated feeds would work**: applications would use an internal SSB to generate and maintain a feed, and then continuously sync with scuttlebot. Reading and writing would occur locally and use internal indexes generated during the replication process. Each application can write freely to its own feed. Read access policies *could* be enforced during replication by filtering, but I would instead recommend using encryption to enforce read permissions. Because applications construct their own indexes, there's no potential for privileged information to leak from them."},"comment":{"url":"https://api.github.com/repos/ssbc/phoenix/issues/comments/84632952","html_url":"https://github.com/ssbc/phoenix/issues/349#issuecomment-84632952","issue_url":"https://api.github.com/repos/ssbc/phoenix/issues/349","id":84632952,"user":{"login":"NHQ","id":194352,"avatar_url":"https://avatars.githubusercontent.com/u/194352?v=3","gravatar_id":"","url":"https://api.github.com/users/NHQ","html_url":"https://github.com/NHQ","followers_url":"https://api.github.com/users/NHQ/followers","following_url":"https://api.github.com/users/NHQ/following{/other_user}","gists_url":"https://api.github.com/users/NHQ/gists{/gist_id}","starred_url":"https://api.github.com/users/NHQ/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/NHQ/subscriptions","organizations_url":"https://api.github.com/users/NHQ/orgs","repos_url":"https://api.github.com/users/NHQ/repos","events_url":"https://api.github.com/users/NHQ/events{/privacy}","received_events_url":"https://api.github.com/users/NHQ/received_events","type":"User","site_admin":false},"created_at":"2015-03-22T15:33:40Z","updated_at":"2015-03-22T15:33:40Z","body":"Altho I have no idea how it would change system designs up to now, my idea is that a user should have all the keys--should be able to create them with a click, like bitcoin wallets--and choose which app uses which keys, in which cases (somehow) a user controls which apps share permissions with other apps, by using same keys.  \r\n\r\nOwning your keypair also gives people the ability to choose their own handshake (which may be crucial for top secret nets), and also to create shared accounts."}}