浏览代码

refactor config

Son NK 6 年之前
父节点
当前提交
2461ea6145
共有 4 个文件被更改,包括 48 次插入22 次删除
  1. 19 5
      .env.example
  2. 25 13
      app/config.py
  3. 2 2
      app/email_utils.py
  4. 2 2
      server.py

+ 19 - 5
.env.example

@@ -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
 

+ 25 - 13
app/config.py

@@ -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"]
 

+ 2 - 2
app/email_utils.py

@@ -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
         )

+ 2 - 2
server.py

@@ -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()