""" Development settings - закрытый контур, без переменных окружения. """ import os from .base import * SECRET_KEY = "django-insecure-development-key-mostovik-2024" DEBUG = True ALLOWED_HOSTS = ["*"] OPENAPI_USE_ENGLISH_TAGS = True STATE_CORP_EXCHANGE_URL = os.getenv( "STATE_CORP_EXCHANGE_URL", "http://127.0.0.1:8001/api/v1/exchange/packages/upload/", ) STATE_CORP_EXCHANGE_TOKEN = os.getenv( "STATE_CORP_EXCHANGE_TOKEN", "state-corp-dev-exchange-token-v1", ) # JWT SIMPLE_JWT["SIGNING_KEY"] = SECRET_KEY # Dev frontend can run from any workstation/port in the local network. # Production keeps the restrictive CORS/CSRF policy from settings.production. CORS_ALLOW_ALL_ORIGINS = True CORS_ALLOW_CREDENTIALS = True CORS_ALLOW_PRIVATE_NETWORK = True CSRF_COOKIE_SECURE = False SESSION_COOKIE_SECURE = False def _normalize_local_host(host: str) -> str: """Нормализует host для локального запуска backend на хосте.""" if host == "host.docker.internal": return "127.0.0.1" return host _postgres_host = _normalize_local_host(os.getenv("POSTGRES_HOST", "127.0.0.1")) _redis_host = _normalize_local_host(os.getenv("REDIS_HOST", "127.0.0.1")) # Database DATABASES = { "default": { "ENGINE": "django.db.backends.postgresql", "NAME": os.getenv("POSTGRES_DB", "mostovik"), "USER": os.getenv("POSTGRES_USER", "postgres"), "PASSWORD": os.getenv("POSTGRES_PASSWORD", "postgres"), # При локальном запуске backend (не в контейнере) подключаемся к портам, # проброшенным docker-compose.service.yml "HOST": _postgres_host, "PORT": os.getenv("POSTGRES_PORT", "5432"), } } # Celery _default_redis_broker = f"redis://{_redis_host}:6379/0" _default_redis_cache = f"redis://{_redis_host}:6379/1" CELERY_BROKER_URL = os.getenv("CELERY_BROKER_URL", _default_redis_broker).replace( "host.docker.internal", "127.0.0.1" ) CELERY_RESULT_BACKEND = os.getenv( "CELERY_RESULT_BACKEND", _default_redis_broker ).replace("host.docker.internal", "127.0.0.1") CELERY_ACCEPT_CONTENT = ["json"] CELERY_TASK_SERIALIZER = "json" CELERY_RESULT_SERIALIZER = "json" CELERY_TIMEZONE = "Europe/Moscow" # Cache CACHES = { "default": { "BACKEND": "django_redis.cache.RedisCache", "LOCATION": os.getenv("REDIS_CACHE_URL", _default_redis_cache).replace( "host.docker.internal", "127.0.0.1" ), "OPTIONS": { "CLIENT_CLASS": "django_redis.client.DefaultClient", }, } } # Email EMAIL_BACKEND = "django.core.mail.backends.console.EmailBackend" # DRF: отключаем throttling в dev, чтобы не мешать фронту тестировать API. REST_FRAMEWORK = { **globals().get("REST_FRAMEWORK", {}), "DEFAULT_THROTTLE_CLASSES": [], "DEFAULT_THROTTLE_RATES": {}, } # Dev-only: frontend/scripts can inspect the new v2 organizations API without JWT. ORGANIZATIONS_V2_ALLOW_ANONYMOUS = True