From b61e22d532e665f7ccaa4db4d93511da0d210194 Mon Sep 17 00:00:00 2001 From: Reeya Gupta Date: Mon, 8 Jul 2024 08:08:44 -0400 Subject: [PATCH 01/18] Add debugging steps to check secrets --- .github/workflows/django.yml | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/.github/workflows/django.yml b/.github/workflows/django.yml index d1e90d91..ceb6f8ed 100644 --- a/.github/workflows/django.yml +++ b/.github/workflows/django.yml @@ -30,6 +30,33 @@ jobs: run: | python -m pip install --upgrade pip pip install -r server/requirements.txt + + - name: Debug Secrets + run: | + echo "SECRET_KEY is set: ${{ secrets.SECRET_KEY }}" | grep -o "SECRET_KEY is set" + echo "DJANGO_GOOGLE_OAUTH2_CLIENT_ID is set: ${{ secrets.DJANGO_GOOGLE_OAUTH2_CLIENT_ID }}" | grep -o "DJANGO_GOOGLE_OAUTH2_CLIENT_ID is set" + echo "DJANGO_GOOGLE_OAUTH2_CLIENT_SECRET is set: ${{ secrets.DJANGO_GOOGLE_OAUTH2_CLIENT_SECRET }}" | grep -o "DJANGO_GOOGLE_OAUTH2_CLIENT_SECRET is set" + echo "DJANGO_ORCID_OAUTH2_CLIENT_URL is set: ${{ secrets.DJANGO_ORCID_OAUTH2_CLIENT_URL }}" | grep -o "DJANGO_ORCID_OAUTH2_CLIENT_URL is set" + echo "DJANGO_ORCID_OAUTH2_CLIENT_ID is set: ${{ secrets.DJANGO_ORCID_OAUTH2_CLIENT_ID }}" | grep -o "DJANGO_ORCID_OAUTH2_CLIENT_ID is set" + echo "DJANGO_ORCID_OAUTH2_CLIENT_SECRET is set: ${{ secrets.DJANGO_ORCID_OAUTH2_CLIENT_SECRET }}" | grep -o "DJANGO_ORCID_OAUTH2_CLIENT_SECRET is set" + echo "DJANGO_ORCID_OAUTH2_URL is set: ${{ secrets.DJANGO_ORCID_OAUTH2_URL }}" | grep -o "DJANGO_ORCID_OAUTH2_URL is set" + echo "SERVER_VERSION is set: ${{ secrets.SERVER_VERSION }}" | grep -o "SERVER_VERSION is set" + echo "SERVER_URL is set: ${{ secrets.SERVER_URL }}" | grep -o "SERVER_URL is set" + echo "DATABASE is set: ${{ secrets.DATABASE }}" | grep -o "DATABASE is set" + + env: + SECRET_KEY: ${{ secrets.SECRET_KEY }} + DJANGO_GOOGLE_OAUTH2_CLIENT_ID: ${{ secrets.DJANGO_GOOGLE_OAUTH2_CLIENT_ID }} + DJANGO_GOOGLE_OAUTH2_CLIENT_SECRET: ${{ secrets.DJANGO_GOOGLE_OAUTH2_CLIENT_SECRET }} + DJANGO_ORCID_OAUTH2_CLIENT_URL: ${{ secrets.DJANGO_ORCID_OAUTH2_CLIENT_URL }} + DJANGO_ORCID_OAUTH2_CLIENT_ID: ${{ secrets.DJANGO_ORCID_OAUTH2_CLIENT_ID }} + DJANGO_ORCID_OAUTH2_CLIENT_SECRET: ${{ secrets.DJANGO_ORCID_OAUTH2_CLIENT_SECRET }} + DJANGO_ORCID_OAUTH2_URL: ${{ secrets.DJANGO_ORCID_OAUTH2_URL }} + SERVER_VERSION: ${{ secrets.SERVER_VERSION }} + SERVER_URL: ${{ secrets.SERVER_URL }} + DATABASE: ${{ secrets.DATABASE }} + + - name: Run Tests env: SECRET_KEY: ${{ secrets.SECRET_KEY }} From 313b7d75f35dd276e8ff0f2723afcf84b90f81bd Mon Sep 17 00:00:00 2001 From: Reeya Gupta Date: Mon, 8 Jul 2024 08:20:50 -0400 Subject: [PATCH 02/18] Updated YAML file for secret debugging --- .github/workflows/django.yml | 2 ++ client/.env.example | 23 +++++++++++++++-------- server/portaluserdb/settings.py | 1 + 3 files changed, 18 insertions(+), 8 deletions(-) diff --git a/.github/workflows/django.yml b/.github/workflows/django.yml index ceb6f8ed..2c3cf566 100644 --- a/.github/workflows/django.yml +++ b/.github/workflows/django.yml @@ -55,6 +55,7 @@ jobs: SERVER_VERSION: ${{ secrets.SERVER_VERSION }} SERVER_URL: ${{ secrets.SERVER_URL }} DATABASE: ${{ secrets.DATABASE }} + EMAIL_BACKEND: ${{ secrets.EMAIL_BACKEND }} - name: Run Tests @@ -69,6 +70,7 @@ jobs: SERVER_VERSION: ${{ secrets.SERVER_VERSION }} SERVER_URL: ${{ secrets.SERVER_URL }} DATABASE: ${{ secrets.DATABASE }} + EMAIL_BACKEND: ${{ secrets.EMAIL_BACKEND }} run: | cd server # Change to the subdirectory diff --git a/client/.env.example b/client/.env.example index 9617d484..d45ba2fd 100644 --- a/client/.env.example +++ b/client/.env.example @@ -1,8 +1,15 @@ -REACT_APP_USERDB_URL= -REACT_APP_BCOAPI_URL= -REACT_APP_GOOGLE_CLIENT_ID= -REACT_APP_ORCID_URL= -REACT_APP_ORCID_CLIENT_ID= -REACT_APP_ORCID_CLIENT_SECRET= -REACT_APP_SERVER_URL= -REACT_APP_BCOAPI_TOKEN= \ No newline at end of file +REACT_APP_USERDB_URL=http://localhost:8080/users/ + +REACT_APP_BCOAPI_URL=http://127.0.0.1:8000/api/ + +REACT_APP_GOOGLE_CLIENT_ID=404409424650-a1hh4j6m9r3998v16siia2lum9un21ip.apps.googleusercontent.com + +REACT_APP_ORCID_URL=https://sandbox.orcid.org + +REACT_APP_ORCID_CLIENT_ID=APP-88DEA42BRILGEHKC + +REACT_APP_ORCID_CLIENT_SECRET=1d14318a-68ce-40a4-9805-60ae58fdd841 + +REACT_APP_SERVER_URL=http://localhost:3000 + +REACT_APP_BCOAPI_TOKEN=627626823549f787c3ec763ff687169206626149 \ No newline at end of file diff --git a/server/portaluserdb/settings.py b/server/portaluserdb/settings.py index 70e16f06..71507057 100644 --- a/server/portaluserdb/settings.py +++ b/server/portaluserdb/settings.py @@ -38,6 +38,7 @@ "SERVER_VERSION": os.environ.get("SERVER_VERSION"), "SERVER_URL": os.environ.get("SERVER_URL"), "DATABASE": os.environ.get("DATABASE"), + "EMAIL_BACKEND": os.getenv("EMAIL_BACKEND"), }, } if secrets["DJANGO_KEYS"]["SECRET_KEY"] == None: From 788b60ceaf871afe05165fc5f710cafc862ccacd Mon Sep 17 00:00:00 2001 From: Reeya Gupta Date: Tue, 9 Jul 2024 08:08:43 -0400 Subject: [PATCH 03/18] Updated debug secrets test --- .github/workflows/django.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/django.yml b/.github/workflows/django.yml index 2c3cf566..a76b90f3 100644 --- a/.github/workflows/django.yml +++ b/.github/workflows/django.yml @@ -43,6 +43,7 @@ jobs: echo "SERVER_VERSION is set: ${{ secrets.SERVER_VERSION }}" | grep -o "SERVER_VERSION is set" echo "SERVER_URL is set: ${{ secrets.SERVER_URL }}" | grep -o "SERVER_URL is set" echo "DATABASE is set: ${{ secrets.DATABASE }}" | grep -o "DATABASE is set" + echo "EMAIL_BACKEND is set: ${{ secrets.EMAIL_BACKEND }}" | grep -o "EMAIL_BACKEND is set" env: SECRET_KEY: ${{ secrets.SECRET_KEY }} From 1b8fccf1e5477543ff7c3f42f2ef1b3ca29d3378 Mon Sep 17 00:00:00 2001 From: Reeya Gupta Date: Tue, 9 Jul 2024 08:22:22 -0400 Subject: [PATCH 04/18] updated settings.py --- server/portaluserdb/settings.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/portaluserdb/settings.py b/server/portaluserdb/settings.py index 71507057..25eff94c 100644 --- a/server/portaluserdb/settings.py +++ b/server/portaluserdb/settings.py @@ -38,7 +38,7 @@ "SERVER_VERSION": os.environ.get("SERVER_VERSION"), "SERVER_URL": os.environ.get("SERVER_URL"), "DATABASE": os.environ.get("DATABASE"), - "EMAIL_BACKEND": os.getenv("EMAIL_BACKEND"), + "EMAIL_BACKEND": os.environ.getenv("EMAIL_BACKEND"), }, } if secrets["DJANGO_KEYS"]["SECRET_KEY"] == None: From a0ee33128e3e90728e9804c49981379020177c97 Mon Sep 17 00:00:00 2001 From: Reeya Gupta Date: Tue, 9 Jul 2024 08:25:38 -0400 Subject: [PATCH 05/18] updated settings.py --- .gitignore | 1 + server/portaluserdb/settings.py | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 2824d53b..cbbde809 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ client/build/ client/node_modules/* client/.env +client/.env.example client/prov-domain-formik/* *.DS_Store* server/env/* diff --git a/server/portaluserdb/settings.py b/server/portaluserdb/settings.py index 25eff94c..bbb7395e 100644 --- a/server/portaluserdb/settings.py +++ b/server/portaluserdb/settings.py @@ -38,7 +38,7 @@ "SERVER_VERSION": os.environ.get("SERVER_VERSION"), "SERVER_URL": os.environ.get("SERVER_URL"), "DATABASE": os.environ.get("DATABASE"), - "EMAIL_BACKEND": os.environ.getenv("EMAIL_BACKEND"), + "EMAIL_BACKEND": os.environ.get("EMAIL_BACKEND"), }, } if secrets["DJANGO_KEYS"]["SECRET_KEY"] == None: From 51aad205392bd528719ee3922b807c15dd577a64 Mon Sep 17 00:00:00 2001 From: Reeya Gupta Date: Tue, 9 Jul 2024 08:28:56 -0400 Subject: [PATCH 06/18] updated settings.py --- server/portaluserdb/settings.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/server/portaluserdb/settings.py b/server/portaluserdb/settings.py index bbb7395e..f522b2c9 100644 --- a/server/portaluserdb/settings.py +++ b/server/portaluserdb/settings.py @@ -69,7 +69,10 @@ if secrets["GOOGLE_KEYS"]["DJANGO_GOOGLE_OAUTH2_CLIENT_SECRET"]: GOOGLE_SECRET = secrets["GOOGLE_KEYS"]["DJANGO_GOOGLE_OAUTH2_CLIENT_SECRET"] -EMAIL_BACKEND = secrets["SERVER"]["EMAIL_BACKEND"] +try: + EMAIL_BACKEND = secrets["SERVER"]["EMAIL_BACKEND"] +except KeyError: + raise KeyError("EMAIL_BACKEND not found in secrets") # SECURITY WARNING: don't run with debug turned on in production! DEBUG = True From c7d4e140d6f9d3a5a4149e4779cf1c6ff8dfc759 Mon Sep 17 00:00:00 2001 From: Reeya Gupta Date: Tue, 9 Jul 2024 08:30:30 -0400 Subject: [PATCH 07/18] updated settings.py --- .gitignore | 1 - client/.env.example | 23 ++++++++--------------- 2 files changed, 8 insertions(+), 16 deletions(-) diff --git a/.gitignore b/.gitignore index cbbde809..2824d53b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,6 @@ client/build/ client/node_modules/* client/.env -client/.env.example client/prov-domain-formik/* *.DS_Store* server/env/* diff --git a/client/.env.example b/client/.env.example index d45ba2fd..b0ac11d0 100644 --- a/client/.env.example +++ b/client/.env.example @@ -1,15 +1,8 @@ -REACT_APP_USERDB_URL=http://localhost:8080/users/ - -REACT_APP_BCOAPI_URL=http://127.0.0.1:8000/api/ - -REACT_APP_GOOGLE_CLIENT_ID=404409424650-a1hh4j6m9r3998v16siia2lum9un21ip.apps.googleusercontent.com - -REACT_APP_ORCID_URL=https://sandbox.orcid.org - -REACT_APP_ORCID_CLIENT_ID=APP-88DEA42BRILGEHKC - -REACT_APP_ORCID_CLIENT_SECRET=1d14318a-68ce-40a4-9805-60ae58fdd841 - -REACT_APP_SERVER_URL=http://localhost:3000 - -REACT_APP_BCOAPI_TOKEN=627626823549f787c3ec763ff687169206626149 \ No newline at end of file +REACT_APP_USERDB_URL= +REACT_APP_BCOAPI_URL= +REACT_APP_GOOGLE_CLIENT_ID= +REACT_APP_ORCID_URL= +REACT_APP_ORCID_CLIENT_ID= +REACT_APP_ORCID_CLIENT_SECRET= +REACT_APP_SERVER_URL= +REACT_APP_BCOAPI_TOKEN= From 55839a7ce21710260c76445e0b83d8fcc3622a52 Mon Sep 17 00:00:00 2001 From: Reeya Gupta Date: Tue, 9 Jul 2024 08:44:06 -0400 Subject: [PATCH 08/18] updated settings.py --- .github/workflows/django.yml | 1 + server/portaluserdb/settings.py | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/.github/workflows/django.yml b/.github/workflows/django.yml index a76b90f3..fd400a9f 100644 --- a/.github/workflows/django.yml +++ b/.github/workflows/django.yml @@ -25,6 +25,7 @@ jobs: run: | ls -R server # List all files and directories recursively cat server/requirements.txt # Print the contents of the requirements file + print env - name: Install Dependencies run: | diff --git a/server/portaluserdb/settings.py b/server/portaluserdb/settings.py index f522b2c9..50b52736 100644 --- a/server/portaluserdb/settings.py +++ b/server/portaluserdb/settings.py @@ -7,6 +7,11 @@ from datetime import timedelta import configparser from django.core.management.utils import get_random_secret_key +import logging #log the entire secrets dictionary to debug + +logging.basicConfig(level=logging.INFO) +logger = logging.getLogger(__name__) + # Build paths inside the project like this: BASE_DIR / 'subdir'. BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) @@ -74,6 +79,8 @@ except KeyError: raise KeyError("EMAIL_BACKEND not found in secrets") + +logger.info(f"Secrets loaded: {secrets}") # SECURITY WARNING: don't run with debug turned on in production! DEBUG = True From 894e9a52de058f022da027b181b0ad222d213476 Mon Sep 17 00:00:00 2001 From: Reeya Gupta Date: Tue, 9 Jul 2024 08:45:55 -0400 Subject: [PATCH 09/18] updated settings.py --- .github/workflows/django.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/django.yml b/.github/workflows/django.yml index fd400a9f..0d5fb9da 100644 --- a/.github/workflows/django.yml +++ b/.github/workflows/django.yml @@ -25,7 +25,7 @@ jobs: run: | ls -R server # List all files and directories recursively cat server/requirements.txt # Print the contents of the requirements file - print env + - name: Install Dependencies run: | From e094178d96da8689722bdef3d714c794e486bb99 Mon Sep 17 00:00:00 2001 From: Reeya Gupta Date: Tue, 9 Jul 2024 09:07:07 -0400 Subject: [PATCH 10/18] updated settings.py --- server/portaluserdb/settings.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/portaluserdb/settings.py b/server/portaluserdb/settings.py index 50b52736..03c5d518 100644 --- a/server/portaluserdb/settings.py +++ b/server/portaluserdb/settings.py @@ -43,7 +43,7 @@ "SERVER_VERSION": os.environ.get("SERVER_VERSION"), "SERVER_URL": os.environ.get("SERVER_URL"), "DATABASE": os.environ.get("DATABASE"), - "EMAIL_BACKEND": os.environ.get("EMAIL_BACKEND"), + "EMAIL_BACKEND": os.environ.get("EMAIL_BACKEND", "django.core.mail.backends.console.EmailBackend"), }, } if secrets["DJANGO_KEYS"]["SECRET_KEY"] == None: From 4e38ce768234b4bc45eb50a33d099f6609700e6b Mon Sep 17 00:00:00 2001 From: Reeya Gupta Date: Tue, 9 Jul 2024 09:10:22 -0400 Subject: [PATCH 11/18] updated settings.py --- .github/workflows/django.yml | 2 +- server/portaluserdb/settings.py | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/django.yml b/.github/workflows/django.yml index 0d5fb9da..2de236a1 100644 --- a/.github/workflows/django.yml +++ b/.github/workflows/django.yml @@ -25,7 +25,7 @@ jobs: run: | ls -R server # List all files and directories recursively cat server/requirements.txt # Print the contents of the requirements file - + printenv - name: Install Dependencies run: | diff --git a/server/portaluserdb/settings.py b/server/portaluserdb/settings.py index 03c5d518..300b02bc 100644 --- a/server/portaluserdb/settings.py +++ b/server/portaluserdb/settings.py @@ -81,6 +81,8 @@ logger.info(f"Secrets loaded: {secrets}") +# Use print statements for debugging +print(f"Secrets: {secrets}") # SECURITY WARNING: don't run with debug turned on in production! DEBUG = True From 52f5bf2cb387369035729fb7533027b4826b97bb Mon Sep 17 00:00:00 2001 From: Reeya Gupta Date: Tue, 9 Jul 2024 09:21:33 -0400 Subject: [PATCH 12/18] updated settings.py --- server/portaluserdb/settings.py | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/server/portaluserdb/settings.py b/server/portaluserdb/settings.py index 300b02bc..fc864af4 100644 --- a/server/portaluserdb/settings.py +++ b/server/portaluserdb/settings.py @@ -7,10 +7,7 @@ from datetime import timedelta import configparser from django.core.management.utils import get_random_secret_key -import logging #log the entire secrets dictionary to debug -logging.basicConfig(level=logging.INFO) -logger = logging.getLogger(__name__) # Build paths inside the project like this: BASE_DIR / 'subdir'. @@ -73,14 +70,15 @@ GOOGLE_CLIENT = secrets["GOOGLE_KEYS"]["DJANGO_GOOGLE_OAUTH2_CLIENT_ID"] if secrets["GOOGLE_KEYS"]["DJANGO_GOOGLE_OAUTH2_CLIENT_SECRET"]: GOOGLE_SECRET = secrets["GOOGLE_KEYS"]["DJANGO_GOOGLE_OAUTH2_CLIENT_SECRET"] - +if secrets["SERVER"]["EMAIL_BACKEND"]: + EMAIL_BACKEND = secrets["SERVER"]["EMAIL_BACKEND"] try: EMAIL_BACKEND = secrets["SERVER"]["EMAIL_BACKEND"] except KeyError: raise KeyError("EMAIL_BACKEND not found in secrets") -logger.info(f"Secrets loaded: {secrets}") + # Use print statements for debugging print(f"Secrets: {secrets}") # SECURITY WARNING: don't run with debug turned on in production! From bc2f2f065ead3cd582dbb459696acf0cf10443d8 Mon Sep 17 00:00:00 2001 From: Reeya Gupta Date: Fri, 12 Jul 2024 09:44:45 -0400 Subject: [PATCH 13/18] append echo in seperate text file --- .github/workflows/django.yml | 60 +++++++++++++++--------------------- 1 file changed, 25 insertions(+), 35 deletions(-) diff --git a/.github/workflows/django.yml b/.github/workflows/django.yml index 2de236a1..0eceda78 100644 --- a/.github/workflows/django.yml +++ b/.github/workflows/django.yml @@ -21,31 +21,30 @@ jobs: uses: actions/setup-python@v3 with: python-version: ${{ matrix.python-version }} - - name: Debugging Step + - name: Create secrets file run: | - ls -R server # List all files and directories recursively - cat server/requirements.txt # Print the contents of the requirements file - printenv - + echo "SECRET_KEY=${{ secrets.SECRET_KEY }}" >> .env + echo "DJANGO_GOOGLE_OAUTH2_CLIENT_ID=${{ secrets.DJANGO_GOOGLE_OAUTH2_CLIENT_ID }}" >> .env + echo "DJANGO_GOOGLE_OAUTH2_CLIENT_SECRET=${{ secrets.DJANGO_GOOGLE_OAUTH2_CLIENT_SECRET }}" >> .env + echo "DJANGO_ORCID_OAUTH2_CLIENT_URL=${{ secrets.DJANGO_ORCID_OAUTH2_CLIENT_URL }}" >> .env + echo "DJANGO_ORCID_OAUTH2_CLIENT_ID=${{ secrets.DJANGO_ORCID_OAUTH2_CLIENT_ID }}" >> .env + echo "DJANGO_ORCID_OAUTH2_CLIENT_SECRET=${{ secrets.DJANGO_ORCID_OAUTH2_CLIENT_SECRET }}" >> .env + echo "DJANGO_ORCID_OAUTH2_URL=${{ secrets.DJANGO_ORCID_OAUTH2_URL }}" >> .env + echo "SERVER_VERSION=${{ secrets.SERVER_VERSION }}" >> .env + echo "SERVER_URL=${{ secrets.SERVER_URL }}" >> .env + echo "DATABASE=${{ secrets.DATABASE }}" >> .env + echo "EMAIL_BACKEND=${{ secrets.EMAIL_BACKEND }}" >> .env + + - name: Debug Secrets + run: | + cat .env + - name: Install Dependencies run: | python -m pip install --upgrade pip pip install -r server/requirements.txt - - name: Debug Secrets - run: | - echo "SECRET_KEY is set: ${{ secrets.SECRET_KEY }}" | grep -o "SECRET_KEY is set" - echo "DJANGO_GOOGLE_OAUTH2_CLIENT_ID is set: ${{ secrets.DJANGO_GOOGLE_OAUTH2_CLIENT_ID }}" | grep -o "DJANGO_GOOGLE_OAUTH2_CLIENT_ID is set" - echo "DJANGO_GOOGLE_OAUTH2_CLIENT_SECRET is set: ${{ secrets.DJANGO_GOOGLE_OAUTH2_CLIENT_SECRET }}" | grep -o "DJANGO_GOOGLE_OAUTH2_CLIENT_SECRET is set" - echo "DJANGO_ORCID_OAUTH2_CLIENT_URL is set: ${{ secrets.DJANGO_ORCID_OAUTH2_CLIENT_URL }}" | grep -o "DJANGO_ORCID_OAUTH2_CLIENT_URL is set" - echo "DJANGO_ORCID_OAUTH2_CLIENT_ID is set: ${{ secrets.DJANGO_ORCID_OAUTH2_CLIENT_ID }}" | grep -o "DJANGO_ORCID_OAUTH2_CLIENT_ID is set" - echo "DJANGO_ORCID_OAUTH2_CLIENT_SECRET is set: ${{ secrets.DJANGO_ORCID_OAUTH2_CLIENT_SECRET }}" | grep -o "DJANGO_ORCID_OAUTH2_CLIENT_SECRET is set" - echo "DJANGO_ORCID_OAUTH2_URL is set: ${{ secrets.DJANGO_ORCID_OAUTH2_URL }}" | grep -o "DJANGO_ORCID_OAUTH2_URL is set" - echo "SERVER_VERSION is set: ${{ secrets.SERVER_VERSION }}" | grep -o "SERVER_VERSION is set" - echo "SERVER_URL is set: ${{ secrets.SERVER_URL }}" | grep -o "SERVER_URL is set" - echo "DATABASE is set: ${{ secrets.DATABASE }}" | grep -o "DATABASE is set" - echo "EMAIL_BACKEND is set: ${{ secrets.EMAIL_BACKEND }}" | grep -o "EMAIL_BACKEND is set" - + - name: Run Tests env: SECRET_KEY: ${{ secrets.SECRET_KEY }} DJANGO_GOOGLE_OAUTH2_CLIENT_ID: ${{ secrets.DJANGO_GOOGLE_OAUTH2_CLIENT_ID }} @@ -58,22 +57,13 @@ jobs: SERVER_URL: ${{ secrets.SERVER_URL }} DATABASE: ${{ secrets.DATABASE }} EMAIL_BACKEND: ${{ secrets.EMAIL_BACKEND }} - - - - name: Run Tests - env: - SECRET_KEY: ${{ secrets.SECRET_KEY }} - DJANGO_GOOGLE_OAUTH2_CLIENT_ID: ${{ secrets.DJANGO_GOOGLE_OAUTH2_CLIENT_ID }} - DJANGO_GOOGLE_OAUTH2_CLIENT_SECRET: ${{ secrets.DJANGO_GOOGLE_OAUTH2_CLIENT_SECRET }} - DJANGO_ORCID_OAUTH2_CLIENT_URL: ${{ secrets.DJANGO_ORCID_OAUTH2_CLIENT_URL }} - DJANGO_ORCID_OAUTH2_CLIENT_ID: ${{ secrets.DJANGO_ORCID_OAUTH2_CLIENT_ID }} - DJANGO_ORCID_OAUTH2_CLIENT_SECRET: ${{ secrets.DJANGO_ORCID_OAUTH2_CLIENT_SECRET }} - DJANGO_ORCID_OAUTH2_URL: ${{ secrets.DJANGO_ORCID_OAUTH2_URL }} - SERVER_VERSION: ${{ secrets.SERVER_VERSION }} - SERVER_URL: ${{ secrets.SERVER_URL }} - DATABASE: ${{ secrets.DATABASE }} - EMAIL_BACKEND: ${{ secrets.EMAIL_BACKEND }} - run: | cd server # Change to the subdirectory + cp ../.env . # Copy the .env file to the server directory python3.9 manage.py test + + - name: Clean up + run: | + rm .env + + From 8658c85519658f73459b0e8f18861522f4e2f562 Mon Sep 17 00:00:00 2001 From: Reeya Gupta Date: Fri, 12 Jul 2024 09:56:56 -0400 Subject: [PATCH 14/18] updated yaml file --- .github/workflows/django.yml | 34 +++++++++++++++++++-------------- server/portaluserdb/settings.py | 3 +++ 2 files changed, 23 insertions(+), 14 deletions(-) diff --git a/.github/workflows/django.yml b/.github/workflows/django.yml index 0eceda78..7a744f98 100644 --- a/.github/workflows/django.yml +++ b/.github/workflows/django.yml @@ -23,21 +23,27 @@ jobs: python-version: ${{ matrix.python-version }} - name: Create secrets file run: | - echo "SECRET_KEY=${{ secrets.SECRET_KEY }}" >> .env - echo "DJANGO_GOOGLE_OAUTH2_CLIENT_ID=${{ secrets.DJANGO_GOOGLE_OAUTH2_CLIENT_ID }}" >> .env - echo "DJANGO_GOOGLE_OAUTH2_CLIENT_SECRET=${{ secrets.DJANGO_GOOGLE_OAUTH2_CLIENT_SECRET }}" >> .env - echo "DJANGO_ORCID_OAUTH2_CLIENT_URL=${{ secrets.DJANGO_ORCID_OAUTH2_CLIENT_URL }}" >> .env - echo "DJANGO_ORCID_OAUTH2_CLIENT_ID=${{ secrets.DJANGO_ORCID_OAUTH2_CLIENT_ID }}" >> .env - echo "DJANGO_ORCID_OAUTH2_CLIENT_SECRET=${{ secrets.DJANGO_ORCID_OAUTH2_CLIENT_SECRET }}" >> .env - echo "DJANGO_ORCID_OAUTH2_URL=${{ secrets.DJANGO_ORCID_OAUTH2_URL }}" >> .env - echo "SERVER_VERSION=${{ secrets.SERVER_VERSION }}" >> .env - echo "SERVER_URL=${{ secrets.SERVER_URL }}" >> .env - echo "DATABASE=${{ secrets.DATABASE }}" >> .env - echo "EMAIL_BACKEND=${{ secrets.EMAIL_BACKEND }}" >> .env + echo "SECRET_KEY=${{ secrets.SECRET_KEY }}" >> server/.env + echo "DJANGO_GOOGLE_OAUTH2_CLIENT_ID=${{ secrets.DJANGO_GOOGLE_OAUTH2_CLIENT_ID }}" >> server/.env + echo "DJANGO_GOOGLE_OAUTH2_CLIENT_SECRET=${{ secrets.DJANGO_GOOGLE_OAUTH2_CLIENT_SECRET }}" >> server/.env + echo "DJANGO_ORCID_OAUTH2_CLIENT_URL=${{ secrets.DJANGO_ORCID_OAUTH2_CLIENT_URL }}" >> server/.env + echo "DJANGO_ORCID_OAUTH2_CLIENT_ID=${{ secrets.DJANGO_ORCID_OAUTH2_CLIENT_ID }}" >> server/.env + echo "DJANGO_ORCID_OAUTH2_CLIENT_SECRET=${{ secrets.DJANGO_ORCID_OAUTH2_CLIENT_SECRET }}" >> server/.env + echo "DJANGO_ORCID_OAUTH2_URL=${{ secrets.DJANGO_ORCID_OAUTH2_URL }}" >> server/.env + echo "SERVER_VERSION=${{ secrets.SERVER_VERSION }}" >> server/.env + echo "SERVER_URL=${{ secrets.SERVER_URL }}" >> server/.env + echo "DATABASE=${{ secrets.DATABASE }}" >> server/.env + echo "EMAIL_BACKEND=${{ secrets.EMAIL_BACKEND }}" >> server/.env - name: Debug Secrets run: | - cat .env + cat server/.env + + + - name: Export Environment Variables + run: | + export $(cat server/.env | xargs) + shell: bash - name: Install Dependencies run: | @@ -59,11 +65,11 @@ jobs: EMAIL_BACKEND: ${{ secrets.EMAIL_BACKEND }} run: | cd server # Change to the subdirectory - cp ../.env . # Copy the .env file to the server directory + python3.9 manage.py test - name: Clean up run: | - rm .env + rm server/.env diff --git a/server/portaluserdb/settings.py b/server/portaluserdb/settings.py index fc864af4..39d773c6 100644 --- a/server/portaluserdb/settings.py +++ b/server/portaluserdb/settings.py @@ -41,6 +41,7 @@ "SERVER_URL": os.environ.get("SERVER_URL"), "DATABASE": os.environ.get("DATABASE"), "EMAIL_BACKEND": os.environ.get("EMAIL_BACKEND", "django.core.mail.backends.console.EmailBackend"), + }, } if secrets["DJANGO_KEYS"]["SECRET_KEY"] == None: @@ -81,6 +82,8 @@ # Use print statements for debugging print(f"Secrets: {secrets}") +print(f"EMAIL_BACKEND: {EMAIL_BACKEND}") + # SECURITY WARNING: don't run with debug turned on in production! DEBUG = True From 76fd9514757aa4f31db8717a779451c3ba9cf6da Mon Sep 17 00:00:00 2001 From: Reeya Gupta Date: Tue, 16 Jul 2024 02:24:55 -0400 Subject: [PATCH 15/18] updated yaml file --- .github/workflows/django.yml | 19 +++---------------- 1 file changed, 3 insertions(+), 16 deletions(-) diff --git a/.github/workflows/django.yml b/.github/workflows/django.yml index 7a744f98..399cbf09 100644 --- a/.github/workflows/django.yml +++ b/.github/workflows/django.yml @@ -13,14 +13,17 @@ jobs: max-parallel: 4 matrix: python-version: [3.9] + environment: Testing # Specify the environment here steps: - name: Checkout code uses: actions/checkout@v3 + - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v3 with: python-version: ${{ matrix.python-version }} + - name: Create secrets file run: | echo "SECRET_KEY=${{ secrets.SECRET_KEY }}" >> server/.env @@ -39,7 +42,6 @@ jobs: run: | cat server/.env - - name: Export Environment Variables run: | export $(cat server/.env | xargs) @@ -51,25 +53,10 @@ jobs: pip install -r server/requirements.txt - name: Run Tests - env: - SECRET_KEY: ${{ secrets.SECRET_KEY }} - DJANGO_GOOGLE_OAUTH2_CLIENT_ID: ${{ secrets.DJANGO_GOOGLE_OAUTH2_CLIENT_ID }} - DJANGO_GOOGLE_OAUTH2_CLIENT_SECRET: ${{ secrets.DJANGO_GOOGLE_OAUTH2_CLIENT_SECRET }} - DJANGO_ORCID_OAUTH2_CLIENT_URL: ${{ secrets.DJANGO_ORCID_OAUTH2_CLIENT_URL }} - DJANGO_ORCID_OAUTH2_CLIENT_ID: ${{ secrets.DJANGO_ORCID_OAUTH2_CLIENT_ID }} - DJANGO_ORCID_OAUTH2_CLIENT_SECRET: ${{ secrets.DJANGO_ORCID_OAUTH2_CLIENT_SECRET }} - DJANGO_ORCID_OAUTH2_URL: ${{ secrets.DJANGO_ORCID_OAUTH2_URL }} - SERVER_VERSION: ${{ secrets.SERVER_VERSION }} - SERVER_URL: ${{ secrets.SERVER_URL }} - DATABASE: ${{ secrets.DATABASE }} - EMAIL_BACKEND: ${{ secrets.EMAIL_BACKEND }} run: | cd server # Change to the subdirectory - python3.9 manage.py test - name: Clean up run: | rm server/.env - - From 53ede5efd60bd6d3c93655b611a0720c408975e5 Mon Sep 17 00:00:00 2001 From: Reeya Gupta Date: Mon, 22 Jul 2024 21:25:05 -0400 Subject: [PATCH 16/18] change django file --- .github/workflows/django.yml | 4 +++- server/config/settings.py | 6 ++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/.github/workflows/django.yml b/.github/workflows/django.yml index 399cbf09..b911b5e0 100644 --- a/.github/workflows/django.yml +++ b/.github/workflows/django.yml @@ -44,7 +44,9 @@ jobs: - name: Export Environment Variables run: | - export $(cat server/.env | xargs) + set -a + source server/.env + set +a shell: bash - name: Install Dependencies diff --git a/server/config/settings.py b/server/config/settings.py index 567561b5..a3baa2d6 100644 --- a/server/config/settings.py +++ b/server/config/settings.py @@ -40,6 +40,12 @@ "DATABASE": os.environ.get("DATABASE"), }, } + +# Handle cases where the environment variables are not set +for key, value in secrets.items(): + if value is None: + secrets[key] = {} + if secrets["DJANGO_KEYS"]["SECRET_KEY"] == None: secrets = configparser.ConfigParser() secrets.read(BASE_DIR + "/.secrets") From 76e5a1771fef535fd862a42fa8104bf45ea26489 Mon Sep 17 00:00:00 2001 From: Reeya Gupta Date: Mon, 22 Jul 2024 21:39:01 -0400 Subject: [PATCH 17/18] change django file --- .github/workflows/django.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/django.yml b/.github/workflows/django.yml index b911b5e0..98acd67d 100644 --- a/.github/workflows/django.yml +++ b/.github/workflows/django.yml @@ -26,6 +26,7 @@ jobs: - name: Create secrets file run: | + echo "::add-mask::${{ secrets.SECRET_KEY }}" echo "SECRET_KEY=${{ secrets.SECRET_KEY }}" >> server/.env echo "DJANGO_GOOGLE_OAUTH2_CLIENT_ID=${{ secrets.DJANGO_GOOGLE_OAUTH2_CLIENT_ID }}" >> server/.env echo "DJANGO_GOOGLE_OAUTH2_CLIENT_SECRET=${{ secrets.DJANGO_GOOGLE_OAUTH2_CLIENT_SECRET }}" >> server/.env From f6852dad53eb62ef4ea40a3c2f4faa565e67c228 Mon Sep 17 00:00:00 2001 From: Reeya Gupta Date: Mon, 22 Jul 2024 21:51:05 -0400 Subject: [PATCH 18/18] change django file --- .github/workflows/django.yml | 15 ++++++++++++++- server/config/settings.py | 3 +++ server/requirements.txt | 1 + 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/.github/workflows/django.yml b/.github/workflows/django.yml index 98acd67d..a28d4373 100644 --- a/.github/workflows/django.yml +++ b/.github/workflows/django.yml @@ -59,7 +59,20 @@ jobs: run: | cd server # Change to the subdirectory python3.9 manage.py test - + + env: + SECRET_KEY: ${{ secrets.SECRET_KEY }} + DJANGO_GOOGLE_OAUTH2_CLIENT_ID: ${{ secrets.DJANGO_GOOGLE_OAUTH2_CLIENT_ID }} + DJANGO_GOOGLE_OAUTH2_CLIENT_SECRET: ${{ secrets.DJANGO_GOOGLE_OAUTH2_CLIENT_SECRET }} + DJANGO_ORCID_OAUTH2_CLIENT_URL: ${{ secrets.DJANGO_ORCID_OAUTH2_CLIENT_URL }} + DJANGO_ORCID_OAUTH2_CLIENT_ID: ${{ secrets.DJANGO_ORCID_OAUTH2_CLIENT_ID }} + DJANGO_ORCID_OAUTH2_CLIENT_SECRET: ${{ secrets.DJANGO_ORCID_OAUTH2_CLIENT_SECRET }} + DJANGO_ORCID_OAUTH2_URL: ${{ secrets.DJANGO_ORCID_OAUTH2_URL }} + SERVER_VERSION: ${{ secrets.SERVER_VERSION }} + SERVER_URL: ${{ secrets.SERVER_URL }} + DATABASE: ${{ secrets.DATABASE }} + EMAIL_BACKEND: ${{ secrets.EMAIL_BACKEND }} + - name: Clean up run: | rm server/.env diff --git a/server/config/settings.py b/server/config/settings.py index a3baa2d6..d0674a2f 100644 --- a/server/config/settings.py +++ b/server/config/settings.py @@ -7,7 +7,10 @@ from datetime import timedelta import configparser from django.core.management.utils import get_random_secret_key +from dotenv import load_dotenv +# Load environment variables from .env file +load_dotenv() # Build paths inside the project like this: BASE_DIR / 'subdir'. BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) diff --git a/server/requirements.txt b/server/requirements.txt index 3fb8dbfd..228e75ad 100644 --- a/server/requirements.txt +++ b/server/requirements.txt @@ -43,3 +43,4 @@ typing_extensions==4.5.0 tzdata==2023.3 uritemplate==4.1.1 urllib3==1.26.1 +python-dotenv \ No newline at end of file