refactor config

This commit is contained in:
Son NK 2019-07-22 12:14:02 +02:00 committed by Son NK
parent 37f75954be
commit 2461ea6145
4 changed files with 48 additions and 22 deletions

View File

@ -1,39 +1,53 @@
# Server url # Server url
URL=http://sl-server:7777 URL=http://sl-server:7777
# Enable sentry
ENABLE_SENTRY=true
# Email related settings
# Only print email content, not sending it
NOT_SEND_EMAIL=true
EMAIL_DOMAIN=sl.local EMAIL_DOMAIN=sl.local
SUPPORT_EMAIL=support@sl.local SUPPORT_EMAIL=support@sl.local
SENDGRID_API_KEY=to_fill SENDGRID_API_KEY=to_fill
# Max number emails user can generate for free plan
MAX_NB_EMAIL_FREE_PLAN=3
# Database
RESET_DB=true
DB_URI=sqlite:///db.sqlite DB_URI=sqlite:///db.sqlite
# Flask
FLASK_SECRET=secret FLASK_SECRET=secret
ENV=local # AWS
BUCKET=to_fill BUCKET=to_fill
AWS_ACCESS_KEY_ID=to_fill AWS_ACCESS_KEY_ID=to_fill
AWS_SECRET_ACCESS_KEY=to_fill AWS_SECRET_ACCESS_KEY=to_fill
# Cloudwatch # Cloudwatch
ENABLE_CLOUDWATCH=true
CLOUDWATCH_LOG_GROUP=local CLOUDWATCH_LOG_GROUP=local
CLOUDWATCH_LOG_STREAM=local CLOUDWATCH_LOG_STREAM=local
# Stripe # Stripe
STRIPE_YEARLY_PLAN=to_fill STRIPE_YEARLY_PLAN=to_fill
STRIPE_MONTHLY_PLAN=to_fill STRIPE_MONTHLY_PLAN=to_fill
STRIPE_API=to_fill STRIPE_API=to_fill
STRIPE_SECRET_KEY=to_fill STRIPE_SECRET_KEY=to_fill
MAX_NB_EMAIL_FREE_PLAN=3 # Lyra analytics
LYRA_ANALYTICS_ID=to_fill LYRA_ANALYTICS_ID=to_fill
# OpenId key
OPENID_PRIVATE_KEY_PATH=local_data/jwtRS256.key OPENID_PRIVATE_KEY_PATH=local_data/jwtRS256.key
OPENID_PUBLIC_KEY_PATH=local_data/jwtRS256.key.pub OPENID_PUBLIC_KEY_PATH=local_data/jwtRS256.key.pub
# Words to generate random email alias
WORDS_FILE_PATH=local_data/words.txt WORDS_FILE_PATH=local_data/words.txt
# Github: make sure to set correctly the redirect url to /auth/github/callback # Github
GITHUB_CLIENT_ID=to_fill GITHUB_CLIENT_ID=to_fill
GITHUB_CLIENT_SECRET=to_fill GITHUB_CLIENT_SECRET=to_fill

View File

@ -23,23 +23,38 @@ if config_file:
else: else:
load_dotenv() load_dotenv()
# Constants
PARTNER_CODES = ["SL2019"]
# Allow user to have 1 year of premium: set the expiration_date to 1 year more
PROMO_CODE = "SIMPLEISBETTER"
# Server url
URL = os.environ["URL"] URL = os.environ["URL"]
print("URL:", URL) print("URL:", URL)
# Whether sentry is enabled
ENABLE_SENTRY = "ENABLE_SENTRY" in os.environ
# Email related settings
NOT_SEND_EMAIL = "NOT_SEND_EMAIL" in os.environ
EMAIL_DOMAIN = os.environ["EMAIL_DOMAIN"] EMAIL_DOMAIN = os.environ["EMAIL_DOMAIN"]
SUPPORT_EMAIL = os.environ["SUPPORT_EMAIL"] SUPPORT_EMAIL = os.environ["SUPPORT_EMAIL"]
SENDGRID_API_KEY = os.environ["SENDGRID_API_KEY"] SENDGRID_API_KEY = os.environ["SENDGRID_API_KEY"]
MAX_NB_EMAIL_FREE_PLAN = int(os.environ["MAX_NB_EMAIL_FREE_PLAN"])
# Database
RESET_DB = "RESET_DB" in os.environ
DB_URI = os.environ["DB_URI"] DB_URI = os.environ["DB_URI"]
# Flask secret
FLASK_SECRET = os.environ["FLASK_SECRET"] FLASK_SECRET = os.environ["FLASK_SECRET"]
# invalidate the session at each new version by changing the secret # invalidate the session at each new version by changing the secret
FLASK_SECRET = FLASK_SECRET + SHA1 FLASK_SECRET = FLASK_SECRET + SHA1
ENABLE_SENTRY = "ENABLE_SENTRY" in os.environ # AWS
ENV = os.environ["ENV"]
AWS_REGION = "eu-west-3" AWS_REGION = "eu-west-3"
BUCKET = os.environ["BUCKET"] BUCKET = os.environ["BUCKET"]
AWS_ACCESS_KEY_ID = os.environ["AWS_ACCESS_KEY_ID"] AWS_ACCESS_KEY_ID = os.environ["AWS_ACCESS_KEY_ID"]
@ -49,27 +64,24 @@ ENABLE_CLOUDWATCH = "ENABLE_CLOUDWATCH" in os.environ
CLOUDWATCH_LOG_GROUP = os.environ["CLOUDWATCH_LOG_GROUP"] CLOUDWATCH_LOG_GROUP = os.environ["CLOUDWATCH_LOG_GROUP"]
CLOUDWATCH_LOG_STREAM = os.environ["CLOUDWATCH_LOG_STREAM"] CLOUDWATCH_LOG_STREAM = os.environ["CLOUDWATCH_LOG_STREAM"]
# Stripe
STRIPE_API = os.environ["STRIPE_API"] # Stripe public key STRIPE_API = os.environ["STRIPE_API"] # Stripe public key
STRIPE_SECRET_KEY = os.environ["STRIPE_SECRET_KEY"] STRIPE_SECRET_KEY = os.environ["STRIPE_SECRET_KEY"]
STRIPE_YEARLY_PLAN = os.environ["STRIPE_YEARLY_PLAN"] STRIPE_YEARLY_PLAN = os.environ["STRIPE_YEARLY_PLAN"]
STRIPE_MONTHLY_PLAN = os.environ["STRIPE_MONTHLY_PLAN"] STRIPE_MONTHLY_PLAN = os.environ["STRIPE_MONTHLY_PLAN"]
# Max number emails user can generate for free plan # Analytics
MAX_NB_EMAIL_FREE_PLAN = int(os.environ["MAX_NB_EMAIL_FREE_PLAN"])
LYRA_ANALYTICS_ID = os.environ["LYRA_ANALYTICS_ID"] LYRA_ANALYTICS_ID = os.environ["LYRA_ANALYTICS_ID"]
# Used to sign id_token # OpenID keys, used to sign id_token
OPENID_PRIVATE_KEY_PATH = get_abs_path(os.environ["OPENID_PRIVATE_KEY_PATH"]) OPENID_PRIVATE_KEY_PATH = get_abs_path(os.environ["OPENID_PRIVATE_KEY_PATH"])
OPENID_PUBLIC_KEY_PATH = get_abs_path(os.environ["OPENID_PUBLIC_KEY_PATH"]) OPENID_PUBLIC_KEY_PATH = get_abs_path(os.environ["OPENID_PUBLIC_KEY_PATH"])
PARTNER_CODES = ["SL2019"] # Used to generate random email
# Allow user to have 1 year of premium: set the expiration_date to 1 year more
PROMO_CODE = "SIMPLEISBETTER"
WORDS_FILE_PATH = get_abs_path(os.environ["WORDS_FILE_PATH"]) WORDS_FILE_PATH = get_abs_path(os.environ["WORDS_FILE_PATH"])
# Github, Google, Facebook client id and secrets
GITHUB_CLIENT_ID = os.environ["GITHUB_CLIENT_ID"] GITHUB_CLIENT_ID = os.environ["GITHUB_CLIENT_ID"]
GITHUB_CLIENT_SECRET = os.environ["GITHUB_CLIENT_SECRET"] GITHUB_CLIENT_SECRET = os.environ["GITHUB_CLIENT_SECRET"]

View File

@ -4,13 +4,13 @@
from sendgrid import SendGridAPIClient from sendgrid import SendGridAPIClient
from sendgrid.helpers.mail import Mail from sendgrid.helpers.mail import Mail
from app.config import SUPPORT_EMAIL, SENDGRID_API_KEY, ENV from app.config import SUPPORT_EMAIL, SENDGRID_API_KEY, NOT_SEND_EMAIL
from app.log import LOG from app.log import LOG
def send(to_email, subject, html_content, plain_content=None): def send(to_email, subject, html_content, plain_content=None):
# On local only print out email content # On local only print out email content
if ENV == "local": if NOT_SEND_EMAIL:
LOG.d( LOG.d(
"send mail to %s, subject:%s, content:%s", to_email, subject, html_content "send mail to %s, subject:%s, content:%s", to_email, subject, html_content
) )

View File

@ -17,11 +17,11 @@ from app.config import (
DB_URI, DB_URI,
FLASK_SECRET, FLASK_SECRET,
ENABLE_SENTRY, ENABLE_SENTRY,
ENV,
URL, URL,
SHA1, SHA1,
LYRA_ANALYTICS_ID, LYRA_ANALYTICS_ID,
STRIPE_SECRET_KEY, STRIPE_SECRET_KEY,
RESET_DB,
) )
from app.dashboard.base import dashboard_bp from app.dashboard.base import dashboard_bp
from app.developer.base import developer_bp from app.developer.base import developer_bp
@ -269,7 +269,7 @@ if __name__ == "__main__":
# enable to print all queries generated by sqlalchemy # enable to print all queries generated by sqlalchemy
# app.config["SQLALCHEMY_ECHO"] = True # app.config["SQLALCHEMY_ECHO"] = True
if ENV == "local": if RESET_DB:
LOG.d("reset db, add fake data") LOG.d("reset db, add fake data")
with app.app_context(): with app.app_context():
fake_data() fake_data()