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
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
SUPPORT_EMAIL=support@sl.local
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
# Flask
FLASK_SECRET=secret
ENV=local
# AWS
BUCKET=to_fill
AWS_ACCESS_KEY_ID=to_fill
AWS_SECRET_ACCESS_KEY=to_fill
# Cloudwatch
ENABLE_CLOUDWATCH=true
CLOUDWATCH_LOG_GROUP=local
CLOUDWATCH_LOG_STREAM=local
# Stripe
STRIPE_YEARLY_PLAN=to_fill
STRIPE_MONTHLY_PLAN=to_fill
STRIPE_API=to_fill
STRIPE_SECRET_KEY=to_fill
MAX_NB_EMAIL_FREE_PLAN=3
# Lyra analytics
LYRA_ANALYTICS_ID=to_fill
# OpenId key
OPENID_PRIVATE_KEY_PATH=local_data/jwtRS256.key
OPENID_PUBLIC_KEY_PATH=local_data/jwtRS256.key.pub
# Words to generate random email alias
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_SECRET=to_fill

View File

@ -23,23 +23,38 @@ if config_file:
else:
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"]
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"]
SUPPORT_EMAIL = os.environ["SUPPORT_EMAIL"]
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"]
# Flask secret
FLASK_SECRET = os.environ["FLASK_SECRET"]
# invalidate the session at each new version by changing the secret
FLASK_SECRET = FLASK_SECRET + SHA1
ENABLE_SENTRY = "ENABLE_SENTRY" in os.environ
ENV = os.environ["ENV"]
# AWS
AWS_REGION = "eu-west-3"
BUCKET = os.environ["BUCKET"]
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_STREAM = os.environ["CLOUDWATCH_LOG_STREAM"]
# Stripe
STRIPE_API = os.environ["STRIPE_API"] # Stripe public key
STRIPE_SECRET_KEY = os.environ["STRIPE_SECRET_KEY"]
STRIPE_YEARLY_PLAN = os.environ["STRIPE_YEARLY_PLAN"]
STRIPE_MONTHLY_PLAN = os.environ["STRIPE_MONTHLY_PLAN"]
# Max number emails user can generate for free plan
MAX_NB_EMAIL_FREE_PLAN = int(os.environ["MAX_NB_EMAIL_FREE_PLAN"])
# Analytics
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_PUBLIC_KEY_PATH = get_abs_path(os.environ["OPENID_PUBLIC_KEY_PATH"])
PARTNER_CODES = ["SL2019"]
# Allow user to have 1 year of premium: set the expiration_date to 1 year more
PROMO_CODE = "SIMPLEISBETTER"
# Used to generate random email
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_SECRET = os.environ["GITHUB_CLIENT_SECRET"]

View File

@ -4,13 +4,13 @@
from sendgrid import SendGridAPIClient
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
def send(to_email, subject, html_content, plain_content=None):
# On local only print out email content
if ENV == "local":
if NOT_SEND_EMAIL:
LOG.d(
"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,
FLASK_SECRET,
ENABLE_SENTRY,
ENV,
URL,
SHA1,
LYRA_ANALYTICS_ID,
STRIPE_SECRET_KEY,
RESET_DB,
)
from app.dashboard.base import dashboard_bp
from app.developer.base import developer_bp
@ -269,7 +269,7 @@ if __name__ == "__main__":
# enable to print all queries generated by sqlalchemy
# app.config["SQLALCHEMY_ECHO"] = True
if ENV == "local":
if RESET_DB:
LOG.d("reset db, add fake data")
with app.app_context():
fake_data()