This commit is contained in:
		
							parent
							
								
									89d38f493b
								
							
						
					
					
						commit
						969921dd79
					
				| @ -1,5 +1,5 @@ | ||||
| import os | ||||
| from typing import Annotated, Self | ||||
| from typing import Annotated, Self, cast | ||||
| import logging | ||||
| 
 | ||||
| from pydantic import BaseModel, Field, model_validator | ||||
| @ -20,7 +20,7 @@ class _ComponentConfig(BaseModel): | ||||
|     server: str | ||||
| 
 | ||||
|     # The component's secret. | ||||
|     secret: str | None = Field(default=None) | ||||
|     secret_plain: str | None = Field(default=None, alias="secret") | ||||
| 
 | ||||
|     # Optional file to read the secret from | ||||
|     secret_file: str | None = Field(default=None) | ||||
| @ -35,6 +35,16 @@ class _ComponentConfig(BaseModel): | ||||
|             ) | ||||
|         return self | ||||
| 
 | ||||
|     @property | ||||
|     def secret(self) -> str: | ||||
|         """ | ||||
|         The component secret. | ||||
| 
 | ||||
|         The backing may be None if secret_file is used instead. secret_plain is, however, replaced | ||||
|         with that file's contents during configuration loading. | ||||
|         """ | ||||
|         return cast(str, self.secret_plain) | ||||
| 
 | ||||
| 
 | ||||
| class _Config(BaseModel): | ||||
|     # DB URI for sqlmodel | ||||
| @ -61,7 +71,7 @@ def load_config() -> _Config: | ||||
|     if config.component.secret_file is not None: | ||||
|         log.info("Reading component secret from %s", config.component.secret_file) | ||||
|         with open(config.component.secret_file, "r", encoding="utf8") as f: | ||||
|             config.component.secret = f.read().strip().replace("\n", "") | ||||
|             config.component.secret_plain = f.read().strip().replace("\n", "") | ||||
| 
 | ||||
|     return config | ||||
| 
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user