refactor config
This commit is contained in:
parent
37f75954be
commit
2461ea6145
24
.env.example
24
.env.example
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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"]
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
)
|
)
|
||||||
|
|
|
@ -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()
|
||||||
|
|
Loading…
Reference in New Issue