feat: expose backup status for MokoSuiteClient bridge integration #47

Open
opened 2026-06-18 15:21:20 +00:00 by jmiller · 2 comments
Owner

Summary

MokoSuiteClient is adding a bridge plugin (plg_system_mokosuiteclient_backup, see MokoSuiteClient#208) that detects MokoSuiteBackup and includes backup status in heartbeat payloads sent to MokoSuiteHQ. For this to work, MokoSuiteBackup needs to expose its backup status data in a way the bridge can consume.

What the bridge needs

The bridge plugin queries MokoSuiteBackup's data to build a status summary for each heartbeat. It needs access to:

Field Description
status Backup result: complete, failed, partial
created / backup_start When the backup started
backup_end When the backup finished (optional)
total_size Backup size in bytes
destination Storage target: local, s3, remote, etc.
description Human-readable backup description

Options (pick one or combine)

Option A: Direct table query (simplest)

The bridge queries #__mokosuitebackup_records (or equivalent) directly. This requires:

  • Document the table schema and column names so the bridge knows what to query
  • Ensure the records table has the fields listed above

Option B: Joomla event dispatch

MokoSuiteBackup dispatches a custom event after each backup completes, carrying the status payload:

  • Dispatch onMokoSuiteBackupComplete event with backup result data
  • Dispatch onMokoSuiteBackupStatus event when status is requested

Option C: Internal API / helper method

Expose a static helper or model method the bridge can call:

  • BackupHelper::getLatestStatus(): array — returns the latest backup summary
  • No HTTP overhead, just a PHP method call within the same Joomla instance

Acceptance Criteria

  • Bridge plugin can determine if MokoSuiteBackup is installed (component in #__extensions)
  • Bridge plugin can retrieve latest backup status (time, result, size, destination)
  • Bridge plugin can count total and recent (7-day) backup records
  • Approach is documented so the bridge column names can be finalized

Related

## Summary MokoSuiteClient is adding a bridge plugin (`plg_system_mokosuiteclient_backup`, see [MokoSuiteClient#208](https://git.mokoconsulting.tech/MokoConsulting/MokoSuiteClient/issues/208)) that detects MokoSuiteBackup and includes backup status in heartbeat payloads sent to MokoSuiteHQ. For this to work, MokoSuiteBackup needs to expose its backup status data in a way the bridge can consume. ## What the bridge needs The bridge plugin queries MokoSuiteBackup's data to build a status summary for each heartbeat. It needs access to: | Field | Description | |-------|-------------| | `status` | Backup result: `complete`, `failed`, `partial` | | `created` / `backup_start` | When the backup started | | `backup_end` | When the backup finished (optional) | | `total_size` | Backup size in bytes | | `destination` | Storage target: `local`, `s3`, `remote`, etc. | | `description` | Human-readable backup description | ## Options (pick one or combine) ### Option A: Direct table query (simplest) The bridge queries `#__mokosuitebackup_records` (or equivalent) directly. This requires: - [ ] Document the table schema and column names so the bridge knows what to query - [ ] Ensure the records table has the fields listed above ### Option B: Joomla event dispatch MokoSuiteBackup dispatches a custom event after each backup completes, carrying the status payload: - [ ] Dispatch `onMokoSuiteBackupComplete` event with backup result data - [ ] Dispatch `onMokoSuiteBackupStatus` event when status is requested ### Option C: Internal API / helper method Expose a static helper or model method the bridge can call: - [ ] `BackupHelper::getLatestStatus(): array` — returns the latest backup summary - [ ] No HTTP overhead, just a PHP method call within the same Joomla instance ## Acceptance Criteria - [ ] Bridge plugin can determine if MokoSuiteBackup is installed (component in `#__extensions`) - [ ] Bridge plugin can retrieve latest backup status (time, result, size, destination) - [ ] Bridge plugin can count total and recent (7-day) backup records - [ ] Approach is documented so the bridge column names can be finalized ## Related - MokoSuiteClient bridge plugin: [MokoSuiteClient#208](https://git.mokoconsulting.tech/MokoConsulting/MokoSuiteClient/issues/208)
Author
Owner

Branch created: feature/47-feat-expose-backup-status-for-mokosuitec

git fetch origin
git checkout feature/47-feat-expose-backup-status-for-mokosuitec
Branch created: [`feature/47-feat-expose-backup-status-for-mokosuitec`](https://git.mokoconsulting.tech/MokoConsulting/MokoSuiteBackup/src/branch/feature/47-feat-expose-backup-status-for-mokosuitec) ```bash git fetch origin git checkout feature/47-feat-expose-backup-status-for-mokosuitec ```
Author
Owner

Linked Issues

This is part of a three-repo backup status feature:

Repo Issue Role
MokoSuiteBackup #47 (this) Expose backup status data
MokoSuiteClient #208 Bridge plugin to detect and collect backup data
MokoSuiteHQ #39 Display backup status on dashboard
## Linked Issues This is part of a three-repo backup status feature: | Repo | Issue | Role | |------|-------|------| | **MokoSuiteBackup** | #47 (this) | Expose backup status data | | **MokoSuiteClient** | [#208](https://git.mokoconsulting.tech/MokoConsulting/MokoSuiteClient/issues/208) | Bridge plugin to detect and collect backup data | | **MokoSuiteHQ** | [#39](https://git.mokoconsulting.tech/MokoConsulting/MokoSuiteHQ/issues/39) | Display backup status on dashboard |
Sign in to join this conversation.
Priority Medium
Type Feature
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: MokoConsulting/MokoSuiteBackup#47