sentry-python icon indicating copy to clipboard operation
sentry-python copied to clipboard

Append to Context/User

Open rcoup opened this issue 4 years ago • 4 comments

Use case:

  1. get a user id when the request is initially parsed (eg. from an Authorization header), and call scope.set_user({'http-username': 'bob'})
  2. later during request processing, get some more user information (say, email), and do scope.set_user({'email': '[email protected]'}). Lets assume the request/headers aren't available at that point to re-retrieve http-username.
  3. the later call replaces existing data in the scope (ie: the event ends up with only {'email': '[email protected]'})
  4. same applies to other context sections (via scope.set_context('section', {'some': 'value'}))

AFAICT there isn't even a way to get the current user/contexts out again in order to manually merge them except via internals (scope._user/scope._contexts['a_section']). The framework integrations all seem to append to the user data, but that seems to happen much later in the processing.

Would it be worth exposing getter properties/methods, add scope.merge_*() methods (which call dict.update()), add merge=True|False parameters to set_user() & set_context(), or something else equivalent?

rcoup avatar Nov 26 '20 15:11 rcoup

This issue has gone three weeks without activity. In another week, I will close it.

But! If you comment or otherwise update it, I will reset the clock, and if you label it Status: Backlog or Status: In Progress, I will leave it alone ... forever!


"A weed is but an unloved flower." ― Ella Wheeler Wilcox 🥀

github-actions[bot] avatar Jan 05 '22 15:01 github-actions[bot]

Would it be worth exposing getter properties/methods, add scope.merge_*() methods (which call dict.update()), add merge=True|False parameters to set_user() & set_context(), or something else equivalent?

@sl0thentr0py I can potentially do a PR for this, but need some direction on which option is preferred

rcoup avatar Jan 06 '22 10:01 rcoup

Hi @rcoup, user facing API changes need to be discussed internally first. A lot of folks are on vacation right now. I'll try to get back to you with more info next week.

sl0thentr0py avatar Jan 06 '22 16:01 sl0thentr0py

Note for later: https://develop.sentry.dev/sdk/unified-api/#scope We're currently not doing what the documentation states, so we should probably change this in the next major.

sentrivana avatar Jul 04 '23 09:07 sentrivana