# Solid Containers ### Suggestion 1 ```http PUT /task-1 Link: </task-1>; anchor="/project-1"; rel="http:/pm.example/#hasTask" ``` Where `project-1` uses shape tree which has reference between projects and tasks based on `ex:hasTask` predicate. ----- With `/` ```http PUT /project-1/task-1 ``` ---- Does it violate PUT definition? If it does for both or for just one? ### Suggestion 2 ```http PUT /task-1 ``` And add a link relation: ```http LINK /project-1 Link: </task-1>; rel="http:/pm.example/#hasTask" ``` ```http POST /project-1 Link: </task-1>; rel="http:/pm.example/#hasTask" ``` POST? without body or ```http POST /project-1 Link: </task-1>; rel="http:/pm.example/#hasTask" ``` POST with body ```http PATCH /project-1 .... ``` Access, what if client/user not allowed make abritrary changes to `project-1` ? https://datatracker.ietf.org/doc/html/draft-snell-link-method-12 (FYI TimBL proposed this https://www.w3.org/Protocols/HTTP/Methods/Link.html) For a moment `task-1` is an orphan, also one might only be allowed to create tasks in `project-1`. ### Images with restricted access example We do not want those without permissions to see images, eventhough they can read tasks. ```http PUT /image-1 Link: </image-1>; anchor="/project-1"; rel="http:/pm.example/#hasImage" ``` How can we implement distinguishing access controls based on the predicate?