Skip to content

Launch hardened Mighty public status page - #1

Merged
masterfung merged 3 commits into
mainfrom
agent/launch-status-page
Aug 11, 2026
Merged

Launch hardened Mighty public status page#1
masterfung merged 3 commits into
mainfrom
agent/launch-status-page

Conversation

@masterfung

@masterfung masterfung commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Summary

  • configure a dedicated public Upptime page for Mighty Website, API, and Scan Gateway
  • remove upstream demo data and self-modifying/generated-graph workflows
  • pin GitHub Actions, the monitor runtime, and static-site source to immutable revisions
  • add an explicit STATUS_AUTOMATION_ENABLED launch gate and serialize all main writers
  • add incident/maintenance operations, Cloudflare hosting, supply-chain, security, and SOC 2 evidence guidance

Security and reliability

  • default GITHUB_TOKEN permissions remain read-only; production jobs request only short-lived Contents/Issues write or Contents write and consume no stored secrets
  • production jobs skip unless the checked-in repository-variable gate is exactly true
  • static builds use the upstream lockfile without credentials and apply a blob-checked compatibility patch
  • Cloudflare security headers include CSP, anti-framing, MIME, referrer, permissions, and HSTS controls
  • short/false-positive incidents are retained (skipDeleteIssues: true)
  • the static shell reads live status, incidents, and maintenance from GitHub at page load, so incident updates do not wait for a site redeploy

Validation performed

  • ruby scripts/validate.rb
  • actionlint
  • zizmor --min-severity high .github/workflows/
  • git diff --check
  • exact pinned status-page patch applies against v1.17.0
  • isolated locked static build/export succeeds and contains Mighty assets, _headers, CNAME, 404.html, and main-branch data URLs
  • Website, API, and Scan Gateway return HTTP 200 with configured API/gateway body assertions
  • Ubuntu PR validation and secret-free static build pass

Launch state

This PR is safe to merge with production automation off. STATUS_AUTOMATION_ENABLED is explicitly false. After review, follow docs/HOSTING.md to enable the gated workflows, create Cloudflare Pages/DNS, run incident and maintenance tests, and retain launch evidence. No personal access token, SLA, or compliance claim is required or made.

@masterfung

Copy link
Copy Markdown
Contributor Author

Temporarily reopening to trigger the newly enabled, read-only validation workflow.

@masterfung masterfung closed this Aug 11, 2026
@masterfung masterfung reopened this Aug 11, 2026
@masterfung

Copy link
Copy Markdown
Contributor Author

Launch safeguards now confirmed:

  • repository Actions default token is read-only and cannot approve PRs
  • Actions allowlist is GitHub-owned actions plus the exact pinned upptime/uptime-monitor and peaceiris/actions-gh-pages commits only
  • STATUS_AUTOMATION_ENABLED is absent, so every production job remains gated off
  • private vulnerability reporting is enabled
  • the maintenance label exists
  • Ubuntu configuration validation and the secret-free locked static-site build both pass: https://github.com/TryMightyAI/status/actions/runs/31542619111

Security-review blockers were addressed: main writers share one concurrency group; launch has a checked-in gate; maintenance/private reporting are launch controls; and the runbook explains that live status/issues are fetched at page load rather than waiting on the nightly static-shell rebuild.

@masterfung

Copy link
Copy Markdown
Contributor Author

Security improvement after the previous note: the workflows now use GitHub’s short-lived per-job token and require no GH_PAT or other repository secret. The repository default remains read-only; only gated production jobs request Contents/Issues write (monitoring) or Contents write (publication). The validator forbids GH_PAT, secrets.*, and repository-metadata rewrites.

@masterfung
masterfung merged commit a2ad5a8 into main Aug 11, 2026
3 checks passed
@masterfung
masterfung deleted the agent/launch-status-page branch August 11, 2026 22:34
@masterfung

Copy link
Copy Markdown
Contributor Author

Post-merge activation evidence:

status.trymighty.ai still needs the Cloudflare Pages/DNS attachment and TLS/header validation before the public control is declared launched. The API token available to this session has neither Pages nor trymighty.ai zone access, so no Cloudflare settings were changed.

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.

1 participant