Open wkloucek opened 10 months ago
If we implement this, we should only do that when a user triggers an action, not on any background tasks. There's little that's more annoying than your page suddenly going into maintenance mode without any interaction
There's little that's more annoying than your page suddenly going into maintenance mode without any interaction
The user can't influence this. The backend is in maintenance mode when a admin decides it to be in maintenance mode. Nothing a user can do about it.
Agreeing with @dschmidt that this can't happen as a "nope, sorry, maintenance" full view port page... imagine you're in a text editor (maybe even without auto save) and your content just goes away without a chance to get it back, just because web discovered that the backend is in maintenance mode. IMO this should be more like a prominent banner, so that you have a chance to copy your content elsewhere (local text file). Needs some more thought.
that this can't happen as a "nope, sorry, maintenance" full view port page
Now I get it. That makes sense
Needs some more thought.
That would be great! You already brought some cases that I didn't think of and also are definitively not covered with the current project based approach.
For a SaaS, you generally have the problem that you can't inform every user (because you don't have contact details or there are too many). So when the maintenance mode happens, it should be as non-disruptive to users as possible. This has many aspects like you already explained.
Is your feature request related to a problem? Please describe.
For a SaaS project we're putting oCIS (backend) into the maintenance mode by answering every request with
HTTP 503
and a html maintenance page as body.In NGINX this could look like this:
Currently oC Web doesn't gracefully handle these 503 responses on every API endpoint. It takes the user a reload of the website to get the maintenance page served. It also takes the user a reload to get back from the maintenance page to oC Web.
Describe the solution you'd like
Have a maintenance mode build into oC Web. If it receives HTTP 503 responses from the backend, it should go into that mode. It could periodically retry and automatically go back to normal mode if maintenance mode is over.
We no longer would have to serve a project specific maintenance page, but could instead just answer all API requests with 503.
It may be nice to load some info-string to display to the user from a well-known endpoint (to be defined I guess)
Describe alternatives you've considered
Hacks / Workarounds, which don't deserve to be documented in a product's issue tracker.
Additional context