Skip to content

Repository files navigation

Belacca status

Hourly, externally observed and sanitized status history for the Belacca platform.

The scheduled GitHub Actions runner checks public portfolio, Pong, and analytics endpoints from outside the native cluster that hosts the platform. It checks the catalogued analytics SLI (/status plus a fixed harmless same-origin /count collector probe), /count.js as a supporting diagnostic, and every supported portfolio alias over representative paths while preserving the path in the expected canonical Location. It commits a public status.json artifact and a bounded, sanitized observation record under history/ every hour. It also publishes slo.json, a sanitized 30-day SLO and error-budget artifact generated from that history. See POLICY.md for the publication and failure-domain boundary.

Each supported public application has an internal 99% availability objective; this is not an SLA and carries no service credit. slo.json reports the current measured level as good observations / (good + bad observations) using the observations already available. It switches to the latest rolling 30-day slot window once the history spans 30 days. Missing or malformed slots remain visible as coverage context and never count as good. A controlled-drill recovery objective under six minutes is separate policy context and is excluded from availability arithmetic.

Authenticated dashboard and Flux checks are optional diagnostics. They use only short-lived, operator-managed bearer credentials supplied as GitHub Actions secrets (DASHBOARD_PROBE_BEARER_TOKEN and FLUX_PROBE_BEARER_TOKEN); values are never written to Git, passed to the Pong child process, or included in history. The probe makes no request when its credential is absent and records configuration_unknown. The current Dex/Google deployment does not provide a verified least-privilege synthetic identity, so operators must not populate these secrets until one is approved and the endpoint accepts this probe safely.

The repository is intentionally not a Kubernetes status API or paging system. The website reads only the public status.json artifact from GitHub and falls back to a freshness-safe unknown state if the artifact is missing, malformed, or expired. Published uptime is calculated from good and bad critical observations in the recent 24-hour window; short history is labeled available history / 24h with its observation count. slo.json is durable reliability evidence, not a public uptime claim; its current measured levels are published immediately from observed evidence, while coverage and measurement window are shown alongside them. The first reviewed commit is also used as the platform submodule pointer for local workspace review.

Local checks

npm test
npm run check
node scripts/slo-evidence.mjs --history-dir history --output slo.json
node scripts/validate-slo.mjs slo.json

The full Pong journey requires the sibling repository and its npm dependency:

npm --prefix ../cloudnativepong ci --ignore-scripts
node scripts/monitor.mjs \
  --pong-script ../cloudnativepong/scripts/synthetic-check.mjs

Optional operator probe configuration

The workflow can receive these out-of-band secrets without changing public artifacts:

  • DASHBOARD_PROBE_BEARER_TOKEN for https://dashboard.belacca.com/
  • FLUX_PROBE_BEARER_TOKEN for https://flux.belacca.com/

A supplied URL override must be HTTPS with no query, fragment, username, or password. A successful HTML response that is not an OAuth sign-in page is passed; a response mismatch is target_failure; a transport or monitor exception is monitor_failure; and absent/invalid configuration is configuration_unknown. Only target and monitor failures make the monitor command unsuccessful. This distinction prevents missing production-only identity setup from being mislabeled as a native target outage.

Before enabling either secret, an operator must create and approve a dedicated least-privilege synthetic identity, document rotation/revocation, and verify that the identity provider supports this bearer probe safely. That production step cannot be performed or claimed from this repository.

About

Hourly, externally observed and sanitized status history for the Belacca platform

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages