Add anonymous analytics to Granted Approvals #8
chrnorm
started this conversation in
Discussions
Replies: 1 comment
-
I fully support this, but main thoughts:
|
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Background
As developers of Granted Approvals we have very little visibility into how the project is being used. Typically we find out about deployments of Granted Approvals because a community member joins our Slack channel (usually when they have challenges getting started). Community members with successful deployments tend to be quieter because everything is working well.
This RFD discusses adding anonymous product analytics to Granted Approvals to help us improve the project. The questions which we want to answer through these include:
Given the nature of the project, collecting usage information is sensitive. We do not plan on collecting any identifiable information. This includes email addresses, AWS account IDs, Access Rule names/descriptions, deployment region, and identifiable deployment characteristics like a sign-in URL which may contain a company’s name. When collecting analytics we will not be logging IP addresses. We plan on implementing server-side analytics only, and are not planning on adding any client-side analytics JavaScript to the Granted Approvals web dashboards.
In terms of implementation, we plan on displaying a prompt to users informing them that anonymous analytics are collected. A deployment parameter will allow anonymous analytics to be enabled and disabled.
We plan on shipping a Go library
github.com/common-fate/telem
which will handle the dispatching of analytics events. The library will include a README with example events for each event type, as well as the source code itself being available for audit. We plan on measuring the performance of this library and measuring overall latencies to ensure that the library does not impact performance of Granted Approvals API endpoints.We are in the process of drafting the Privacy Policy for the analytics data and will append it to this RFD once complete.
The initial analytics data that we plan on collecting are shown below.
Where:
DEP_ID
is an anonymous identifier for the deployment, in the formatdep_KSUID
, whereKSUID
is a KSUID. This is used out of convenience as we make extensive use of KSUIDs in the Granted Approvals codebase for all resource identifiers.USR_ANALYTICS_ID
is an anonymous identifier for the user, in the formatusr_HASH
, whereHASH
is the SHA256 hash of a user KSUID. Hashing the user IDs avoids dispatching resource IDs which are used internally by a Granted Approvals deployment.RUL_ANALYTICS_ID
is an anonymous identifier for the rule, in the formatrul_HASH
, following the same approach asusr_HASH
above.usesSelectableOptions
indicates whether the Access Rule allows options to be selectedusesDynamicOptions
indicates whether the Access Rule uses Dynamic Fields (for example, our AWS OU feature uses this)requiresApproval
indicates whether the Access Rule requires manual approvalhasReason
indicates whether a reason was provided when access was requestedWe plan on using the following third-party subprocessors to process data:
If the usage of third-party subprocessors is unacceptable to the community we will self-host the analytics stack ourselves.
We also plan to publish key metrics back to the community and share insights to openly discuss our roadmap. These metrics will be published in aggregate form only across all deployments.
Discussion
If there are no objections to this approach we plan to include an initial implementation of anonymous analytics in the next Granted Approvals release. We also don’t think this should be a one-off discussion and that a lack of objections at the moment gives us a free pass to collect anonymous analytics either. We aim for this RFD to be used as a discussion area on this topic and to continually seek feedback on this. Overall our aim is to be as ethical and open as possible, and to collect the information we feel we need to make Granted Approvals an amazing tool.
Beta Was this translation helpful? Give feedback.
All reactions