Skip to content

Tear down legacy frontend hosting and Twilio (phase 1 of 2)#52

Closed
alexdlaird wants to merge 1713 commits into
mainfrom
feature/legacy-shutdown-phase-1-2026-08-01
Closed

Tear down legacy frontend hosting and Twilio (phase 1 of 2)#52
alexdlaird wants to merge 1713 commits into
mainfrom
feature/legacy-shutdown-phase-1-2026-08-01

Conversation

@alexdlaird
Copy link
Copy Markdown
Member

@alexdlaird alexdlaird commented May 8, 2026

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

  • Legacy www.heliumedu.com CloudFront + S3 bucket
  • heliumedu artifact bucket and helium/frontend ECR repo
  • rewrites CloudFront function (only the legacy distro used it)
  • Twilio module + SMS secrets across prod/dev/dev-local
  • Legacy release/deploy workflows and scripts
  • frontend-legacy and cluster-tests from .heliumcli.yml

Apply runbook

After merge:

  1. Apply prod (destroys legacy CF/S3, frees the alias, drops Twilio)
  2. Apply dev and dev-local (drops Twilio module wiring)
  3. Proceed immediately to phase 2

Linked PRs — do not merge before Aug 1, 2026

Merge in order:

  1. Move site to www.heliumedu.com; drop Helium Classic links www#2 — marketing site reconfigured for www (supersedes closed Enable/disable maintenance mode during deploy #1)
  2. Tear down legacy frontend hosting and Twilio (phase 1 of 2) #52 — this PR (phase 1)
  3. Repoint marketing distribution to www.heliumedu.com (phase 2 of 2) #53 — infra phase 2 (stacked on this branch)
  4. Remove heliumcli dependency (infra phase 3) #55 — infra phase 3 (removes heliumcli)
  5. Remove deprecated legacy frontend code, UserProfile, and Twilio SMS platform#967 — platform deprecated-API removal

alexdlaird and others added 30 commits April 3, 2026 18:34
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.
heliumedu-bot Bot and others added 4 commits May 20, 2026 19:24
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.
heliumedu-bot Bot and others added 18 commits May 25, 2026 17:42
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
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.

Enable/disable maintenance mode during deploy

1 participant