(self)
| 52 | """Backend configuration""" |
| 53 | |
| 54 | def __init__(self): |
| 55 | |
| 56 | # version |
| 57 | self.VERSION = "v0.2.10" |
| 58 | |
| 59 | # mode |
| 60 | self.MODE = load_str_env("MODE", required=True) |
| 61 | self.MODE = self.MODE.lower() |
| 62 | self.DEV = True if self.MODE == "dev" else False |
| 63 | self.TEST = True if self.MODE == "test" else False |
| 64 | self.PROD = True if self.MODE == "prod" else False |
| 65 | |
| 66 | # service |
| 67 | self.SERVICE_PORT = load_int_env("SERVICE_PORT", required=True) |
| 68 | self.PROXY = load_str_env("PROXY") |
| 69 | self.API_ROUTE_PREFIX = "/v1" |
| 70 | self.IMAGE_ROUTE_PREFIX = "/images" |
| 71 | |
| 72 | # ALLOWED_BUNDLES |
| 73 | self.ALLOWED_BUNDLES = load_str_env("ALLOWED_BUNDLES", required=False) |
| 74 | if self.ALLOWED_BUNDLES: |
| 75 | self.ALLOWED_BUNDLES = self.ALLOWED_BUNDLES.split(",") |
| 76 | self.ALLOWED_BUNDLES = [provider.strip() for provider in self.ALLOWED_BUNDLES] |
| 77 | |
| 78 | # FORBIDDEN_BUNDLES |
| 79 | self.FORBIDDEN_BUNDLES = load_str_env("FORBIDDEN_BUNDLES", required=False) |
| 80 | if self.FORBIDDEN_BUNDLES: |
| 81 | self.FORBIDDEN_BUNDLES = self.FORBIDDEN_BUNDLES.split(",") |
| 82 | self.FORBIDDEN_BUNDLES = [provider.strip() for provider in self.FORBIDDEN_BUNDLES] |
| 83 | |
| 84 | # secret |
| 85 | self.AES_ENCRYPTION_KEY = load_str_env("AES_ENCRYPTION_KEY", required=True) |
| 86 | |
| 87 | # prefix |
| 88 | self.ICON_URL_PREFIX = load_str_env("ICON_URL_PREFIX") |
| 89 | if not self.ICON_URL_PREFIX: |
| 90 | self.ICON_URL_PREFIX = f"http://localhost:{self.SERVICE_PORT}" |
| 91 | |
| 92 | # i18b |
| 93 | self.DEFAULT_LANG = load_str_env("DEFAULT_LANG", required=True) |
| 94 | |
| 95 | # file storage |
| 96 | self.OBJECT_STORAGE_TYPE = load_str_env("OBJECT_STORAGE_TYPE", required=True) |
| 97 | self.PATH_TO_VOLUME = load_str_env("PATH_TO_VOLUME", required=True) |
| 98 | self.INCLUDE_FILE_CATEGORY_IN_STORAGE_PATH = bool(load_int_env("INCLUDE_FILE_CATEGORY_IN_STORAGE_PATH", required=True)) |
| 99 | |
| 100 | if self.OBJECT_STORAGE_TYPE == "s3": |
| 101 | self.S3_ACCESS_KEY_ID = load_str_env("S3_ACCESS_KEY_ID", required=True) |
| 102 | self.S3_ACCESS_KEY_SECRET = load_str_env("S3_ACCESS_KEY_SECRET", required=True) |
| 103 | self.S3_ENDPOINT = load_str_env("S3_ENDPOINT", required=True) |
| 104 | self.S3_BUCKET_PUBLIC_DOMAIN = load_str_env("S3_BUCKET_PUBLIC_DOMAIN") |
| 105 | |
| 106 | self.S3_IMAGE_BUCKET_NAME = load_str_env("S3_IMAGE_BUCKET_NAME") |
| 107 | |
| 108 | if not self.S3_IMAGE_BUCKET_NAME: |
| 109 | self.S3_IMAGE_BUCKET_NAME = load_str_env("S3_BUCKET_NAME") |
| 110 | if not self.S3_IMAGE_BUCKET_NAME: |
| 111 | raise Exception(f"Env S3_IMAGE_BUCKET_NAME is not set") |
nothing calls this directly
no test coverage detected