This commit is contained in:
JiriUhlir
2026-07-16 11:56:15 +02:00
parent b650357194
commit 0e05fef335
23 changed files with 1900 additions and 15 deletions
+45
View File
@@ -0,0 +1,45 @@
"""Konfigurace čtená z environment variables (AppFactory runtime .env).
Žádné secrets zde nejsou — přihlašovací údaje (ClientId/ClientSecret) se předávají
per-request přes X- hlavičky (viz app/credentials.py). Zde jsou pouze veřejné
defaulty, base URL adresy PPL CPL API a nastavení proxy.
"""
import os
APP_NAME = os.getenv("APP_NAME", "PPL CPL API")
APP_VERSION = os.getenv("APP_VERSION", "1.0.0")
ROOT_PATH = os.getenv("ROOT_PATH", "")
# Base URL adresy CPL API (přepsatelné přes env, kdyby se změnily).
CPL_PRODUCTION_BASE_URL = os.getenv(
"CPL_PRODUCTION_BASE_URL", "https://api.dhl.com/ecs/ppl/myapi2"
)
CPL_TEST_BASE_URL = os.getenv(
"CPL_TEST_BASE_URL", "https://api-dev.dhl.com/ecs/ppl/myapi2"
)
# Které prostředí se použije, když request nepošle hlavičku X-Environment.
CPL_DEFAULT_ENVIRONMENT = os.getenv("CPL_DEFAULT_ENVIRONMENT", "production")
# OAuth2 client_credentials scope dle dokumentace CPL.
CPL_OAUTH_SCOPE = os.getenv("CPL_OAUTH_SCOPE", "myapi2")
# Timeout pro upstream volání.
UPSTREAM_TIMEOUT_SECONDS = float(os.getenv("UPSTREAM_TIMEOUT_SECONDS", "60"))
# Token platí 30 minut; obnovujeme ho s předstihem, ať nikdy nepošleme prošlý.
TOKEN_REFRESH_MARGIN_SECONDS = float(os.getenv("TOKEN_REFRESH_MARGIN_SECONDS", "60"))
# PPL vyžaduje min. 40 ms rozestup mezi po sobě jdoucími requesty.
MIN_REQUEST_INTERVAL_SECONDS = float(os.getenv("MIN_REQUEST_INTERVAL_SECONDS", "0.04"))
# Polling stavu batch importu u convenience endpointů create-and-wait.
BATCH_POLL_INTERVAL_SECONDS = float(os.getenv("BATCH_POLL_INTERVAL_SECONDS", "1.0"))
BATCH_WAIT_TIMEOUT_SECONDS = float(os.getenv("BATCH_WAIT_TIMEOUT_SECONDS", "30"))
# CPL přijímá pouze Latin znaky bez diakritiky — defaultně texty transliterujeme.
TRANSLITERATE_DEFAULT = os.getenv("CPL_TRANSLITERATE", "true").strip().lower() in (
"1",
"true",
"yes",
)