bazelbuild / bazelbuild/remote-apis

REv3 idea: Make use of digest_function in requests mandatory

Open
#246 0 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.