Bases: BaseModel
, ABC
Abstract model for configuration's secrets handling. Extending class has to implement secrets
field with correspodning type.
Source code in src/common/bootstrap/secrets_configuration.py
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 | class ConfigurationWithSecrets(BaseModel, ABC):
"""
Abstract model for configuration's secrets handling. Extending class has to implement `secrets` field with correspodning type.
"""
def model_post_init(self, context: Any) -> None:
"""
Function is invoked after the model is initialized. It is used to initialize secrets.
Args:
context (Any): The context passed to the pydantic model.
"""
self.secrets = self.get_secrets(secrets_file=context["secrets_file"])
def get_secrets(self, secrets_file: str) -> BaseSettings:
"""
Function to initialize secrets.
Args:
secrets_file (str): The path to the secrets file.
Returns:
BaseSettings: The secrets object.
Raises:
ValueError: If secrets are not found.
"""
secrets_class = self.model_fields["secrets"].annotation
secrets = secrets_class(_env_file=secrets_file)
if secrets is None:
raise ValueError(f"Secrets for {self.name} not found.")
return secrets
|
get_secrets(secrets_file)
Function to initialize secrets.
Parameters: |
-
secrets_file
(str )
–
The path to the secrets file.
|
Returns: |
-
BaseSettings ( BaseSettings
) –
|
Raises: |
-
ValueError
–
If secrets are not found.
|
Source code in src/common/bootstrap/secrets_configuration.py
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 | def get_secrets(self, secrets_file: str) -> BaseSettings:
"""
Function to initialize secrets.
Args:
secrets_file (str): The path to the secrets file.
Returns:
BaseSettings: The secrets object.
Raises:
ValueError: If secrets are not found.
"""
secrets_class = self.model_fields["secrets"].annotation
secrets = secrets_class(_env_file=secrets_file)
if secrets is None:
raise ValueError(f"Secrets for {self.name} not found.")
return secrets
|
model_post_init(context)
Function is invoked after the model is initialized. It is used to initialize secrets.
Parameters: |
-
context
(Any )
–
The context passed to the pydantic model.
|
Source code in src/common/bootstrap/secrets_configuration.py
| def model_post_init(self, context: Any) -> None:
"""
Function is invoked after the model is initialized. It is used to initialize secrets.
Args:
context (Any): The context passed to the pydantic model.
"""
self.secrets = self.get_secrets(secrets_file=context["secrets_file"])
|