---
url: "https://vueda.dev/v3/reference/api/py/vueda.core.middleware.md"
title: "core.middleware"
---

# core.middleware

## Overview

ASGI middleware stack with CORS, session, auth, and Sentry user tracking.

## Classes

- [SentryUserMiddleware](/v3/reference/api/py/vueda.core.middleware/SentryUserMiddleware.md)

## `AsgiMiddlewareStack` {#AsgiMiddlewareStack}

AllowedHostsOriginValidator isn't here since it is websocket specific, the rest can be used on
 both http and websocket connections.

### Signature {#AsgiMiddlewareStack-signature}

`AsgiMiddlewareStack(inner)`

#### Parameters {#AsgiMiddlewareStack-parameters}

| Name | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| <span id="AsgiMiddlewareStack-param-inner">inner</span> |  | yes |  |  |

### Source {#AsgiMiddlewareStack-source}

`server/vueda/core/middleware.py:48`

## `update_sentry_user` {#update_sentry_user}

Set the Sentry user for the current scope from ``user``, or clear it when ``user`` is ``None``.

An anonymous user sends only the automatic IP address; a saved user also sends its pk and email.

### Signature {#update_sentry_user-signature}

`update_sentry_user(user)`

#### Parameters {#update_sentry_user-parameters}

| Name | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| <span id="update_sentry_user-param-user">user</span> |  | yes |  |  |

### Source {#update_sentry_user-source}

`server/vueda/core/middleware.py:17`

## Source

`server/vueda/core/middleware.py`
