feat: add notifies to rabbitmq
This commit is contained in:
@@ -34,6 +34,7 @@ class Settings(BaseSettings):
|
||||
VAULT_NAMESPACE: str | None = None
|
||||
VAULT_MOUNT_POINT: str = 'dev-secrets'
|
||||
VAULT_DATABASE_SECRET_PATH: str = 'database'
|
||||
VAULT_RABBIT_SECRET_PATH: str = 'rabbitmq'
|
||||
VAULT_CSRF_SECRET_PATH: str = 'csrf'
|
||||
VAULT_DOCS_SECRET_PATH: str = 'docs'
|
||||
VAULT_JWT_KID_PATH: str = 'jwt/kid'
|
||||
@@ -74,6 +75,16 @@ class Settings(BaseSettings):
|
||||
JWT_ALGORITHM: str = 'RS256'
|
||||
JWT_KEYS_REFRESH_SECONDS: int = 3600
|
||||
|
||||
RABBIT_HOST: str = 'localhost'
|
||||
RABBIT_PORT: int = 5672
|
||||
RABBIT_USER: str = 'guest'
|
||||
RABBIT_PASSWORD: str = 'guest'
|
||||
RABBIT_VHOST: str = '/'
|
||||
RABBIT_PUBLISH_PERSIST: bool = True
|
||||
RABBIT_CONNECT_TIMEOUT: int = 5
|
||||
RABBIT_EMAIL_CODE_QUEUE: str = 'email.verification_code'
|
||||
RABBIT_TELEGRAM_NOTIFY_QUEUE: str = "telegram.notify"
|
||||
|
||||
LOG_LEVEL: Literal['DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL'] = 'INFO'
|
||||
LOG_FORMAT: Literal['JSON', 'TEXT'] = 'JSON'
|
||||
|
||||
@@ -120,6 +131,19 @@ class Settings(BaseSettings):
|
||||
object.__setattr__(self, 'DATABASE_USER', str(kv(db, 'USER', 'user')))
|
||||
if kv(db, 'PASSWORD', 'password') is not None:
|
||||
object.__setattr__(self, 'DATABASE_PASSWORD', str(kv(db, 'PASSWORD', 'password')))
|
||||
|
||||
rabbit = client.read_secret_optional(self.VAULT_RABBIT_SECRET_PATH)
|
||||
if rabbit:
|
||||
if kv(rabbit, 'HOST', 'host') is not None:
|
||||
object.__setattr__(self, 'RABBIT_HOST', str(kv(rabbit, 'HOST', 'host')))
|
||||
if kv(rabbit, 'PORT', 'port') is not None:
|
||||
object.__setattr__(self, 'RABBIT_PORT', _as_int(kv(rabbit, 'PORT', 'port'), self.RABBIT_PORT))
|
||||
if kv(rabbit, 'USER', 'user') is not None:
|
||||
object.__setattr__(self, 'RABBIT_USER', str(kv(rabbit, 'USER', 'user')))
|
||||
if kv(rabbit, 'PASSWORD', 'password') is not None:
|
||||
object.__setattr__(self, 'RABBIT_PASSWORD', str(kv(rabbit, 'PASSWORD', 'password')))
|
||||
if kv(rabbit, 'VHOST', 'vhost') is not None:
|
||||
object.__setattr__(self, 'RABBIT_VHOST', str(kv(rabbit, 'VHOST', 'vhost')))
|
||||
|
||||
csrf = client.read_secret_optional(self.VAULT_CSRF_SECRET_PATH)
|
||||
if csrf and kv(csrf, 'KEY', 'key') is not None:
|
||||
@@ -172,6 +196,11 @@ class Settings(BaseSettings):
|
||||
quoted_user = quote(user, safe='')
|
||||
quoted_password = quote(password, safe='')
|
||||
return f'postgresql+asyncpg://{quoted_user}:{quoted_password}@{host}:{port}/{name}'
|
||||
|
||||
@property
|
||||
def RABBIT_URL(self) -> str:
|
||||
vhost = '%2F' if self.RABBIT_VHOST == '/' else self.RABBIT_VHOST.lstrip('/')
|
||||
return f'amqp://{self.RABBIT_USER}:{self.RABBIT_PASSWORD}@{self.RABBIT_HOST}:{self.RABBIT_PORT}/{vhost}'
|
||||
|
||||
@property
|
||||
def EXCLUDED_PATHS(self) -> List[str]:
|
||||
|
||||
Reference in New Issue
Block a user