diff --git a/backend/README.md b/backend/README.md index 75302112f..609cc1c5d 100644 --- a/backend/README.md +++ b/backend/README.md @@ -25,6 +25,14 @@ The tests can be run with pytest . ``` +## Overwriting settings with environment variables + +The default settings [settings](src/flotilla/settings/settings.py) can be overwritten by environment variables using the prefix `FLOTILLA_` + +``` +export FLOTILLA_=some_value +``` + ## API authentication To run the app locally and connect to upstream services, the following environment variables need to be set for authentication. diff --git a/backend/src/flotilla/settings/settings.env b/backend/src/flotilla/settings/settings.env index d40c980dc..e44b33876 100644 --- a/backend/src/flotilla/settings/settings.env +++ b/backend/src/flotilla/settings/settings.env @@ -1,11 +1,11 @@ -OPENAPI_CLIENT_ID=af1d4470-dbfd-41b3-835a-1900070ff0cb -APP_CLIENT_ID=ea4c7b92-47b3-45fb-bd25-a8070f0c495c -TENANT_ID=3aa4a235-b6e2-48d5-9195-7fcf05b459b0 -AUTHENTICATION_ENABLED=True -ECHO_CLIENT_ID=bf0b2569-e09c-42f0-8095-5a52a873eb7b -ECHO_APP_SCOPE=.default -ECHO_API_URL=https://echohubapi.equinor.com/api -INSTALLATION_CODE=KAA -REQUEST_TIMEOUT=5 -ISAR_CLIENT_ID=68cca82d-84e7-495c-96b4-4c32509f2a46 -ISAR_APP_SCOPE=.default +FLOTILLA_OPENAPI_CLIENT_ID=af1d4470-dbfd-41b3-835a-1900070ff0cb +FLOTILLA_APP_CLIENT_ID=ea4c7b92-47b3-45fb-bd25-a8070f0c495c +FLOTILLA_TENANT_ID=3aa4a235-b6e2-48d5-9195-7fcf05b459b0 +FLOTILLA_AUTHENTICATION_ENABLED=True +FLOTILLA_ECHO_CLIENT_ID=bf0b2569-e09c-42f0-8095-5a52a873eb7b +FLOTILLA_ECHO_APP_SCOPE=.default +FLOTILLA_ECHO_API_URL=https://echohubapi.equinor.com/api +FLOTILLA_INSTALLATION_CODE=KAA +FLOTILLA_REQUEST_TIMEOUT=5 +FLOTILLA_ISAR_CLIENT_ID=68cca82d-84e7-495c-96b4-4c32509f2a46 +FLOTILLA_ISAR_APP_SCOPE=.default diff --git a/backend/src/flotilla/settings/settings.py b/backend/src/flotilla/settings/settings.py index ab8bf2040..3e14b419a 100644 --- a/backend/src/flotilla/settings/settings.py +++ b/backend/src/flotilla/settings/settings.py @@ -5,29 +5,32 @@ class Settings(BaseSettings): - AUTHENTICATION_ENABLED: bool = Field(default=True, env="AUTHENTICATION_ENABLED") + AUTHENTICATION_ENABLED: bool = Field(default=True) BACKEND_CORS_ORIGINS: list[Union[str, AnyHttpUrl]] = ["http://localhost:8000"] SQLALCHEMY_DATABASE_URL: str = Field(default="sqlite:///:memory:") - OPENAPI_CLIENT_ID: str = Field(default="", env="OPENAPI_CLIENT_ID") - APP_CLIENT_ID: str = Field(default="", env="APP_CLIENT_ID") - TENANT_ID: str = Field(default="", env="TENANT_ID") - ECHO_CLIENT_ID: str = Field(default="", env="ECHO_CLIENT_ID") - ECHO_APP_SCOPE: str = Field(default="", env="ECHO_APP_SCOPE") - ECHO_API_URL: str = Field(default="", env="ECHO_API_URL") - INSTALLATION_CODE: str = Field(default="", env="INSTALLATION_CODE") - REQUEST_TIMEOUT: float = Field(default=5, env="REQUEST_TIMEOUT") - ISAR_CLIENT_ID: str = Field(default="", env="ISAR_CLIENT_ID") - ISAR_APP_SCOPE: str = Field(default="", env="ISAR_APP_SCOPE") - - PAGE: int = Field(default=0, env="PAGE") - MINIMUM_PAGE_NUMBER: int = Field(default=0, env="MINIMUM_PAGE_NUMBER") - PAGE_SIZE: int = Field(default=100, env="PAGE_SIZE") - MINIMUM_PAGE_SIZE: int = Field(default=0, env="MINIMUM_PAGE_SIZE") - MAX_PAGE_SIZE: int = Field(default=100, env="MAX_PAGE_SIZE") + OPENAPI_CLIENT_ID: str = Field(default="") + APP_CLIENT_ID: str = Field(default="") + TENANT_ID: str = Field(default="") + + ECHO_CLIENT_ID: str = Field(default="") + ECHO_APP_SCOPE: str = Field(default="") + ECHO_API_URL: str = Field(default="") + + INSTALLATION_CODE: str = Field(default="") + REQUEST_TIMEOUT: float = Field(default=5) + ISAR_CLIENT_ID: str = Field(default="") + ISAR_APP_SCOPE: str = Field(default="") + + PAGE: int = Field(default=0) + MINIMUM_PAGE_NUMBER: int = Field(default=0) + PAGE_SIZE: int = Field(default=100) + MINIMUM_PAGE_SIZE: int = Field(default=0) + MAX_PAGE_SIZE: int = Field(default=100) class Config: with pkg_resources.path("flotilla.settings", "settings.env") as path: package_path = path + env_prefix = "FLOTILLA_" env_file = package_path env_file_encoding = "utf-8" case_sensitive = True