13. CamCOPS command-line tools¶
13.1. camcops¶
The camcops
command is the main interface to the CamCOPS server.
Options as of 2018-04-06 (output from camcops --allhelp
):
usage: camcops [-h] [--allhelp] [--version]
{docs,demo_camcops_config,demo_supervisor_config,demo_apache_config,demo_mysql_create_db,demo_mysql_dump_script,upgrade_db,show_db_title,merge_db,create_db,make_superuser,reset_password,enable_user,ddl,hl7,show_hl7_queue,show_tests,self_test,serve_pyramid,serve_cherrypy,serve_gunicorn}
...
CamCOPS server version 2.2.0, by Rudolf Cardinal.
Use 'camcops <COMMAND> --help' for more detail on each command.
optional arguments:
-h, --help show this help message and exit
--allhelp show help for all commands and exit
--version show program's version number and exit
commands:
Valid CamCOPS commands are as follows.
{docs,demo_camcops_config,demo_supervisor_config,demo_apache_config,demo_mysql_create_db,demo_mysql_dump_script,upgrade_db,show_db_title,merge_db,create_db,make_superuser,reset_password,enable_user,ddl,hl7,show_hl7_queue,show_tests,self_test,serve_pyramid,serve_cherrypy,serve_gunicorn}
Specify one command.
docs Launch the main documentation (CamCOPS manual)
demo_camcops_config
Print a demo CamCOPS config file
demo_supervisor_config
Print a demo 'supervisor' config file for CamCOPS
demo_apache_config Print a demo Apache config file section for CamCOPS
demo_mysql_create_db
Print demo instructions to create a MySQL database for
CamCOPS
demo_mysql_dump_script
Print demo instructions to dump all current MySQL
databases
upgrade_db Upgrade database to most recent version (via Alembic)
show_db_title Show database title
merge_db Merge in data from an old or recent CamCOPS database
create_db Create CamCOPS database from scratch (AVOID; use the
upgrade facility instead)
make_superuser Make superuser, or give superuser status to an
existing user
reset_password Reset a user's password
enable_user Re-enable a locked user account
ddl Print database schema (data definition language; DDL)
hl7 Send pending HL7 messages and outbound files
show_hl7_queue View outbound HL7/file queue (without sending)
show_tests Show available self-tests
self_test Test internal code
serve_pyramid Test web server (single-thread, single-process, HTTP-
only, Pyramid; for development use only
serve_cherrypy Start web server (via CherryPy)
serve_gunicorn Start web server (via Gunicorn) (not available under
Windows)
===============================================================================
Help for command 'docs'
===============================================================================
usage: camcops docs [-h] [-v]
Launch the main documentation (CamCOPS manual)
optional arguments:
-h, --help show this help message and exit
-v, --verbose Be verbose (default: False)
===============================================================================
Help for command 'demo_camcops_config'
===============================================================================
usage: camcops demo_camcops_config [-h] [-v]
Print a demo CamCOPS config file
optional arguments:
-h, --help show this help message and exit
-v, --verbose Be verbose (default: False)
===============================================================================
Help for command 'demo_supervisor_config'
===============================================================================
usage: camcops demo_supervisor_config [-h] [-v]
Print a demo 'supervisor' config file for CamCOPS
optional arguments:
-h, --help show this help message and exit
-v, --verbose Be verbose (default: False)
===============================================================================
Help for command 'demo_apache_config'
===============================================================================
usage: camcops demo_apache_config [-h] [-v]
Print a demo Apache config file section for CamCOPS
optional arguments:
-h, --help show this help message and exit
-v, --verbose Be verbose (default: False)
===============================================================================
Help for command 'demo_mysql_create_db'
===============================================================================
usage: camcops demo_mysql_create_db [-h] [-v]
Print demo instructions to create a MySQL database for CamCOPS
optional arguments:
-h, --help show this help message and exit
-v, --verbose Be verbose (default: False)
===============================================================================
Help for command 'demo_mysql_dump_script'
===============================================================================
usage: camcops demo_mysql_dump_script [-h] [-v]
Print demo instructions to dump all current MySQL databases
optional arguments:
-h, --help show this help message and exit
-v, --verbose Be verbose (default: False)
===============================================================================
Help for command 'upgrade_db'
===============================================================================
usage: camcops upgrade_db [-h] [-v] --config CONFIG
Upgrade database to most recent version (via Alembic)
optional arguments:
-h, --help show this help message and exit
-v, --verbose Be verbose (default: False)
required named arguments:
--config CONFIG Configuration file (default: None)
===============================================================================
Help for command 'show_db_title'
===============================================================================
usage: camcops show_db_title [-h] [-v] [--config CONFIG]
Show database title
optional arguments:
-h, --help show this help message and exit
-v, --verbose Be verbose (default: False)
--config CONFIG Configuration file (if not specified, the environment
variable CAMCOPS_CONFIG_FILE is checked) (default: None)
===============================================================================
Help for command 'merge_db'
===============================================================================
usage: camcops merge_db [-h] [-v] --config CONFIG
[--report_every REPORT_EVERY] [--echo] [--dummy_run]
[--info_only] [--skip_hl7_logs] [--skip_audit_logs]
[--default_group_id DEFAULT_GROUP_ID]
[--default_group_name DEFAULT_GROUP_NAME] --src SRC
Merge in data from an old or recent CamCOPS database
optional arguments:
-h, --help show this help message and exit
-v, --verbose Be verbose (default: False)
--report_every REPORT_EVERY
Report progress every n rows (default: 10000)
--echo Echo SQL to source database (default: False)
--dummy_run Perform a dummy run only; do not alter destination
database (default: False)
--info_only Show table information only; don't do any work
(default: False)
--skip_hl7_logs Skip the HL7 message log table (default: False)
--skip_audit_logs Skip the audit log table (default: False)
--default_group_id DEFAULT_GROUP_ID
Default group ID (integer) to apply to old records
without one. If none is specified, a new group will be
created for such records. (default: None)
--default_group_name DEFAULT_GROUP_NAME
If default_group_id is not specified, use this group
name. The group will be looked up if it exists, and
created if not. (default: None)
required named arguments:
--config CONFIG Configuration file (default: None)
--src SRC Source database (specified as an SQLAlchemy URL). The
contents of this database will be merged into the
database specified in the config file. (default: None)
===============================================================================
Help for command 'create_db'
===============================================================================
usage: camcops create_db [-h] [-v] --config CONFIG --confirm_create_db
Create CamCOPS database from scratch (AVOID; use the upgrade facility instead)
optional arguments:
-h, --help show this help message and exit
-v, --verbose Be verbose (default: False)
required named arguments:
--config CONFIG Configuration file (default: None)
--confirm_create_db Must specify this too, as a safety measure (default:
False)
===============================================================================
Help for command 'make_superuser'
===============================================================================
usage: camcops make_superuser [-h] [-v] [--config CONFIG]
[--username USERNAME]
Make superuser, or give superuser status to an existing user
optional arguments:
-h, --help show this help message and exit
-v, --verbose Be verbose (default: False)
--config CONFIG Configuration file (if not specified, the environment
variable CAMCOPS_CONFIG_FILE is checked) (default:
None)
--username USERNAME Username of superuser to create/promote (if omitted,
you will be asked to type it in) (default: None)
===============================================================================
Help for command 'reset_password'
===============================================================================
usage: camcops reset_password [-h] [-v] [--config CONFIG]
[--username USERNAME]
Reset a user's password
optional arguments:
-h, --help show this help message and exit
-v, --verbose Be verbose (default: False)
--config CONFIG Configuration file (if not specified, the environment
variable CAMCOPS_CONFIG_FILE is checked) (default:
None)
--username USERNAME Username to change password for (if omitted, you will
be asked to type it in) (default: None)
===============================================================================
Help for command 'enable_user'
===============================================================================
usage: camcops enable_user [-h] [-v] [--config CONFIG] [--username USERNAME]
Re-enable a locked user account
optional arguments:
-h, --help show this help message and exit
-v, --verbose Be verbose (default: False)
--config CONFIG Configuration file (if not specified, the environment
variable CAMCOPS_CONFIG_FILE is checked) (default:
None)
--username USERNAME Username to enable (if omitted, you will be asked to
type it in) (default: None)
===============================================================================
Help for command 'ddl'
===============================================================================
usage: camcops ddl [-h] [-v] [--config CONFIG] [--dialect DIALECT]
Print database schema (data definition language; DDL)
optional arguments:
-h, --help show this help message and exit
-v, --verbose Be verbose (default: False)
--config CONFIG Configuration file (if not specified, the environment
variable CAMCOPS_CONFIG_FILE is checked) (default: None)
--dialect DIALECT SQL dialect (options: sybase, postgresql, sqlite, mysql,
oracle, mssql, firebird) (default: mysql)
===============================================================================
Help for command 'hl7'
===============================================================================
usage: camcops hl7 [-h] [-v] [--config CONFIG]
Send pending HL7 messages and outbound files
optional arguments:
-h, --help show this help message and exit
-v, --verbose Be verbose (default: False)
--config CONFIG Configuration file (if not specified, the environment
variable CAMCOPS_CONFIG_FILE is checked) (default: None)
===============================================================================
Help for command 'show_hl7_queue'
===============================================================================
usage: camcops show_hl7_queue [-h] [-v] [--config CONFIG]
View outbound HL7/file queue (without sending)
optional arguments:
-h, --help show this help message and exit
-v, --verbose Be verbose (default: False)
--config CONFIG Configuration file (if not specified, the environment
variable CAMCOPS_CONFIG_FILE is checked) (default: None)
===============================================================================
Help for command 'show_tests'
===============================================================================
usage: camcops show_tests [-h] [-v]
Show available self-tests
optional arguments:
-h, --help show this help message and exit
-v, --verbose Be verbose (default: False)
===============================================================================
Help for command 'self_test'
===============================================================================
usage: camcops self_test [-h] [-v]
Test internal code
optional arguments:
-h, --help show this help message and exit
-v, --verbose Be verbose (default: False)
===============================================================================
Help for command 'serve_pyramid'
===============================================================================
usage: camcops serve_pyramid [-h] [-v] [--config CONFIG] [--host HOST]
[--port PORT]
[--trusted_proxy_headers [TRUSTED_PROXY_HEADERS [TRUSTED_PROXY_HEADERS ...]]]
[--proxy_http_host PROXY_HTTP_HOST]
[--proxy_remote_addr PROXY_REMOTE_ADDR]
[--proxy_script_name PROXY_SCRIPT_NAME]
[--proxy_server_port PROXY_SERVER_PORT]
[--proxy_server_name PROXY_SERVER_NAME]
[--proxy_url_scheme PROXY_URL_SCHEME]
[--proxy_rewrite_path_info]
[--debug_reverse_proxy] [--debug_toolbar]
Test web server (single-thread, single-process, HTTP-only, Pyramid; for
development use only
optional arguments:
-h, --help show this help message and exit
-v, --verbose Be verbose (default: False)
--config CONFIG Configuration file (if not specified, the environment
variable CAMCOPS_CONFIG_FILE is checked) (default:
None)
--host HOST Hostname to listen on (default: 127.0.0.1)
--port PORT Port to listen on (default: 8000)
--trusted_proxy_headers [TRUSTED_PROXY_HEADERS [TRUSTED_PROXY_HEADERS ...]]
Trust these WSGI environment variables for when the
server is behind a reverse proxy (e.g. an Apache
front-end web server). Options: ['HTTP_X_HOST',
'HTTP_X_FORWARDED_HOST', 'HTTP_X_FORWARDED_PORT',
'HTTP_X_FORWARDED_FOR', 'HTTP_X_REAL_IP',
'HTTP_X_FORWARDED_PROTO', 'HTTP_X_FORWARDED_PROTOCOL',
'HTTP_X_FORWARDED_SCHEME', 'HTTP_X_SCHEME',
'HTTP_X_FORWARDED_HTTPS', 'HTTP_X_FORWARDED_SSL',
'HTTP_X_HTTPS', 'HTTP_X_SCRIPT_NAME',
'HTTP_X_FORWARDED_SCRIPT_NAME',
'HTTP_X_FORWARDED_SERVER'] (default: None)
--proxy_http_host PROXY_HTTP_HOST
Option to set the WSGI HTTP host directly. This
affects the WSGI variable HTTP_HOST. If not specified,
trusted variables within ['HTTP_X_HOST',
'HTTP_X_FORWARDED_HOST'] will be used. (default: None)
--proxy_remote_addr PROXY_REMOTE_ADDR
Option to set the WSGI remote address directly. This
affects the WSGI variable REMOTE_ADDR. If not
specified, trusted variables within
['HTTP_X_FORWARDED_FOR', 'HTTP_X_REAL_IP'] will be
used. (default: None)
--proxy_script_name PROXY_SCRIPT_NAME
Path at which this script is mounted. Set this if you
are hosting this CamCOPS instance at a non-root path,
unless you set trusted WSGI headers instead. For
example, if you are running an Apache server and want
this instance of CamCOPS to appear at
/somewhere/camcops, then (a) configure your Apache
instance to proxy requests to /somewhere/camcops/...
to this server (e.g. via an internal TCP/IP port or
UNIX socket) and specify this option. If this option
is not set, then the OS environment variable
SCRIPT_NAME will be checked as well, and if that is
not set, trusted variables within
['HTTP_X_SCRIPT_NAME', 'HTTP_X_FORWARDED_SCRIPT_NAME']
will be used. This option affects the WSGI variables
SCRIPT_NAME and PATH_INFO. (default: None)
--proxy_server_port PROXY_SERVER_PORT
Option to set the WSGI server port directly. This
affects the WSGI variable SERVER_PORT. If not
specified, trusted variables within
['HTTP_X_FORWARDED_PORT'] will be used. (default:
None)
--proxy_server_name PROXY_SERVER_NAME
Option to set the WSGI server name directly. This
affects the WSGI variable SERVER_NAME. If not
specified, trusted variables within
['HTTP_X_FORWARDED_SERVER'] will be used. (default:
None)
--proxy_url_scheme PROXY_URL_SCHEME
Option to set the WSGI scheme (e.g. http, https)
directly. This affects the WSGI variable
wsgi.url_scheme. If not specified, trusted variables
within ['HTTP_X_FORWARDED_PROTO',
'HTTP_X_FORWARDED_PROTOCOL',
'HTTP_X_FORWARDED_SCHEME', 'HTTP_X_SCHEME',
'HTTP_X_FORWARDED_HTTPS', 'HTTP_X_FORWARDED_SSL',
'HTTP_X_HTTPS'] will be used. (default: None)
--proxy_rewrite_path_info
If SCRIPT_NAME is rewritten, this option causes
PATH_INFO to be rewritten, if it starts with
SCRIPT_NAME, to strip off SCRIPT_NAME. Appropriate for
some front-end web browsers with limited reverse
proxying support (but do not use for Apache with
ProxyPass, because that rewrites incoming URLs
properly). (default: False)
--debug_reverse_proxy
For --behind_reverse_proxy: show debugging information
as WSGI variables are rewritten. (default: False)
--debug_toolbar Enable the Pyramid debug toolbar (default: False)
===============================================================================
Help for command 'serve_cherrypy'
===============================================================================
usage: camcops serve_cherrypy [-h] [-v] [--config CONFIG] [--serve]
[--host HOST] [--port PORT]
[--unix_domain_socket UNIX_DOMAIN_SOCKET]
[--server_name SERVER_NAME]
[--threads_start THREADS_START]
[--threads_max THREADS_MAX]
[--ssl_certificate SSL_CERTIFICATE]
[--ssl_private_key SSL_PRIVATE_KEY]
[--log_screen] [--no_log_screen]
[--root_path ROOT_PATH]
[--trusted_proxy_headers [TRUSTED_PROXY_HEADERS [TRUSTED_PROXY_HEADERS ...]]]
[--proxy_http_host PROXY_HTTP_HOST]
[--proxy_remote_addr PROXY_REMOTE_ADDR]
[--proxy_script_name PROXY_SCRIPT_NAME]
[--proxy_server_port PROXY_SERVER_PORT]
[--proxy_server_name PROXY_SERVER_NAME]
[--proxy_url_scheme PROXY_URL_SCHEME]
[--proxy_rewrite_path_info]
[--debug_reverse_proxy] [--debug_toolbar]
Start web server (via CherryPy)
optional arguments:
-h, --help show this help message and exit
-v, --verbose Be verbose (default: False)
--config CONFIG Configuration file (if not specified, the environment
variable CAMCOPS_CONFIG_FILE is checked) (default:
None)
--serve
--host HOST hostname to listen on (default: 127.0.0.1)
--port PORT port to listen on (default: 8000)
--unix_domain_socket UNIX_DOMAIN_SOCKET
UNIX domain socket to listen on (overrides host/port
if specified) (default: )
--server_name SERVER_NAME
CherryPy's SERVER_NAME environ entry (default:
localhost)
--threads_start THREADS_START
Number of threads for server to start with (default:
10)
--threads_max THREADS_MAX
Maximum number of threads for server to use (-1 for no
limit) (BEWARE exceeding the permitted number of
database connections) (default: 100)
--ssl_certificate SSL_CERTIFICATE
SSL certificate file (e.g. /etc/ssl/certs/ssl-cert-
snakeoil.pem) (default: None)
--ssl_private_key SSL_PRIVATE_KEY
SSL private key file (e.g. /etc/ssl/private/ssl-cert-
snakeoil.key) (default: None)
--log_screen Log access requests etc. to terminal (default)
(default: True)
--no_log_screen Don't log access requests etc. to terminal (default:
True)
--root_path ROOT_PATH
Root path to serve CRATE at, WITHIN this CherryPy web
server instance. (There is unlikely to be a reason to
use something other than '/'; do not confuse this with
the mount point within a wider, e.g. Apache,
configuration, which is set instead by the WSGI
variable SCRIPT_NAME; see the --trusted_proxy_headers
and --proxy_script_name options.) (default: /)
--trusted_proxy_headers [TRUSTED_PROXY_HEADERS [TRUSTED_PROXY_HEADERS ...]]
Trust these WSGI environment variables for when the
server is behind a reverse proxy (e.g. an Apache
front-end web server). Options: ['HTTP_X_HOST',
'HTTP_X_FORWARDED_HOST', 'HTTP_X_FORWARDED_PORT',
'HTTP_X_FORWARDED_FOR', 'HTTP_X_REAL_IP',
'HTTP_X_FORWARDED_PROTO', 'HTTP_X_FORWARDED_PROTOCOL',
'HTTP_X_FORWARDED_SCHEME', 'HTTP_X_SCHEME',
'HTTP_X_FORWARDED_HTTPS', 'HTTP_X_FORWARDED_SSL',
'HTTP_X_HTTPS', 'HTTP_X_SCRIPT_NAME',
'HTTP_X_FORWARDED_SCRIPT_NAME',
'HTTP_X_FORWARDED_SERVER'] (default: None)
--proxy_http_host PROXY_HTTP_HOST
Option to set the WSGI HTTP host directly. This
affects the WSGI variable HTTP_HOST. If not specified,
trusted variables within ['HTTP_X_HOST',
'HTTP_X_FORWARDED_HOST'] will be used. (default: None)
--proxy_remote_addr PROXY_REMOTE_ADDR
Option to set the WSGI remote address directly. This
affects the WSGI variable REMOTE_ADDR. If not
specified, trusted variables within
['HTTP_X_FORWARDED_FOR', 'HTTP_X_REAL_IP'] will be
used. (default: None)
--proxy_script_name PROXY_SCRIPT_NAME
Path at which this script is mounted. Set this if you
are hosting this CamCOPS instance at a non-root path,
unless you set trusted WSGI headers instead. For
example, if you are running an Apache server and want
this instance of CamCOPS to appear at
/somewhere/camcops, then (a) configure your Apache
instance to proxy requests to /somewhere/camcops/...
to this server (e.g. via an internal TCP/IP port or
UNIX socket) and specify this option. If this option
is not set, then the OS environment variable
SCRIPT_NAME will be checked as well, and if that is
not set, trusted variables within
['HTTP_X_SCRIPT_NAME', 'HTTP_X_FORWARDED_SCRIPT_NAME']
will be used. This option affects the WSGI variables
SCRIPT_NAME and PATH_INFO. (default: None)
--proxy_server_port PROXY_SERVER_PORT
Option to set the WSGI server port directly. This
affects the WSGI variable SERVER_PORT. If not
specified, trusted variables within
['HTTP_X_FORWARDED_PORT'] will be used. (default:
None)
--proxy_server_name PROXY_SERVER_NAME
Option to set the WSGI server name directly. This
affects the WSGI variable SERVER_NAME. If not
specified, trusted variables within
['HTTP_X_FORWARDED_SERVER'] will be used. (default:
None)
--proxy_url_scheme PROXY_URL_SCHEME
Option to set the WSGI scheme (e.g. http, https)
directly. This affects the WSGI variable
wsgi.url_scheme. If not specified, trusted variables
within ['HTTP_X_FORWARDED_PROTO',
'HTTP_X_FORWARDED_PROTOCOL',
'HTTP_X_FORWARDED_SCHEME', 'HTTP_X_SCHEME',
'HTTP_X_FORWARDED_HTTPS', 'HTTP_X_FORWARDED_SSL',
'HTTP_X_HTTPS'] will be used. (default: None)
--proxy_rewrite_path_info
If SCRIPT_NAME is rewritten, this option causes
PATH_INFO to be rewritten, if it starts with
SCRIPT_NAME, to strip off SCRIPT_NAME. Appropriate for
some front-end web browsers with limited reverse
proxying support (but do not use for Apache with
ProxyPass, because that rewrites incoming URLs
properly). (default: False)
--debug_reverse_proxy
For --behind_reverse_proxy: show debugging information
as WSGI variables are rewritten. (default: False)
--debug_toolbar Enable the Pyramid debug toolbar (default: False)
===============================================================================
Help for command 'serve_gunicorn'
===============================================================================
usage: camcops serve_gunicorn [-h] [-v] [--config CONFIG] [--serve]
[--host HOST] [--port PORT]
[--unix_domain_socket UNIX_DOMAIN_SOCKET]
[--num_workers NUM_WORKERS] [--debug_reload]
[--ssl_certificate SSL_CERTIFICATE]
[--ssl_private_key SSL_PRIVATE_KEY]
[--timeout TIMEOUT]
[--debug_show_gunicorn_options]
[--trusted_proxy_headers [TRUSTED_PROXY_HEADERS [TRUSTED_PROXY_HEADERS ...]]]
[--proxy_http_host PROXY_HTTP_HOST]
[--proxy_remote_addr PROXY_REMOTE_ADDR]
[--proxy_script_name PROXY_SCRIPT_NAME]
[--proxy_server_port PROXY_SERVER_PORT]
[--proxy_server_name PROXY_SERVER_NAME]
[--proxy_url_scheme PROXY_URL_SCHEME]
[--proxy_rewrite_path_info]
[--debug_reverse_proxy] [--debug_toolbar]
Start web server (via Gunicorn) (not available under Windows)
optional arguments:
-h, --help show this help message and exit
-v, --verbose Be verbose (default: False)
--config CONFIG Configuration file (if not specified, the environment
variable CAMCOPS_CONFIG_FILE is checked) (default:
None)
--serve
--host HOST hostname to listen on (default: 127.0.0.1)
--port PORT port to listen on (default: 8000)
--unix_domain_socket UNIX_DOMAIN_SOCKET
UNIX domain socket to listen on (overrides host/port
if specified) (default: )
--num_workers NUM_WORKERS
Number of worker processes for server to use (default:
16)
--debug_reload Debugging option: reload Gunicorn upon code change
(default: False)
--ssl_certificate SSL_CERTIFICATE
SSL certificate file (e.g. /etc/ssl/certs/ssl-cert-
snakeoil.pem) (default: None)
--ssl_private_key SSL_PRIVATE_KEY
SSL private key file (e.g. /etc/ssl/private/ssl-cert-
snakeoil.key) (default: None)
--timeout TIMEOUT Gunicorn worker timeout (s) (default: 30)
--debug_show_gunicorn_options
Debugging option: show possible Gunicorn settings
(default: False)
--trusted_proxy_headers [TRUSTED_PROXY_HEADERS [TRUSTED_PROXY_HEADERS ...]]
Trust these WSGI environment variables for when the
server is behind a reverse proxy (e.g. an Apache
front-end web server). Options: ['HTTP_X_HOST',
'HTTP_X_FORWARDED_HOST', 'HTTP_X_FORWARDED_PORT',
'HTTP_X_FORWARDED_FOR', 'HTTP_X_REAL_IP',
'HTTP_X_FORWARDED_PROTO', 'HTTP_X_FORWARDED_PROTOCOL',
'HTTP_X_FORWARDED_SCHEME', 'HTTP_X_SCHEME',
'HTTP_X_FORWARDED_HTTPS', 'HTTP_X_FORWARDED_SSL',
'HTTP_X_HTTPS', 'HTTP_X_SCRIPT_NAME',
'HTTP_X_FORWARDED_SCRIPT_NAME',
'HTTP_X_FORWARDED_SERVER'] (default: None)
--proxy_http_host PROXY_HTTP_HOST
Option to set the WSGI HTTP host directly. This
affects the WSGI variable HTTP_HOST. If not specified,
trusted variables within ['HTTP_X_HOST',
'HTTP_X_FORWARDED_HOST'] will be used. (default: None)
--proxy_remote_addr PROXY_REMOTE_ADDR
Option to set the WSGI remote address directly. This
affects the WSGI variable REMOTE_ADDR. If not
specified, trusted variables within
['HTTP_X_FORWARDED_FOR', 'HTTP_X_REAL_IP'] will be
used. (default: None)
--proxy_script_name PROXY_SCRIPT_NAME
Path at which this script is mounted. Set this if you
are hosting this CamCOPS instance at a non-root path,
unless you set trusted WSGI headers instead. For
example, if you are running an Apache server and want
this instance of CamCOPS to appear at
/somewhere/camcops, then (a) configure your Apache
instance to proxy requests to /somewhere/camcops/...
to this server (e.g. via an internal TCP/IP port or
UNIX socket) and specify this option. If this option
is not set, then the OS environment variable
SCRIPT_NAME will be checked as well, and if that is
not set, trusted variables within
['HTTP_X_SCRIPT_NAME', 'HTTP_X_FORWARDED_SCRIPT_NAME']
will be used. This option affects the WSGI variables
SCRIPT_NAME and PATH_INFO. (default: None)
--proxy_server_port PROXY_SERVER_PORT
Option to set the WSGI server port directly. This
affects the WSGI variable SERVER_PORT. If not
specified, trusted variables within
['HTTP_X_FORWARDED_PORT'] will be used. (default:
None)
--proxy_server_name PROXY_SERVER_NAME
Option to set the WSGI server name directly. This
affects the WSGI variable SERVER_NAME. If not
specified, trusted variables within
['HTTP_X_FORWARDED_SERVER'] will be used. (default:
None)
--proxy_url_scheme PROXY_URL_SCHEME
Option to set the WSGI scheme (e.g. http, https)
directly. This affects the WSGI variable
wsgi.url_scheme. If not specified, trusted variables
within ['HTTP_X_FORWARDED_PROTO',
'HTTP_X_FORWARDED_PROTOCOL',
'HTTP_X_FORWARDED_SCHEME', 'HTTP_X_SCHEME',
'HTTP_X_FORWARDED_HTTPS', 'HTTP_X_FORWARDED_SSL',
'HTTP_X_HTTPS'] will be used. (default: None)
--proxy_rewrite_path_info
If SCRIPT_NAME is rewritten, this option causes
PATH_INFO to be rewritten, if it starts with
SCRIPT_NAME, to strip off SCRIPT_NAME. Appropriate for
some front-end web browsers with limited reverse
proxying support (but do not use for Apache with
ProxyPass, because that rewrites incoming URLs
properly). (default: False)
--debug_reverse_proxy
For --behind_reverse_proxy: show debugging information
as WSGI variables are rewritten. (default: False)
--debug_toolbar Enable the Pyramid debug toolbar (default: False)
13.2. camcops_meta¶
The camcops_meta
tool allows you to run CamCOPS over multiple CamCOPS
configuration files/databases. It’s less useful than it was, because the
dominant mode of “one database per research group” has been replaced by the
concept of “a single database with group-level security”.
Options as of 2017-10-23:
usage: camcops_meta [-h] --filespecs FILESPECS [FILESPECS ...]
[--ccargs [CCARGS [CCARGS ...]]] [--python PYTHON]
[--camcops CAMCOPS] [-d] [-v]
cc_command
Run commands across multiple CamCOPS databases
positional arguments:
cc_command Main command to pass to CamCOPS
optional arguments:
-h, --help show this help message and exit
--filespecs FILESPECS [FILESPECS ...]
List of CamCOPS config files (wildcards OK)
--ccargs [CCARGS [CCARGS ...]]
List of CamCOPS arguments, to which '--' will be
prefixed
--python PYTHON Python interpreter (default:
/home/rudolf/dev/venvs/camcops/bin/python3)
--camcops CAMCOPS CamCOPS executable (default:
/home/rudolf/Documents/code/camcops/server/camcops.py)
-d, --dummyrun Dummy run (show filenames only)
-v, --verbose Verbose
13.3. camcops_backup_mysql_database¶
This simple tool uses MySQL to dump a MySQL database to a .SQL file (from which you can restore it), and names the file according to the name of the database plus a timestamp.
Options as of 2017-10-23:
usage: camcops_backup_mysql_database [-h]
[--max_allowed_packet MAX_ALLOWED_PACKET]
[--mysqldump MYSQLDUMP]
[--username USERNAME]
[--password PASSWORD]
[--with_drop_create_database] [--verbose]
databases [databases ...]
Back up a specific MySQL database
positional arguments:
databases Database(s) to back up
optional arguments:
-h, --help show this help message and exit
--max_allowed_packet MAX_ALLOWED_PACKET
Maximum size of buffer (default: 1GB)
--mysqldump MYSQLDUMP
mysqldump executable (default: mysqldump)
--username USERNAME MySQL user (default: root)
--password PASSWORD MySQL password (AVOID THIS OPTION IF POSSIBLE; VERY
INSECURE; VISIBLE TO OTHER PROCESSES; if you don't use
it, you'll be prompted for the password) (default:
root)
--with_drop_create_database
Include DROP DATABASE and CREATE DATABASE commands
(default: False)
--verbose Verbose output (default: False)