The internal global reporting product for Hypothesis.
Used for internal purposes only.
Name | Example | Notes |
---|---|---|
DATABASE_URL |
postgresql://user:pw@host/report |
Postgres DSN for the report DB |
HUBSPOT_API_KEY |
01234567-89ab-cdef-0123-456789abcdef |
API key for integration with Hubspot |
H_CA_DATABASE_URL |
postgresql://user:pw@host/h |
Connection to H (Canada) |
H_US_DATABASE_URL |
postgresql://user:pw@host/h |
Connection to H (US) |
LMS_CA_DATABASE_URL |
postgresql://user:pw@host/lms |
Connection to LMS (Canada) |
LMS_US_DATABASE_URL |
postgresql://user:pw@host/lms |
Connection to LMS (US) |
MB_DB_USER |
metabase |
The username Metabase will use to access the report DB |
NEW_RELIC_APP_NAME |
report |
Report's New Relic name |
NEW_RELIC_ENVIRONMENT |
prod |
The environment we are deployed in |
NEW_RELIC_LICENSE_KEY |
01234567-89ab-cdef-0123-456789abcdef |
The licence key from New Relic |
SENTRY_DSN |
01234567-89ab-cdef-0123-456789abcdef |
Connection details for Sentry error reporting |
SENTRY_ENVIRONMENT |
prod |
The Sentry environment |
On top of the service own environment variables these are the metabase variables that we use:
Name | Example | Notes |
---|---|---|
MB_DB_DBNAME |
metabase |
Metabase database name |
MB_DB_HOST |
localhost |
Metabase database host |
MB_DB_PASS |
pass |
Metabase database password |
MB_DB_PORT |
5432 |
Metabase database port |
MB_DB_TYPE |
postgres |
Metabase database type. We use postgres . |
MB_DB_USER |
user |
Metabase database user |
In addition, we are also providing some custom Java options
Name | Value | Description |
---|---|---|
JAVA_OPTS |
-Dlog4j.configurationFile=file://conf/report-log4j2.xml |
Custom log4j config |
The full list of supported variables by metabase can be found here:
https://www.metabase.com/docs/latest/configuring-metabase/environment-variables.html
First you'll need to install:
- Git.
On Ubuntu:
sudo apt install git
, on macOS:brew install git
. - GNU Make.
This is probably already installed, run
make --version
to check. - pyenv. Follow the instructions in pyenv's README to install it. The Homebrew method works best on macOS. The Basic GitHub Checkout method works best on Ubuntu. You don't need to set up pyenv's shell integration ("shims"), you can use pyenv without shims.
- Docker Desktop. On Ubuntu follow Install on Ubuntu. On macOS follow Install on Mac.
Then to set up your development environment:
git clone https://github.com/hypothesis/report.git
cd report
make services
make devdata
make help
To change what version of Python the project uses:
-
Change the Python version in the cookiecutter.json file. For example:
"python_version": "3.10.4",
-
Re-run the cookiecutter template:
make template
-
Re-compile the
requirements/*.txt
files. This is necessary because the samerequirements/*.in
file can compile to differentrequirements/*.txt
files in different versions of Python:make requirements
-
Commit everything to git and send a pull request
Add the package to the appropriate requirements/*.in
file(s) and then run:
make requirements
Remove the package from the appropriate requirements/*.in
file(s) and then run:
make requirements
We rely on Dependabot to keep all our dependencies up to date by sending automated pull requests to all our repos. But if you need to upgrade or downgrade a package manually you can do that locally.
To upgrade a package to the latest version in all requirements/*.txt
files:
make requirements --always-make args='--upgrade-package <FOO>'
To upgrade or downgrade a package to a specific version:
make requirements --always-make args='--upgrade-package <FOO>==<X.Y.Z>'
To upgrade all packages to their latest versions:
make requirements --always-make args=--upgrade