fix: vault database
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
from functools import lru_cache
|
||||
import json
|
||||
from typing import Any
|
||||
from urllib.parse import quote
|
||||
from pydantic import Field,PrivateAttr
|
||||
from pydantic_settings import BaseSettings,SettingsConfigDict
|
||||
from src.infrastructure.vault import VaultClient
|
||||
@@ -67,7 +68,20 @@ class Settings(BaseSettings):
|
||||
|
||||
@property
|
||||
def DATABASE_URL(self) -> str:
|
||||
return self._get_vault_secret(self._vault_database_secrets,'DATABASE_URL','database_url')
|
||||
ready_url = self._get_vault_secret(self._vault_database_secrets,'DATABASE_URL','database_url')
|
||||
if ready_url:
|
||||
return ready_url
|
||||
|
||||
host = self._get_vault_secret(self._vault_database_secrets,'host','HOST')
|
||||
port = self._get_vault_secret(self._vault_database_secrets,'port','PORT') or '5432'
|
||||
user = self._get_vault_secret(self._vault_database_secrets,'user','USER')
|
||||
password = self._get_vault_secret(self._vault_database_secrets,'password','PASSWORD')
|
||||
name = self._get_vault_secret(self._vault_database_secrets,'name','NAME','database','DATABASE')
|
||||
if not host or not user or not password or not name:
|
||||
return ''
|
||||
quoted_user = quote(user,safe='')
|
||||
quoted_password = quote(password,safe='')
|
||||
return f'postgresql+asyncpg://{quoted_user}:{quoted_password}@{host}:{port}/{name}'
|
||||
|
||||
|
||||
@property
|
||||
|
||||
Reference in New Issue
Block a user