🔧(backend) customize cache config
We want to split the cache config between the app cache and the session cache. In the app cache, the default one, we allow to configure a prefix. By default this prefix is a fixed string so the cache will be never revoked because it is changing but it allow every instance to implement its own strategy like prefixing the keyx cache with a timestamp. To not impact session, the session cache is splitted in the settings.
This commit is contained in:
@@ -23,7 +23,7 @@ These are the environment variables you can set for the `impress-backend` contai
|
|||||||
| AWS_S3_SECRET_ACCESS_KEY | Access key for s3 endpoint | |
|
| AWS_S3_SECRET_ACCESS_KEY | Access key for s3 endpoint | |
|
||||||
| AWS_STORAGE_BUCKET_NAME | Bucket name for s3 endpoint | impress-media-storage |
|
| AWS_STORAGE_BUCKET_NAME | Bucket name for s3 endpoint | impress-media-storage |
|
||||||
| CACHES_DEFAULT_TIMEOUT | Cache default timeout | 30 |
|
| CACHES_DEFAULT_TIMEOUT | Cache default timeout | 30 |
|
||||||
| CACHES_KEY_PREFIX | The prefix used to every cache keys. | docs |
|
| CACHES_DEFAULT_KEY_PREFIX | The prefix used to every cache keys. | docs |
|
||||||
| COLLABORATION_API_URL | Collaboration api host | |
|
| COLLABORATION_API_URL | Collaboration api host | |
|
||||||
| COLLABORATION_SERVER_SECRET | Collaboration api secret | |
|
| COLLABORATION_SERVER_SECRET | Collaboration api secret | |
|
||||||
| COLLABORATION_WS_NOT_CONNECTED_READY_ONLY | Users not connected to the collaboration server cannot edit | false |
|
| COLLABORATION_WS_NOT_CONNECTED_READY_ONLY | Users not connected to the collaboration server cannot edit | false |
|
||||||
|
|||||||
@@ -1083,6 +1083,7 @@ class Production(Base):
|
|||||||
# Modern browsers require to have the `secure` attribute on cookies with `Samesite=none`
|
# Modern browsers require to have the `secure` attribute on cookies with `Samesite=none`
|
||||||
CSRF_COOKIE_SECURE = True
|
CSRF_COOKIE_SECURE = True
|
||||||
SESSION_COOKIE_SECURE = True
|
SESSION_COOKIE_SECURE = True
|
||||||
|
SESSION_CACHE_ALIAS = "session"
|
||||||
|
|
||||||
# Privacy
|
# Privacy
|
||||||
SECURE_REFERRER_POLICY = "same-origin"
|
SECURE_REFERRER_POLICY = "same-origin"
|
||||||
@@ -1090,11 +1091,12 @@ class Production(Base):
|
|||||||
# Conversion API: Always verify SSL in production
|
# Conversion API: Always verify SSL in production
|
||||||
CONVERSION_API_SECURE = True
|
CONVERSION_API_SECURE = True
|
||||||
|
|
||||||
|
# Cache
|
||||||
CACHES = {
|
CACHES = {
|
||||||
"default": {
|
"default": {
|
||||||
"BACKEND": "django_redis.cache.RedisCache",
|
"BACKEND": "django_redis.cache.RedisCache",
|
||||||
"LOCATION": values.Value(
|
"LOCATION": values.Value(
|
||||||
"redis://redis:6379/1",
|
"redis://redis:6379/0",
|
||||||
environ_name="REDIS_URL",
|
environ_name="REDIS_URL",
|
||||||
environ_prefix=None,
|
environ_prefix=None,
|
||||||
),
|
),
|
||||||
@@ -1108,10 +1110,26 @@ class Production(Base):
|
|||||||
},
|
},
|
||||||
"KEY_PREFIX": values.Value(
|
"KEY_PREFIX": values.Value(
|
||||||
"docs",
|
"docs",
|
||||||
environ_name="CACHES_KEY_PREFIX",
|
environ_name="CACHES_DEFAULT_KEY_PREFIX",
|
||||||
environ_prefix=None,
|
environ_prefix=None,
|
||||||
),
|
),
|
||||||
},
|
},
|
||||||
|
"session": {
|
||||||
|
"BACKEND": "django_redis.cache.RedisCache",
|
||||||
|
"LOCATION": values.Value(
|
||||||
|
"redis://redis:6379/0",
|
||||||
|
environ_name="REDIS_URL",
|
||||||
|
environ_prefix=None,
|
||||||
|
),
|
||||||
|
"TIMEOUT": values.IntegerValue(
|
||||||
|
30, # timeout in seconds
|
||||||
|
environ_name="CACHES_SESSION_TIMEOUT",
|
||||||
|
environ_prefix=None,
|
||||||
|
),
|
||||||
|
"OPTIONS": {
|
||||||
|
"CLIENT_CLASS": "django_redis.client.DefaultClient",
|
||||||
|
},
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user