Enhance the AppConfig with external config sources. (#1904)

* Enhance the AppConfig with external config sources.

The external config sources are currently environment variables
and AWS secrets manager.

The config file can be augmented with a section describing how
environmen variables and secrets can update config parameters.

benefits:
 - it will enable the config to draw from more than one secret.  This is useful
   for shared secrets between cellxgene and data portal, as well as auth0 secrets.
 - it will make it very straightforward to check the config before a deployment.

 Part of #1859
This commit is contained in:
bmccandless
2020-10-07 15:38:42 -07:00
committed by GitHub
parent 1c4c501c43
commit 6c1756f852
14 changed files with 632 additions and 55 deletions
+4 -4
View File
@@ -117,7 +117,7 @@ def random_string(n):
return "".join(random.choice(string.ascii_letters) for _ in range(n))
def start_test_server(command_line_args=[], app_config=None):
def start_test_server(command_line_args=[], app_config=None, env=None):
"""
Command line arguments can be passed in, as well as an app_config.
This function is meant to be used like this, for example:
@@ -155,7 +155,7 @@ def start_test_server(command_line_args=[], app_config=None):
command.extend(["-c", config_file])
server = f"http://localhost:{port}"
ps = Popen(command)
ps = Popen(command, env=env)
for _ in range(10):
try:
@@ -178,10 +178,10 @@ def stop_test_server(ps):
@contextmanager
def test_server(command_line_args=[], app_config=None):
def test_server(command_line_args=[], app_config=None, env=None):
"""A context to run the cellxgene server."""
ps, server = start_test_server(command_line_args, app_config)
ps, server = start_test_server(command_line_args, app_config, env)
try:
yield server
finally: