Mirror of https://github.com/roostorg/osprey github.com/roostorg/osprey
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

use flask-cors to fix preflight cors errors (#37)

authored by

hailey and committed by
GitHub
fb1d3654 761c9cfc

+35 -5
+2 -1
osprey_worker/pyproject.toml
··· 5 5 readme = "README.md" 6 6 requires-python = ">=3.11" 7 7 dependencies = [ 8 - "osprey_rpc" 8 + "flask-cors>=6.0.1", 9 + "osprey_rpc", 9 10 ] 10 11 [project.entry-points."osprey_plugin"] 11 12 stdlib = "osprey.worker._stdlibplugin"
+4 -3
osprey_worker/src/osprey/worker/ui_api/osprey/app.py
··· 13 13 14 14 import sentry_sdk 15 15 from flask import Flask, Response 16 + from flask_cors import CORS 16 17 from osprey.engine.ast_validator.validation_context import ValidationFailed 17 18 from osprey.worker.lib import ddtrace_utils 18 19 from osprey.worker.lib.osprey_shared.logging import get_logger ··· 21 22 22 23 23 24 def _after_request(response: Response) -> Response: 24 - response.headers.add('Access-Control-Allow-Origin', '*') 25 - response.headers.add('Access-Control-Allow-Headers', '*') 26 - response.headers.add('Access-Control-Allow-Methods', '*') 27 25 response.mimetype = 'application/json' 28 26 29 27 return response ··· 84 82 gunicorn_logger = get_logger('gunicorn.error') 85 83 86 84 app = OspreyFlask(__name__) 85 + 86 + # allows requests to come from any origin 87 + CORS(app) 87 88 88 89 postgres.init_app(app) 89 90 app.after_request(_after_request)
+1
pyproject.toml
··· 181 181 "pre-commit>=4.3.0", 182 182 "ruff>=0.12.9", 183 183 "sqlalchemy[mypy]>=1.4.31", 184 + "types-flask-cors>=3.0.10", 184 185 ] 185 186 186 187
+28 -1
uv.lock
··· 203 203 { name = "pre-commit", specifier = ">=4.3.0" }, 204 204 { name = "ruff", specifier = ">=0.12.9" }, 205 205 { name = "sqlalchemy", extras = ["mypy"], specifier = ">=1.4.31" }, 206 + { name = "types-flask-cors", specifier = ">=3.0.10" }, 206 207 ] 207 208 208 209 [[package]] ··· 638 639 sdist = { url = "https://files.pythonhosted.org/packages/4d/5b/2d145f5fe718b2f15ebe69240538f06faa8bbb76488bf962091db1f7a26d/Flask-1.1.4.tar.gz", hash = "sha256:0fbeb6180d383a9186d0d6ed954e0042ad9f18e0e8de088b2b419d526927d196", size = 635920, upload-time = "2021-05-14T01:45:58.328Z" } 639 640 wheels = [ 640 641 { url = "https://files.pythonhosted.org/packages/e8/6d/994208daa354f68fd89a34a8bafbeaab26fda84e7af1e35bdaed02b667e6/Flask-1.1.4-py2.py3-none-any.whl", hash = "sha256:c34f04500f2cbbea882b1acb02002ad6fe6b7ffa64a6164577995657f50aed22", size = 94591, upload-time = "2021-05-14T01:45:55.061Z" }, 642 + ] 643 + 644 + [[package]] 645 + name = "flask-cors" 646 + version = "6.0.1" 647 + source = { registry = "https://pypi.org/simple" } 648 + dependencies = [ 649 + { name = "flask" }, 650 + { name = "werkzeug" }, 651 + ] 652 + sdist = { url = "https://files.pythonhosted.org/packages/76/37/bcfa6c7d5eec777c4c7cf45ce6b27631cebe5230caf88d85eadd63edd37a/flask_cors-6.0.1.tar.gz", hash = "sha256:d81bcb31f07b0985be7f48406247e9243aced229b7747219160a0559edd678db", size = 13463, upload-time = "2025-06-11T01:32:08.518Z" } 653 + wheels = [ 654 + { url = "https://files.pythonhosted.org/packages/17/f8/01bf35a3afd734345528f98d0353f2a978a476528ad4d7e78b70c4d149dd/flask_cors-6.0.1-py3-none-any.whl", hash = "sha256:c7b2cbfb1a31aa0d2e5341eea03a6805349f7a61647daee1a15c46bbe981494c", size = 13244, upload-time = "2025-06-11T01:32:07.352Z" }, 641 655 ] 642 656 643 657 [[package]] ··· 1624 1638 version = "0.1.0" 1625 1639 source = { editable = "osprey_worker" } 1626 1640 dependencies = [ 1641 + { name = "flask-cors" }, 1627 1642 { name = "osprey-rpc" }, 1628 1643 ] 1629 1644 1630 1645 [package.metadata] 1631 - requires-dist = [{ name = "osprey-rpc", editable = "osprey_rpc" }] 1646 + requires-dist = [ 1647 + { name = "flask-cors", specifier = ">=6.0.1" }, 1648 + { name = "osprey-rpc", editable = "osprey_rpc" }, 1649 + ] 1632 1650 1633 1651 [[package]] 1634 1652 name = "packaging" ··· 2522 2540 sdist = { url = "https://files.pythonhosted.org/packages/79/65/728a104973133a45fba50f3d1e1ee832287666ac74cfd47004cea8402ea3/types-Flask-1.1.6.tar.gz", hash = "sha256:aac777b3abfff9436e6b01f6d08171cf23ea6e5be71cbf773aaabb1c5763e9cf", size = 9829, upload-time = "2021-11-26T06:21:31.199Z" } 2523 2541 wheels = [ 2524 2542 { url = "https://files.pythonhosted.org/packages/60/6c/a98a0c29c39d8a6283ac704f3d36f0d570d8dee931e9d46d6cc60d436bec/types_Flask-1.1.6-py3-none-any.whl", hash = "sha256:6ab8a9a5e258b76539d652f6341408867298550b19b81f0e41e916825fc39087", size = 13733, upload-time = "2021-11-26T06:21:30.365Z" }, 2543 + ] 2544 + 2545 + [[package]] 2546 + name = "types-flask-cors" 2547 + version = "3.0.10" 2548 + source = { registry = "https://pypi.org/simple" } 2549 + sdist = { url = "https://files.pythonhosted.org/packages/3a/cf/e0ead32db111ffa49c7bdfc9854a4d81f6b5b0f3e05e3d5cb6fb2b849ffb/types-Flask-Cors-3.0.10.tar.gz", hash = "sha256:8d2dad18f3f5d2b3a22bc4235c97629b701b784fd428e671564093ca293ae91d", size = 3779, upload-time = "2022-07-12T15:25:46.787Z" } 2550 + wheels = [ 2551 + { url = "https://files.pythonhosted.org/packages/77/91/d23d00dc4cae85097cd89c35c6c2caf92e98829e60ae7c0e5a7700aa565b/types_Flask_Cors-3.0.10-py3-none-any.whl", hash = "sha256:17ba57b32a97dde31d136e2b312f06714533d1e828bf5328adde64b49c9cdbd8", size = 4507, upload-time = "2022-07-12T15:25:45.478Z" }, 2525 2552 ] 2526 2553 2527 2554 [[package]]