Since Celery tasks don't affect interactive latency, we should have a
more generous timeout. This also allows admins to set the timeout for
Celery and the web frontend separately, without breaking backwards
compatibility with the previous environment variable.
Many of these environment variables were probably not actually usable,
since they would be strings if set in the env file. Using the
typecasting functions fixes this, and generally shows the intention of
the code more clearly.
This adds a new storage backend for Azure BlobStorage, I'm running this patch in Azure Kubernetes
hosting all my assets in Azure BlobStorage and it's been stable enough I thought I should commit
this back upstream.
- when using raise_for_status we need to catch an HTTPError, not a ConnectionError
- simplify instance actor - use internal email address since it will never be used anyway, and make default username less likely to already be in use.
ERROR HANDLING FIXES
- use raise_for_status() to pass through response code
- handle exceptions where no response object is passed through
INSTANCE ACTOR
- models.User.objects.create_user function cannot take an ID
- allow instance admins to determine username and email for instance actor in settings.py
- cleaner code
- use TWO_FACTOR_LOGIN_MAX_SECONDS instead of hardcoded number
- render qrcode properly
- use nginx to rate limit login attempts
- do not throw error if session user is undefined
This is the untest first pass at re-arranging remote search to work in
parallel rather than sequence. It moves a couple functions around
(raise_not_valid_url, for example, needs to be in connector_manager.py
now to avoid circular imports). It adds a function to Connector objects
that generates a search result (either to the isbn endpoint or the free
text endpoint) based on the query, which was previously done as part of
the search.
I also lowered the timeout to 8 seconds by default.
* Compiles css framework from sass
* Adds watch commands
* Copies existing css to sass file
* Moves sass out of static path
* Removes global linter
I wasn't sure how to customize this, and it's not providing a lot of
additional value on top of the domain-specific linters
* Reverts invalid change to dockerfile
* Changes stylelint path
* Remove unused bulma files
* Properly minifies generated css
* Fixes regression in thread display
* rgba function only works with percents for whatever reason
* Hush stylelint
* Removes trailing zeros
* Compile sass in Django
Co-authored-by: Joachim <joachim.robert@protonmail.com>
* Python formatting
* Updates linter
* Updates commands
* Adds css-config file
Co-authored-by: Joachim <joachim.robert@protonmail.com>
* Stylelint fix
* Removes unused compiled bulma files
Co-authored-by: Joachim <joachim.robert@protonmail.com>
We can't bake the font into the Docker image as such, because we mount
the volumes which blows away anything we have in the app tree
beforehand.
We could stash it somewhere in the image and then copy it from there on
app startup or something, but at that point we might as well just
download it as part of the app startup.
So, you can't define handlers piecewise, and if you redefine a logger,
you have to also include everything it uses, because your "new" logger
doesn't have a reference to the original logging config to get things
like mail_admins and require_debug_false.
require_debug_true isn't strictly necessary here, but it seemed strange
to just copy over one of them.