What user/guild specific data is collected by the Sentry extension?

I'm currently in the process of writing up a privacy policy for a bot and just wanted to know what data is sent to Sentry that I'd need to include in it.
Solution:
Sentry submission data The following sections explain precisely what data Kord Extensions will send to Sentry, assuming you're using the provided default SentryAdapter and not your own custom subtype. Note: Sentry includes a number of options that aid with GDPR (and other privacy law) compliance. It's advisable to look through the settings that Sentry provides, and it's important to anonymise (or delete) Sentry events when the information is no longer needed....
Jump to solution
21 Replies
gdude
gdude13mo ago
Oh hey, Pyrrha yknow it'd be smart to document that for compliance wouldn't it give me a few
Pyrrha
PyrrhaOP13mo ago
hihi lol
gdude
gdude13mo ago
in the case of KordEx itself, I can go ahead and compile a list however it's worth noting that the SentryContext is exposed to extensions so they can add their own context via eg breadcrumbs but anyway if you give me a bit I'll write up a longer message you can mark
Pyrrha
PyrrhaOP13mo ago
sweet as, thanks
gdude
gdude13mo ago
just gotta brb
Solution
gdude
gdude13mo ago
Sentry submission data The following sections explain precisely what data Kord Extensions will send to Sentry, assuming you're using the provided default SentryAdapter and not your own custom subtype. Note: Sentry includes a number of options that aid with GDPR (and other privacy law) compliance. It's advisable to look through the settings that Sentry provides, and it's important to anonymise (or delete) Sentry events when the information is no longer needed. The data below was compiled using an IDE's "search for usages" feature. It should be correct as of this writing, on the 19th of November, 2023. Bundled Frameworks Commands Framework On command execution failure, event submitted to Sentry containing: - Any breadrumbs provided by the command's logic, which may contain anything - Channel ID - Channel name (only if a guild channel) - Channel type (DM or guild channel) - Command arguments - Command name - Command type - Exception message, traceback and code location, including surrounding lines of code - Guild name and ID - Message content (if the message caused a chat command to be executed) - Parent extension name - User ID - User name (including discriminator if applicable) Components Framework On component action execution failure, event submitted to Sentry containing: - Any breadrumbs provided by the component action's logic, which may contain anything - Channel ID - Channel name (only if a guild channel) - Channel type (DM or guild channel) - Component ID - Component type - Exception message, traceback and code location, including surrounding lines of code - Guild ID and name (if applicable) - Message ID (no message content) - User ID - User name (including discriminator if applicable) Event Handlers On event handler execution failure, event submitted to Sentry containing: - Any breadrumbs provided by the event handler's logic, which may contain anything - Channel ID - Channel name (only if a guild channel) - Channel type (DM or guild channel) - Event class name (if available) - Exception message, traceback and code location, including surrounding lines of code - Guild ID and name (if applicable) - Message ID, if the event concerned a message - Parent extension name - Role ID and name, if the event concerned a role - Thread ID and name (if applicable) - User name (including discriminator if applictable) and ID, if the event concerned a user Scheduler Tasks On scheduler task execution failure, event submitted to Sentry containing: - Any breadrumbs provided by the tasks's logic, which may contain anything - Exception message, traceback and code location, including surrounding lines of code - Number of task executions - Task name First-Party Modules Mappings Extension The following information is provided via breadcrumbs, to be submitted along with the rest of the data the commands framework provides on execution failure: - Query info: mappings channels, mappings namespaces, mappings type, mappings versions, query, result count
gdude
gdude13mo ago
@Pyrrha
gdude
gdude13mo ago
hope that helps
Pyrrha
PyrrhaOP13mo ago
tysm!
gdude
gdude13mo ago
it occurs to me that it might be useful to be able to turn some of these off might be worth putting an issue up
Pyrrha
PyrrhaOP13mo ago
is there a way to turn sentry reporting off for a specific user/guild so I can let people opt-in/out?
gdude
gdude13mo ago
There aren't really any configuration options other than those currently documented at https://docs.kordex.dev/config-extensions.html#sentry
Kord Extensions Help
Extensions | Kord Extensions
gdude
gdude13mo ago
there isn't anything like that interesting idea though wouldn't be complex to add tbh
Pyrrha
PyrrhaOP13mo ago
yeah, id really like to give users full control of how anything related to them is collected/etc
gdude
gdude13mo ago
mind opening an issue so I don't forget? it's late o'clock here
Pyrrha
PyrrhaOP13mo ago
yeah sure, just on github?
gdude
gdude13mo ago
yep yep
Pyrrha
PyrrhaOP13mo ago
GitHub
Sentry opt-in/out capibilities for users and guilds. · Issue #260 ·...
Summary Allow users and guilds to opt-in/out of Sentry reporting. Current Behaviour If enabled, all errors are sent to Sentry which include user and guild specific data with no way to opt-in/out Pr...
gdude
gdude13mo ago
thanks :> left a response with a rough idea
Pyrrha
PyrrhaOP13mo ago
thanks!
gdude
gdude13mo ago
o7 The scope has expanded a bit to make things a lot more flexible, but it shouldn't add much dev overhead (as well as the predicates, I'm allowing the configuration of some of the data types sent to Sentry, along with a modification pipeline) it will no longer be possible to submit a sentry event, exception or breadcrumb without a sentry capture object, although I'll make it simple enough to use this this is gonna take a while to implement but it'll be worth it getting fairly close all relevant SentryContext functions have been done now I'm not going to filter feedback objects the way I'm handling everything else, but those are handled by the sentry feedback extension anyway I'm quite happy with what I've created so far, it even supports processing hint/tag/etc maps this processing even supports special key formatting, so you can tell it what type your value relates to when it comes to personal data eg key::user will be stored as key and filtered out if user data is disabled good progress made, attempting the first build (there will be things to fix for sure) a fun side effect of this is it vastly simplifies some of the internal code kordex core module now compiles I think it's pretty much done I'll get a release set up and then push an update to the docs
Want results from more Discord servers?
Add your server