payload: {"action":"created","issue":{"url":"https://api.github.com/repos/theia-ide/theia/issues/5573","repository_url":"https://api.github.com/repos/theia-ide/theia","labels_url":"https://api.github.com/repos/theia-ide/theia/issues/5573/labels{/name}","comments_url":"https://api.github.com/repos/theia-ide/theia/issues/5573/comments","events_url":"https://api.github.com/repos/theia-ide/theia/issues/5573/events","html_url":"https://github.com/theia-ide/theia/issues/5573","id":460194797,"node_id":"MDU6SXNzdWU0NjAxOTQ3OTc=","number":5573,"title":"Thoughts about multi-user support","user":{"login":"JustinBobby007","id":39936133,"node_id":"MDQ6VXNlcjM5OTM2MTMz","avatar_url":"https://avatars3.githubusercontent.com/u/39936133?v=4","gravatar_id":"","url":"https://api.github.com/users/JustinBobby007","html_url":"https://github.com/JustinBobby007","followers_url":"https://api.github.com/users/JustinBobby007/followers","following_url":"https://api.github.com/users/JustinBobby007/following{/other_user}","gists_url":"https://api.github.com/users/JustinBobby007/gists{/gist_id}","starred_url":"https://api.github.com/users/JustinBobby007/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JustinBobby007/subscriptions","organizations_url":"https://api.github.com/users/JustinBobby007/orgs","repos_url":"https://api.github.com/users/JustinBobby007/repos","events_url":"https://api.github.com/users/JustinBobby007/events{/privacy}","received_events_url":"https://api.github.com/users/JustinBobby007/received_events","type":"User","site_admin":false},"labels":[{"id":547099391,"node_id":"MDU6TGFiZWw1NDcwOTkzOTE=","url":"https://api.github.com/repos/theia-ide/theia/labels/question","name":"question","color":"cc317c","default":true}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":2,"created_at":"2019-06-25T03:51:14Z","updated_at":"2019-06-27T15:20:45Z","closed_at":null,"author_association":"NONE","body":"Theia is designed under a single user scenario, that is back-end should run in a sandboxed environment like docker. But setting up docker or k8s seems a little bit too heavy cause someone my use Theia only as code editor or generic platform to extend functions, so is it possible to run in multi-user scenarios under some conditions, supposing:\r\n\r\n1. Front-end sources are packaged as html,js,css,etc, and are rendered by web browsers, supposing there are userA, userB.\r\n2. More than one clents such as UserA and UserB connect to the same back-end service. \r\n\r\nThis brought a problem userA and userB could access the same underlying file system and conflicts may exist. But if the conflicts are tolerable form someone's use case(like multiple writes, but last wins), Or Doing validation outside to make sure different users access different workspace folders, does it make sense?\r\n\r\n"},"comment":{"url":"https://api.github.com/repos/theia-ide/theia/issues/comments/506391488","html_url":"https://github.com/theia-ide/theia/issues/5573#issuecomment-506391488","issue_url":"https://api.github.com/repos/theia-ide/theia/issues/5573","id":506391488,"node_id":"MDEyOklzc3VlQ29tbWVudDUwNjM5MTQ4OA==","user":{"login":"marechal-p","id":14182238,"node_id":"MDQ6VXNlcjE0MTgyMjM4","avatar_url":"https://avatars0.githubusercontent.com/u/14182238?v=4","gravatar_id":"","url":"https://api.github.com/users/marechal-p","html_url":"https://github.com/marechal-p","followers_url":"https://api.github.com/users/marechal-p/followers","following_url":"https://api.github.com/users/marechal-p/following{/other_user}","gists_url":"https://api.github.com/users/marechal-p/gists{/gist_id}","starred_url":"https://api.github.com/users/marechal-p/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/marechal-p/subscriptions","organizations_url":"https://api.github.com/users/marechal-p/orgs","repos_url":"https://api.github.com/users/marechal-p/repos","events_url":"https://api.github.com/users/marechal-p/events{/privacy}","received_events_url":"https://api.github.com/users/marechal-p/received_events","type":"User","site_admin":false},"created_at":"2019-06-27T15:20:45Z","updated_at":"2019-06-27T15:20:45Z","author_association":"MEMBER","body":"IIUC, the backend tries to have as little state as possible, and when state is needed, it is stored in some kind of session (1 per connected client).\r\n\r\nThe biggest issues are filesystem related I think, like you mentioned if two people edit the same files there may be concurrency issues. Some talked about collaborative editing, but no extension was published yet for it.\r\n\r\nAside from the filesystem I don't exactly see what would go wrong. Just Git alone, since the state is inside the `.git` folder, when one switches branches it will change it for everyone. Sounds like a weird development environment."}}
other: {"actor":{"display_login":"marechal-p"}}