Browse Source

Doc'd use of asgiref.sync adapters with sensitive variables.

Carlton Gibson 2 years ago
parent
commit
b00046d2c2
2 changed files with 25 additions and 0 deletions
  1. 11 0
      docs/howto/error-reporting.txt
  2. 14 0
      docs/topics/async.txt

+ 11 - 0
docs/howto/error-reporting.txt

@@ -194,6 +194,17 @@ filtered out of error reports in a production environment (that is, where
             def process_info(user):
                 ...
 
+    .. warning::
+
+        Due to the machinery needed to cross the sync/async boundary,
+        :func:`~asgiref.sync.sync_to_async` and
+        :func:`~asgiref.sync.async_to_sync` are **not** compatible with
+        ``sensitive_variables()``.
+
+        If using these adapters with sensitive variables, ensure to audit
+        exception reporting, and consider implementing a :ref:`custom filter
+        <custom-error-reports>` if necessary.
+
     .. versionchanged:: 5.0
 
         Support for wrapping ``async`` functions was added.

+ 14 - 0
docs/topics/async.txt

@@ -338,3 +338,17 @@ trigger the thread safety checks:
 Rather, you should encapsulate all database access within a helper function
 that can be called with ``sync_to_async()`` without relying on the connection
 object in the calling code.
+
+Use with exception reporting filters
+------------------------------------
+
+.. warning::
+
+    Due to the machinery needed to cross the sync/async boundary,
+    ``sync_to_async()`` and ``async_to_sync()`` are **not** compatible with
+    :func:`~django.views.decorators.debug.sensitive_variables`, used to mask
+    local variables from exception reports.
+
+    If using these adapters with sensitive variables, ensure to audit exception
+    reporting, and consider implementing a :ref:`custom filter
+    <custom-error-reports>` if necessary.