Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add setting variables prefix #154

Merged
merged 2 commits into from
Apr 27, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions backend/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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_<VAR_NAME>=some_value
```

## API authentication

To run the app locally and connect to upstream services, the following environment variables need to be set for authentication.
Expand Down
22 changes: 11 additions & 11 deletions backend/src/flotilla/settings/settings.env
Original file line number Diff line number Diff line change
@@ -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
37 changes: 20 additions & 17 deletions backend/src/flotilla/settings/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down