Protect UserEntity.privateData update with ETag/If-Match headers #57
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This depends on the corresponding frontend PR:
Follow-up to #56, this is a step towards "phase 1" of wwWallet/wallet-ecosystem#62: enabling the private data to be updated on the server side.
This helps prevent data loss if a user has two concurrent sessions and one attempts to overwrite changes made by the other. Each client must now keep track of the
X-Private-Data-ETag
value returned when the client most recently updated its local copy of the private data, and send that value as theX-Private-Data-If-Match
header when performing an update. If the header is missing or does not match the current server state, the update is rejected.These headers are meant to imitate the general-purpose
ETag
andIf-Match
headers, but named with a prefix to indicate that they only apply to the private data field when used in requests that also retrieve or handle other fields.