import os import sys from .utils import EverettEnviron env = EverettEnviron(DEBUG=(bool, False)) BASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) SECRET_KEY = env("SECRET_KEY") DEBUG = env.bool("DEBUG", default=False) ALLOWED_HOSTS = env("ALLOWED_HOSTS", cast=list, default=[]) ADMINS = () INSTALLED_APPS = [ "django.contrib.auth", "django.contrib.contenttypes", "django.contrib.sessions", "django.contrib.messages", "django.contrib.staticfiles", "corsheaders", "rest_framework", "django_filters", "ara.api", "ara.server.apps.AraAdminConfig", ] MIDDLEWARE = [ "django.middleware.security.SecurityMiddleware", "django.contrib.sessions.middleware.SessionMiddleware", "corsheaders.middleware.CorsMiddleware", "django.middleware.common.CommonMiddleware", "django.middleware.csrf.CsrfViewMiddleware", "django.contrib.auth.middleware.AuthenticationMiddleware", "django.contrib.messages.middleware.MessageMiddleware", "django.middleware.clickjacking.XFrameOptionsMiddleware", ] # TODO: Only needed in dev? CORS_ORIGIN_ALLOW_ALL = True # Django built-in server and npm development server CORS_ORIGIN_WHITELIST = ("127.0.0.1:8000", "localhost:3000") ROOT_URLCONF = "ara.server.urls" APPEND_SLASH = False TEMPLATES = [ { "BACKEND": "django.template.backends.django.DjangoTemplates", "DIRS": [], "APP_DIRS": True, "OPTIONS": { "context_processors": [ "django.template.context_processors.debug", "django.template.context_processors.request", "django.contrib.auth.context_processors.auth", "django.contrib.messages.context_processors.messages", ] }, } ] WSGI_APPLICATION = "ara.server.wsgi.application" DATABASES = {"default": env.db(default="sqlite:///%s" % os.path.join(BASE_DIR, "db.sqlite3"))} AUTH_PASSWORD_VALIDATORS = [ {"NAME": "django.contrib.auth.password_validation.UserAttributeSimilarityValidator"}, {"NAME": "django.contrib.auth.password_validation.MinimumLengthValidator"}, {"NAME": "django.contrib.auth.password_validation.CommonPasswordValidator"}, {"NAME": "django.contrib.auth.password_validation.NumericPasswordValidator"}, ] LANGUAGE_CODE = "en-us" TIME_ZONE = "UTC" USE_I18N = True USE_L10N = True USE_TZ = True STATIC_URL = "/static/" STATIC_ROOT = os.path.join(BASE_DIR, "www", "static") MEDIA_URL = "/media/" MEDIA_ROOT = os.path.join(BASE_DIR, "www", "media") # fmt: off LOGGING = { "version": 1, "disable_existing_loggers": False, "formatters": {"normal": {"format": "%(asctime)s %(levelname)s %(name)s: %(message)s"}}, "handlers": { "console": { "class": "logging.StreamHandler", "formatter": "normal", "level": env("LOG_LEVEL", default="INFO"), "stream": sys.stdout, } }, "loggers": { "ara": { "handlers": ["console"], "level": env("LOG_LEVEL", default="INFO"), "propagate": 0 } }, "root": { "handlers": ["console"], "level": env("LOG_LEVEL", default="DEBUG") }, } # fmt: on REST_FRAMEWORK = { "DEFAULT_PAGINATION_CLASS": "rest_framework.pagination.LimitOffsetPagination", "PAGE_SIZE": 1000, "DEFAULT_FILTER_BACKENDS": ("django_filters.rest_framework.DjangoFilterBackend",), "DEFAULT_RENDERER_CLASSES": ( "rest_framework.renderers.JSONRenderer", "rest_framework.renderers.BrowsableAPIRenderer", ), "DEFAULT_PARSER_CLASSES": ( "rest_framework.parsers.JSONParser", "rest_framework.parsers.FormParser", "rest_framework.parsers.MultiPartParser", ), "TEST_REQUEST_DEFAULT_FORMAT": "json", }