diff --git a/envipath/settings.py b/envipath/settings.py index 17292806..1f430335 100644 --- a/envipath/settings.py +++ b/envipath/settings.py @@ -280,3 +280,14 @@ else: CLASSIFIER_PLUGINS = {} PROPERTY_PLUGINS = {} DESCRIPTOR_PLUGINS = {} + +SENTRY_ENABLED = os.environ.get('SENTRY_ENABLED', 'False') == 'True' +if SENTRY_ENABLED: + import sentry_sdk + + sentry_sdk.init( + dsn=os.environ.get('SENTRY_DSN'), + # Add data like request headers and IP for users, + # see https://docs.sentry.io/platforms/python/data-management/data-collected/ for more info + send_default_pii=True, + ) diff --git a/pyproject.toml b/pyproject.toml index a5f62136..06e254f9 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -21,6 +21,7 @@ dependencies = [ "redis>=6.1.0", "requests>=2.32.3", "scikit-learn>=1.6.1", + "sentry-sdk[django]>=2.32.0", "setuptools>=80.8.0", ] diff --git a/uv.lock b/uv.lock index a7fe59e3..119d4f92 100644 --- a/uv.lock +++ b/uv.lock @@ -412,6 +412,7 @@ dependencies = [ { name = "redis" }, { name = "requests" }, { name = "scikit-learn" }, + { name = "sentry-sdk", extra = ["django"] }, { name = "setuptools" }, ] @@ -433,6 +434,7 @@ requires-dist = [ { name = "redis", specifier = ">=6.1.0" }, { name = "requests", specifier = ">=2.32.3" }, { name = "scikit-learn", specifier = ">=1.6.1" }, + { name = "sentry-sdk", extras = ["django"], specifier = ">=2.32.0" }, { name = "setuptools", specifier = ">=80.8.0" }, ] @@ -1610,6 +1612,24 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/81/06/0a5e5349474e1cbc5757975b21bd4fad0e72ebf138c5592f191646154e06/scipy-1.15.3-cp313-cp313t-win_amd64.whl", hash = "sha256:76ad1fb5f8752eabf0fa02e4cc0336b4e8f021e2d5f061ed37d6d264db35e3ca", size = 40308097 }, ] +[[package]] +name = "sentry-sdk" +version = "2.32.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/10/59/eb90c45cb836cf8bec973bba10230ddad1c55e2b2e9ffa9d7d7368948358/sentry_sdk-2.32.0.tar.gz", hash = "sha256:9016c75d9316b0f6921ac14c8cd4fb938f26002430ac5be9945ab280f78bec6b", size = 334932 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/01/a1/fc4856bd02d2097324fb7ce05b3021fb850f864b83ca765f6e37e92ff8ca/sentry_sdk-2.32.0-py2.py3-none-any.whl", hash = "sha256:6cf51521b099562d7ce3606da928c473643abe99b00ce4cb5626ea735f4ec345", size = 356122 }, +] + +[package.optional-dependencies] +django = [ + { name = "django" }, +] + [[package]] name = "setuptools" version = "80.8.0"