{"action":"created","issue":{"url":"https://api.github.com/repos/read-write-web/rww-play/issues/166","repository_url":"https://api.github.com/repos/read-write-web/rww-play","labels_url":"https://api.github.com/repos/read-write-web/rww-play/issues/166/labels{/name}","comments_url":"https://api.github.com/repos/read-write-web/rww-play/issues/166/comments","events_url":"https://api.github.com/repos/read-write-web/rww-play/issues/166/events","html_url":"https://github.com/read-write-web/rww-play/issues/166","id":135127565,"number":166,"title":"enable PUT for LDPCs and LDPRs","user":{"login":"bblfish","id":124506,"avatar_url":"https://avatars.githubusercontent.com/u/124506?v=3","gravatar_id":"","url":"https://api.github.com/users/bblfish","html_url":"https://github.com/bblfish","followers_url":"https://api.github.com/users/bblfish/followers","following_url":"https://api.github.com/users/bblfish/following{/other_user}","gists_url":"https://api.github.com/users/bblfish/gists{/gist_id}","starred_url":"https://api.github.com/users/bblfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bblfish/subscriptions","organizations_url":"https://api.github.com/users/bblfish/orgs","repos_url":"https://api.github.com/users/bblfish/repos","events_url":"https://api.github.com/users/bblfish/events{/privacy}","received_events_url":"https://api.github.com/users/bblfish/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/read-write-web/rww-play/labels/enhancement","name":"enhancement","color":"84b6eb"}],"state":"open","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/read-write-web/rww-play/milestones/1","html_url":"https://github.com/read-write-web/rww-play/milestones/Initial%20Server%20Deployment","labels_url":"https://api.github.com/repos/read-write-web/rww-play/milestones/1/labels","id":1579963,"number":1,"title":"Initial Server Deployment","description":"Make RWW-Play ready for initial server deployment.","creator":{"login":"bblfish","id":124506,"avatar_url":"https://avatars.githubusercontent.com/u/124506?v=3","gravatar_id":"","url":"https://api.github.com/users/bblfish","html_url":"https://github.com/bblfish","followers_url":"https://api.github.com/users/bblfish/followers","following_url":"https://api.github.com/users/bblfish/following{/other_user}","gists_url":"https://api.github.com/users/bblfish/gists{/gist_id}","starred_url":"https://api.github.com/users/bblfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bblfish/subscriptions","organizations_url":"https://api.github.com/users/bblfish/orgs","repos_url":"https://api.github.com/users/bblfish/repos","events_url":"https://api.github.com/users/bblfish/events{/privacy}","received_events_url":"https://api.github.com/users/bblfish/received_events","type":"User","site_admin":false},"open_issues":31,"closed_issues":0,"state":"open","created_at":"2016-02-12T15:49:51Z","updated_at":"2016-02-20T22:13:12Z","due_on":"2016-02-29T00:00:00Z","closed_at":null},"comments":1,"created_at":"2016-02-20T22:13:12Z","updated_at":"2016-02-22T19:19:44Z","closed_at":null,"body":"This is useful for subdomain creation, and also when clients want to make sure they have the right name for an LDPC.  Also currently PUT is allowed only for Graphs, extend to allow for any type of content.\r\n\r\nSee:\r\n* [issue 37: The term \"Container\" is now overloaded and underspecified](https://github.com/solid/solid/issues/37)\r\n* [issue 42 of SoLiD: Disable random slug generation for containers](https://github.com/solid/solid/issues/42)"},"comment":{"url":"https://api.github.com/repos/read-write-web/rww-play/issues/comments/187328856","html_url":"https://github.com/read-write-web/rww-play/issues/166#issuecomment-187328856","issue_url":"https://api.github.com/repos/read-write-web/rww-play/issues/166","id":187328856,"user":{"login":"bblfish","id":124506,"avatar_url":"https://avatars.githubusercontent.com/u/124506?v=3","gravatar_id":"","url":"https://api.github.com/users/bblfish","html_url":"https://github.com/bblfish","followers_url":"https://api.github.com/users/bblfish/followers","following_url":"https://api.github.com/users/bblfish/following{/other_user}","gists_url":"https://api.github.com/users/bblfish/gists{/gist_id}","starred_url":"https://api.github.com/users/bblfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bblfish/subscriptions","organizations_url":"https://api.github.com/users/bblfish/orgs","repos_url":"https://api.github.com/users/bblfish/repos","events_url":"https://api.github.com/users/bblfish/events{/privacy}","received_events_url":"https://api.github.com/users/bblfish/received_events","type":"User","site_admin":false},"created_at":"2016-02-22T19:19:44Z","updated_at":"2016-02-22T19:19:44Z","body":"This is actually quite difficult to do with the current architecture. I tried a simple hack for this but came across the following issues:\r\n\r\n• because a `PUT` can create a resource it requires the ACL to either be on the container if the resource does not exist, or for it to be on the resource if it exists. \r\n* The `If-Then-Match` etag calculation needs to be on the object if it exists. But fetching the meta data of the resource that does not exist is going to lead to an error. \r\n\r\nThis suggests that all requests should go first to the container, which should forward them to the relevant actor. \r\n\r\nIf we allow a `PUT` to also create subdirectories in one go, then we also need to containers to create subcontainers, etc... This suggests that we may need all requests to move very quickly down the actor hierarchy. This would be good in that it would also save memory, no actor needing to be created if a request for it was not made. Creating intermediate actors would also allow one to determine if a request holder were allowed to create resources containers, as each container actor could determine if the actor had write or append access to it.\r\n\r\n\r\nSo this should be moved to [issue 167: requiring a rewrite of the actors](https://github.com/read-write-web/rww-play/issues/167)"}}