aboutsummaryrefslogtreecommitdiff
path: root/gn2
diff options
context:
space:
mode:
Diffstat (limited to 'gn2')
-rw-r--r--gn2/default_settings.py122
-rw-r--r--gn2/run_gunicorn.py2
-rw-r--r--gn2/utility/tools.py2
-rw-r--r--gn2/wqflask/__init__.py4
4 files changed, 125 insertions, 5 deletions
diff --git a/gn2/default_settings.py b/gn2/default_settings.py
new file mode 100644
index 00000000..e781f196
--- /dev/null
+++ b/gn2/default_settings.py
@@ -0,0 +1,122 @@
+# Default settings file defines a single Flask process for the Python
+# webserver running in developer mode with limited console
+# output. Copy this file and run it from ./bin/genenetwork2 configfile
+#
+# Note: these settings are fetched in ./wqflask/utilities/tools.py
+# which has support for overriding them through environment variables,
+# e.g.
+#
+# env LOG_SQL=True USE_REDIS=False ./bin/genenetwork2
+# env LOG_LEVEL=DEBUG ./bin/genenetwork2 ~/gn2_settings.py
+#
+# Typically you need to set GN2_PROFILE too.
+#
+# Note also that in the near future we will additionally fetch
+# settings from a JSON file
+#
+# Note: values for False and 0 have to be strings here - otherwise
+# Flask won't pick them up
+#
+# For GNU Guix deployment also check the paths in
+#
+# ~/.guix-profile/lib/python3.8/site-packages/genenetwork2-2.0-py2.7.egg/gn2/default_settings.py
+
+import os
+import sys
+
+GN_VERSION = "2.11-rc2"
+
+SECRET_KEY = ""
+
+# Redis
+REDIS_URL = "redis://:@localhost:6379/0"
+
+# gn2-proxy
+GN2_PROXY = "http://localhost:8080"
+
+# GN PROXY
+GN_PROXY_URL="https://genenetwork.org/gn3-proxy/"
+
+# ---- MySQL
+
+SQL_URI = "mysql://gn2:mysql_password@localhost/db_webqtl_s"
+SQL_ALCHEMY_POOL_RECYCLE = 3600
+GN_SERVER_URL = "http://localhost:8880/api/" # REST API server
+AUTH_SERVER_URL="http://localhost:9094/"
+GN2_BASE_URL = "http://genenetwork.org/" # to pick up REST API
+GN2_BRANCH_URL = GN2_BASE_URL
+
+# ---- Flask configuration (see website)
+TRAP_BAD_REQUEST_ERRORS = True
+SECURITY_CONFIRMABLE = True
+SECURITY_TRACKABLE = True
+SECURITY_REGISTERABLE = True
+SECURITY_RECOVERABLE = True
+SECURITY_EMAIL_SENDER = "no-reply@genenetwork.org"
+SECURITY_POST_LOGIN_VIEW = "/thank_you"
+
+SERVER_PORT = 5003
+
+SECRET_HMAC_CODE = '\x08\xdf\xfa\x93N\x80\xd9\\H@\\\x9f`\x98d^\xb4a;\xc6OM\x946a\xbc\xfc\x80:*\xebc'
+
+GITHUB_CLIENT_ID = "UNKNOWN"
+GITHUB_CLIENT_SECRET = "UNKNOWN"
+GITHUB_AUTH_URL = "https://github.com/login/oauth/authorize"
+GITHUB_API_URL = "https://api.github.com/user"
+
+ORCID_CLIENT_ID = "UNKNOWN"
+ORCID_CLIENT_SECRET = "UNKNOWN"
+ORCID_AUTH_URL = "https://orcid.org/oauth/authorize"
+ORCID_TOKEN_URL = "https://orcid.org/oauth/token"
+
+ELASTICSEARCH_HOST = "localhost"
+ELASTICSEARCH_PORT = '9200'
+
+SMTP_CONNECT = "localhost"
+SMTP_USERNAME = "UNKNOWN"
+SMTP_PASSWORD = "UNKNOWN"
+
+
+# ---- Behavioural settings (defaults) note that logger and log levels can
+# be overridden at the module level and with enviroment settings
+WEBSERVER_MODE = 'DEV' # Python webserver mode (DEBUG|DEV|PROD)
+WEBSERVER_BRANDING = None # Set the branding (nyi)
+WEBSERVER_DEPLOY = None # Deployment specifics (nyi)
+WEBSERVER_URL = "http://localhost:" + str(SERVER_PORT) + "/" # external URL
+
+LOG_LEVEL = 'WARNING' # Logger mode (DEBUG|INFO|WARNING|ERROR|CRITICAL)
+LOG_LEVEL_DEBUG = '0' # logger.debugf log level (0-5, 5 = show all)
+LOG_SQL = 'False' # Log SQL/backend and GN_SERVER calls
+LOG_SQL_ALCHEMY = 'False'
+LOG_BENCH = True # Log bench marks
+
+USE_REDIS = True # REDIS caching (note that redis will be phased out)
+USE_GN_SERVER = 'False' # Use GN_SERVER SQL calls
+HOME = os.environ['HOME']
+
+# ---- Default locations
+# base dir for all static data files
+GENENETWORK_FILES = HOME + "/genotype_files"
+
+# ---- Path overrides for Genenetwork - the defaults are normally
+# picked up from Guix or in the HOME directory
+
+# TMPDIR is normally picked up from the environment
+# PRIVATE_FILES = HOME+"/gn2_private_data" # private static data files (unused)
+
+# ---- Local path to JS libraries - for development modules (only)
+JS_GN_PATH = os.environ['HOME'] + "/genenetwork/javascript"
+
+# ---- GN2 Executables (overwrite for testing only)
+# PLINK_COMMAND = str.strip(os.popen("which plink2").read())
+# GEMMA_COMMAND = str.strip(os.popen("which gemma").read())
+REAPER_COMMAND = os.environ['GN2_PROFILE'] + "/bin/qtlreaper"
+CORRELATION_COMMAND = os.environ["GN2_PROFILE"] + "/bin/correlation_rust"
+# GEMMA_WRAPPER_COMMAND = str.strip(os.popen("which gemma-wrapper").read())
+
+OAUTH2_CLIENT_ID="0bbfca82-d73f-4bd4-a140-5ae7abb4a64d"
+OAUTH2_CLIENT_SECRET="yadabadaboo"
+
+SESSION_TYPE = "redis"
+SESSION_PERMANENT = True
+SESSION_USE_SIGNER = True
diff --git a/gn2/run_gunicorn.py b/gn2/run_gunicorn.py
index 6de470fe..370d2425 100644
--- a/gn2/run_gunicorn.py
+++ b/gn2/run_gunicorn.py
@@ -2,7 +2,7 @@
#
# Run standalone with
#
-# ./bin/genenetwork2 ./etc/default_settings.py -c run_gunicorn.py
+# ./bin/genenetwork2 ./gn2/default_settings.py -c run_gunicorn.py
# from flask import Flask
# application = Flask(__name__)
diff --git a/gn2/utility/tools.py b/gn2/utility/tools.py
index 159643d3..29d94a43 100644
--- a/gn2/utility/tools.py
+++ b/gn2/utility/tools.py
@@ -40,7 +40,7 @@ def get_setting(command_id, guess=None):
Note that we do not use the system path. This is on purpose
because it will mess up controlled (reproducible) deployment. The
proper way is to either use the GNU Guix defaults as listed in
- etc/default_settings.py or override them yourself by creating a
+ gn2/default_settings.py or override them yourself by creating a
different settings.py file (or setting the environment).
"""
diff --git a/gn2/wqflask/__init__.py b/gn2/wqflask/__init__.py
index 9b714868..bca95275 100644
--- a/gn2/wqflask/__init__.py
+++ b/gn2/wqflask/__init__.py
@@ -48,9 +48,7 @@ app = Flask(__name__)
# See http://flask.pocoo.org/docs/config/#configuring-from-files
# Note no longer use the badly named WQFLASK_OVERRIDES (nyi)
-default_settings_file = Path(Path(__file__).parent.parent.parent,
- "etc/default_settings.py")
-app.config.from_pyfile(default_settings_file)
+app.config.from_object('gn2.default_settings')
app.config.from_envvar('GN2_SETTINGS')
app.jinja_env.globals.update(