aboutsummaryrefslogtreecommitdiff
path: root/gn2/default_settings.py
blob: ab15dbe9fa028879aa22b281c5c41a3e3feabbfc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
# 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


# BEGIN: JSON WEB KEYS #####
JWKS_ROTATION_AGE_DAYS = 7 # Days (from creation) to keep a JWK in use.
JWKS_DELETION_AGE_DAYS = 14 # Days (from creation) to keep a JWK around before deleting it.
# END: JSON WEB KEYS #####