@helyx/module-analytics
v1.0.7
Published
Generate bounded, fetch-only Discord server analytics reports.
Maintainers
Readme
@helyx/module-analytics
Analytics produces bounded, fetch-only Discord server reports without reading or retaining message content.
Availability and deployment
Analytics is Live for Hosted Helyx and Helyx Self-Hosted. It uses Helyx runtime and Discord capabilities only and requires no external provider credentials.
What it does
Administrators create reusable filter profiles and start private reports for a server, category, channel, or role-access scope. Helyx scans accessible Discord metadata in durable, resumable pages and reports sampled channel activity, active users, current-member join dates, and accessible forum or thread metadata. Reports do not publish Discord messages.
Commands and interactions
Analytics registers no Discord commands or gateway events. Administrators create, view, cancel, and delete reports through the dashboard. Every dashboard action has its own administrator permission identity and remains independently overridable.
Dashboard configuration
Profiles save category, channel, and current-role exclusions; bot, webhook, and system-message inclusion; archived and private-thread coverage; reporting timezone; and bounded period, message, thread, and recent-member limits. An explicitly selected profile takes precedence over the server default. Every report stores an immutable filter snapshot so later profile changes cannot alter historical results.
Discord requirements
Helyx needs View Channel and Read Message History for activity coverage. Complete current-member pagination requires the privileged Guild Members intent. Manage Threads is optional and can broaden private archived-thread coverage. Inaccessible channels and partial private-thread coverage remain visible as bounded limitations rather than invented results.
Data, privacy and retention
Analytics stores profiles, immutable report requests, scan progress, aggregate message counts, sampled Discord user/channel pairs, current recent-member IDs and join/account dates, and thread-owner IDs where Discord supplies them. It does not request or store message content, embeds, attachments, components, usernames, or display names. Display names are resolved only for the current view.
The privacy provider covers every retained Discord user field even while the module is disabled. Profiles, reports and their owned result rows remain stored until an authorised manager deletes them. Analytics does not automatically expire them.
Operations and failure behavior
Only the oldest active report for a server advances at once. Each scanner call is bounded and active report state is rechecked before Discord work, so cancellation or stale task delivery cannot advance old work. Progress uses revision-guarded writes and resumable task signals. Health distinguishes missing dependencies from recent runner failure, and logs expose fixed reason codes rather than raw exception messages.
Documentation and support
See the Analytics guide, setup, permissions, troubleshooting, and FAQ.
