hub: the access log names details.reason for a 403
tsk-5d8hdtqhje26 open
From tsk-7jhpzrvsnzm3: a project owner got 30 refused join requests on prod, and ops could not tell which check refused them, because the access line carries only POST … 403 ms=… route=…. Wanted: for a 403 (and other 4xx with a details.reason or scope), the access line also names the error code and that reason/scope, never a value from the request body, a token or an address beyond what is already logged. Small hub change with a test that a refused call's log line holds the reason. Area: hub logging.