@@ -15,13 +15,21 @@ class BaseConfig(BaseSettings):
1515
1616 FAKE_EMAIL_SENDER : EmailStr = os .environ .get ("FAKE_EMAIL_SENDER" )
1717
18+ # # JWT
1819 JWT_SECRET_KEY : str = os .environ .get ("JWT_SECRET_KEY" )
1920 JWT_SECRET_KEY_REFRESH : str = os .environ .get ("JWT_SECRET_KEY_REFRESH" )
2021 PRE_TFA_SECRET_KEY : str = os .environ .get ("PRE_TFA_SECRET_KEY" )
2122 ALGORITHM : str = os .environ .get ("ALGORITHM" )
23+ ACCESS_TOKEN_EXPIRE_MINUTES : int = os .environ .get ("ACCESS_TOKEN_EXPIRE_MINUTES" , 15 )
24+ REFRESH_TOKEN_EXPIRE_MINUTES : int = os .environ .get (
25+ "REFRESH_TOKEN_EXPIRE_MINUTES" , 60 * 24
26+ ) # 24 h
2227
28+ # # 2 FACTOR AUTHENTICATION
2329 FERNET_KEY_TFA_TOKEN : str = os .environ .get ("FERNET_KEY_TFA_TOKEN" )
24-
30+ PRE_TFA_TOKEN_EXPIRE_MINUTES : int = os .environ .get (
31+ "PRE_TFA_TOKEN_EXPIRE_MINUTES" , 2
32+ )
2533 TFA_BACKUP_TOKENS_NR : int = os .environ .get ("TFA_BACKUP_TOKENS_NR" )
2634 TFA_TOKEN_LENGTH : int = os .environ .get ("TFA_TOKEN_LENGTH" )
2735 TOTP_ISSUER_NAME : str = os .environ .get ("TOTP_ISSUER_NAME" )
@@ -34,18 +42,12 @@ class BaseConfig(BaseSettings):
3442 le = 10
3543 )
3644
37- ACCESS_TOKEN_EXPIRE_MINUTES : int = os .environ .get ("ACCESS_TOKEN_EXPIRE_MINUTES" , 15 )
38- REFRESH_TOKEN_EXPIRE_MINUTES : int = os .environ .get (
39- "REFRESH_TOKEN_EXPIRE_MINUTES" , 60 * 24
40- ) # 24 h
41- PRE_TFA_TOKEN_EXPIRE_MINUTES : int = os .environ .get (
42- "PRE_TFA_TOKEN_EXPIRE_MINUTES" , 2
43- )
44-
45+ # # CORS
4546 BACKEND_CORS_ORIGINS : AnyHttpUrl | list [AnyHttpUrl ] = os .environ .get (
4647 "BACKEND_CORS_ORIGINS" , "http://localhost:5555"
4748 )
4849
50+ # # DB
4951 SQLALCHEMY_DATABASE_URI : str = os .environ .get ("SQLALCHEMY_DATABASE_URI" )
5052
5153 @validator ("SQLALCHEMY_DATABASE_URI" , pre = True )
@@ -62,6 +64,16 @@ def assemble_db_connection(cls, v: Optional[str], values: Dict[str, Any]) -> Any
6264 path = f"/{ values .get ('POSTGRES_DB' ) or '' } " ,
6365 )
6466
67+ # # CELERY
68+ CELERY_BROKER_URL : str = os .environ .get ("CELERY_BROKER_URL" , "redis://redis:6379/0" )
69+ result_backend : str = os .environ .get ("result_backend" , "redis://redis:6379/0" )
70+ CELERY_WORKER_PREFETCH_MULTIPLIER = 1
71+ # Celery ACK the queue only when task is completed
72+ CELERY_TASK_ACKS_LATE = True
73+ imports = ("fastapi_2fa.tasks.tasks" ,)
74+ task_serializer = "pickle"
75+ accept_content = ('pickle' , 'json' ,)
76+
6577 class Config :
6678 case_sensitive = True
6779
0 commit comments