From be93e2fdacd2862b87bdcb5df2b6358fa417f679 Mon Sep 17 00:00:00 2001 From: Johnny Hung Date: Wed, 12 Aug 2026 08:52:00 -0400 Subject: [PATCH] feat: redesign public status page --- .github/workflows/site.yml | 12 + .github/workflows/validate.yml | 12 + .upptimerc.yml | 52 +++- README.md | 4 +- assets/llms.txt | 21 ++ assets/logo-192.png | Bin 0 -> 10213 bytes assets/logo-512.png | Bin 0 -> 30915 bytes assets/manifest.json | 21 ++ assets/mighty-theme.css | 329 +++++++++++++++++++++++++ assets/sitemap.xml | 23 ++ assets/status-social-card.png | Bin 0 -> 38305 bytes docs/DECISION.md | 18 +- docs/HOSTING.md | 58 ++--- patches/upptime-status-page-main.patch | 154 +++++++++++- scripts/validate.rb | 31 ++- 15 files changed, 675 insertions(+), 60 deletions(-) create mode 100644 assets/llms.txt create mode 100644 assets/logo-192.png create mode 100644 assets/logo-512.png create mode 100644 assets/manifest.json create mode 100644 assets/mighty-theme.css create mode 100644 assets/sitemap.xml create mode 100644 assets/status-social-card.png diff --git a/.github/workflows/site.yml b/.github/workflows/site.yml index a8e930ef4..f4835e1cc 100644 --- a/.github/workflows/site.yml +++ b/.github/workflows/site.yml @@ -61,7 +61,19 @@ jobs: test "$(wc -c < site/__sapper__/export/mighty-logo.png)" -gt 1000 test -f site/__sapper__/export/favicon.png test "$(wc -c < site/__sapper__/export/favicon.png)" -gt 1000 + test -s site/__sapper__/export/mighty-theme.css + test -s site/__sapper__/export/status-social-card.png + test -s site/__sapper__/export/robots.txt + test -s site/__sapper__/export/sitemap.xml + test -s site/__sapper__/export/llms.txt + grep -q 'Mighty Service Status' site/__sapper__/export/manifest.json + grep -q 'content=#fbf7ee' site/__sapper__/export/index.html grep -q 'href=/favicon.png' site/__sapper__/export/index.html + grep -q 'Mighty detects manipulated documents and media' site/__sapper__/export/index.html + grep -q 'application/ld+json' site/__sapper__/export/index.html + for component in website api scan-gateway; do + test -s "site/__sapper__/export/history/${component}/index.html" + done - name: Publish gh-pages branch uses: peaceiris/actions-gh-pages@84c30a85c19949d7eee79c4ff27748b70285e453 # v4 with: diff --git a/.github/workflows/validate.yml b/.github/workflows/validate.yml index 473f6cab4..e9b8d1e4d 100644 --- a/.github/workflows/validate.yml +++ b/.github/workflows/validate.yml @@ -72,4 +72,16 @@ jobs: test "$(wc -c < site/__sapper__/export/mighty-logo.png)" -gt 1000 test -f site/__sapper__/export/favicon.png test "$(wc -c < site/__sapper__/export/favicon.png)" -gt 1000 + test -s site/__sapper__/export/mighty-theme.css + test -s site/__sapper__/export/status-social-card.png + test -s site/__sapper__/export/robots.txt + test -s site/__sapper__/export/sitemap.xml + test -s site/__sapper__/export/llms.txt + grep -q 'Mighty Service Status' site/__sapper__/export/manifest.json + grep -q 'content=#fbf7ee' site/__sapper__/export/index.html grep -q 'href=/favicon.png' site/__sapper__/export/index.html + grep -q 'Mighty detects manipulated documents and media' site/__sapper__/export/index.html + grep -q 'application/ld+json' site/__sapper__/export/index.html + for component in website api scan-gateway; do + test -s "site/__sapper__/export/history/${component}/index.html" + done diff --git a/.upptimerc.yml b/.upptimerc.yml index 1e59f5cff..a64d33e98 100644 --- a/.upptimerc.yml +++ b/.upptimerc.yml @@ -46,13 +46,55 @@ status-website: cname: status.trymighty.ai logoUrl: /mighty-logo.png favicon: /favicon.png - name: Mighty Status - theme: night + name: Mighty Service Status + themeUrl: /mighty-theme.css + links: + - rel: canonical + href: https://status.trymighty.ai/ + metaTags: + - name: description + content: >- + Live uptime, incident, maintenance, and response-time updates for + Mighty’s AI document-fraud detection services for lending and insurance. + - name: robots + content: index, follow, max-image-preview:large, max-snippet:-1 + - name: color-scheme + content: light + - name: application-name + content: Mighty Status + - name: twitter:card + content: summary_large_image + - name: twitter:title + content: Mighty Service Status + - name: twitter:description + content: >- + Live uptime and incident updates for Mighty’s AI document-fraud + detection services. + - name: twitter:image + content: https://status.trymighty.ai/status-social-card.png + # Open Graph and JSON-LD need property/type attributes that Upptime's generic + # metaTags mapping cannot express, so keep this reviewed static HTML only. + customHeadHtml: >- + + + + + + + + + + + robotsText: |- + User-agent: * + Allow: / + Sitemap: https://status.trymighty.ai/sitemap.xml introTitle: "**Mighty service status**" introMessage: >- - Current availability and incident communications for Mighty production - services. Measurements are external observations and are not a contractual - service-level agreement. + Mighty detects manipulated documents and media before lenders fund loans or + insurers pay claims. This page reports current availability, incidents, and + scheduled maintenance for our production services. Measurements are + external observations, not a contractual service-level agreement. navbar: - title: Status href: / diff --git a/README.md b/README.md index 850f81d26..84106e368 100644 --- a/README.md +++ b/README.md @@ -14,8 +14,8 @@ the authoritative audit evidence. ## [Live status](https://status.trymighty.ai) -Availability measurements begin when the launch checklist enables production -automation. No historical sample data is carried over from the upstream template. +Production availability measurements and response-time history are collected +automatically. No historical sample data was carried over from the upstream template. ## Operations diff --git a/assets/llms.txt b/assets/llms.txt new file mode 100644 index 000000000..9f6d23a3f --- /dev/null +++ b/assets/llms.txt @@ -0,0 +1,21 @@ +# Mighty Service Status + +> Official public availability, incident, scheduled-maintenance, and response-time information for Mighty production services. + +Mighty detects manipulated documents and media before lenders fund loans or insurers pay claims. Mighty provides AI document-fraud detection for lending and insurance. + +## Current status + +- Status page: https://status.trymighty.ai/ +- Website component: https://status.trymighty.ai/history/website/ +- API component: https://status.trymighty.ai/history/api/ +- Scan Gateway component: https://status.trymighty.ai/history/scan-gateway/ +- Incident and maintenance records are published on the status page from the public status repository. +- Measurements are external observations, not a contractual service-level agreement. + +## Authoritative links + +- Mighty: https://trymighty.ai/ +- Documentation: https://trymighty.ai/docs +- Security: https://trymighty.ai/security +- Status source and history: https://github.com/TryMightyAI/status diff --git a/assets/logo-192.png b/assets/logo-192.png new file mode 100644 index 0000000000000000000000000000000000000000..180babb7956d1589b19140440c58efe55e674d72 GIT binary patch literal 10213 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 header { + position: relative; + max-width: 760px; + margin-bottom: 2.4rem !important; +} + +main > header h1 { + margin-bottom: 0.7rem; + color: var(--mighty-ink); + font-size: clamp(2.2rem, 5vw, 3.65rem); + font-weight: 850; + line-height: 1.02; + letter-spacing: -0.055em; +} + +main > header .lead { + max-width: 720px; + margin: 0; + color: var(--mighty-ink-soft); + font-size: clamp(1rem, 2vw, 1.16rem); + line-height: 1.65; +} + +article { + overflow: hidden; + padding: 1.25rem 1.4rem; + border: 1px solid var(--mighty-line); + border-radius: 16px; + box-shadow: 0 8px 30px rgba(66, 52, 28, 0.06); + transition: transform 160ms ease, box-shadow 160ms ease, border-color 160ms ease; +} + +article.link:hover { + z-index: 2; + transform: translateY(-2px); + border-color: #d8cbae; + box-shadow: 0 14px 34px rgba(66, 52, 28, 0.11); +} + +article + article { + margin-top: 0.85rem; +} + +article.up, +article.down, +article.degraded { + border-left-width: 5px !important; +} + +main > article.up { + position: relative; + padding: 1.25rem 1.35rem; + border-color: #b9dcc5; + color: #125f3b; + background: linear-gradient(105deg, #e7f5ec 0%, #f4fbf6 100%); + box-shadow: 0 10px 28px rgba(20, 125, 76, 0.08); + font-size: 1.02rem; + font-weight: 750; +} + +main > article.up::before { + display: none; +} + +main > article.up::after { + display: none; +} + +h2 { + margin-top: 2.5rem; + margin-bottom: 0.8rem; + color: var(--mighty-ink); + font-size: 1.3rem; + font-weight: 800; + letter-spacing: -0.03em; +} + +h3 { + color: var(--mighty-ink-soft); + font-size: 0.82rem; + font-weight: 700; + letter-spacing: 0.04em; + text-transform: uppercase; +} + +h4 { + color: var(--mighty-ink); + font-size: 1.03rem; + font-weight: 800; + letter-spacing: -0.02em; +} + +.live-status article > div > div:not(:first-child), +.live-status article > div:not(.f) { + color: var(--mighty-ink-soft); +} + +form label { + display: inline-block; + padding: 0.28rem 0.52rem; + border-radius: 999px; + color: var(--mighty-ink-soft); + cursor: pointer; + font-size: 0.79rem; + font-weight: 700; + transition: background 160ms ease, color 160ms ease; +} + +form input:checked + label { + color: var(--mighty-ink) !important; + background: var(--mighty-yellow); +} + +.data { + color: var(--mighty-ink); + font-variant-numeric: tabular-nums; + font-weight: 750; +} + +.tag { + border-radius: 999px; + font-weight: 750; + letter-spacing: 0.02em; +} + +footer { + max-width: 960px; + margin: 4.5rem auto 0 !important; + padding: 1.4rem 2rem 0; + border-top: 1px solid var(--mighty-line); + color: var(--mighty-ink-soft); + font-size: 0.82rem; +} + +footer a { + color: var(--mighty-ink); + text-decoration-color: var(--mighty-yellow-deep); + text-decoration-thickness: 2px; + text-underline-offset: 3px; +} + +@media (max-width: 700px) { + .container { + padding-left: 1.15rem; + padding-right: 1.15rem; + } + + nav { + position: relative; + margin-bottom: 2.7rem !important; + padding: 0 !important; + } + + nav .container { + align-items: flex-start !important; + flex-direction: column; + } + + nav .logo { + margin: 0 !important; + } + + nav ul { + width: 100%; + justify-content: flex-start !important; + overflow-x: auto; + } + + nav ul a { + padding: 0.85rem 1rem !important; + } + + nav ul li:first-child a { + padding-left: 0 !important; + } + + main > header h1 { + max-width: 100%; + font-size: 2rem; + letter-spacing: -0.055em; + line-height: 1.05; + } + + main > header h1 strong { + display: block; + } + + main > header .lead { + overflow-wrap: anywhere; + } + + .f { + gap: 0.6rem; + } + + form.f { + width: 100%; + justify-content: flex-start; + gap: 0; + } + + article { + padding: 1.1rem; + } +} + +@media (prefers-reduced-motion: reduce) { + *, *::before, *::after { + scroll-behavior: auto !important; + transition: none !important; + } +} diff --git a/assets/sitemap.xml b/assets/sitemap.xml new file mode 100644 index 000000000..e92f6dd4d --- /dev/null +++ b/assets/sitemap.xml @@ -0,0 +1,23 @@ + + + + https://status.trymighty.ai/ + hourly + 1.0 + + + https://status.trymighty.ai/history/website/ + daily + 0.8 + + + https://status.trymighty.ai/history/api/ + daily + 0.8 + + + https://status.trymighty.ai/history/scan-gateway/ + daily + 0.8 + + diff --git a/assets/status-social-card.png b/assets/status-social-card.png new file mode 100644 index 0000000000000000000000000000000000000000..0dfbdab2887c9e56c34a57e1a36db72cab2524c0 GIT binary patch literal 38305 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 literal 0 HcmV?d00001 diff --git a/docs/DECISION.md b/docs/DECISION.md index d2a1486a4..1147b64bd 100644 --- a/docs/DECISION.md +++ b/docs/DECISION.md @@ -2,7 +2,8 @@ **Decision date:** 2026-08-11 **Decision:** Upptime in a dedicated public repository, with the generated site -served from Cloudflare Pages at `status.trymighty.ai`. +served from GitHub Pages at `status.trymighty.ai` and Cloudflare providing +DNS-only resolution. ## Requirements @@ -40,8 +41,8 @@ Upptime maps the public operating workflow onto tools Mighty already reviews: monitoring, and resolved updates. - Maintenance is an Issue with explicit UTC start/end metadata. - Git stores check history and reviewed configuration. -- A static site is generated onto `gh-pages` and can be served by Cloudflare - Pages without an application server or database. +- A static site is generated onto `gh-pages` and served by GitHub Pages without + an application server or database. This repository deliberately changes two upstream defaults. Short incidents are **not deleted** (`skipDeleteIssues: true`), and self-updating workflows are @@ -50,14 +51,13 @@ through review. ## Hosting decision -Cloudflare Pages should serve the already-generated `gh-pages` branch. It gives -Mighty a static global edge site and managed TLS outside the GCP production -stack. Use the Cloudflare Git integration restricted to this public repository; -do not put a broad Cloudflare API token in GitHub Actions. GitHub Pages is an -acceptable fallback host if the Pages integration cannot be approved. +GitHub Pages serves the already-generated `gh-pages` branch and manages TLS +outside the GCP production stack. Cloudflare provides a DNS-only CNAME from +`status.trymighty.ai` to `trymightyai.github.io`; there is no Cloudflare Pages +project, Worker, proxy, or API token in the publication path. The public GitHub Issues list is the alternate communications URL if the custom -domain or Cloudflare is unavailable. This is not complete independence—Upptime +domain or static page is unavailable. This is not complete independence—Upptime still uses GitHub for checks and incident data—so Mighty’s existing internal monitoring remains the source for paging and audit evidence. The page is a communication layer and an independent secondary observation. diff --git a/docs/HOSTING.md b/docs/HOSTING.md index 9df7c7c3b..cecf80df9 100644 --- a/docs/HOSTING.md +++ b/docs/HOSTING.md @@ -9,7 +9,9 @@ GitHub Actions (secondary public checks) └── gh-pages: generated static website │ ▼ - Cloudflare Pages + TLS + GitHub Pages + GitHub TLS + │ + Cloudflare DNS-only CNAME │ status.trymighty.ai @@ -53,34 +55,22 @@ and the static shell has its own schedule. 8. Confirm that `history/` and the `gh-pages` branch contain only Mighty data. Never import the upstream demo measurements. -## Cloudflare Pages (recommended) - -Wait until `Static Site CI` creates `gh-pages`, then: - -1. In Cloudflare Pages, connect the public `TryMightyAI/status` repository. -2. Select `gh-pages` as the production branch. -3. Use no framework preset, no build command, and `.` as the output directory; - the branch already contains generated static files. -4. Expose no build secrets. Restrict the Cloudflare GitHub integration to this - repository rather than reusing a broad application API token. -5. Attach the custom domain `status.trymighty.ai`. When the zone is in the same - Cloudflare account, let Pages create the required DNS record and certificate. -6. Leave Cloudflare Access/password protection **off** for the public page. -7. Keep the default `*.pages.dev` hostname enabled as an operator diagnostic URL, - but publish the GitHub Issues list as the Cloudflare-independent fallback. +## Production hosting: GitHub Pages with Cloudflare DNS -Cloudflare must deploy after every force/update to `gh-pages`. Validate this with -a harmless branding pull request before launch. The static shell is rebuilt for -configuration/branding changes, but live component status, incident comments, -and scheduled maintenance are fetched from GitHub at page load; an outage update -does not wait for a Cloudflare rebuild. +`Static Site CI` publishes the generated site from `gh-pages`. GitHub Pages +serves that branch, owns the certificate, and redirects HTTP to HTTPS. Cloudflare +is DNS-only: `status.trymighty.ai` is a CNAME to `trymightyai.github.io` and is +not proxied through Cloudflare. -## GitHub Pages alternative +In repository Pages settings, keep the source set to the `gh-pages` branch at +`/ (root)`, preserve the custom domain `status.trymighty.ai`, and keep HTTPS +enforcement enabled. Do not enable Cloudflare Pages, Workers, or proxying for the +same hostname without a reviewed hosting migration. -If Cloudflare Pages cannot be approved, publish `gh-pages` `/ (root)` with -GitHub Pages and configure `status.trymighty.ai` as the custom domain. Do not run -both providers for the same custom hostname. The public repository and Issues -remain the alternate channel. +GitHub Pages does not apply the Cloudflare-style rules in `assets/_headers`. +Those rules remain a reviewed baseline for a future hosting layer, not evidence +of live response headers. The public repository and Issues are the independent +fallback if the custom hostname or static page is unavailable. ## Launch validation @@ -95,29 +85,29 @@ curl --fail --show-error https://gateway.trymighty.ai/health Also verify: -- valid TLS, automatic HTTP-to-HTTPS redirect, and the security headers from `assets/_headers`; +- valid TLS and automatic HTTP-to-HTTPS redirect; treat `assets/_headers` as an unapplied baseline while GitHub Pages remains the host; - logo, CSS, component history, and incident links; - a future UTC maintenance test appears before its start, then moves into past history after closing/completion; - a repository admin can post an update when the Mighty application and normal identity path are assumed unavailable; -- Cloudflare redeploys an updated `gh-pages` commit; +- GitHub Pages deploys the updated `gh-pages` commit; - the GitHub Issues fallback is documented in the internal incident runbook; - private vulnerability reporting works without public disclosure; - an external monitor checks the public status page without depending on this - repository's scheduler or Cloudflare Pages; and -- launch screenshots, headers, workflow run URLs, DNS/TLS result, and test Issue - export are saved to the approved evidence store. + repository's scheduler or GitHub Pages; and +- launch screenshots, response headers, workflow run URLs, DNS/TLS result, and + test Issue export are saved to the approved evidence store. Do not claim the status-page control is operating until this test is complete. ## Ongoing hosting controls -- Monitor the status page itself from a service that does not depend on - Cloudflare Pages or this repository's scheduler. +- Monitor the status page itself from a service that does not depend on GitHub + Pages or this repository's scheduler. - Review repository access and workflow job permissions at the organization’s approved cadence; remove leavers promptly. -- Review Cloudflare Pages project access and deployment history. +- Review GitHub Pages settings and deployment history. - Export the repository and Issue/comment audit population for each SOC 2 review period. A screenshot alone is weak evidence. - Test the alternate publishing path at least annually and after material diff --git a/patches/upptime-status-page-main.patch b/patches/upptime-status-page-main.patch index 11b945e4e..ffb16d70f 100644 --- a/patches/upptime-status-page-main.patch +++ b/patches/upptime-status-page-main.patch @@ -1,13 +1,40 @@ +diff --git a/post-process.ts b/post-process.ts +index 70ea5ab..bf095ab 100644 +--- a/post-process.ts ++++ b/post-process.ts +@@ -13,7 +13,7 @@ export const postProcess = async () => { + } = load(await readFile(join("..", ".upptimerc.yml"), "utf8")) as any; + const baseUrl = (config["status-website"] || {}).baseUrl || "/"; + +- execSync(`sapper export --legacy --basepath ${baseUrl}`, { ++ execSync(`sapper export --legacy --basepath ${baseUrl} --entry "/ /history/website /history/api /history/scan-gateway"`, { + stdio: "inherit", + }); + diff --git a/src/components/LiveStatus.svelte b/src/components/LiveStatus.svelte -index 16eec5d..e266005 100644 +index 16eec5d..dd893d6 100644 --- a/src/components/LiveStatus.svelte +++ b/src/components/LiveStatus.svelte -@@ -17 +16,0 @@ +@@ -14,14 +14,13 @@ + if (!apiBaseUrl) apiBaseUrl = "https://api.github.com"; + if (!userContentBaseUrl) userContentBaseUrl = "https://raw.githubusercontent.com"; + - const graphsBaseUrl = `${userContentBaseUrl}/${owner}/${repo}/master/graphs`; -@@ -24 +23 @@ + let form = null; + + let selected = "week"; + + onMount(async () => { + try { - const res = await fetch(`${userContentBaseUrl}/${owner}/${repo}/master/history/summary.json`); + const res = await fetch(`${userContentBaseUrl}/${owner}/${repo}/main/history/summary.json`); -@@ -101,14 +100,2 @@ + sites = await res.json(); + } catch (error) { + handleError(error); +@@ -98,20 +97,8 @@ + + {:else if sites.length} + {#each sites as site} -
+@@ -153,12 +140,6 @@ + + +