Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
97 commits
Select commit Hold shift + click to select a range
931420d
Updated version number to 1.3.0 and added changelog file for 1.3.0, t…
downiec Nov 19, 2024
e6b309f
Staticbuild v1.3.0 update (#690)
downiec Jan 16, 2025
e9cc9ae
Fixed some linting errors related to unused imports
downiec Jan 16, 2025
f2fcf4d
Some minor modifications to the pre-commit files, including removing …
downiec Jan 16, 2025
3b6e1d1
Fix broken link in Globus transfer panel (#719)
bstrdsmkr Jan 22, 2025
031d80d
V1.3.0 additional fixes (#721)
downiec Jan 27, 2025
549f1f9
Dark mode (#718)
bstrdsmkr Jan 28, 2025
aa33ccc
Merge remote-tracking branch 'origin/master' into v1.3.0-release
downiec Jan 29, 2025
d581b83
Custom footer (#727)
downiec Jan 29, 2025
786785a
V1.3.1 release
downiec Jan 29, 2025
0b34d88
Traefik for prod (#734)
bstrdsmkr Feb 10, 2025
69825a3
Helm deployment fixes (#735)
downiec Feb 15, 2025
aa20375
Minor fix that was missed for changing duplicate Originals and Replic…
downiec Feb 15, 2025
d3d0d5d
Initial commit for version 1.3.2. Includes a refactoring of how messa…
downiec Feb 19, 2025
c644ef2
Fixed minor issues with helm and wget downloads.
downiec Feb 19, 2025
3a1abe6
Updated management script to properly quit if tests fail. Updated do_…
downiec Feb 20, 2025
ca83511
Initial v1.3.3 release version update, includes changes to News displ…
downiec Feb 20, 2025
782c34a
Added a dev action that will automatically generate necessary changes…
downiec Feb 20, 2025
de1ea6d
Initial v1.3.4 commit includes fix for path updating to proper value.
downiec Feb 21, 2025
60ddee7
Fixed linting error, tests regard changes to path and added some extr…
downiec Feb 21, 2025
8fb9968
Fixed linting error, tests regard changes to path and added some extr…
downiec Feb 21, 2025
bb1b569
Updated the way paths are set so that an auth step is included if no …
downiec Feb 21, 2025
930d05a
Updated change log to include mention of how path set functionality w…
downiec Feb 21, 2025
25fd8ff
Add hash annotation to Deployments to ensure restart when config chan…
bstrdsmkr Feb 24, 2025
6fe3157
Removed unnecessary settings from the config helper.
downiec Feb 24, 2025
8ebdbaf
Updated app version number for the Helm chart, added step in updateVe…
downiec Feb 25, 2025
a10e494
Fixes helm & containers (#744)
jasonb5 Feb 27, 2025
bbe8565
Feature/v1.3.4 minor updates (#747)
downiec Feb 27, 2025
58fe923
V1.3.4 patch (#749)
downiec Mar 6, 2025
f35ed7e
Update version used in README.md for helm
downiec Mar 6, 2025
ab05132
Initial update to version numbers.
downiec Mar 6, 2025
e1e75eb
Improve cart items and selections synchronization (#752)
downiec Mar 11, 2025
d7c0662
Fixes the JSON buttons by updating the clickableRoute function (#757)
downiec Mar 13, 2025
618d5e1
Minor change to the docker-compose to hide internal ports to only wor…
downiec Mar 19, 2025
c7d26ee
Fix Helm Chart (#759)
jasonb5 Apr 1, 2025
f7885c2
App recoil refactoring (#760)
downiec Apr 2, 2025
7a71aee
Initial commit with incremented version.
downiec Apr 5, 2025
84325a0
Merge branch 'master' into v1.3.6-release
downiec Apr 11, 2025
2222e92
Migration to Jotai from Recoil (#765)
downiec Apr 11, 2025
f90a706
Added some tests and did some minor refactoring to increase coverage.…
downiec Apr 12, 2025
d2ae603
Fixed linter complaint
downiec Apr 12, 2025
a9a4242
Feature/sortable table columns (#767)
downiec Apr 12, 2025
66d2ed4
Changed version from 1.3.5 to 1.5.0
downiec Apr 30, 2025
5f6a086
Minor linter error fix.
downiec Apr 30, 2025
1965816
Update metagrid_messages.md
sashakames Apr 30, 2025
b53885f
Update metagrid_messages.md
sashakames Apr 30, 2025
19d9664
Update v1.5.0.md - on News
sashakames Apr 30, 2025
8357cf2
Bump vite from 6.0.7 to 6.1.6 in /frontend (#771)
dependabot[bot] May 1, 2025
14f484e
Update metagrid_messages.md
sashakames May 6, 2025
515cb17
Add a banner to top of page (#774)
downiec May 6, 2025
0552956
Feature/optional node status (#773)
downiec May 6, 2025
ae3cfb4
Remove E3SM project
sashakames May 6, 2025
6c71a9a
Initial commit changing references of v1.5.0 to v1.4.0.
downiec May 7, 2025
6316467
update message
sashakames May 9, 2025
469fc44
Feature/cached searches (#778)
downiec May 14, 2025
f3516d0
Feature/cached pagination (#779)
downiec May 15, 2025
5e46ab7
Updating the version number back to v1.5.0 and restored v1.5.0 news m…
downiec May 15, 2025
e94ea28
Incremented version number to v1.4.1 for small patch updates.
downiec May 15, 2025
8376bcf
verify=False as workaround for egress issue at LLNL (#782)
sashakames May 20, 2025
5940d5e
Fixes helm chart (#781)
jasonb5 May 20, 2025
5d39b03
Merge branch 'v1.4.0-beta' into v1.4.1-release
downiec May 20, 2025
d7c595d
Changelog and bugfix (#783)
downiec May 21, 2025
76571cc
Merge branch 'v1.4.1-release' of https://github.com/aims-group/metagr…
downiec May 21, 2025
ac571c7
Fixes triggers on PR's against master or push to master (#785)
jasonb5 May 21, 2025
36155e6
Minor pre-commit fix
downiec May 21, 2025
cc5e34e
Merge branch 'v1.4.1-release' of https://github.com/aims-group/metagr…
downiec May 21, 2025
a883ae3
Merged in latest v1.4.1-release branch
downiec May 21, 2025
34f8fcb
Updates to the metagrid_messages.
downiec May 21, 2025
029401b
Fix pre-commit
downiec May 21, 2025
789327f
Feature/storage update (#786)
downiec May 22, 2025
1db28cc
Initial commit with version increment.
downiec May 27, 2025
497a864
change facets list (#795)
sashakames Jun 4, 2025
4027066
Added error handling for failed fetch search results. (#791)
downiec Jun 5, 2025
f295f3f
Minor fix to pre-commit errors, update to changelog.
downiec Jun 5, 2025
bb1061c
Bugfix/globus multi file Globus download (#797)
downiec Jun 6, 2025
764552f
Reverted the changes made to handle the failed search results. There …
downiec Jun 14, 2025
55a4c00
Fixes disabling node status (#799)
jasonb5 Jun 18, 2025
6aa4972
Fixed some linting errors and incremented helm chart version
downiec Jun 18, 2025
70c7cca
Initial commit, version incremented.
downiec Jun 19, 2025
f69a017
V1.5.1 package updates (#776)
downiec Jun 19, 2025
434d134
Change the GET into a POST request for the search_files function used…
downiec Jun 19, 2025
4d181c4
Updated tests for backend changes.
downiec Jun 19, 2025
6d32038
Updated the Search Table to have a results limit of 10000, to avoid e…
downiec Jul 9, 2025
2e3aeb5
Update metagrid_messages.md - pyesgf message (#813)
sashakames Jul 9, 2025
0d19879
Feature/update to json link (#814)
downiec Jul 9, 2025
8c1f249
Initial commit with version incremented to v1.5.3.
downiec Jul 10, 2025
fb8d6d6
Updates to Globus to utilize backend for all Globus operations (#827)
downiec Aug 26, 2025
5607353
Update do_citation to support a whitelist of multiple domains (#838)
sashakames Sep 23, 2025
2546014
Feature/integrate esgpull (#837)
downiec Oct 6, 2025
08b9ef4
Merge branch 'master' into v1.5.3-release
downiec Oct 6, 2025
98f6958
Minor changes to fix precommit issues.
downiec Oct 6, 2025
dd805bb
Updated the backend.yml postgres to match the postgres version used i…
downiec Oct 6, 2025
2c72332
Testing helm workflow timeout increase to see if it is merely a timin…
downiec Oct 6, 2025
da7fe57
Reverting changes for postgres image version and timeout changes made…
downiec Oct 7, 2025
137aad1
Update initial_projects_data.py to change E3SM (#843)
sashakames Oct 7, 2025
03a67ae
Updates database (#854)
jasonb5 Nov 5, 2025
b627f24
Fix some issues with precommit and startup (#858)
downiec Nov 6, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/backend.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,20 +14,20 @@ env:
PGHOST: localhost
PGPASSWORD: postgres
PGUSER: postgres
DATABASE_URL: postgresql://postgres:postgres@localhost:5432/postgres
METAGRID_SEARCH_URL: https://esgf-node.llnl.gov/esg-search/search
METAGRID_WGET_URL: https://esgf-node.llnl.gov/esg-search/wget
METAGRID_STATUS_URL: https://esgf-node.llnl.gov/proxy/status
METAGRID_SOCIAL_AUTH_GLOBUS_KEY: ${{ secrets.GLOBUS_KEY }}
METAGRID_SOCIAL_AUTH_GLOBUS_SECRET: ${{ secrets.GLOBUS_SECRET }}
METAGRID_GLOBUS_CLIENT_ID: 21982de0-2b7a-4ba8-bef5-5606ae098201

jobs:
build:
runs-on: ubuntu-latest

services:
postgres:
image: postgres:12.6
image: postgres:16.10
env:
POSTGRES_PASSWORD: postgres
ports:
Expand Down
63 changes: 60 additions & 3 deletions .github/workflows/containers.yml
Original file line number Diff line number Diff line change
Expand Up @@ -77,11 +77,24 @@ jobs:
push: true
tags: ${{ steps.metadata.outputs.tags }}
labels: ${{ steps.metadata.outputs.labels }}
lint:
name: Lint
runs-on: ubuntu-latest
if: github.event_name == 'pull_request'
steps:
- uses: actions/checkout@v4
- uses: azure/[email protected]
- name: Chart | Lint
run: |
helm repo add bitnami https://charts.bitnami.com/bitnami
helm dep build helm/
helm lint helm/
test:
name: Test Helm Chart
runs-on: ubuntu-latest
needs: [frontend, backend]
if: github.event_name == 'pull_request'
continue-on-error: true
steps:
- uses: actions/checkout@v4
- name: Start minikube
Expand All @@ -93,13 +106,57 @@ jobs:
run: |
PR_NUMBER=$(echo ${GITHUB_REF} | awk -F'/' '{print $3}')

helm repo add bitnami https://charts.bitnami.com/bitnami
helm install test . \
--set frontend.image.tag=pr-${PR_NUMBER} \
--set backend.image.tag=pr-${PR_NUMBER} \
--wait

kubectl get pods
test-upgrade:
name: Test Helm Chart upgrade
runs-on: ubuntu-latest
needs: [frontend, backend]
if: github.event_name == 'pull_request'
continue-on-error: true
steps:
- uses: actions/checkout@v4
- name: Start minikube
uses: medyagh/setup-minikube@latest
- name: Set up Helm
uses: azure/[email protected]
- name: Install Helm Chart
working-directory: helm/
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
helm install test oci://ghcr.io/esgf2-us/metagrid --version `gh release list --json isLatest,tagName -q ".[] | select(.isLatest).tagName"` --timeout 1m || echo

helm dependency build
kubectl get pods

helm install test . \
PR_NUMBER=$(echo ${GITHUB_REF} | awk -F'/' '{print $3}')

helm upgrade test . \
--set frontend.image.tag=pr-${PR_NUMBER} \
--set backend.image.tag=pr-${PR_NUMBER} \
--wait

kubectl get pods
publish:
name: Publish
runs-on: ubuntu-latest
permissions:
packages: write
if: github.event_name != 'pull_request'
steps:
- uses: actions/checkout@v4
- name: Chart | Push
uses: appany/[email protected]
with:
name: metagrid
repository: esgf2-us
tag: ${{ github.ref_name }}
path: helm
registry: ghcr.io
registry_username: ${{ github.actor }}
registry_password: ${{ secrets.GITHUB_TOKEN }}
update_dependencies: 'true'
41 changes: 0 additions & 41 deletions .github/workflows/helm-chart.yml

This file was deleted.

1 change: 0 additions & 1 deletion .github/workflows/pre-commit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ on:
push:
branches: [master]
pull_request:
branches: [master]

jobs:
pre-commit:
Expand Down
2 changes: 1 addition & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ repos:
- id: trailing-whitespace
- id: end-of-file-fixer
- id: check-yaml
exclude: traefik/*.yml|helm/templates/.*
exclude: traefik/*.yml|helm/templates/.*|helm/deploy/.*|helm/values.yaml

# Back-end
# ------------------------------------------------------------------------------
Expand Down
2 changes: 1 addition & 1 deletion backend/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
FROM python:3.11-slim

ENV PYTHONUNBUFFERED 1
ENV PYTHONUNBUFFERED=1

RUN apt-get update \
# dependencies for building Python packages
Expand Down
9 changes: 5 additions & 4 deletions backend/config/settings/site_specific.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,11 @@ class MetagridBackendSettings(BaseSettings):
description="A list of all the people who get code error notifications. When `DEBUG=False` and `AdminEmailHandler` is configured in `LOGGING` (done by default), Django emails these people the details of exceptions raised in the request/response cycle. Each item in the list should be a tuple of (Full name, email address). "
"Reference: <https://docs.djangoproject.com/en/5.1/ref/settings/#admins>",
)
DATABASE_URL: str = Field(
default="postgresql://postgres:postgres@postgres:5432/postgres",
examples=["postgresql://postgres:postgres@postgres:5432/postgres"],
description="The database connection URL for the Metagrid backend database.",
)
SOCIAL_AUTH_GLOBUS_KEY: str = Field(
examples=["94c44808-9efd-4236-bffd-1185b1071736"],
description="The `Client UUID` obtained by registering a `portal, science gateway, or other application you host` with Globus at <https://app.globus.org/settings/developers>",
Expand Down Expand Up @@ -82,10 +87,6 @@ class MetagridFrontendSettings(BaseSettings):
default="",
description="Text to display in the footer of the frontend. Useful for adding a link to the terms of service or other legal information. The string should be formatted as MarkDown and will be rendered as such.",
)
GLOBUS_CLIENT_ID: str = Field(
examples=["536321f7-c0e9-462c-b5c6-34d4a3672076"],
description="The `Client UUID` obtained by registering a `a thick client or script that will be installed and run by users on their devices` with Globus at <https://app.globus.org/settings/developers> This is required even if signing in with Globus is not enabled. It is used for browsing Globus Collections to which files may be sent.",
)
STATUS_URL: Optional[str] = Field(
default=None,
description="The URL at which the backend can reach the Node Status API.",
Expand Down
28 changes: 16 additions & 12 deletions backend/config/settings/static.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,16 +5,25 @@
from pydantic import Field
from pydantic_settings import BaseSettings, SettingsConfigDict

ROOT_DIR = (
environ.Path(__file__) - 3
) # (config/settings/django.py - 3 = metagrid/)
env = environ.Env()

# project root (config/settings/static.py - 3 = metagrid/)
ROOT_DIR = environ.Path(__file__) - 3

# Parse DATABASE_URL environment variable; default to an in-memory sqlite DB for tests/local runs.
# This prevents "Set the DATABASE_URL environment variable" errors when none is provided.
DATABASES = env.db_url(
default="postgresql://postgres:postgres@postgres:5432/postgres"
)
DATABASES.update(ATOMIC_REQUESTS=True)


class DjangoStaticSettings(BaseSettings):
"""Django settings that do not vary by site"""

model_config = SettingsConfigDict(
env_prefix="DJANGO_",
env_nested_delimiter="__",
case_sensitive=True,
)

Expand Down Expand Up @@ -88,14 +97,9 @@ class DjangoStaticSettings(BaseSettings):
EMAIL_TIMEOUT: int = 5

CORS_ORIGIN_ALLOW_ALL: bool = True
DATABASES: dict[str, dict[str, Any]] = {
"default": {
"ENGINE": "django.db.backends.postgresql",
"NAME": "postgres",
"ATOMIC_REQUESTS": True,
"DATABASE_URL": "pgsql:///postgres",
}
}

DATABASES: dict[str, dict[str, Any]] = {"default": DATABASES}

STATIC_ROOT: str = ROOT_DIR("staticfiles")
# https://docs.djangoproject.com/en/dev/ref/settings/#static-url
STATIC_URL: str = "/static/"
Expand Down Expand Up @@ -267,7 +271,7 @@ class DjangoStaticSettings(BaseSettings):
# social_django
# -------------------------------------------------------------------------------
# This is a general Django setting if views need to redirect to login
# https://docs.djangoproject.com/en/3.2/ref/settings/#login-url
# https://docs.djangoproject.com/en/5.0/ref/settings/#login-url
LOGIN_URL: str = "/login/globus/"

LOGIN_REDIRECT_URL: str = "/search"
Expand Down
13 changes: 10 additions & 3 deletions backend/config/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,10 @@
from rest_framework import permissions
from rest_framework.routers import DefaultRouter

from metagrid.api_globus.views import create_globus_transfer, get_access_token
from metagrid.api_globus.views import (
do_globus_reset_tokens,
globus_download_request,
)
from metagrid.api_proxy.views import (
do_citation,
do_globus_auth,
Expand Down Expand Up @@ -59,6 +62,11 @@ class KeycloakLogin(SocialLoginView):
path("", include("social_django.urls", namespace="social")),
path("proxy/globus-logout/", do_globus_logout, name="globus-logout"),
path("proxy/globus-auth/", do_globus_auth, name="globus-auth"),
path(
"proxy/globus-reset-tokens/",
do_globus_reset_tokens,
name="globus_reset_tokens",
),
path(
"proxy/globus-search-endpoints/",
do_globus_search_endpoints,
Expand All @@ -77,8 +85,7 @@ class KeycloakLogin(SocialLoginView):
),
path("tempStorage/get", get_temp_storage, name="temp_storage_get"),
path("tempStorage/set", set_temp_storage, name="temp_storage_set"),
path("globus/auth", get_access_token, name="globus_auth"),
path("globus/transfer", create_globus_transfer, name="globus_transfer"),
path("globus/transfer", globus_download_request, name="globus_transfer"),
path("frontend-config.js", get_frontend_config, name="frontend_config"),
path("liveness", liveness, name="liveness"),
path("readiness", readiness, name="readiness"),
Expand Down
Loading