import os from settings.components import config from settings.components.base import DATABASES ALLOWED_HOSTS = ["operationcode.org", "pybot.operationcode.org"] DEBUG = False if config("EXTRA_HOSTS", default=""): ALLOWED_HOSTS += [s.strip() for s in os.environ["EXTRA_HOSTS"].split(",")] # Needed for AWS health check try: import socket local_ip = str(socket.gethostbyname(socket.gethostname())) ALLOWED_HOSTS.append(local_ip) except Exception as ex: # pragma: no cover print(ex) DATABASES = { "default": { **DATABASES["default"], "ENGINE": config("DB_ENGINE", default="django.db.backends.postgresql"), } } # Static files (CSS, JavaScript, Images) # https://docs.djangoproject.com/en/2.1/howto/static-files/ AWS_S3_OBJECT_PARAMETERS = {"CacheControl": "max-age=86400"}
REST_AUTH_REGISTER_SERIALIZERS = { "REGISTER_SERIALIZER": "core.serializers.RegisterSerializer" } # Django REST framework JWT # https://getblimp.github.io/django-rest-framework-jwt/ JWT_AUTH = { "JWT_PAYLOAD_HANDLER": "core.handlers.custom_jwt_payload_handler", "JWT_PAYLOAD_GET_USERNAME_HANDLER": "core.handlers.get_username_from_jwt", "JWT_AUTH_HEADER_PREFIX": "Bearer", "JWT_EXPIRATION_DELTA": datetime.timedelta(hours=1), "JWT_ALLOW_REFRESH": False, "JWT_AUTH_COOKIE": None, } # Allauth social providers # https://django-allauth.readthedocs.io/en/latest/providers.html SOCIALACCOUNT_PROVIDERS = { "google": {"SCOPE": ["profile", "email"], "AUTH_PARAMS": {"access_type": "online"}} } GITHUB_AUTH_CALLBACK_URL = config( "GITHUB_AUTH_CALLBACK_URL", default="http://localhost:8000/dev/github/login/callback/", ) RECAPTCHA_PUBLIC_KEY = config("RECAPTCHA_PUBLIC_KEY", "MyRecaptchaKey123") RECAPTCHA_PRIVATE_KEY = config("RECAPTCHA_PRIVATE_KEY", "MyRecaptchaPrivateKey456") CORS_ORIGIN_ALLOW_ALL = True
} # Django REST framework JWT # https://getblimp.github.io/django-rest-framework-jwt/ JWT_AUTH = { "JWT_PAYLOAD_HANDLER": "core.handlers.custom_jwt_payload_handler", "JWT_PAYLOAD_GET_USERNAME_HANDLER": "core.handlers.get_username_from_jwt", "JWT_AUTH_HEADER_PREFIX": "Bearer", "JWT_EXPIRATION_DELTA": datetime.timedelta(hours=1), "JWT_ALLOW_REFRESH": False, "JWT_AUTH_COOKIE": None, } # Allauth social providers # https://django-allauth.readthedocs.io/en/latest/providers.html SOCIALACCOUNT_PROVIDERS = { "google": { "SCOPE": ["profile", "email"], "AUTH_PARAMS": { "access_type": "online" } } } GITHUB_AUTH_CALLBACK_URL = config( "GITHUB_AUTH_CALLBACK_URL", default="http://localhost:8000/dev/github/login/callback/", ) CORS_ORIGIN_ALLOW_ALL = True
""" Configs for the temporary frontend app """ from settings.components import config RECAPTCHA_PUBLIC_KEY = config("RECAPTCHA_PUBLIC_KEY", default="") RECAPTCHA_PRIVATE_KEY = config("RECAPTCHA_PRIVATE_KEY", default="") GITHUB_JWT = config("GITHUB_JWT", default="") GITHUB_REPO = config("GITHUB_REPO", default="")
from settings.components import config # OperationCode Slackbot # https://github.com/OperationCode/operationcode-pybot PYBOT_AUTH_TOKEN = config("PYBOT_AUTH_TOKEN", default="") PYBOT_URL = config("PYBOT_URL", default="http://localhost:5000") # Mailchimp3 # https://pypi.org/project/mailchimp3/ MAILCHIMP_API_KEY = config("MAILCHIMP_API_KEY", default="") MAILCHIMP_USERNAME = config("MAILCHIMP_USERNAME", default="") MAILCHIMP_LIST_ID = config("MAILCHIMP_LIST_ID", default="") # Mandrill anymail configs MANDRILL_API_KEY = config("MANDRILL_API_KEY", default="") if MANDRILL_API_KEY: # pragma: no cover ANYMAIL = {"MANDRILL_API_KEY": MANDRILL_API_KEY}
from settings.components import BASE_DIR, config SECRET_KEY = config("SECRET_KEY", default="SUPA_SECRET") TESTING = False # Application definition INSTALLED_APPS = [ # Our apps "core.apps.CoreConfig", "api.apps.ApiConfig", "frontend.apps.FrontendConfig", # Django Suit Admin Console # https://django-suit.readthedocs.io "suit", # Default Django apps: "django.contrib.admin", "django.contrib.auth", "django.contrib.contenttypes", "django.contrib.sessions", "django.contrib.messages", "django.contrib.staticfiles", "django.contrib.sites", # Django anymail # https://anymail.readthedocs.io/en/stable/ "anymail", # django-background-tasks # https://django-background-tasks.readthedocs.io/en/latest/ "background_task", # django-suit-daterange-filter # https://github.com/f213/django-suit-daterange-filter "date_range_filter",
import sentry_sdk from sentry_sdk.integrations.django import DjangoIntegration from settings.components import ENVIRONMENT, config # Sentry.io error tracking # https://docs.sentry.io/platforms/python/django/ SENTRY_DSN = config("SENTRY_DSN", default="") RELEASE = config("RELEASE", default="0.0.0") if SENTRY_DSN: # pragma: no cover sentry_sdk.init( dsn=SENTRY_DSN, integrations=[DjangoIntegration()], environment=ENVIRONMENT, release=RELEASE, )
REST_AUTH_REGISTER_SERIALIZERS = { "REGISTER_SERIALIZER": "core.serializers.RegisterSerializer" } # Django REST framework JWT # https://getblimp.github.io/django-rest-framework-jwt/ JWT_AUTH = { "JWT_PAYLOAD_HANDLER": "core.handlers.custom_jwt_payload_handler", "JWT_PAYLOAD_GET_USERNAME_HANDLER": "core.handlers.get_username_from_jwt", "JWT_AUTH_HEADER_PREFIX": "Bearer", "JWT_EXPIRATION_DELTA": datetime.timedelta(hours=1), "JWT_ALLOW_REFRESH": False, "JWT_AUTH_COOKIE": None, } # Allauth social providers # https://django-allauth.readthedocs.io/en/latest/providers.html SOCIALACCOUNT_PROVIDERS = { "google": {"SCOPE": ["profile", "email"], "AUTH_PARAMS": {"access_type": "online"}} } GITHUB_AUTH_CALLBACK_URL = config( "GITHUB_AUTH_CALLBACK_URL", default="http://localhost:3000/" ) RECAPTCHA_PUBLIC_KEY = config("RECAPTCHA_PUBLIC_KEY", "MyRecaptchaKey123") RECAPTCHA_PRIVATE_KEY = config("RECAPTCHA_PRIVATE_KEY", "MyRecaptchaPrivateKey456") CORS_ORIGIN_ALLOW_ALL = True