flip_api.config
Attributes
Classes
Common settings shared across all environments (development and production). |
|
Settings specific to local or development environment. |
|
Settings specific to production environment. |
Functions
|
Get the application settings. |
Module Contents
- class flip_api.config.Settings
Bases:
pydantic_settings.BaseSettingsCommon settings shared across all environments (development and production).
- ENV: Literal['development', 'production'] = 'development'
- LOG_LEVEL: Literal['DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL'] = 'INFO'
- model_config
- TRUST_API_KEY_HEADER: str
- INTERNAL_SERVICE_KEY_HEADER: str
- AWS_PROFILE: str | None = None
- AWS_REGION: str
- AWS_COGNITO_USER_POOL_ID: str
- AWS_COGNITO_APP_CLIENT_ID: str
- AWS_SECRET_NAME: str
- AWS_SES_ADMIN_EMAIL_ADDRESS: pydantic.EmailStr
- AWS_SES_SENDER_EMAIL_ADDRESS: pydantic.EmailStr
- UPLOADED_MODEL_FILES_BUCKET: str
- SCANNED_MODEL_FILES_BUCKET: str
- UPLOADED_FEDERATED_DATA_BUCKET: str
- FL_APP_BASE_BUCKET: str
- FL_APP_DESTINATION_BUCKET: str
- MAX_MODEL_FILE_BYTES: int = 104857600
- PRE_SIGNED_URL_EXPIRATION_SECONDS: int = 3600
- PROJECT_REIMPORT_RATE: int = 60
- MAX_REIMPORT_COUNT: int = 5
- SCHEDULE_RUN_JOBS_EXECUTION: bool = True
- SCHEDULER_RUN_JOBS_RATE: int = 1
- SCHEDULER_KEEP_FL_API_SESSION_ALIVE_RATE: int = 2
- SCHEDULER_REIMPORT_IMAGING_PROJECT_STUDIES_RATE: int = 30
- DB_PORT: int
- DB_HOST: str = 'localhost'
- POSTGRES_USER: str
- POSTGRES_DB: str
- NET_ENDPOINTS: dict[str, str]
- TRUST_NAMES: list[str]
- FL_BACKEND: Literal['nvflare', 'flower'] = 'nvflare'
- ENFORCE_MFA: bool = True
- classmethod coerce_empty_env(v: str) str
Treat empty-string ENV (e.g. from CI environment injection) as ‘development’.
- classmethod coerce_empty_mfa(v: str | bool | None) bool
Treat empty-string or None ENFORCE_MFA as the default True.
- classmethod coerce_log_level(v: object) object
Treat empty-string or None LOG_LEVEL as the default INFO; uppercase string input.
Non-string, non-empty input is returned unchanged so the downstream Literal validator rejects it loudly, instead of
.upper()raisingAttributeErrormid-validation on e.g.Settings(LOG_LEVEL=10).
- classmethod coerce_empty_max_model_file_bytes(v: object) object
Treat empty-string MAX_MODEL_FILE_BYTES as the default 100 MiB.
GitHub Actions environments inject empty-string env vars for every var that isn’t explicitly set in the environment scope; Pydantic treats that as a real override and rejects it against
int. Same shape ascoerce_empty_env/coerce_empty_mfa.
- classmethod coerce_empty_pre_signed_url_expiration(v: object) object
Treat empty-string PRE_SIGNED_URL_EXPIRATION_SECONDS as the default 3600s.
Same rationale as
coerce_empty_max_model_file_bytes.
- HEARTBEAT_TIMEOUT_SECONDS: int = 30
- TASK_STALE_TIMEOUT_MINUTES: int = 30
- TASK_MAX_RETRIES: int = 3
- SCHEDULER_STALE_TASK_RECOVERY_RATE: int = 10
- MAX_TASK_RESULT_LENGTH: int = 10000000
- FLIP_API_URL: str = 'http://localhost:8080/api'
- ADMIN_USER_PASSWORD: pydantic.SecretStr | None = None
- class flip_api.config.DevSettings
Bases:
SettingsSettings specific to local or development environment.
- ENV: Literal['development'] = 'development'
- POSTGRES_PASSWORD: str
- AES_KEY_BASE64: str
- TRUST_API_KEY_HASHES: dict[str, str]
- INTERNAL_SERVICE_KEY_HASH: str
- class flip_api.config.ProdSettings
Bases:
SettingsSettings specific to production environment.
- ENV: Literal['production'] = 'production'
- POSTGRES_SECRET_ARN: str
- flip_api.config._settings
- flip_api.config.get_settings() DevSettings | ProdSettings
Get the application settings.
- Returns:
An instance of Settings containing configuration values.
- Return type: