From 9c92937438226c1ff9c1a711743a4e53a0a5379c Mon Sep 17 00:00:00 2001 From: mwang87 Date: Tue, 18 Aug 2026 14:26:24 -0700 Subject: [PATCH] feat: enable CORS for gnps2.org and its subdomains Add Flask-Cors and allow cross-origin requests from gnps2.org and any *.gnps2.org subdomain (http/https). Origin regex is end-anchored to avoid matching lookalike domains like gnps2.org.evil.com. --- metabolomics_spectrum_resolver/app.py | 3 +++ requirements.txt | 1 + 2 files changed, 4 insertions(+) diff --git a/metabolomics_spectrum_resolver/app.py b/metabolomics_spectrum_resolver/app.py index bb93603..01392d6 100644 --- a/metabolomics_spectrum_resolver/app.py +++ b/metabolomics_spectrum_resolver/app.py @@ -1,6 +1,7 @@ import os from flask import Flask +from flask_cors import CORS from metabolomics_spectrum_resolver import views from metabolomics_spectrum_resolver.rate_limit import limiter @@ -25,5 +26,7 @@ class CustomFlask(Flask): app = CustomFlask(__name__) app.config.from_object(__name__) +# Allow cross-origin requests from gnps2.org and any of its subdomains. +CORS(app, origins=[r"https?://(.*\.)?gnps2\.org$"]) limiter.init_app(app) app.register_blueprint(views.blueprint) diff --git a/requirements.txt b/requirements.txt index 829f617..248d7b9 100644 --- a/requirements.txt +++ b/requirements.txt @@ -3,6 +3,7 @@ celery_once dash dash-bootstrap-components flask +Flask-Cors Flask-Limiter flex joblib