mdenet / educationplatform

Eclipse Public License 2.0
2 stars 3 forks source link

Improve error reporting in token server #135

Open agarciadom opened 8 months ago

agarciadom commented 8 months ago

The token server needs to have better error reporting, to help track down issues in its setup. For instance, the StorageController should provide clearer error responses when 1) the expected authentication cookie is missing, 2) the Octokit request fails, and 3) the expected parameters are missing.

These behaviours should be unit tested as well: 1) and 3) should be reasonably simple to unit test, and 2) could be unit tested by replacing Octokit with a stub that provides an error response.

barnettwilliam commented 7 months ago

This should include handling of errors from GitHub e.g. the following exception is seen if a user tries to access a repository that they do not have permission for:


educationplatform-docker-mdenet-tokenserver-1  | RangeError [ERR_HTTP_INVALID_STATUS_CODE]: Invalid status code: undefined
educationplatform-docker-mdenet-tokenserver-1  |     at new NodeError (node:internal/errors:400:5)
educationplatform-docker-mdenet-tokenserver-1  |     at ServerResponse.writeHead (node:_http_server:343:11)
educationplatform-docker-mdenet-tokenserver-1  |     at ServerResponse._implicitHeader (node:_http_server:334:8)
educationplatform-docker-mdenet-tokenserver-1  |     at write_ (node:_http_outgoing:886:9)
educationplatform-docker-mdenet-tokenserver-1  |     at ServerResponse.end (node:_http_outgoing:996:5)
educationplatform-docker-mdenet-tokenserver-1  |     at ServerResponse.send (/usr/src/mdenet-ts/node_modules/express/lib/response.js:232:10)
educationplatform-docker-mdenet-tokenserver-1  |     at ServerResponse.json (/usr/src/mdenet-ts/node_modules/express/lib/response.js:278:15)
educationplatform-docker-mdenet-tokenserver-1  |     at errorHandlingMiddleware (/usr/src/mdenet-ts/tokenserver/dist/middleware/ErrorHandlingMiddleware.js:6:36)
educationplatform-docker-mdenet-tokenserver-1  |     at Layer.handle_error (/usr/src/mdenet-ts/node_modules/express/lib/router/layer.js:71:5)
educationplatform-docker-mdenet-tokenserver-1  |     at trim_prefix (/usr/src/mdenet-ts/node_modules/express/lib/router/index.js:326:13)```