Skip to content
This repository has been archived by the owner on Jun 27, 2023. It is now read-only.

enable PUT for LDPCs and LDPRs #166

Open
bblfish opened this issue Feb 20, 2016 · 1 comment
Open

enable PUT for LDPCs and LDPRs #166

bblfish opened this issue Feb 20, 2016 · 1 comment

Comments

@bblfish
Copy link
Member

bblfish commented Feb 20, 2016

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.

See:

@bblfish bblfish added this to the Initial Server Deployment milestone Feb 20, 2016
@bblfish bblfish changed the title enable PUT for LDPCs enable PUT for LDPCs and LDPRs Feb 20, 2016
@bblfish
Copy link
Member Author

bblfish commented Feb 22, 2016

This is actually quite difficult to do with the current architecture. I tried a simple hack for this but came across the following issues:

  • 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.
  • 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.

This suggests that all requests should go first to the container, which should forward them to the relevant actor.

If 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.

So this should be moved to issue 167: requiring a rewrite of the actors

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

1 participant