Tear down legacy frontend hosting and Twilio (phase 1 of 2)#52
Closed
alexdlaird wants to merge 1713 commits into
Closed
Tear down legacy frontend hosting and Twilio (phase 1 of 2)#52alexdlaird wants to merge 1713 commits into
alexdlaird wants to merge 1713 commits into
Conversation
Add a new timeseries widget to the helium_user_behavior Datadog dashboard in terraform/modules/global/datadog/main.tf. The widget displays the avg:platform.users.data.avg_homework_per_user metric (scoped by $env, $staff, $window) with a line display, legend enabled, dog_classic palette, and an alias "Avg Homework / User" for clarity.
Introduce a new Datadog integration module and wire aws_account_id through the global environment. Adds datadog_integration_aws_account resource (role: DatadogIntegrationRole) scoped to us-east-1, enables metrics (automute disabled, CloudWatch alarms collection off), and applies namespace filters for selected AWS services. Also adds aws_account_id variable in the module and the global environment and passes it into the datadog module.
Relocate the Terraform import block for the Datadog AWS account resource from the module to the environment root. The import was removed from terraform/modules/global/datadog/integration.tf and added to terraform/environments/global/main.tf as: to = module.datadog.datadog_integration_aws_account.helium id = "562129510549:aws" This keeps module code free of import metadata and makes the import explicit at the environment level. No resource configuration changed — only where the import directive is declared.
Split the single avg_notes_per_user timeseries into multiple Datadog requests to show entity-level breakdowns (Total, Homework, Event, Resource, Standalone). The Total query now excludes entity tags (!entity:*) and the series include explicit style settings (palettes, line_type, line_width) and metadata alias names for clearer legend labels and visualization.
Expand inline style blocks into multi-line blocks in terraform/modules/global/datadog/main.tf for the helium_user_behavior dashboard. The change breaks out palette, line_type, and line_width into separate lines for three requests (avg_notes_per_user, avg_reminders_per_user, avg_attachments_per_user) to improve readability and maintain consistent formatting.
Add a short project blurb for Helium, center App Store and Google Play download badges, and include a Patreon support badge. Reorder and restore Python/build/license shields below the introduction, add horizontal rules for separation, and expand the infrastructure description to mention Terraform, local Docker orchestration, and the ECR publishing pipeline.
Refactor the Helium user-behavior Datadog dashboard to use canonical per-user metric names (remove avg_ prefixes), add p95 series for distribution/ power-user signals, and standardize series aliases and styles (Avg / p95, dashed p95 lines). Change feature adoption metrics to use the .pct variants and update the Feature Adoption group title to indicate percentages. Add explanatory comments for interpreting Data Richness vs Feature Adoption (mean vs p95 and adoption %). These changes surface concentration/niche usage and make comparisons between average and tail behavior easier for deprecation and product decisions.
3 tasks
Introduce a new dashboard group "Feature Health (Adoption %)" with query value widgets for Grade Tracking, External Calendars, Notebook, Resources, Reminders, Attachments, and Feeds using avg:...pct metrics and conditional formatting. Update engagement timeseries to use percent metrics for active courses, rename avg_completions_per_user and avg_graded_homework_per_user to completions_per_user and graded_homework_per_user, adjust titles, and add p95 dashed series for both to surface power-user signals. Also remove a few inline explanatory comments related to Data Richness and Feature Adoption.
Move the "Feature Health (Adoption %)" widget group within terraform/modules/global/datadog/main.tf to a later position in the dashboard definition. This is a pure reordering of the existing widget group (queries and conditional formats unchanged) to adjust the dashboard layout and grouping order.
Introduce a local set of user data distribution metrics and create datadog_metric_tag_configuration resources for each metric. Each metric is configured as a distribution, tagged with [env, staff, window, entity], and has percentiles enabled to improve metric tagging and analysis.
Rename local and resource identifiers from user_data_distribution_* to user_distribution_* and update the datadog_metric_tag_configuration for_each to use the new local. Also add two new user engagement distribution metrics (platform.users.engagement.completions_per_user and platform.users.engagement.graded_homework_per_user) to the metrics set.
Refactor helium_user_behavior dashboard: rename group title to "Feature Adoption (% of Active Users)", append .fill(last) to multiple adoption metric queries to fill missing points, and add timeseries_background { type = "area" } to improve visualization. Also remove a duplicated/older group of timeseries widgets to clean up redundancy.
Expose a fixed set of time window options for the dashboard template variable by adding available_values (1d, 7d, 30d, 90d, 180d). This makes the `window` template variable selectable from predefined ranges and includes minor formatting alignment in the resource block.
Set live_span = "1mo" on multiple timeseries and gauge widgets in the helium_user_behavior Datadog dashboard to standardize the default live view to one month. Changes applied in terraform/modules/global/datadog/main.tf for various metrics and adoption percentage widgets to ensure consistent chart behavior.
Update live_span from "1mo" to "3mo" in terraform/modules/global/datadog/main.tf for the datadog_dashboard.helium_user_behavior resource. Extends the dashboard lookback window to three months across multiple user behavior and adoption metric widgets to improve trend visibility and analysis.
Replace PNG with SVG for the Patreon support badge. Update README to reference the SVG asset and adjust CloudFront rewrites to route /img/support-patreon.svg to the landing site equivalent. This ensures the vector asset is used for better scalability and potentially smaller file size.
…wn-phase-1-2026-08-01 # Conflicts: # terraform/modules/environment/cloudfront/rewrites.js
Add mapping for '/img/support-patreon.png' in CloudFront rewrites to point to 'https://landing.heliumedu.com/img/support-patreon.png', ensuring the PNG asset is served alongside the existing SVG variant.
…wn-phase-1-2026-08-01 # Conflicts: # terraform/modules/environment/cloudfront/rewrites.js
This was referenced May 26, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Phase 1 of the Aug 1, 2026 frontend-legacy shutdown. Strips the legacy hosting stack so phase 2 can claim
www.heliumedu.com.After this applies, execute phase 2 immediately to minimize downtime of
www.heliumedu.com.Removes
www.heliumedu.comCloudFront + S3 bucketheliumeduartifact bucket andhelium/frontendECR reporewritesCloudFront function (only the legacy distro used it)frontend-legacyandcluster-testsfrom.heliumcli.ymlApply runbook
After merge:
prod(destroys legacy CF/S3, frees the alias, drops Twilio)devanddev-local(drops Twilio module wiring)Linked PRs — do not merge before Aug 1, 2026
Merge in order: