Skip to content

Technical Plugin Backup

Daniel Neto edited this page Oct 29, 2026 · 1 revision

Technical: Backup plugin

Backs up database/media data and exposes synchronization, retention and restore operations.

Audience: developers, advanced administrators and AI-assisted diagnosis. Plugin catalog.

Source baseline

  • Review date: 2026-10-29. Method: static source analysis; runtime/provider behavior was not exercised.
  • Code ownership: independently versioned plugin repository.
  • Reported version: 4.0.
  • Source revision: e87f2c9ff911717a30ea1c3b8cd96f39cc14f053.
  • Entry class file: Backup.php.

Confirm the installed plugin version independently of the Streamer version. Configuration defaults below are not a dump of this installation's saved settings.

Behavior and operational checks

Database backup, video backup, remote synchronization and restoration are independent operations. Inspect configured paths and current implementations before running them. Verify off-host recovery and restore behavior; a completed file transfer is not a restore test. See Technical-Maintenance for the core mysqlDump.php entry point.

Dependencies

No literal dependency declaration was extracted. This does not prove the plugin is standalone.

Hook integration

Override Implementation
getTags() Backup.php:18
getDataObjectAdvanced() Backup.php:54
getPluginMenu() Backup.php:118
getHTMLMenuRight() Backup.php:432
executeEveryDay() Backup.php:457

Configuration assignments

These are direct assignments inside getEmptyDataObject(), not evaluated effective defaults. Stored plugins.object_data, globals, structured values and conditional branches may alter runtime behavior. Private/default credential values are omitted.

Field Literal default or expression type Literal source label/help Evidence
directory Computed/structured; inspect source Backup Directory: The directory where backups will be stored locally on your server. source
authKey Private setting; value omitted Authorization Key: A unique authorization key for executing backup processes. source
displayTopBackupButton false Display Top Backup Button: Enable or disable the Backup button on the top menu bar. source
backupAllSufix "" Backup All Suffix: Specify a suffix for the backup files when using the Backup All option. source
enableFtpSync false Enable FTP Sync: Enable or disable the feature to sync backups with an FTP server. source
ftpServer '' FTP Server Address: The address of the FTP server where backups should be stored. source
ftpPort 21 FTP Server Port: The port number to use for the FTP server connection. Default is 21. source
ftpUsername '' FTP Username: The username to login to the FTP server. source
ftpPassword Private setting; value omitted FTP Password: The password to login to the FTP server. source
ftpDirectory '' FTP Directory: The directory on the FTP server where backups should be stored. source
ftpTransferMode Computed/structured; inspect source FTP Transfer Mode: Choose the FTP transfer mode: Default, Passive, or Active. source
deleteFilesOlderThan 30 Delete Files Older Than (Days): Specify the number of days to retain backup files on the FTP server. Files older than this will be deleted. source
deleteLocalFilesAfterCopyOnFTP true Delete Local Files After FTP Copy: Enable or disable the automatic deletion of local backup files after they are successfully copied to the FTP server. source

Files and request surface

This inventory distinguishes implementation files from an API specification. Includes, templates, callbacks and CLI workers are not interchangeable HTTP endpoints. Request-field names below are direct source references, not a complete schema or permission declaration.

File Source role Direct request fields observed
Backup.php plugin entry class —
backupDir/index.php PHP page/include/worker; inspect caller —
backupEditor.php PHP page/include/worker; inspect caller —
backupEditor_body.php PHP page/include/worker; inspect caller —
backupEditor_head.php PHP page/include/worker; inspect caller —
deleteBackup.json.php JSON entry point; inspect caller and guard file
deleteRemoteBackup.json.php JSON entry point; inspect caller and guard dateFolder, fileName
execBackup.json.php JSON entry point; inspect caller and guard backupType
execBackupInBackground.json.php JSON entry point; inspect caller and guard backupType
execRestoreInBackground.json.php JSON entry point; inspect caller and guard file
listBackupFiles.json.php JSON entry point; inspect caller and guard —
listRemoteBackupFiles.json.php JSON entry point; inspect caller and guard —
menuRight.php PHP page/include/worker; inspect caller —
restoreBackup.json.php JSON entry point; inspect caller and guard file
status.json.php JSON entry point; inspect caller and guard —
syncWithFTP.json.php JSON entry point; inspect caller and guard file
testFTPCredentials.php PHP page/include/worker; inspect caller debug
upload.php PHP page/include/worker; inspect caller upl

Data and migrations

No CREATE TABLE names were extracted from available plugin SQL. The plugin can still use core tables, PHP-created schema or another component's data. Apply installation/update behavior through the owning plugin; this reference is not a script for running historical migrations manually.

Main-file named symbols

Visibility and implementation semantics must be checked in source. Nonempty string defaults are represented as . This is a symbol reference, not a stable public API promise.

Function or method Source
getTags() 18
getPluginVersion() 26
getDescription() 31
getName() 44
getUUID() 49
getDataObjectAdvanced() 54
getEmptyDataObject() 66
getPluginMenu() 118
getBackupLockFilePath() 124
syncWithFTP($localFile) 130
backupDatabase($backupAll = false) 255
backupVideos($backupAll = false) 312
restoreDatabase($backupFile) 371
restoreVideos($backupFile) 406
getHTMLMenuRight() 432
getStatus() 441
executeEveryDay() 457
deleteOldBackupsFromFTP() 463
deleteFtpFolder($ftpConnection, $folder) 535
getDatabaseSize() 558
nlist($ftp, $baseDir) 572
listFilesByDateFolders() 585

Supporting PHP declarations

These symbols are grouped by source file; inspect the class declaration and visibility before calling them.

testFTPCredentials.php

Named symbol Source
addMessage(&$responseObj, $message, $isDebug = false) 13

Diagnostics and validation

  1. Check the installed/enabled version and the dependencies/settings above.
  2. Identify the actual failing page, request, callback or worker and correlate its timestamp with the AVideo log.
  3. Follow the linked method and caller. Check business-state changes and output artifacts as well as HTTP status.
  4. Reproduce the relevant workflow in a test environment. External provider, Encoder, live-server, storage, payment and authenticated flows require their real integrations.

Shared diagnostic workflow. This page is not a security audit or a claim of end-to-end validation.

Clone this wiki locally