bazelbuild / bazelbuild/remote-apis
REv3 idea: Make use of digest_function in requests mandatory
- Dominant language
- Go
- Stars
- 445
- Forks
- 141
- PR merge metrics
- No merged PRs in 30d
Description
In #235 we added a `digest_function` field to virtually all RPCs, allowing clients to specify the exact digest function that's used. This allows the server to distinguish between hashes of equal length (MD5 vs MURMUR3, SHA256 vs SHA256TREE). For compatibility, we allow clients to leave it unset for traditional hashing algorithms:
```
// If the digest function used is one of MD5, MURMUR3, SHA1, SHA256,
// SHA384, SHA512, or VSO, the client MAY leave this field unset. In
// that case the server SHOULD infer the digest function using the
// length of the action digest hash and the digest functions announced
// in the server's capabilities.
```
In REv3, we should eliminate these clauses, requiring clients to provide a valid digest function. Furthermore, we should consider making the `digest_function` component of Bytestream URLs mandatory, assuming Bytestream is still around then.
Contributor guide
Research direction
Start by reading issue #235 and locating the REv3 RPC definitions containing digest_function, then inspect the Bytestream URL handling if it is present. Done means the REv3 compatibility clauses and any Bytestream URL requirement are resolved consistently across the API definitions.
Written by the indexing model from the issue text.
Assessment
- Domain
- api
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100