Open mitchellh opened 2 weeks ago
I just noticed the internal API has something very close to what I'd love to have exposed publicly:
// these for now are only needed for tests
#ifdef SENTRY_UNITTEST
size_t sentry__envelope_get_item_count(const sentry_envelope_t *envelope);
const sentry_envelope_item_t *sentry__envelope_get_item(
const sentry_envelope_t *envelope, size_t idx);
sentry_value_t sentry__envelope_item_get_header(
const sentry_envelope_item_t *item, const char *key);
const char *sentry__envelope_item_get_payload(
const sentry_envelope_item_t *item, size_t *payload_len_out);
#endif
Hey @mitchellh thanks for the suggestion. We think this makes sense and we'll likely open this API up for the next release.
In my use case, I'd like to filter envelopes in my transport depending on what is included in them (specifically, I only care about crashes). The envelope API as is is too limited to do this but I can see the envelope structure internally already easily has access to all the information I need. What I'd like to propose:
I'd also be happy with making a new opaque
sentry_envelope_item_t
and building an API around that...