getsentry / develop

https://develop.sentry.dev
Other
56 stars 224 forks source link

Align Event Schemas across SDKs for list values #662

Open AbhiPrasad opened 2 years ago

AbhiPrasad commented 2 years ago

In https://github.com/getsentry/sentry-python/discussions/1537 it was highlighted that there are inconsistencies between the events generated in the JS SDK and in the Python SDK. Specifically:

The problem is that in the Python event, breadcrumbs is a dict with a key values mapping to a list. But JS expects breadcrumbs to just be the list (array) rather than a dict (object). If I set event.breadcrumbs = event.breadcrumbs.values in JS, then everything goes back to working perfectly. However this doesn't mean much since in this case event.breadcrumbs is just {values: []}. I don't know if there are sometimes keys other than values, or if the lists themselves are also sometimes incompatible between the SDKs.

This applies to all event items that are a flat list vs. a list under values, which for now are:

dcramer commented 2 years ago

FYI this exists this way for compatibility reasons. The ideal world kept it as a flat list, but because our interfaces required key/value, we would accept that data type and then map it to the values attribute. So that means both are/were valid. I dont think it solves the UX of if you need to filter/augment it on the client though.