main_app will always render now, even if one of the API calls fail
all different APIs have HealthCheckMiddleware middleware that will check the DB connection first, if it fails to connect, it will return a JSON response indicating the error
if a view is being called through engine(), it would depend on the API call to check the DB connection
but if it's being loaded from the browser, it will render with a status code
the only exception is logout since it does a session flush, which requires a DB connection. so the connection would be checked manually
getting session variables from the DB isn't going to fail now since it always has a fallback value. so the error is going to be triggered from the API call.
Changes:
containers have static IP addresses now to solve issues related to hostname
added a middleware to all the APIs to check for DB connection health, resolves #72
refactored some of the views to match with the DB check flow, resolves #72
added a 2s timeout for DB connection when DEBUG is True
added a utils file that has getSessionKey() and setSessionKey() functions to retrieve and save session keys safely, resolves #72
added a fix base.html issue when the DB is down, resolves #79
TODO:
figure out a way to display errors for rendered pages, #75
clean error messages, #76
catch error 400 for token renewal if DB goes down, #77
Fixed database connection issues
explanation:
main_app
will always render now, even if one of the API calls failHealthCheckMiddleware
middleware that will check the DB connection first, if it fails to connect, it will return a JSON response indicating the errorengine()
, it would depend on the API call to check the DB connectionlogout
since it does a session flush, which requires a DB connection. so the connection would be checked manuallyChanges:
hostname
getSessionKey()
andsetSessionKey()
functions to retrieve and save session keys safely, resolves #72base.html
issue when the DB is down, resolves #79TODO: