nspcc-dev / nspcc-dev/neofs-api
Make LOCK operation a separate object verb
Nobody has claimed this yet.
- Dominant language
- Makefile
- Stars
- 11
- Forks
- 15
- Avg merge
- 2d 8h
- Merged PRs (30d)
- 9
Description
Is your feature request related to a problem? Please describe.
I'm always frustrated when I can't restrict how LOCK operation is available or not to users. Currently it's a PUT of LOCK object wrt ACL restrictions.
Describe the solution you'd like
Add a LOCK verb. It's pretty straightforward for EACL and tokens, however there is a problem of basic ACL. It can be solved in different ways:
- treat it the same as PUT there
- repurpose one of the (mostly) useless verbs like GETRANGEHASH (can be combined with reserved bit flip, we've got two spare there)
- extend basic ACL with one more integer
- extend basic ACL type to uint64 (in a different protobuf field of course)
- use an attribute for additional basic ACL integer
- move basic ACL to attributes altogether
Each has its pros and cons.
Describe alternatives you've considered
We need LOCK itself, the operation is radically different from PUT and it can be useful to not mix them (allow to PUT and forbid LOCK or allow LOCK and forbid PUT).
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the API and proto definitions for the current LOCK-as-PUT behavior, including EACL, token, and basic ACL handling. The work is done when LOCK is represented as a separate verb and its basic ACL representation is selected and documented consistently with the proposed alternatives.
Written by the indexing model from the issue text.
Assessment
- Domain
- api, authorization
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100