Skip to content

feat: establish product analytics with privacy budgets#302

Merged
kryputh merged 2 commits into
Stellar-Mail:mainfrom
AbuJulaybeeb:issue-50-product-analytics
Jun 16, 2026
Merged

feat: establish product analytics with privacy budgets#302
kryputh merged 2 commits into
Stellar-Mail:mainfrom
AbuJulaybeeb:issue-50-product-analytics

Conversation

@AbuJulaybeeb

Copy link
Copy Markdown
Contributor

What was done
Defined the minimum event model for tracking product analytics in src/services/analytics.ts.
Implemented a PrivacyAnalytics service that strictly filters out plaintext contents (e.g. bodies, subjects, keys, correspondents).
Assigned and enforced a privacy budget per event (e.g. epsilon limits) to prevent deanonymization.
Defined a TTL retention schedule which automatically expires logged events.
Added an "Analytics" tab to the DemoAdminDashboard to view real-time activation and reliability signals (e.g., Weekly Retained Mailboxes, Send Success Rate).
Added UI functionality to pause/disable analytics collections globally.
Why it was done
The team needs verifiable activation and reliability evidence to monitor product health without reconstructing communication graphs or compromising user privacy.

How it was verified
Verified that event payloads containing forbidden plaintext keys throw validation errors.
Verified that analytics can be completely disabled via the dashboard state.
Verified that the UI displays non-relational metric summaries for activation and reliability.
Closes #50

@kryputh kryputh merged commit 5bac6f0 into Stellar-Mail:main Jun 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

product: establish product analytics with privacy budgets

2 participants