Skip to content

Conversation

@downiec
Copy link
Collaborator

@downiec downiec commented Jul 28, 2025

Description

Fixes # (issue)

Type of change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • This change requires a documentation update

How Has This Been Tested?

  • Local Pre-commit Checks
  • CI/CD Build

Checklist

  • My code follows the style guidelines of this project
  • I have performed a self-review of my own code
  • My changes generate no new warnings
  • If applicable - I have commented my code, particularly in hard-to-understand areas
  • If applicable - I have made corresponding changes to the documentation
  • If applicable - I have added tests that prove my fix is effective or that my feature works
  • If applicable - New and existing unit tests pass locally with my changes
  • Any dependent changes have been merged and published in downstream modules

downiec and others added 30 commits November 19, 2024 12:54
* Harden images and reorg

* fix timezone with package (#680)

* Joyride tutorials update (#679)

* Merged in latest v1.2.1

* Updates to the joyride tutorials and some minor bugfixes.

* Revert Markdown update to fix current jest testing error

* Updated React Markdown library and fixed the jest test errors.

* Some modifications to remove the build and linting errors that came up after the merge with latest branch.

* Load frontend config before rendering App

Stop tests from leaking calls to globus.org

* Some fixes to get the react front-end to build and get the postgres to start up. There are still errors with django session store.

* Fixed some linting errors so frontend should build correctly.

* Updated the local config file used for local testing. The new file .local_config, contains the configuration used when running Metagrid locally. Updated the manage_metagrid script to run Metagrid from the single docker-compose file. Updated some settings to use llnl instead of ornl for local development and testing. Removed some unused environment variable files after after testing that they aren't used. Left the default variables in place because Metagrid fails to build when several of the defaults aren't set, still working to troubeshoot why. Globus transfer steps in the front-end are working, however transfers seem to fail and need to be resolved.

* Switch from CRA to Vite and clean up tests (#692)

* Switch from CRA to Vite and clean up tests

* Fixed issue with loading screen continuing even after cancel button click. Updated local test config. Globus transfers still not working.

---------

Co-authored-by: Zach Price <[email protected]>
Co-authored-by: downiec <[email protected]>

* Staticbuild v1.3 fixes (#697)

* Fix proxy and redirects for globus auth on docker compose

* Various lint and test fixes

* Update yarn.lock

* Some changes made to try and get globus transfers working.

* Update docs to match new config (#707)

* Updated the local config file used for local testing. The new file .local_config, contains the configuration used when running Metagrid locally. Updated the manage_metagrid script to run Metagrid from the single docker-compose file. Updated some settings to use llnl instead of ornl for local development and testing. Removed some unused environment variable files after after testing that they aren't used. Left the default variables in place because Metagrid fails to build when several of the defaults aren't set, still working to troubeshoot why. Globus transfer steps in the front-end are working, however transfers seem to fail and need to be resolved.

* Switch from CRA to Vite and clean up tests (#692)

* Switch from CRA to Vite and clean up tests

* Fixed issue with loading screen continuing even after cancel button click. Updated local test config. Globus transfers still not working.

---------

Co-authored-by: Zach Price <[email protected]>
Co-authored-by: downiec <[email protected]>

* Fix proxy and redirects for globus auth on docker compose

* Various lint and test fixes

* Update yarn.lock

* Some changes made to try and get globus transfers working.

* Update docs to match new config
Auto generate configuration documentation with pre-commit hooks

* Revert yarn.lock, fix more tests

* Includes some updates and minor fixes so that everything builds and runs correctly. Removed the GLOBUS_REDIRECT setting and did some cleanup of the manage_metagrid.sh functions.

* Updated the test files to no longer use the act() functions, as they are deprecated. Cleaned up and fixed some failing tests.

* Fix esgsearch json tests

* Minor test fixes to see if tests will pass on github (they pass locally).

---------

Co-authored-by: downiec <[email protected]>
Co-authored-by: Zach Price <[email protected]>

---------

Co-authored-by: Zach Price <[email protected]>
Co-authored-by: bstrdsmkr <[email protected]>

---------

Co-authored-by: Zach Price <[email protected]>
Co-authored-by: Sasha Ames <[email protected]>
Co-authored-by: bstrdsmkr <[email protected]>
…repeated settings-doc-markdown config, to see if that resolves the pre-commit failure.
* Fix broken link in Globus transfer panel

* Globus link display update (#3)

* Added a warning case for when a transfer request returns no failures or successes in the backend response. No successes indicates no transfer occurred although there wasn't any specified errors provided. Added new test for the added warning case.

* Fix pre-commit prerequisites

---------

Co-authored-by: Zach Price <[email protected]>
Co-authored-by: Carlos Downie <[email protected]>
* Update version number, add version changelog (to be updated with the changes that will be included in this update)

* Updated documentation references to config variables (#706)

* Updated documentation, specifically references to the configuration parameters which have changed over time, to use the latest variable names currently used in configuration. Updated requirements to use the latest readthedocs them of Sphinx

* Update version number, add version changelog (to be updated with the changes that will be included in this update)

* fixed the pagination so that it will reset to page one when doing a new search (#705)

* update for obs4MIPs (#711)

Co-authored-by: Sasha Ames <[email protected]>

* Updated the settings file to autoformat on save to hopefully reduce linting errors. Fixed linting errors for the initial_projects_data update. Fixed the status tooltip to correctly display the node's status. Updated test fixtures to accurately reflect the node status response (the node names included the https:// in front and thats why status tooltip wasn't finding them. (#714)

* Added alert for the case that a collection search fails in the manage collections popup (#710)

* Added alert for the case that a collection search fails in the collection management popup. Added a test to bring the coverage up to 100% for the search table component. Removed some unused code, the get endpoint function is not used.

* Minor linting error fixes.

* Fixed some backend tests based on the removed/unused functions

* Small fix to test.

* Minor update to update summary.

* Made it so the globus ready column does not appear if no globus ready nodes are configured (as it was before). Changed ActiveFacets type to be more strict in order to avoid the issue of calling join on a string which was causing errors. Fixed and updated some tests related to the url to string and string to url functions in the utils file.

* Fixed failing test. Updated the manage_metagrid.sh helper scripts to include commands for pre-commits, backend and frontend tests. Updated setup.cfg to allow backend tests to run correctly. Removed unneeded commands in backend README.md. Removed the autoformat setting on save.

---------

Co-authored-by: Sasha Ames <[email protected]>
* Add dark mode

* Persist theme choice

* Add tests for Dark mode feature

* Merged in the latest changes from v1.3.0-release. Updated the styling to fix issues with the dark-mode rendering of navbar and certain colors. Added custom colors for dark and light version of status icons. Modified how colors are applied to tooltips and node status pages. I'd like to update/improve the way custom colors and styles are applied to make future updates smoother. (#4)

---------

Co-authored-by: Zach Price <[email protected]>
Co-authored-by: downiec <[email protected]>
* Add dark mode

* Persist theme choice

* Add tests for Dark mode feature

* Merged in the latest changes from v1.3.0-release. Updated the styling to fix issues with the dark-mode rendering of navbar and certain colors. Added custom colors for dark and light version of status icons. Modified how colors are applied to tooltips and node status pages. I'd like to update/improve the way custom colors and styles are applied to make future updates smoother.

* Added a new configuration option for setting the footer of the metagrid frontend so that links and text can be displayed as desired. Updated the manage_metagrid script to include more developer actions, including run migrations, and installing packages for local development. Modified styling to better fit the current footer. Will need to add option for adjusting the footer height based on the height of the footer text. Updated tests and documentation for the custom footer options.

* Final updates for the v1.3.0 release. Includes updates to the joyride tutorial to add the theme switch. Updated the manage_metagrid script and created a new configHelper script that sets the proper initial configuration settings for first time deployment or developers. Added tests for the theme buttons in the app.

---------

Co-authored-by: Zach Price <[email protected]>
Co-authored-by: Zach Price <[email protected]>
* Include helm chart and healthchecks

* Modified the traefik.yml config to separate between local and production, in order to attempt to get production traefik deployment to function as it did in another branch. Updated docker compose files to separate keycloak into a profile and remove docs service from production. Updated manage script to utilize new compose files for deployment and testing.

* Updated some docs and the manage scripts

* Merged in some minor changes from traefik-deployment-fixes branch to update app css and include other minor fixes.

* Delete docker-compose.prod-overlay.yml

* Pre-comfig fixes, update to scripts.

* Some updates to docker deployment to test if they will work in production

* Separated trafik.yml into one for production and one for local, to avoid using the conditional statements that were being used which seemed to not be working for traefik deployment. Updated the deployment script to make sure local and production custm overlays are applied last so their variables aren't overriden.

* Removed unnecessary prod_traefik file.

* Updated prod overlay to name the containers with prod to distinguish deployment container types. Updated the config helper script to generate production overlay

* Updated changelog. Added dark theme styling to the React Joyride tutorials.

* Implemented some suggestions from PR comments. Brightened the tutorial background in dark theme.

* Minor fix to compose file.

* Reverted container names to leave them be.

* Updated obs4mips url and modified the display button. Remove obsolete updateProjects.sh script and updated the README's regarding updating project data. Added the update functions to the manage_metagrid.sh scripts instead. Still need to test in production, but should work.

* Fix minor lint error. Added build step to project migration function.

---------

Co-authored-by: Zach Price <[email protected]>
…ges are updated and how the changelog is updated. The data for messages and changes is now located in a messageData.json file, removing the need to modify the messageDisplayData.ts file in multiple locations every time a new version and changelog entry is created.
…request to add option for obtaining object using request.body, this fixes the wget download which expects data in a different format than other requests. Updated the changelog.
…ay, to make version history collapsed as it was getting long.
… to increment/create a new version. It will create a new changelog file, update the package.json and update the messageData.json file to add the new version.
…a save steps to see if that will resolve globus transfer token auth loop issue in Firefox.
…a save steps to see if that will resolve globus transfer token auth loop issue in Firefox.
…globus permissions were requested. This seems to allow the path set redirect to request the appropriate permissions for allowing transfers to occur.
…ges, fix typos in ingress template (#743)

Co-authored-by: Zach Price <[email protected]>
…rsion script so helm chart version is automatically updated when the version number is updated.
* Fixes hash for automatic deployment rolls

* Fixes container trigger and pushing images

* Fixes workflow tags

* Fixes default filename for configHelper.sh

* Fixes frontend makefile

* Adds minimal frontend-config.js

* Revert "Adds minimal frontend-config.js"

This reverts commit 8856c9d.

* Adds helm chart testing job

* Fixes working directory

* Updates workflow and adds test values

* Fixes building dependency

* Adds readme and helmfile to test locally

* Fixes NOTES rendering

* Adds defaults to support no-config install

* Removes test.yaml since defaults were fixed

* Fixes spelling error

* Fixes workflow

* Updates readme
* Some minor updates to config helper and manage_metagrid scripts.

* Added option to cancel endpoint path selection from globus side and it will return user to metagrid properly.

* Updated to the manage script for updating the version values in helm files. Fixes some linting errors.

* Added a tooltip to the download button to hint to user why it's disabled. Updated download button behavior ro make sure user can't start a Globus download without selecting a collection or start a wget download without selecting a cart item.
* Created a DataBundlePersister class which will bundle key value pairs into a single object, stringify and then save to session storage as a single bundle. This will reduce requests to session storage by consolidating into a single request when values need to be persisted or loaded.

* Minor updates to changelogs for consistent punctuation.

* Some minor updates to persistent class

* Updated the way session storage is used by the datasetdownload component to improve globus transfer reliability. Includes extensive refactoring of tests and test components to pass using the new DataBundlePersister class. Updated the cart summary to display info on selected cart items not just on the entire cart totals.

* Some minor changes to the documentation to update the frontend project structure. Moved the reset tokens button to a menu in the globus transfer button. Globus transfer and wget download are separated into their own buttons using download type to select which is displayed. Updated tests as needed and added new ones for the reset token feature. Updated react joyride tour to mention changes on the summary table.

* Made some minor updates, refactors and added new tests to increase test coverage
downiec and others added 12 commits June 6, 2025 12:56
* Modified the get request in the search_files function, so that it will return file lists from multiple datasets. Would like to convert this to a POST request later on.

* Fixed tests and added new test to use dataset_id parameter.
…was some unstable looping caused by changes made during error handling. (#800)
* Updated some packages to latest version. Updated the changelog for v1.5.0.

* Updated axios and removed unused lib/axios (it has typescript support now). Updated react-markdown and react-hotjar, while addressing breaking changes. Updated a few other packages which didn't seem to need any further fixes.

* Updated the js-pkce package and made necessary updates to the DatasetDownloads functions.

* Updated antd library, migrated react-router-dom 7.5 to react-router 7.6, uuid to 11, eslint configs, and prettier.

* Fixed linter errors and failing tests.

* Updated some linting rules and packages. Fixed minor linting errors.

* Some more updates to package.json for eslint and linting fixes.

* Add speicifc timeout for test which is failing due to timeout error.

* Update timeout for test which is failing due to timeout error.

* Minor update to changlog.
#812)

* Updated the Search Table to have a results limit of 10000, to avoid errors when attempting to view a page containing results beyond 10000. Added a handler that will reset cached page to 1 if there is a 422 error (the error caused by requesting a page beyond supported limit).

* Increased coverage, added test for new 422 error handling. Updated coverage in other places.
* Updated the Search Table to have a results limit of 10000, to avoid errors when attempting to view a page containing results beyond 10000. Added a handler that will reset cached page to 1 if there is a 422 error (the error caused by requesting a page beyond supported limit).

* Increased coverage, added test for new 422 error handling. Updated coverage in other places.

* Modified the createSearchRouteURL function so that the configured search setting is used for the JSON link, rather than the proxy path.

* Made trivial change to the URL used as an example for the search url setting.
@downiec downiec self-assigned this Jul 28, 2025
downiec and others added 2 commits August 26, 2025 15:50
* Change heading to Site Administrators, clarify purpose in docs, DRCDP data_node (#816)

* Update mkdocs.yml

* clarify purpose of docs

* DRCDP corrections

add data_node
correct facet group name

* Hotfix/globus transfer (#819)

* Hot fix for current globus transfer issues. Reverted to using get rather than post for the search_files helper function used when submitting transfers. Added some additional logic to help improve debugging.

* Updated tests and added two more to cover the new test cases and logic that was added. Updated changelog

* Rewrote entire backend globus login flow to eliminate the need for a nativeclient on the frontend, instead utilizing a confidential client on the backend. Simplifies the download process while improving reliability. Removed the need to persistently store the globus related tokens on the frontend. Need to do some cleanup to remove obsolete code.

* Removed commented out code and deleted experimental functions that are no longer needed. Basic cleanup.

* Removed obsolete GLOBUS_CLIENT_ID settings related code, as we only need the client key and secret now. Removed broken tests from backend, will create new ones later to bring coverage back to 100%. Removed more unused code.

* Added some try/except statements on the globus api to provide more information if an error occurs. Fixed a minor bug that was causing the auth url not to be set when it was needed.

* Due to the added testing complexity for the backend globus functions, reduced the 100% coverage requirements to 95% (will set it back to 100% when tests can be fully covered). Brought the test coverage for the backend up to 98%, will need to cleanup and write more tests to get the last 2% of coverage. Fixed all broken tests and removed obsolete tests for the frontend globus related features. Removed fixtures and code that are no longer needed in the frontend, now that globus transfer is mostly handled by the backend.

* Updated the changelog with current changes in this branch. Switched from access tokens to refresh tokens and updated tests accordingly. Added function to reset stored tokens on the backend so that consents can be refreshed should the need ever arrive or for testing purposes. Added tests to cover new api function for token reset.

* Minor update to make sure the url is reset when errors occur in globus transfer attempts.

---------

Co-authored-by: Sasha Ames <[email protected]>
* Change heading to Site Administrators, clarify purpose in docs, DRCDP data_node (#816)

* Update mkdocs.yml

* clarify purpose of docs

* DRCDP corrections

add data_node
correct facet group name

* Hotfix/globus transfer (#819)

* Hot fix for current globus transfer issues. Reverted to using get rather than post for the search_files helper function used when submitting transfers. Added some additional logic to help improve debugging.

* Updated tests and added two more to cover the new test cases and logic that was added. Updated changelog

* support multiple domains for citation API

* Update test_views.py

---------

Co-authored-by: Carlos Downie <[email protected]>
@sashakames
Copy link
Collaborator

will close #702

* Modified the search page copy and save search buttons to be a menu instead, where the copy search feature will be in a drop-down. Then added 2 new copy features related to esgpull, one for search and one for download.

* Added Intake ESGF search option and created a function to generate the python code to run the search. The command assumes you have intake installed and ready to use.

* cleaned up some code and fixed broken tests.

* Added tootltips and updated the joyride tutorials to show the search copy menu items. Updated the changelog with notes about the update. Added several tests to increase coverage and verify the copy search options give the appropriate output.

* Updates to esgpull search and download feature so that unnecessary facets are removed from valid list and missing ones were added. Added custom comments on esgpull commands to highlight any facets that were not applied. Other minor updates.

* Adding an esgpull download options for a single dataset using the master_id attribute.

* Fix some tests and increase coverage.
@codecov
Copy link

codecov bot commented Oct 6, 2025

Codecov Report

❌ Patch coverage is 75.81395% with 52 lines in your changes missing coverage. Please review.
✅ Project coverage is 95.22%. Comparing base (2e90dd1) to head (03a67ae).
⚠️ Report is 5 commits behind head on master.

Files with missing lines Patch % Lines
frontend/src/components/Globus/DatasetDownload.tsx 52.57% 46 Missing ⚠️
...d/src/common/joyrideTutorials/reactJoyrideSteps.ts 68.42% 6 Missing ⚠️

❌ Your patch check has failed because the patch coverage (75.81%) is below the target coverage (90.00%). You can increase the patch coverage or adjust the target coverage.

Additional details and impacted files
@@            Coverage Diff             @@
##           master     #823      +/-   ##
==========================================
- Coverage   97.75%   95.22%   -2.53%     
==========================================
  Files          46       49       +3     
  Lines        1823     2637     +814     
  Branches      415      542     +127     
==========================================
+ Hits         1782     2511     +729     
- Misses         41      126      +85     
Flag Coverage Δ
frontend 95.22% <75.81%> (-2.53%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@downiec downiec marked this pull request as ready for review October 7, 2025 17:04
@sashakames
Copy link
Collaborator

@jasonb5 We took a look and seems like the bitnami issue is tripping up the Helm chart test. We can discuss further when we meet but seems like we could consider a workaround to this test?

sashakames and others added 2 commits October 7, 2025 13:26
* Update initial_projects_data.py to change E3SM

* change E3SM logic
* Updates backend database settings to be configurable

* Allows helm testing to fail

* Removes pydantic database settings, replaces with environ.db_url to parse DATABASE_URL

* Updates chart to use new DATABASE_URL for backend and adds examples

* Updates docker-compose to use DATABASE_URL

* Moves helm chart testing to helm-chart workflow, adds workflow trigger

* Updates backend workflow to use DATABASE_URL

* Removes job requirements

* Fixes workflow trigger

* Removes pull_request trigger

* Merges containers and helm-chart workflows

* Removes bitnami repo

* Fixes running migrate job on upgrade

* Updates default search/wget urls

* Adds job to test upgrade

* Fixes liveness/readiness probe indentation, fixes duplication port labels
@sashakames
Copy link
Collaborator

Everything was passing.. anyway, would be great to get this tagged (so we can deploy) and merged.

@jasonb5
Copy link
Collaborator

jasonb5 commented Nov 5, 2025

@sashakames #858 should clear those up.

* Fix some issues with precommit and startup

* Fixes pre-commit workflow to run on all pull requests

---------

Co-authored-by: Jason Boutte <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants