Skip to content

Conversation

@fmigneault
Copy link
Member

Overview

Add BIRDHOUSE_PROXY_CORS_ALLOW_ORIGIN setting.

Note

The cors.include.template diff looks massive, but the actual concrete change is only adding:

set $access_control_allow_origin "${BIRDHOUSE_PROXY_CORS_ALLOW_ORIGIN}";

Changes

Non-breaking changes

  • Proxy: Allow Access-Control-Allow-Origin header to be configured using BIRDHOUSE_PROXY_CORS_ALLOW_ORIGIN variable.
    • The cors.include file is converted to a cors.include.template file to allow variable expansion.
    • The default BIRDHOUSE_PROXY_CORS_ALLOW_ORIGIN="*" is used to retain the previous behaviour.
    • The BIRDHOUSE_PROXY_CORS_ALLOW_ORIGIN variable can reference other variables to allow dynamic configuration
      (notably, to reference BIRDHOUSE_FQDN_PUBLIC for same-origin allowance).
    • Align the documentation with corresponding STAC_CORS_ORIGINS header implications.
    • Avoids Nginx warnings flagged from using uninitialized access_control_allow_origin variable.

Breaking changes

  • n/a

Related Issue / Discussion

CI Operations

birdhouse_daccs_configs_branch: master
birdhouse_skip_ci: false

@github-actions github-actions bot added documentation Improvements or additions to documentation component/STAC Features or components related to STAC labels Nov 27, 2025
@fmigneault fmigneault self-assigned this Nov 27, 2025
@crim-jenkins-bot
Copy link
Collaborator

E2E Test Results

DACCS-iac Pipeline Results

Build URL : http://daccs-jenkins.crim.ca:80/job/DACCS-iac-birdhouse/3837/
ResultFAILURE

BIRDHOUSE_DEPLOY_BRANCH : add-cors-origin
DACCS_IAC_BRANCH : master
DACCS_CONFIGS_BRANCH : master
PAVICS_E2E_WORKFLOW_TESTS_BRANCH : master
PAVICS_SDI_BRANCH : master

DESTROY_INFRA_ON_EXIT : true
PAVICS_HOST : https://host-140-216.rdext.crim.ca

PAVICS-e2e-workflow-tests Pipeline Results

Tests URL : http://daccs-jenkins.crim.ca:80/job/PAVICS-e2e-workflow-tests/job/master/546/

NOTEBOOK TEST RESULTS
    
[2025-11-27T15:56:47.170Z] ============================= test session starts ==============================
[2025-11-27T15:56:47.170Z] platform linux -- Python 3.11.12, pytest-8.3.5, pluggy-1.5.0
[2025-11-27T15:56:47.170Z] rootdir: /home/jenkins/agent/workspace/PAVICS-e2e-workflow-tests_master
[2025-11-27T15:56:47.170Z] plugins: anyio-4.9.0, dash-3.0.3, nbval-0.11.0, tornasync-0.6.0.post2, xdist-3.6.1
[2025-11-27T15:56:47.170Z] collected 537 items
[2025-11-27T15:56:47.170Z] 
[2025-11-27T15:56:55.805Z] notebooks-auth/geoserver.ipynb ..................                        [  3%]
[2025-11-27T15:58:20.570Z] notebooks-auth/test_cowbird_jupyter.ipynb ........F.                     [  5%]
[2025-11-27T15:58:20.570Z] notebooks-auth/test_thredds.ipynb ...........                            [  7%]
[2025-11-27T15:59:46.923Z] pavics-sdi-master/docs/source/notebooks/CaSR_basic.ipynb ......          [  8%]
[2025-11-27T16:12:33.788Z] pavics-sdi-master/docs/source/notebooks/FAQ_dask_parallel.ipynb ..s..... [  9%]
[2025-11-27T16:13:20.465Z] .                                                                        [ 10%]
[2025-11-27T16:13:30.152Z] pavics-sdi-master/docs/source/notebooks/WCS_example.ipynb ......         [ 11%]
[2025-11-27T16:13:36.542Z] pavics-sdi-master/docs/source/notebooks/WFS_example.ipynb .....          [ 12%]
[2025-11-27T16:23:31.908Z] pavics-sdi-master/docs/source/notebooks/climex.ipynb ...........         [ 14%]
[2025-11-27T16:23:31.908Z] pavics-sdi-master/docs/source/notebooks/eccc-geoapi-climate-stations.ipynb . [ 14%]
[2025-11-27T16:23:31.908Z] ...............                                                          [ 17%]
[2025-11-27T16:23:39.586Z] pavics-sdi-master/docs/source/notebooks/eccc-geoapi-xclim.ipynb .....    [ 18%]
[2025-11-27T16:23:48.961Z] pavics-sdi-master/docs/source/notebooks/esgf-dap.ipynb ....              [ 18%]
[2025-11-27T16:24:02.801Z] pavics-sdi-master/docs/source/notebooks/forecasts.ipynb ......           [ 19%]
[2025-11-27T16:24:08.710Z] pavics-sdi-master/docs/source/notebooks/opendap.ipynb .......            [ 21%]
[2025-11-27T16:24:12.765Z] pavics-sdi-master/docs/source/notebooks/pavics_thredds.ipynb .....       [ 22%]
[2025-11-27T16:28:36.849Z] pavics-sdi-master/docs/source/notebooks/regridding.ipynb ............... [ 24%]
[2025-11-27T16:29:30.471Z] .............                                                            [ 27%]
[2025-11-27T16:29:35.672Z] pavics-sdi-master/docs/source/notebooks/rendering.ipynb ....             [ 28%]
[2025-11-27T16:29:37.580Z] pavics-sdi-master/docs/source/notebooks/subset-user-input.ipynb ........ [ 29%]
[2025-11-27T16:30:02.890Z] .................                                                        [ 32%]
[2025-11-27T16:30:09.540Z] pavics-sdi-master/docs/source/notebooks/subsetting.ipynb .....           [ 33%]
[2025-11-27T16:30:12.087Z] pavics-sdi-master/docs/source/notebook-components/weaver_example.ipynb . [ 33%]
[2025-11-27T16:30:22.067Z] .........                                                                [ 35%]
[2025-11-27T16:30:33.436Z] finch-main/docs/source/notebooks/dap_subset.ipynb ...........            [ 37%]
[2025-11-27T16:30:43.870Z] finch-main/docs/source/notebooks/finch-usage.ipynb ......                [ 38%]
[2025-11-27T16:30:45.245Z] PAVICS-landing-master/content/notebooks/climate_indicators/PAVICStutorial_ClimateDataAnalysis-1DataAccess.ipynb . [ 38%]
[2025-11-27T16:30:50.444Z] .....                                                                    [ 39%]
[2025-11-27T16:31:46.706Z] PAVICS-landing-master/content/notebooks/climate_indicators/PAVICStutorial_ClimateDataAnalysis-2Subsetting.ipynb . [ 40%]
[2025-11-27T16:32:15.653Z] ............                                                             [ 42%]
[2025-11-27T16:32:54.387Z] PAVICS-landing-master/content/notebooks/climate_indicators/PAVICStutorial_ClimateDataAnalysis-3Climate-Indicators.ipynb . [ 42%]
[2025-11-27T16:33:34.462Z] .....s.                                                                  [ 43%]
[2025-11-27T16:33:41.038Z] PAVICS-landing-master/content/notebooks/climate_indicators/PAVICStutorial_ClimateDataAnalysis-4Ensembles.ipynb . [ 43%]
[2025-11-27T16:33:47.774Z] ..                                                                       [ 44%]
[2025-11-27T16:33:55.908Z] PAVICS-landing-master/content/notebooks/climate_indicators/PAVICStutorial_ClimateDataAnalysis-5Visualization.ipynb . [ 44%]
[2025-11-27T16:35:02.062Z] .........                                                                [ 46%]
[2025-11-27T16:35:12.041Z] PAVICS-landing-master/content/notebooks/climate_indicators/PAVICStutorial_ClimateDataAnalysis-6Regridding_Conversion.ipynb . [ 46%]
[2025-11-27T16:37:10.702Z] ....                                                                     [ 47%]
[2025-11-27T16:37:10.702Z] PAVICS-landing-master/content/notebooks/hydrology/PAVICStutorial_Hydrology-01_Intro.ipynb . [ 47%]
[2025-11-27T16:37:13.811Z] ....                                                                     [ 48%]
[2025-11-27T16:37:18.017Z] PAVICS-landing-master/content/notebooks/hydrology/PAVICStutorial_Hydrology-02_Calibration.ipynb . [ 48%]
[2025-11-27T16:37:27.120Z] .....                                                                    [ 49%]
[2025-11-27T16:37:31.321Z] PAVICS-landing-master/content/notebooks/hydrology/PAVICStutorial_Hydrology-03_Watershed_properties.ipynb . [ 49%]
[2025-11-27T16:37:36.379Z] .............                                                            [ 51%]
[2025-11-27T16:37:41.667Z] PAVICS-landing-master/content/notebooks/hydrology/PAVICStutorial_Hydrology-04_Time_series_analysis.ipynb . [ 51%]
[2025-11-27T16:37:42.444Z] ......                                                                   [ 53%]
[2025-11-27T16:37:53.111Z] raven-main/docs/source/notebooks/Region_selection.ipynb .........        [ 54%]
[2025-11-27T16:37:55.021Z] raven-main/docs/source/notebooks/Subset_climate_data_over_watershed.ipynb . [ 54%]
[2025-11-27T16:38:18.912Z] ......                                                                   [ 56%]
[2025-11-27T16:38:20.560Z] RavenPy-main/docs/notebooks/00_Introduction_to_JupyterLab.ipynb ......   [ 57%]
[2025-11-27T16:38:30.592Z] RavenPy-main/docs/notebooks/01_Getting_watershed_boundaries.ipynb ...... [ 58%]
[2025-11-27T16:38:30.592Z] ..                                                                       [ 58%]
[2025-11-27T16:38:37.163Z] RavenPy-main/docs/notebooks/02_Extract_geographical_watershed_properties.ipynb . [ 58%]
[2025-11-27T16:38:41.869Z] .............                                                            [ 61%]
[2025-11-27T16:40:12.015Z] RavenPy-main/docs/notebooks/03_Extracting_forcing_data.ipynb ........... [ 63%]
[2025-11-27T16:40:12.015Z]                                                                          [ 63%]
[2025-11-27T16:40:13.894Z] RavenPy-main/docs/notebooks/04_Emulating_hydrological_models.ipynb ..... [ 64%]
[2025-11-27T16:40:20.227Z] ...............                                                          [ 67%]
[2025-11-27T16:40:25.508Z] RavenPy-main/docs/notebooks/05_Advanced_RavenPy_configuration.ipynb .... [ 67%]
[2025-11-27T16:40:33.290Z] .........                                                                [ 69%]
[2025-11-27T16:40:44.963Z] RavenPy-main/docs/notebooks/06_Raven_calibration.ipynb ......            [ 70%]
[2025-11-27T16:40:51.751Z] RavenPy-main/docs/notebooks/07_Making_and_using_hotstart_files.ipynb ... [ 71%]
[2025-11-27T16:40:54.584Z] ...                                                                      [ 71%]
[2025-11-27T16:40:59.857Z] RavenPy-main/docs/notebooks/08_Getting_and_bias_correcting_CMIP6_data.ipynb . [ 71%]
[2025-11-27T16:48:57.625Z] ...............                                                          [ 74%]
[2025-11-27T16:48:58.194Z] RavenPy-main/docs/notebooks/09_Hydrological_impacts_of_climate_change.ipynb . [ 74%]
[2025-11-27T16:49:04.793Z] ....                                                                     [ 75%]
[2025-11-27T16:49:41.756Z] RavenPy-main/docs/notebooks/10_Data_assimilation.ipynb ........          [ 77%]
[2025-11-27T16:49:52.951Z] RavenPy-main/docs/notebooks/11_Climatological_ESP_forecasting.ipynb .... [ 77%]
[2025-11-27T16:50:19.446Z] ....                                                                     [ 78%]
[2025-11-27T16:50:27.569Z] RavenPy-main/docs/notebooks/12_Performing_hindcasting_experiments.ipynb . [ 78%]
[2025-11-27T16:50:37.162Z] .......                                                                  [ 80%]
[2025-11-27T16:51:02.091Z] RavenPy-main/docs/notebooks/Assess_probabilistic_flood_risk.ipynb ...... [ 81%]
[2025-11-27T16:51:03.285Z] .                                                                        [ 81%]
[2025-11-27T16:51:11.412Z] RavenPy-main/docs/notebooks/Comparing_hindcasts_and_ESP_forecasts.ipynb . [ 81%]
[2025-11-27T16:51:31.775Z] .......                                                                  [ 82%]
[2025-11-27T16:51:37.890Z] RavenPy-main/docs/notebooks/Distributed_hydrological_modelling.ipynb ... [ 83%]
[2025-11-27T16:51:54.155Z] ....                                                                     [ 84%]
[2025-11-27T16:52:05.434Z] RavenPy-main/docs/notebooks/Hydrological_realtime_forecasting.ipynb .... [ 84%]
[2025-11-27T16:52:12.271Z] ..                                                                       [ 85%]
[2025-11-27T16:52:35.402Z] RavenPy-main/docs/notebooks/Managing_Jupyter_Environments.ipynb ...      [ 85%]
[2025-11-27T16:53:03.569Z] RavenPy-main/docs/notebooks/Perform_Regionalization.ipynb .......        [ 87%]
[2025-11-27T16:53:09.429Z] RavenPy-main/docs/notebooks/Running_HMETS_with_CANOPEX_dataset.ipynb ... [ 87%]
[2025-11-27T16:53:27.331Z] ..........                                                               [ 89%]
[2025-11-27T16:53:47.505Z] RavenPy-main/docs/notebooks/Sensitivity_analysis.ipynb ......            [ 90%]
[2025-11-27T16:53:53.567Z] RavenPy-main/docs/notebooks/time_series_analysis.ipynb ...........       [ 92%]
[2025-11-27T16:54:01.692Z] RavenPy-main/docs/notebooks/paper/Perform_a_climate_change_impact_study_on_a_watershed.ipynb . [ 92%]
[2025-11-27T16:58:30.505Z] .............Fxxxxxx                                                     [ 96%]
[2025-11-27T16:58:30.505Z] notebooks/hummingbird.ipynb ............                                 [ 98%]
[2025-11-27T17:01:00.702Z] notebooks/stress-tests.ipynb ......                                      [100%]
[2025-11-27T17:01:00.702Z] 
[2025-11-27T17:01:00.702Z] =================================== FAILURES ===================================
    
  

Copy link
Collaborator

@tlvu tlvu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A few minor changes requested but looks good otherwise.

@fmigneault fmigneault requested a review from tlvu November 28, 2025 17:34
@crim-jenkins-bot
Copy link
Collaborator

E2E Test Results

DACCS-iac Pipeline Results

Build URL : http://daccs-jenkins.crim.ca:80/job/DACCS-iac-birdhouse/3846/
ResultFAILURE

BIRDHOUSE_DEPLOY_BRANCH : add-cors-origin
DACCS_IAC_BRANCH : master
DACCS_CONFIGS_BRANCH : master
PAVICS_E2E_WORKFLOW_TESTS_BRANCH : master
PAVICS_SDI_BRANCH : master

DESTROY_INFRA_ON_EXIT : true
PAVICS_HOST : https://host-140-216.rdext.crim.ca

PAVICS-e2e-workflow-tests Pipeline Results

Tests URL : http://daccs-jenkins.crim.ca:80/job/PAVICS-e2e-workflow-tests/job/master/551/

NOTEBOOK TEST RESULTS
    
[2025-11-28T17:46:18.278Z] ============================= test session starts ==============================
[2025-11-28T17:46:18.278Z] platform linux -- Python 3.11.12, pytest-8.3.5, pluggy-1.5.0
[2025-11-28T17:46:18.278Z] rootdir: /home/jenkins/agent/workspace/PAVICS-e2e-workflow-tests_master
[2025-11-28T17:46:18.278Z] plugins: anyio-4.9.0, dash-3.0.3, nbval-0.11.0, tornasync-0.6.0.post2, xdist-3.6.1
[2025-11-28T17:46:18.278Z] collected 537 items
[2025-11-28T17:46:18.278Z] 
[2025-11-28T17:46:25.857Z] notebooks-auth/geoserver.ipynb ..................                        [  3%]
[2025-11-28T17:47:25.659Z] notebooks-auth/test_cowbird_jupyter.ipynb ..........                     [  5%]
[2025-11-28T17:47:25.659Z] notebooks-auth/test_thredds.ipynb ...........                            [  7%]
[2025-11-28T17:48:53.113Z] pavics-sdi-master/docs/source/notebooks/CaSR_basic.ipynb ......          [  8%]
[2025-11-28T18:01:50.415Z] pavics-sdi-master/docs/source/notebooks/FAQ_dask_parallel.ipynb ..s..... [  9%]
[2025-11-28T18:02:46.641Z] .                                                                        [ 10%]
[2025-11-28T18:02:51.658Z] pavics-sdi-master/docs/source/notebooks/WCS_example.ipynb ......         [ 11%]
[2025-11-28T18:02:58.439Z] pavics-sdi-master/docs/source/notebooks/WFS_example.ipynb .....          [ 12%]
[2025-11-28T18:12:40.661Z] pavics-sdi-master/docs/source/notebooks/climex.ipynb ...........         [ 14%]
[2025-11-28T18:12:40.662Z] pavics-sdi-master/docs/source/notebooks/eccc-geoapi-climate-stations.ipynb . [ 14%]
[2025-11-28T18:12:43.640Z] ...............                                                          [ 17%]
[2025-11-28T18:12:53.015Z] pavics-sdi-master/docs/source/notebooks/eccc-geoapi-xclim.ipynb .....    [ 18%]
[2025-11-28T18:13:02.775Z] pavics-sdi-master/docs/source/notebooks/esgf-dap.ipynb ....              [ 18%]
[2025-11-28T18:13:17.145Z] pavics-sdi-master/docs/source/notebooks/forecasts.ipynb ......           [ 19%]
[2025-11-28T18:13:23.047Z] pavics-sdi-master/docs/source/notebooks/opendap.ipynb .......            [ 21%]
[2025-11-28T18:13:27.924Z] pavics-sdi-master/docs/source/notebooks/pavics_thredds.ipynb .....       [ 22%]
[2025-11-28T18:16:23.271Z] pavics-sdi-master/docs/source/notebooks/regridding.ipynb ............... [ 24%]
[2025-11-28T18:17:31.495Z] .............                                                            [ 27%]
[2025-11-28T18:17:34.035Z] pavics-sdi-master/docs/source/notebooks/rendering.ipynb ....             [ 28%]
[2025-11-28T18:17:35.802Z] pavics-sdi-master/docs/source/notebooks/subset-user-input.ipynb ........ [ 29%]
[2025-11-28T18:17:59.652Z] .................                                                        [ 32%]
[2025-11-28T18:18:08.884Z] pavics-sdi-master/docs/source/notebooks/subsetting.ipynb .....           [ 33%]
[2025-11-28T18:18:10.265Z] pavics-sdi-master/docs/source/notebook-components/weaver_example.ipynb . [ 33%]
[2025-11-28T18:18:20.573Z] .........                                                                [ 35%]
[2025-11-28T18:18:31.655Z] finch-main/docs/source/notebooks/dap_subset.ipynb ...........            [ 37%]
[2025-11-28T18:18:41.727Z] finch-main/docs/source/notebooks/finch-usage.ipynb ......                [ 38%]
[2025-11-28T18:18:43.117Z] PAVICS-landing-master/content/notebooks/climate_indicators/PAVICStutorial_ClimateDataAnalysis-1DataAccess.ipynb . [ 38%]
[2025-11-28T18:18:48.042Z] .....                                                                    [ 39%]
[2025-11-28T18:19:34.750Z] PAVICS-landing-master/content/notebooks/climate_indicators/PAVICStutorial_ClimateDataAnalysis-2Subsetting.ipynb . [ 40%]
[2025-11-28T18:20:08.657Z] ............                                                             [ 42%]
[2025-11-28T18:20:35.217Z] PAVICS-landing-master/content/notebooks/climate_indicators/PAVICStutorial_ClimateDataAnalysis-3Climate-Indicators.ipynb . [ 42%]
[2025-11-28T18:21:14.493Z] .....s.                                                                  [ 43%]
[2025-11-28T18:21:21.077Z] PAVICS-landing-master/content/notebooks/climate_indicators/PAVICStutorial_ClimateDataAnalysis-4Ensembles.ipynb . [ 43%]
[2025-11-28T18:21:27.812Z] ..                                                                       [ 44%]
[2025-11-28T18:21:35.952Z] PAVICS-landing-master/content/notebooks/climate_indicators/PAVICStutorial_ClimateDataAnalysis-5Visualization.ipynb . [ 44%]
[2025-11-28T18:22:44.987Z] .........                                                                [ 46%]
[2025-11-28T18:22:54.969Z] PAVICS-landing-master/content/notebooks/climate_indicators/PAVICStutorial_ClimateDataAnalysis-6Regridding_Conversion.ipynb . [ 46%]
[2025-11-28T18:24:35.521Z] ....                                                                     [ 47%]
[2025-11-28T18:24:38.058Z] PAVICS-landing-master/content/notebooks/hydrology/PAVICStutorial_Hydrology-01_Intro.ipynb . [ 47%]
[2025-11-28T18:24:44.206Z] ....                                                                     [ 48%]
[2025-11-28T18:24:48.420Z] PAVICS-landing-master/content/notebooks/hydrology/PAVICStutorial_Hydrology-02_Calibration.ipynb . [ 48%]
[2025-11-28T18:24:58.918Z] .....                                                                    [ 49%]
[2025-11-28T18:25:02.216Z] PAVICS-landing-master/content/notebooks/hydrology/PAVICStutorial_Hydrology-03_Watershed_properties.ipynb . [ 49%]
[2025-11-28T18:25:07.955Z] .............                                                            [ 51%]
[2025-11-28T18:25:13.227Z] PAVICS-landing-master/content/notebooks/hydrology/PAVICStutorial_Hydrology-04_Time_series_analysis.ipynb . [ 51%]
[2025-11-28T18:25:14.262Z] ......                                                                   [ 53%]
[2025-11-28T18:25:24.933Z] raven-main/docs/source/notebooks/Region_selection.ipynb .........        [ 54%]
[2025-11-28T18:25:26.839Z] raven-main/docs/source/notebooks/Subset_climate_data_over_watershed.ipynb . [ 54%]
[2025-11-28T18:25:50.566Z] ......                                                                   [ 56%]
[2025-11-28T18:25:52.480Z] RavenPy-main/docs/notebooks/00_Introduction_to_JupyterLab.ipynb ......   [ 57%]
[2025-11-28T18:26:03.154Z] RavenPy-main/docs/notebooks/01_Getting_watershed_boundaries.ipynb ...... [ 58%]
[2025-11-28T18:26:03.154Z] ..                                                                       [ 58%]
[2025-11-28T18:26:09.724Z] RavenPy-main/docs/notebooks/02_Extract_geographical_watershed_properties.ipynb . [ 58%]
[2025-11-28T18:26:14.350Z] .............                                                            [ 61%]
[2025-11-28T18:27:53.734Z] RavenPy-main/docs/notebooks/03_Extracting_forcing_data.ipynb ........... [ 63%]
[2025-11-28T18:27:53.734Z]                                                                          [ 63%]
[2025-11-28T18:27:55.624Z] RavenPy-main/docs/notebooks/04_Emulating_hydrological_models.ipynb ..... [ 64%]
[2025-11-28T18:28:02.928Z] ...............                                                          [ 67%]
[2025-11-28T18:28:08.206Z] RavenPy-main/docs/notebooks/05_Advanced_RavenPy_configuration.ipynb .... [ 67%]
[2025-11-28T18:28:16.142Z] .........                                                                [ 69%]
[2025-11-28T18:28:28.810Z] RavenPy-main/docs/notebooks/06_Raven_calibration.ipynb ......            [ 70%]
[2025-11-28T18:28:36.589Z] RavenPy-main/docs/notebooks/07_Making_and_using_hotstart_files.ipynb ... [ 71%]
[2025-11-28T18:28:39.162Z] ...                                                                      [ 71%]
[2025-11-28T18:28:45.736Z] RavenPy-main/docs/notebooks/08_Getting_and_bias_correcting_CMIP6_data.ipynb . [ 71%]
[2025-11-28T18:36:47.385Z] ...............                                                          [ 74%]
[2025-11-28T18:36:49.924Z] RavenPy-main/docs/notebooks/09_Hydrological_impacts_of_climate_change.ipynb . [ 74%]
[2025-11-28T18:36:56.761Z] ....                                                                     [ 75%]
[2025-11-28T18:37:36.743Z] RavenPy-main/docs/notebooks/10_Data_assimilation.ipynb ........          [ 77%]
[2025-11-28T18:37:47.050Z] RavenPy-main/docs/notebooks/11_Climatological_ESP_forecasting.ipynb .... [ 77%]
[2025-11-28T18:38:13.544Z] ....                                                                     [ 78%]
[2025-11-28T18:38:21.678Z] RavenPy-main/docs/notebooks/12_Performing_hindcasting_experiments.ipynb . [ 78%]
[2025-11-28T18:38:31.273Z] .......                                                                  [ 80%]
[2025-11-28T18:38:56.228Z] RavenPy-main/docs/notebooks/Assess_probabilistic_flood_risk.ipynb ...... [ 81%]
[2025-11-28T18:38:57.167Z] .                                                                        [ 81%]
[2025-11-28T18:39:05.299Z] RavenPy-main/docs/notebooks/Comparing_hindcasts_and_ESP_forecasts.ipynb . [ 81%]
[2025-11-28T18:39:26.544Z] .......                                                                  [ 82%]
[2025-11-28T18:39:33.135Z] RavenPy-main/docs/notebooks/Distributed_hydrological_modelling.ipynb ... [ 83%]
[2025-11-28T18:39:49.911Z] ....                                                                     [ 84%]
[2025-11-28T18:40:03.378Z] RavenPy-main/docs/notebooks/Hydrological_realtime_forecasting.ipynb .... [ 84%]
[2025-11-28T18:40:10.218Z] ..                                                                       [ 85%]
[2025-11-28T18:40:38.169Z] RavenPy-main/docs/notebooks/Managing_Jupyter_Environments.ipynb ...      [ 85%]
[2025-11-28T18:41:09.183Z] RavenPy-main/docs/notebooks/Perform_Regionalization.ipynb .......        [ 87%]
[2025-11-28T18:41:12.662Z] RavenPy-main/docs/notebooks/Running_HMETS_with_CANOPEX_dataset.ipynb ... [ 87%]
[2025-11-28T18:41:30.682Z] ..........                                                               [ 89%]
[2025-11-28T18:41:51.122Z] RavenPy-main/docs/notebooks/Sensitivity_analysis.ipynb ......            [ 90%]
[2025-11-28T18:41:58.019Z] RavenPy-main/docs/notebooks/time_series_analysis.ipynb ...........       [ 92%]
[2025-11-28T18:42:04.601Z] RavenPy-main/docs/notebooks/paper/Perform_a_climate_change_impact_study_on_a_watershed.ipynb . [ 92%]
[2025-11-28T18:46:39.255Z] .............Fxxxxxx                                                     [ 96%]
[2025-11-28T18:46:39.255Z] notebooks/hummingbird.ipynb ............                                 [ 98%]
[2025-11-28T18:49:09.766Z] notebooks/stress-tests.ipynb ......                                      [100%]
[2025-11-28T18:49:09.766Z] 
[2025-11-28T18:49:09.766Z] =================================== FAILURES ===================================
    
  

Copy link
Collaborator

@tlvu tlvu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Duplicate BIRDHOUSE_SSL_CERTIFICATE

@crim-jenkins-bot
Copy link
Collaborator

E2E Test Results

DACCS-iac Pipeline Results

Build URL : http://daccs-jenkins.crim.ca:80/job/DACCS-iac-birdhouse/3855/
Result 🆘 ABORTED

BIRDHOUSE_DEPLOY_BRANCH : add-cors-origin
DACCS_IAC_BRANCH : master
DACCS_CONFIGS_BRANCH : master
PAVICS_E2E_WORKFLOW_TESTS_BRANCH : master
PAVICS_SDI_BRANCH : master

DESTROY_INFRA_ON_EXIT : true
PAVICS_HOST : https://host-140-91.rdext.crim.ca

⚠️ Infrastructure deployment failed. ⚠️
Instance destroyed due to CI execution.
To debug, launch an instance manually with PR reference
add-cors-origin.

@crim-jenkins-bot
Copy link
Collaborator

E2E Test Results

DACCS-iac Pipeline Results

Build URL : http://daccs-jenkins.crim.ca:80/job/DACCS-iac-birdhouse/3854/
Result 🆘 ABORTED

BIRDHOUSE_DEPLOY_BRANCH : add-cors-origin
DACCS_IAC_BRANCH : master
DACCS_CONFIGS_BRANCH : master
PAVICS_E2E_WORKFLOW_TESTS_BRANCH : master
PAVICS_SDI_BRANCH : master

DESTROY_INFRA_ON_EXIT : true
PAVICS_HOST : https://host-140-91.rdext.crim.ca

⚠️ Infrastructure deployment failed. ⚠️
Instance destroyed due to CI execution.
To debug, launch an instance manually with PR reference
add-cors-origin.

if ( $access_control_allow_origin ~ "^$" ) {
set $access_control_allow_origin '*';
}
# assumes that the server default is configured or overriden by a specific locaiton block as needed
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this if block needed anymore?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think so because the value could still be set explicitly (or resolved from variable expansions) to ''.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

typo 'locaiton'

# Set to "*" to allow all origins by default
# If you want to restrict access, set this to the space-delimited allowed domain(s)
# Can use other variables if needed (e.g.: '${BIRDHOUSE_PROXY_SCHEME}://${BIRDHOUSE_FQDN_PUBLIC}')
export BIRDHOUSE_PROXY_CORS_ALLOW_ORIGIN="*"
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One very small last thing:

Can we add a note here that reminds the user that if this is unset (or set to the empty string) then it will default to "*" (because of the if block in cors.include).

That might be something that would surprise users if they haven't looked too closely at cors.include

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

On the other hand, if the user explicitly override it to empty string in env.local, maybe he wants to not allow '*' and if we still set to '*' in cors.include, is that a good thing?!

Is there any scenarios where the user really want that value to be empty string and we should not block that?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If you set '' to the CORS header, it is just wrong (not one of its permitted standard values). It will unset the header in nginx response, while still sending mixed signals since other Access-Control-... headers would be present. Also, since set $vary_origin Origin; is set when != *, it would indicate that the result varies based on Origin, but doesn't actually perform that varying response.

I think overall, unless you list specific origins to allow, the intent is always *.
I will add the note though about auto-fix just to be explicit about it.

Copy link
Collaborator

@tlvu tlvu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good for me know. Minor question about whether we should allow the user to override to empty string.

if ( $access_control_allow_origin ~ "^$" ) {
set $access_control_allow_origin '*';
}
# assumes that the server default is configured or overriden by a specific locaiton block as needed
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

typo 'locaiton'

# Set to "*" to allow all origins by default
# If you want to restrict access, set this to the space-delimited allowed domain(s)
# Can use other variables if needed (e.g.: '${BIRDHOUSE_PROXY_SCHEME}://${BIRDHOUSE_FQDN_PUBLIC}')
export BIRDHOUSE_PROXY_CORS_ALLOW_ORIGIN="*"
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

On the other hand, if the user explicitly override it to empty string in env.local, maybe he wants to not allow '*' and if we still set to '*' in cors.include, is that a good thing?!

Is there any scenarios where the user really want that value to be empty string and we should not block that?

@tlvu
Copy link
Collaborator

tlvu commented Dec 3, 2025

The cors.include.template diff looks massive, but the actual concrete change is only adding:

set $access_control_allow_origin "${BIRDHOUSE_PROXY_CORS_ALLOW_ORIGIN}";

By the way, I think you could have avoided all the diff noise if you git mv cors.include cors.include.template; git commit, then update the content in a separate commit.

Bonus git log --follow cors.include.template will be able to also show all commits in the previous name as well.

Git an auto detect a rename if the change is small. But if you also fix indentations within the same change, git will see a large diff and will think it's a new file, unrelated to the old name.

@fmigneault
Copy link
Member Author

By the way, I think you could have avoided all the diff noise if you git mv cors.include cors.include.template; git commit, then update the content in a separate commit.

It wasn't done in one step on my end. It was multiple commits spread out over a few days.

@tlvu
Copy link
Collaborator

tlvu commented Dec 4, 2025

It wasn't done in one step on my end. It was multiple commits spread out over a few days.

Yes, I didn't mean for you to fix it now, too late now. I mean next time, if you do the rename in 2 commits (one commit just for rename, and one commit to modify the file content), the diff will be cleaner and we preserve the rename history.

@github-actions github-actions bot added the ci/operations Continuous Integration components label Dec 5, 2025
@fmigneault fmigneault merged commit a839d0b into master Dec 5, 2025
4 of 5 checks passed
@fmigneault fmigneault deleted the add-cors-origin branch December 5, 2025 19:38
@crim-jenkins-bot
Copy link
Collaborator

E2E Test Results

DACCS-iac Pipeline Results

Build URL : http://daccs-jenkins.crim.ca:80/job/DACCS-iac-birdhouse/3858/
Result 🆘 ABORTED

BIRDHOUSE_DEPLOY_BRANCH : add-cors-origin
DACCS_IAC_BRANCH : master
DACCS_CONFIGS_BRANCH : master
PAVICS_E2E_WORKFLOW_TESTS_BRANCH : master
PAVICS_SDI_BRANCH : master

DESTROY_INFRA_ON_EXIT : true
PAVICS_HOST : https://host-140-91.rdext.crim.ca

⚠️ Infrastructure deployment failed. ⚠️
Instance destroyed due to CI execution.
To debug, launch an instance manually with PR reference
add-cors-origin.

@crim-jenkins-bot
Copy link
Collaborator

E2E Test Results

DACCS-iac Pipeline Results

Build URL : http://daccs-jenkins.crim.ca:80/job/DACCS-iac-birdhouse/3857/
Result 🆘 ABORTED

BIRDHOUSE_DEPLOY_BRANCH : add-cors-origin
DACCS_IAC_BRANCH : master
DACCS_CONFIGS_BRANCH : master
PAVICS_E2E_WORKFLOW_TESTS_BRANCH : master
PAVICS_SDI_BRANCH : master

DESTROY_INFRA_ON_EXIT : true
PAVICS_HOST : https://host-140-154.rdext.crim.ca

⚠️ Infrastructure deployment failed. ⚠️
Instance destroyed due to CI execution.
To debug, launch an instance manually with PR reference
add-cors-origin.

@crim-jenkins-bot
Copy link
Collaborator

E2E Test Results

DACCS-iac Pipeline Results

Build URL : http://daccs-jenkins.crim.ca:80/job/DACCS-iac-birdhouse/3856/
Result 🆘 ABORTED

BIRDHOUSE_DEPLOY_BRANCH : add-cors-origin
DACCS_IAC_BRANCH : master
DACCS_CONFIGS_BRANCH : master
PAVICS_E2E_WORKFLOW_TESTS_BRANCH : master
PAVICS_SDI_BRANCH : master

DESTROY_INFRA_ON_EXIT : true
PAVICS_HOST : https://host-140-216.rdext.crim.ca

⚠️ Infrastructure deployment failed. ⚠️
Instance destroyed due to CI execution.
To debug, launch an instance manually with PR reference
add-cors-origin.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci/operations Continuous Integration components component/STAC Features or components related to STAC documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Issues with STAC CORS options

5 participants