Source code for bc_configs.environ_source.vault_config

from pydantic import Field

from ..configurator import BaseConfig


[docs] class VaultConfig(BaseConfig): """ Configuration for HashiCorp Vault. """ address: str | None = Field( default=None, description="The address of the Vault server." ) mount: str | None = Field( default=None, description="The mount point of the Vault server." ) path: str | None = Field( default=None, description="The path to the secret in the Vault." ) token: str | None = Field( default=None, description="The authentication token for accessing the Vault." ) username: str | None = Field( default=None, description="The username for authentication (if token is not provided).", ) password: str | None = Field( default=None, description="The password for authentication (if token is not provided).", )
[docs] def need_to_use(self) -> bool: """ Check if the token or username and password are provided. :return: True if the token or username and password are provided, False otherwise. :rtype: bool """ return bool(self.token or (self.username and self.password))
[docs] def has_filled_connect_fields(self) -> bool: """ Check if all connect fields are filled. :return: True if all fields are filled, False otherwise. :rtype: bool """ return all([self.address, self.mount, self.path, self.need_to_use()])