petra-tool / backend / app / config.py
config.py
Raw
from datetime import timedelta
import os

basedir = os.path.abspath(os.path.dirname(__file__))


class Config(object):
    DATABASE_USER = os.environ.get('DATABASE_USER')
    DATABASE_PASS = os.environ.get('DATABASE_PASS')
    # in staging branch, we use another database
    if os.environ.get('FLASK_APP_ENV', '') == 'production':
        DATABASE_NAME = os.environ.get('DATABASE_NAME')
    else:
        DATABASE_NAME = os.environ.get('DATABASE_NAME_STAGING')
    DATABASE_IP = os.environ.get('DATABASE_IP')
    DATABASE_PORT = os.environ.get('DATABASE_PORT')
    SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://{user}:{password}@{ip}:{port}/{name}'.format(
        user=DATABASE_USER,
        password=DATABASE_PASS,
        ip=DATABASE_IP,
        port=DATABASE_PORT,
        name=DATABASE_NAME
    )
    SQLALCHEMY_TRACK_MODIFICATIONS = False

    JWT_SECRET_KEY = os.environ.get('JWT_SECRET_KEY')
    JWT_EXPIRATION_DELTA = timedelta(hours=12)
    JWT_BLACKLIST_ENABLED = True
    JWT_BLACKLIST_TOKEN_CHECKS = ['access', 'refresh']
    JWT_TOKEN_LOCATION = ['headers']

    UPLOAD_FOLDER = os.environ.get('UPLOAD_FOLDER')  # or os.path.join(basedir, 'app', 'static', 'upload')