Alynt Drime Backups Dashboard
Read-only WordPress admin dashboard for Alynt Drime Backups site status monitoring.
by Alynt · github.com/nichlasb/alynt-drime-backups-dashboard · website
Install
The author publishes release zips, so WP-CLI can install straight from GitHub:
wp plugin install https://github.com/nichlasb/alynt-drime-backups-dashboard/releases/download/v0.1.15/alynt-drime-backups-dashboard-0.1.15.zipDeclares an update source (NichlasB/alynt-drime-backups-dashboard), so updates arrive through the plugin's own updater.
Readme
Alynt Drime Backups Dashboard
Read-only central monitoring dashboard for WordPress sites running Alynt Drime Backups Uploader.
This repository is the separate dashboard plugin package. The current dashboard host is control-sitesmanage in live-only mode. Version 1 remains read-only monitoring. The current V2.1 release candidate adds one separately opted-in, bounded remote action: asking a client uploader to scan for ready backup packages and upload eligible items using its own local settings and Drime credentials.
v1 Boundary
- Dashboard-generated one-time pairing token.
- Client-site opt-in before any status endpoint is enabled.
- Dashboard polling of a fixed read-only client status endpoint.
- No remote backup, restore, delete, cleanup, settings, credential, Drime token, or arbitrary command actions.
V2.1 Boundary
- Requires V1 pairing first.
- Requires a separate dashboard-generated
adb2aaction opt-in token pasted on the client site. - Uses per-site signed action intents with short expiry, idempotency, and client-side rate/lock enforcement.
- Allows only
scan_upload_now: the client scans for ready backup packages and schedules eligible uploads. - Does not create fresh WPvivid/server-runner backups, restore, delete, clean up, change schedules/settings, expose filesystem paths, or store Drime API credentials in the dashboard.
Package Identity
- Plugin name:
Alynt Drime Backups Dashboard - Slug/folder:
alynt-drime-backups-dashboard - Main file:
alynt-drime-backups-dashboard.php - Text domain:
alynt-drime-backups-dashboard - Composer package:
alynt/alynt-drime-backups-dashboard - GitHub Plugin URI:
NichlasB/alynt-drime-backups-dashboard - PHP class prefix:
Alynt_Drime_Backups_Dashboard_ - Function/option/action prefix:
alynt_drime_backups_dashboard_ - Constant prefix:
ALYNT_DRIME_BACKUPS_DASHBOARD_
Current Status
Version 0.1.15 currently includes:
- WordPress plugin header and requirement gate.
- Local custom table migration hooks for dashboard-owned sites and snapshots.
- Admin page under Tools > Drime Backups Dashboard for creating local pending enrollments and displaying one-time pairing tokens.
- Protocol-v1 pairing-token helper primitives with public-HTTPS origin validation.
- Local dashboard-record revocation scaffolding that does not contact client sites.
- Credential-vault foundation for encrypted dashboard-side polling credential storage.
- Safe transport foundation that prepares the fixed read-only status request without executing outbound HTTP.
- Protocol-v1 REST enrollment endpoint for authenticated uploader opt-in completion.
- Manual Check Now for enrolled sites using the fixed authenticated read-only status route.
- Scheduled read-only polling with bounded batches, locks, jitter, retry backoff, and snapshot retention cleanup.
- Responsive, WordPress-native Sites, Attention, and Site Detail views with status summaries, polling evidence, accessible status badges, bounded recent snapshot history, and local-only revoke/check actions.
- Redacted admin Diagnostics tab for scheduler state, retention defaults, polling counts, recent safe poll outcomes, and progressively enhanced support-copy/export controls.
- Optional structured diagnostics logging, disabled by default, with a bounded redacted local event buffer for support troubleshooting.
- Always-on, bounded, redacted operator action history for dashboard-local actions such as pairing-token creation, local revocation, manual Check Now, and diagnostics changes.
- Optional dashboard-side display of redacted per-source backup freshness and inventory evidence from schema-1 uploader status payloads.
- Redacted WPvivid source-activity hints that distinguish local WPvivid activity evidence from Alynt upload proof.
- At-a-glance Sites-row source summaries for Server and WPvivid freshness, current package counts, latest backup/package time, and latest upload time when clients report that evidence.
- V2.1 dashboard-generated action opt-in tokens, encrypted dashboard-side signing-key storage, signed
Request Backup Nowdispatch, and redacted remote-action history for the singlescan_upload_nowaction. - Credential-aware Sites-tab manual-check state copy for active, pending, revoked, and missing-credential rows.
- Sites-tab layout protection for action buttons and hiding of superseded revoked duplicate rows when a healthy active enrollment exists for the same origin.
- Harmless per-request cache-busting for read-only status polling so managed page caches cannot serve stale authenticated status payloads.
- Implementation plan in
docs/IMPLEMENTATION_PLAN.md. - Approved Phase 3 protocol contract in
docs/PROTOCOL_V1.md. - Approved Phase 3 threat model in
docs/THREAT_MODEL_V1.md. - Future v2 remote-actions planning in
docs/V2_REMOTE_ACTIONS_PLAN.md. - Settings reference in
docs/SETTINGS.md. - Hook reference in
docs/HOOKS.md.
Before broad implementation work, create or verify a restore point. For the new dashboard repo, use a baseline commit after this scaffold and then create an external restore point before adding enrollment, polling, or schema migrations. For companion uploader changes, run the toolkit restore-point prompt against the uploader repository first.
Development
Requirements
- WordPress 6.0 or higher.
- PHP 7.4 or higher.
- Composer dependencies installed for local linting and tests.
- Node.js/npm for optional asset-build and deployment helper scripts.
Installation
- Copy the
alynt-drime-backups-dashboardfolder towp-content/plugins/. - Activate Alynt Drime Backups Dashboard from the WordPress Plugins screen.
- Open Tools > Drime Backups Dashboard in WordPress admin.
Usage
Use the dashboard to generate one-time V1 pairing tokens, complete client-site opt-in enrollment, and monitor read-only client backup status snapshots. For V2.1-capable paired clients, a dashboard administrator can generate a separate one-time action opt-in token and then use Request Backup Now to send one signed scan_upload_now intent. The dashboard still does not create fresh backups, restore, delete, clean up, change settings, store Drime credentials, or run arbitrary commands.
Diagnostics live under Tools > Drime Backups Dashboard > Diagnostics. Structured diagnostics logging is disabled by default. When an administrator explicitly enables it, the plugin stores a bounded local event buffer with redaction applied before persistence/export. Pairing tokens, polling secrets, authorization headers, cookies, nonces, raw payloads, raw response bodies, filesystem paths, SQL, salts, and Drime credentials are not stored in diagnostics events.
FAQ
Can the dashboard run backups, restores, or cleanup on client sites?
Version 1 cannot run any remote actions. The V2.1 release candidate adds only a bounded Request Backup Now action after separate client-side opt-in. That action asks the client uploader to scan for ready packages and upload eligible items; it does not create fresh WPvivid/server-runner backups and cannot restore, delete, clean up, change settings, expose Drime credentials, or run arbitrary commands.
What happens when I generate a pairing token?
The dashboard creates a pending local enrollment for the expected client origin and displays a one-time pairing credential. The client site must opt in by submitting the enrollment payload back to the dashboard REST endpoint before the dashboard can poll status.
Does diagnostics logging store secrets?
No. Diagnostics logging is disabled by default and redacts sensitive fields before local persistence or export. Pairing tokens, polling secrets, authorization headers, cookies, nonces, raw payloads, raw response bodies, filesystem paths, SQL, salts, and Drime credentials must not be stored.
Where are implementation details documented?
See docs/IMPLEMENTATION_PLAN.md for the implementation sequence, docs/PROTOCOL_V1.md for the read-only dashboard/uploader contract, docs/PROTOCOL_V2.md and docs/THREAT_MODEL_V2.md for the V2.1 signed-action boundary, docs/V2_REMOTE_ACTIONS_PLAN.md for later remote-operation planning, docs/SETTINGS.md for stored options, and docs/HOOKS.md for hook ownership.
Changelog Summary
See CHANGELOG.md for the current unreleased changelog and release notes.
License
GPL-2.0-or-later. See LICENSE.
Local Checks
Run the configured checks before packaging:
npm test
npm run lint
npm run build
For targeted PHP syntax checks during development, run php -l against changed PHP files. The configured lint script covers the committed PHP paths.
Release Packaging
Alynt Plugin Updater distribution uses GitHub release assets from NichlasB/alynt-drime-backups-dashboard.
- Release tags use
vX.Y.Z. - The release workflow packages
alynt-drime-backups-dashboard-X.Y.Z.zip. - The ZIP top-level folder is
alynt-drime-backups-dashboard/. - CI builds runtime assets with
npm ciandnpm run build. - Composer dependencies are development-only; release packages exclude
vendor/. - Release packages exclude test suites, source assets, build scripts, Composer/npm manifests, local deployment helpers, and internal engineering docs.
- Release publication, release-asset validation, and WordPress updater runtime acceptance remain separate approval-gated workflows.
Read the full README on GitHub →
Releases
| Tag | Published | Asset | Downloads |
|---|---|---|---|
| v0.1.15 | Aug 20, 2026 | alynt-drime-backups-dashboard-0.1.15.zip | 3 |
| v0.1.14 | Aug 20, 2026 | alynt-drime-backups-dashboard-0.1.14.zip | 1 |
| v0.1.13 | Aug 19, 2026 | alynt-drime-backups-dashboard-0.1.13.zip | 1 |
| v0.1.12 | Aug 18, 2026 | alynt-drime-backups-dashboard-0.1.12.zip | 1 |
| v0.1.11 | Aug 18, 2026 | alynt-drime-backups-dashboard-0.1.11.zip | 1 |
| v0.1.10 | Aug 17, 2026 | alynt-drime-backups-dashboard-0.1.10.zip | 1 |
| v0.1.9 | Aug 17, 2026 | alynt-drime-backups-dashboard-0.1.9.zip | 1 |
| v0.1.8 | Aug 17, 2026 | alynt-drime-backups-dashboard-0.1.8.zip | 2 |
| v0.1.7 | Aug 16, 2026 | alynt-drime-backups-dashboard-0.1.7.zip | 0 |
| v0.1.6 | Aug 13, 2026 | alynt-drime-backups-dashboard-0.1.6.zip | 2 |
| v0.1.5 | Aug 13, 2026 | alynt-drime-backups-dashboard-0.1.5.zip | 1 |
| v0.1.4 | Aug 13, 2026 | alynt-drime-backups-dashboard-0.1.4.zip | 3 |
| v0.1.3 | Aug 13, 2026 | alynt-drime-backups-dashboard-0.1.3.zip | 3 |
| v0.1.2 | Aug 13, 2026 | alynt-drime-backups-dashboard-0.1.2.zip | 3 |
| v0.1.1 | Aug 11, 2026 | alynt-drime-backups-dashboard-0.1.1.zip | 3 |
| v0.1.0 | Aug 11, 2026 | alynt-drime-backups-dashboard-0.1.0.zip | 3 |