You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The ScopeProvider has several "slots" of information, such as "environment", "tags", "release", "tags" and "user".
There's an individual chain of *Provider classes for each slot.
Every such class can add data.
Each provider is unaware of the data other providers contributed, as well as the data already present in the Sentry\Event during runtime. So those calls are more or less static, although they can depend on user input such as e.g. the currently logged in frontend user.
Obstacle:
There is no way of overruling existing data by reading it from the Event object, manipulating it, and adding it back to the event.
Real world example: Replace the POST payload with an encrypted version of it.
Try and recreate the POST body exactly like Sentry did (by copying Sentry code because this part is private).
Overwrite every POST body attribute with null, hoping to eliminate existing data.
Encrypt and export in a new POST body attribute.
This isn't particularly confidence inspiring because every Sentry update might change the way this data is named slightly without me knowing I'm pushing unencrypted data to Sentry again.
Making changes in two slots at once isn't possible.
The mentioned feature of encrypting POST body data should add a link to the neos backend, targeting a backend module where administrators can decrypt and review this data.
This link should go into the "Extras" section, not into the POST body.
What should we do?
Introduce the concept of EventProcessors.
EventProcessors have a separate configuration section in the yaml file.
The EventProcessor should take an Event and update it or replace it entirely.
Make the NetlogixIntegraton walk through the chain of EventProcessors exactly where currently the ScopeProcessor is asked for collection slot data.
Move all ScopeProvider::collect* methods into individual *EventProcessor classes.
This should, from the perspective of yaml configuration and interfaces in the "Scope" folder, with no breaking change while adding a new layer of event manipulation capability.
The text was updated successfully, but these errors were encountered:
Current situation:
The
ScopeProvider
has several "slots" of information, such as "environment", "tags", "release", "tags" and "user".There's an individual chain of
*Provider
classes for each slot.Every such class can add data.
Each provider is unaware of the data other providers contributed, as well as the data already present in the
Sentry\Event
during runtime. So those calls are more or less static, although they can depend on user input such as e.g. the currently logged in frontend user.Obstacle:
There is no way of overruling existing data by reading it from the Event object, manipulating it, and adding it back to the event.
Real world example: Replace the POST payload with an encrypted version of it.
private
).null
, hoping to eliminate existing data.This isn't particularly confidence inspiring because every Sentry update might change the way this data is named slightly without me knowing I'm pushing unencrypted data to Sentry again.
Making changes in two slots at once isn't possible.
The mentioned feature of encrypting POST body data should add a link to the neos backend, targeting a backend module where administrators can decrypt and review this data.
This link should go into the "Extras" section, not into the POST body.
What should we do?
EventProcessors
.EventProcessors
have a separate configuration section in the yaml file.EventProcessor
should take anEvent
and update it or replace it entirely.NetlogixIntegraton
walk through the chain ofEventProcessors
exactly where currently theScopeProcessor
is asked for collection slot data.ScopeProvider::collect*
methods into individual*EventProcessor
classes.This should, from the perspective of yaml configuration and interfaces in the "Scope" folder, with no breaking change while adding a new layer of event manipulation capability.
The text was updated successfully, but these errors were encountered: