To handle some of the provenance-related use cases of the graph service, we need to be able to perform visits on specific graph sub-graphs, but we are only interested in returning the final nodes of the visit.
One example is the following use case (others are described in P461):
- **complete commit provenance**: given a content or directory node, return //all// commits whose directory (recursively) contains it
We could in theory add another query parameter to the various visit methods, but this corresponds to a well defined notion, so it probably deserves a dedicated endpoint. What we want is to return all leaves of the subgraph rooted at the starting node and identified by the given edge restrictions. So, concrete proposal:
- method: `/graph/leaves/:src`
- return: list of node PIDs of the leaves of the graph rooted at `:src`
- query params: `edges`, `direction` with the usual semantics and default values