### Feature and motivation

#11443 is a proposal to implement file download on the client bindings. However, to download a file you need to know the file name, and this might be tricky given that most of the time the application under test does not let you choose the name that will be used when the file is downloaded.

We should have an endpoint that lists the downloaded files in the configured download directory in Grid. Then the user can choose the name of the one they want to download.

### Usage example

Something along the lines of:

`/session/:sessionId:/se/file`

Which could return:

```json
[
	{
		"name":"input.txt",
		"timestamp": "<timestamp with creation date"
	},
	{
		"name":"anotherFile.txt",
		"timestamp": "<timestamp with creation date"
	}
]
```

But I am not 100% that is the W3C WebDriver response payload structure, we should adapt to that one. @titusfortner do you know?

The main challenge in this issue is to decide if we need to list files that belong to a session or if it is OK to list all downloaded files.
private final int maxSessionCount;
  private final int configuredSessionCount;
  private final boolean cdpEnabled;
  private final String downloadsPath;
  private final boolean bidiEnabled;
  private final AtomicBoolean drainAfterSessions = new AtomicBoolean();
  private final List<SessionSlot> factories;
  private final Cache<SessionId, SessionSlot> currentSessions;
  private final Cache<SessionId, TemporaryFilesystem> tempFileSystems;
  private final AtomicInteger pendingSessions = new AtomicInteger();
  private final AtomicInteger sessionCount = new AtomicInteger();
  private LocalNode(
    Tracer tracer,
    EventBus bus,
    URI uri,
    URI gridUri,
    HealthCheck healthCheck,
    int maxSessionCount,
    int drainAfterSessionCount,
    boolean cdpEnabled,
    boolean bidiEnabled,
    Ticker ticker,
    Duration sessionTimeout,
    Duration heartbeatPeriod,
    List<SessionSlot> factories,
    Secret registrationSecret,
    String downloadsPath) {
    super(tracer, new NodeId(UUID.randomUUID()), uri, registrationSecret);
    this.bus = Require.nonNull("Event bus", bus);
    this.externalUri = Require.nonNull("Remote node URI", uri);