develop icon indicating copy to clipboard operation
develop copied to clipboard

Align Event Schemas across SDKs for list values

Open AbhiPrasad opened this issue 3 years ago • 1 comments

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:

  • event.breadcrumbs
  • event.exception
  • event.threads

AbhiPrasad avatar Aug 03 '22 20:08 AbhiPrasad

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.

dcramer avatar Aug 03 '22 20:08 dcramer