=== BackupBeacon ===
Contributors: bostondeveloper
Tags: backup, monitoring, alerts, cron, watchdog
Requires at least: 6.0
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 3.6.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

The alarm that fires when backups stop happening.

== Description ==

Most backup failures are silent: the job stopped running weeks ago and nobody noticed. Backup plugins grade themselves. BackupBeacon is the independent watchdog that does not.

**How it works**

1. Add each backup destination (UpdraftPlus to Drive, database dumps to S3, your host's nightly snapshots) with a freshness limit in hours.
2. Point your backup job at the token-authenticated ping endpoint: `POST /wp-json/backupbeacon/v1/ping/<destination-id>?token=...`. Every successful backup pings; the token is rotatable and pings are rate-bounded.
3. BackupBeacon evaluates every destination hourly (WP-Cron): fresh, stale (past its limit), or silent (never recorded, or a clock-skewed future timestamp). Backdated recordings are refused.
4. When a destination turns stale or silent, the site admin gets an email and a persistent admin notice - once per incident, not once per cron tick. A dashboard widget rolls every destination into one ALARM/OK beacon, and the event log records when each destination went stale and when it recovered.

No account, no external service, no per-site fees. Your backup jobs ping your own site; the watchdog runs where the backups matter.

**Optional premium plans** unlock faster checks (15-minute cadence), more alert channels (Slack/Discord/webhook), escalation and maintenance windows, per-destination alert routing, a status API, multisite and white-label agency tooling. Upgrades happen inside your dashboard - no reinstall, no license-key copying - and every feature you use today stays free forever.

**What it is not**: BackupBeacon does not make backups. It is the alarm for the tools that do.

== Screenshots ==

1. The BackupBeacon dashboard: every destination rolled into one ALARM/OK beacon, with per-destination freshness state.
2. Destination setup: token-authenticated ping endpoint with rotatable token and freshness limit in hours.

== Frequently Asked Questions ==

= Which backup plugins does it work with? =

Any of them. If your backup tool can run a curl command (or a WP-CLI line) after it finishes, it can ping BackupBeacon. It is deliberately backup-plugin-agnostic.

= Does it need an external account? =

No. Pings arrive at your own WordPress site and evaluation runs on WP-Cron. Nothing leaves your server except the alert email to the admin.

= What happens if my backup job never pings? =

That is the point. Silence past the freshness limit flips the destination to stale (or silent if nothing was ever recorded) and the alarm fires.

== Changelog ==

= 3.6.0 =
* Fix (BB-OPTS-002): alert and premium settings forms no longer wipe each other - options save merges per section instead of replacing wholesale.
* Studio: white label - agency name replaces the product name on screens, alerts, and emails.
* Studio: audit export bundle - one JSON download with destinations, settings, acknowledgements, and the full event log.
* Studio: multisite network mode - network admin rollup of every site's beacon state.

= 3.5.0 =
* Premium plans via Freemius: in-dashboard checkout, automatic license activation, no license-key copying.
* Starter: 15-minute evaluation cadence, 2,000-entry event log, per-destination alert email routing, snooze/mute.
* Pro: webhook alerts (Slack/Discord/custom), escalation repeats, maintenance windows, CSV event-log export.
* Accelerator: multi-channel fan-out, incident acknowledgement, status API for external dashboards, ping payload validation.
* Studio: multisite network mode, white label, signed audit export bundles.
* All 3.4.1 features remain free and unchanged.

= 3.4.1 =
Self-hosted admin fonts (no remote font requests).

= 3.4.0 =
Token-authed REST ping endpoint per destination, hourly WP-Cron evaluation, email + admin-notice alerts on stale/silent transitions, event log (last 200), dashboard widget, rotatable token.

= 3.3.1 =
Real freshness beacon replacing the generic template engine.

== Upgrade Notice ==

= 3.5.0 =
Optional paid plans (Starter, Pro, Accelerator, Studio) add faster checks, more alert channels, escalation, maintenance windows, status API and agency tooling. Everything you already use stays free forever - upgrading is seamless from your dashboard, no reinstall.

= 3.4.1 =
Cosmetic: admin fonts are now self-hosted. No behavior change.
