getsentry / getsentry/sentry-python

Append to Context/User

Aperta
#933 4 commenti 1 reazione 1 assegnatario Rivendicata da @sl0thentr0py Vedi su GitHub
Discussion Improvement Python
Lingua principale
Python
Stelle
2.2k
Fork
669
Merge medio
1g 1h
PR unite (30g)
213

Descrizione

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': 'test@example.com'})`. 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': 'test@example.com'}`)
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?

Guida per i contributori

Apri la guida per i contributori

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.