Jonathan Miller
2a9443601e
fix: [DEFAULT_DIR] resolves to JPATH_ROOT/backups, shown as placeholder
...
- getDefaultAbsolute() now returns JPATH_ROOT/backups instead of
the old admin component directory
- SQL default, form default, and install migration all use [DEFAULT_DIR]
- portablize() converts ./backups and old literal paths back to [DEFAULT_DIR]
- Users see [DEFAULT_DIR] in the field, resolved path shown in status
2026-06-11 15:27:17 -05:00
gitea-actions[bot]
aa3aace9dd
chore(version): pre-release bump to 01.08.06-dev [skip ci]
2026-06-11 20:19:47 +00:00
Jonathan Miller
7a5e25e0e4
Merge branch 'dev' of https://git.mokoconsulting.tech/MokoConsulting/MokoSuiteBackup into dev
Generic: Repo Health / Site Health (push) Has been skipped
Generic: Repo Health / Access control (push) Successful in 1s
Universal: Auto Version Bump / Version Bump (push) Successful in 12s
Generic: Repo Health / Scripts governance (push) Has been cancelled
Generic: Repo Health / Repository health (push) Has been cancelled
Generic: Repo Health / Report Issues (push) Has been cancelled
2026-06-11 15:19:23 -05:00
Jonathan Miller
3e72b76cde
fix: restore language file entries stripped during merge conflict resolution
...
All sub-extension manifests had empty <languages> tags after the sed-based
conflict resolution removed lines matching old names. This caused Joomla
to not load any language strings, showing raw keys like
COM_MOKOJOOMBACKUP_HEADING_TITLE instead of translated text.
2026-06-11 15:19:19 -05:00
gitea-actions[bot]
b4aa3ab0f9
chore(version): pre-release bump to 01.08.05-dev [skip ci]
2026-06-11 19:23:10 +00:00
Jonathan Miller
c401608222
fix: resolve merge conflicts, keep pretty names at 01.08.04-dev
Generic: Repo Health / Site Health (push) Has been skipped
Generic: Repo Health / Access control (push) Successful in 1s
Universal: Auto Version Bump / Version Bump (push) Successful in 12s
Generic: Repo Health / Scripts governance (push) Has been cancelled
Generic: Repo Health / Repository health (push) Has been cancelled
Generic: Repo Health / Report Issues (push) Has been cancelled
2026-06-11 14:22:51 -05:00
Jonathan Miller
5c697b9eeb
fix: pretty names for all sub-extensions, default backup dir to ./backups
...
- Component: MokoSuiteBackup
- Plugins: System/Task/Console/Content/QuickIcon/ActionLog/WebServices - MokoSuiteBackup
- Default backup_dir changed to ./backups (relative to site root)
- Auto-migrate old defaults on upgrade
2026-06-11 12:48:11 -05:00
gitea-actions[bot]
fe71aff5a3
chore(version): pre-release bump to 01.08.04-dev [skip ci]
2026-06-11 17:40:40 +00:00
Jonathan Miller
9a20f23c12
Merge branch 'dev' of https://git.mokoconsulting.tech/MokoConsulting/MokoSuiteBackup into dev
Generic: Repo Health / Site Health (push) Has been skipped
Generic: Repo Health / Access control (push) Successful in 1s
Universal: Auto Version Bump / Version Bump (push) Successful in 8s
Generic: Repo Health / Scripts governance (push) Has been cancelled
Generic: Repo Health / Repository health (push) Has been cancelled
Generic: Repo Health / Report Issues (push) Has been cancelled
2026-06-11 12:40:24 -05:00
Jonathan Miller
49f3d9fdcf
feat: change default backup dir to ../backups (outside web root)
...
- Default backup_dir is now ../backups (relative to JPATH_ROOT),
which resolves outside public_html on most hosting setups
- Added BackupDirectory::normalizePath() to resolve ../ segments
without requiring the path to exist on disk
- Added BackupDirectory::portablize() to auto-detect absolute paths
and replace them with portable placeholders ([HOME], ../backups)
- ProfileTable::check() auto-normalizes backup_dir on save
- Install postflight auto-migrates old in-webroot defaults to ../backups
- Dashboard warning now checks resolved path instead of string matching
- .htaccess protection only applied when directory is inside web root
2026-06-11 12:39:59 -05:00
gitea-actions[bot]
1badb45c74
chore(version): pre-release bump to 01.08.03-dev [skip ci]
2026-06-11 17:31:11 +00:00
Jonathan Miller
8d78cae60b
Merge branch 'dev' of https://git.mokoconsulting.tech/MokoConsulting/MokoSuiteBackup into dev
Generic: Repo Health / Access control (push) Successful in 1s
Generic: Repo Health / Site Health (push) Has been skipped
Universal: Auto Version Bump / Version Bump (push) Successful in 15s
Generic: Repo Health / Scripts governance (push) Has been cancelled
Generic: Repo Health / Repository health (push) Has been cancelled
Generic: Repo Health / Report Issues (push) Has been cancelled
2026-06-11 12:30:48 -05:00
Jonathan Miller
e8b40d9389
fix: resolve relative paths in folder browser, add placeholders help modal
...
- browseDir() now resolves paths via BackupDirectory::resolve() before
permission check, fixing "access denied" when browsing from [DEFAULT_DIR]
- SQL default for backup_dir changed to [DEFAULT_DIR] placeholder
- Added help button (?) next to Browse that opens a modal listing all
available placeholders with examples and recommended paths
2026-06-11 12:30:23 -05:00
gitea-actions[bot]
925ad07d7c
chore(version): pre-release bump to 01.08.02-dev [skip ci]
2026-06-11 17:25:04 +00:00
Jonathan Miller
ace33b60fe
feat: rename mokojoombackup → mokosuitebackup, add [HOME] placeholder for backup directory
...
Generic: Repo Health / Site Health (push) Has been skipped
Generic: Repo Health / Access control (push) Successful in 2s
Universal: Auto Version Bump / Version Bump (push) Successful in 10s
Generic: Repo Health / Scripts governance (push) Has been cancelled
Generic: Repo Health / Repository health (push) Has been cancelled
Generic: Repo Health / Report Issues (push) Has been cancelled
Renames all sub-extensions from mokojoombackup to mokosuitebackup
(package, component, 7 plugins, language files, manifests).
Adds [HOME] placeholder to BackupDirectory and PlaceholderResolver
so users can set backup_dir to [HOME]/backups (outside web root).
Fixes folder browser "access denied" on PHP-FPM shared hosting
where getenv('HOME') returns empty by adding POSIX and JPATH_ROOT
fallback detection.
2026-06-11 12:24:27 -05:00
gitea-actions[bot]
8bcd5c058c
chore(version): pre-release bump to 01.08.01-dev [skip ci]
2026-06-10 05:42:14 +00:00
jmiller
d2546db9de
chore: sync security-audit.yml from Template-Joomla [skip ci]
2026-06-07 17:59:05 +00:00
jmiller
476d79cca7
chore: sync repo-health.yml from Template-Joomla [skip ci]
2026-06-07 17:59:05 +00:00
jmiller
a7b2716d20
chore: sync pre-release.yml from Template-Joomla [skip ci]
2026-06-07 17:59:04 +00:00
jmiller
59dffdb38f
chore: sync pr-check.yml from Template-Joomla [skip ci]
2026-06-07 17:59:04 +00:00
jmiller
d26f938c26
chore: sync notify.yml from Template-Joomla [skip ci]
2026-06-07 17:59:04 +00:00
jmiller
9b90738e54
chore: sync issue-branch.yml from Template-Joomla [skip ci]
2026-06-07 17:59:03 +00:00
jmiller
b7dc38dcbc
chore: sync gitleaks.yml from Template-Joomla [skip ci]
2026-06-07 17:59:03 +00:00
jmiller
ef6d3f4dc9
chore: sync deploy-manual.yml from Template-Joomla [skip ci]
2026-06-07 17:59:02 +00:00
jmiller
c6826ebc45
chore: sync cleanup.yml from Template-Joomla [skip ci]
2026-06-07 17:59:02 +00:00
jmiller
6a2788786e
chore: sync ci-joomla.yml from Template-Joomla [skip ci]
2026-06-07 17:59:02 +00:00
jmiller
78e507e034
chore: sync ci-generic.yml from Template-Joomla [skip ci]
2026-06-07 17:59:01 +00:00
jmiller
c842998d1a
chore: sync cascade-dev.yml from Template-Joomla [skip ci]
2026-06-07 17:59:01 +00:00
jmiller
cc1c84f662
chore: sync branch-cleanup.yml from Template-Joomla [skip ci]
2026-06-07 17:59:01 +00:00
jmiller
2b66d4a9d1
chore: sync auto-release.yml from Template-Joomla [skip ci]
2026-06-07 17:59:00 +00:00
jmiller
7eb56e07a9
chore: sync auto-bump.yml from Template-Joomla [skip ci]
2026-06-07 17:59:00 +00:00
gitea-actions[bot]
9af3b7ba9d
chore(release): build 01.08.00 [skip ci]
2026-06-07 15:06:21 +00:00
jmiller
abe68c1e64
Merge pull request 'Release v01.07.00 — scheduled task, install warnings, AkeebaImporter cleanup' ( #44 ) from dev into main
Generic: Repo Health / Scripts governance (push) Has been cancelled
Generic: Repo Health / Repository health (push) Has been cancelled
Generic: Repo Health / Report Issues (push) Has been cancelled
Generic: Repo Health / Access control (push) Has been cancelled
Generic: Repo Health / Site Health (push) Has been cancelled
2026-06-07 15:06:14 +00:00
gitea-actions[bot]
4d74627720
chore(version): pre-release bump to 01.07.01-dev [skip ci]
Branch Cleanup / Delete merged branch (pull_request) Has been cancelled
Universal: Build & Release / Promote to RC (pull_request) Has been cancelled
Universal: Build & Release / Build & Release Pipeline (pull_request) Has been cancelled
2026-06-07 14:59:37 +00:00
Jonathan Miller
e5fb88e1a4
feat: auto-create default scheduled task on install, fix AkeebaImporter constants
...
Generic: Repo Health / Scripts governance (push) Has been cancelled
Generic: Repo Health / Repository health (push) Has been cancelled
Generic: Repo Health / Report Issues (push) Has been cancelled
Generic: Repo Health / Site Health (push) Has been cancelled
Generic: Repo Health / Access control (push) Has been cancelled
Universal: Auto Version Bump / Version Bump (push) Has been cancelled
- Create "Monthly Full Backup" scheduled task (30-day interval, profile 1,
03:00 execution) on fresh install via com_scheduler
- Skips if any MokoJoomBackup task already exists
- Failure notifications enabled to Super Users group by default
- Replace hardcoded backup dir paths in AkeebaImporter with
BackupDirectory::DEFAULT_RELATIVE constant
2026-06-07 09:50:32 -05:00
Jonathan Miller
df44518611
fix: skip all postflight actions on uninstall, add install warnings
...
Generic: Repo Health / Scripts governance (push) Has been cancelled
Generic: Repo Health / Repository health (push) Has been cancelled
Generic: Repo Health / Report Issues (push) Has been cancelled
Generic: Repo Health / Site Health (push) Has been cancelled
Generic: Repo Health / Access control (push) Has been cancelled
Universal: Auto Version Bump / Version Bump (push) Has been cancelled
- Early return on uninstall to prevent license warning, menu sync, and
default-dir check from running during package removal
- Add warnDefaultBackupDir() — warns on install/update if any profile
uses the default web-root backup directory
- Add profile review reminder on fresh install with link to profiles view
2026-06-07 09:46:46 -05:00
gitea-actions[bot]
5e0683c0c7
chore(release): build 01.07.00 [skip ci]
2026-06-07 14:44:24 +00:00
jmiller
bbf3dcd449
Merge pull request 'Refactor: extract BackupDirectory utility class' ( #43 ) from dev into main
Generic: Repo Health / Scripts governance (push) Has been cancelled
Generic: Repo Health / Repository health (push) Has been cancelled
Generic: Repo Health / Report Issues (push) Has been cancelled
Generic: Repo Health / Site Health (push) Has been cancelled
Generic: Repo Health / Access control (push) Has been cancelled
2026-06-07 14:44:09 +00:00
gitea-actions[bot]
139423cbe9
chore(version): pre-release bump to 01.06.01-dev [skip ci]
Branch Cleanup / Delete merged branch (pull_request) Has been cancelled
Universal: Build & Release / Promote to RC (pull_request) Has been cancelled
Universal: Build & Release / Build & Release Pipeline (pull_request) Has been cancelled
2026-06-07 14:41:18 +00:00
Jonathan Miller
814d1b147c
refactor: extract BackupDirectory utility to eliminate code duplication
...
Generic: Repo Health / Scripts governance (push) Has been cancelled
Generic: Repo Health / Repository health (push) Has been cancelled
Generic: Repo Health / Report Issues (push) Has been cancelled
Generic: Repo Health / Site Health (push) Has been cancelled
Generic: Repo Health / Access control (push) Has been cancelled
Universal: Auto Version Bump / Version Bump (push) Has been cancelled
- Create BackupDirectory utility class with centralized:
- DEFAULT_RELATIVE constant and PLACEHOLDER constant
- resolve() — path resolution with [DEFAULT_DIR] and relative path handling
- hasPlaceholders() — check for unresolved placeholder tokens
- isWebAccessible() — web-root boundary check
- protect() — .htaccess and index.html creation with error logging
- ensureReady() — mkdir + protect in one call
- parseNewlineList() — newline-separated text parsing
- logPathFromArchive() — derive .log path from archive path
- Remove duplicated methods from BackupEngine, SteppedBackupEngine,
ProfileTable, AjaxController, and DashboardModel
- All consumers now use BackupDirectory static methods
- Net reduction: ~180 lines of duplicated code eliminated
2026-06-07 09:39:43 -05:00
gitea-actions[bot]
6dc7fdfa91
chore(release): build 01.06.00 [skip ci]
2026-06-07 14:23:16 +00:00
jmiller
3de786cf71
Merge pull request 'Release v01.05.00 — dashboard menu, [DEFAULT_DIR], live validation, security hardening' ( #42 ) from rc into main
2026-06-07 14:23:05 +00:00
gitea-actions[bot]
dd597a3ecd
chore(release): build 01.05.00-rc [skip ci]
Universal: Build & Release / Promote to RC (pull_request) Has been cancelled
Branch Cleanup / Delete merged branch (pull_request) Has been cancelled
Universal: Build & Release / Build & Release Pipeline (pull_request) Has been cancelled
2026-06-07 14:18:39 +00:00
Jonathan Miller
41b481dbfe
fix: address code review — Apache 2.4 htaccess, browseDir traversal, SQL cast
...
Joomla: Extension CI / Tests (PHP 8.2) (pull_request) Has been cancelled
Joomla: Extension CI / Tests (PHP 8.3) (pull_request) Has been cancelled
Joomla: Extension CI / PHPStan Analysis (pull_request) Has been cancelled
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Universal: PR Check / Report Issues (pull_request) Has been cancelled
Generic: Repo Health / Scripts governance (pull_request) Has been cancelled
Generic: Repo Health / Repository health (pull_request) Has been cancelled
Generic: Repo Health / Report Issues (pull_request) Has been cancelled
Universal: PR Check / Branch Policy (pull_request) Has been cancelled
Generic: Repo Health / Site Health (pull_request) Has been cancelled
Generic: Repo Health / Access control (pull_request) Has been cancelled
Joomla: Extension CI / Release Readiness Check (pull_request) Has been cancelled
Joomla: Extension CI / Lint & Validate (pull_request) Has been cancelled
Universal: Secret Scanning / Gitleaks Secret Scan (pull_request) Has been cancelled
Universal: PR Check / Validate PR (pull_request) Has been cancelled
Branch Cleanup / Delete merged branch (pull_request) Has been cancelled
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || 'development' }}) (pull_request_target) Has been cancelled
Universal: Build & Release / Build & Release Pipeline (pull_request) Has been cancelled
Universal: Build & Release / Promote to RC (pull_request) Has been cancelled
Generic: Repo Health / Site Health (push) Has been cancelled
Generic: Repo Health / Access control (push) Has been cancelled
Universal: Auto Version Bump / Version Bump (push) Has been cancelled
Generic: Repo Health / Scripts governance (push) Has been cancelled
Generic: Repo Health / Repository health (push) Has been cancelled
Generic: Repo Health / Report Issues (push) Has been cancelled
- Update .htaccess content to support both Apache 2.4 (Require all denied)
and Apache 2.2 (Order deny,allow) in all four locations
- Guard browseDir parent navigation to prevent escaping allowed boundaries
- Add explicit (int) cast on viewLog SQL query for defense-in-depth
2026-06-07 09:17:20 -05:00
Jonathan Miller
e72a007041
fix: address PR review — error logging, ACL check, fetch error handling
...
Generic: Repo Health / Scripts governance (push) Has been cancelled
Generic: Repo Health / Repository health (push) Has been cancelled
Generic: Repo Health / Report Issues (push) Has been cancelled
Joomla: Extension CI / Tests (PHP 8.2) (pull_request) Has been cancelled
Joomla: Extension CI / Tests (PHP 8.3) (pull_request) Has been cancelled
Joomla: Extension CI / PHPStan Analysis (pull_request) Has been cancelled
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Universal: PR Check / Report Issues (pull_request) Has been cancelled
Generic: Repo Health / Scripts governance (pull_request) Has been cancelled
Generic: Repo Health / Repository health (pull_request) Has been cancelled
Generic: Repo Health / Report Issues (pull_request) Has been cancelled
Generic: Repo Health / Site Health (push) Has been cancelled
Generic: Repo Health / Access control (push) Has been cancelled
Universal: Auto Version Bump / Version Bump (push) Has been cancelled
Universal: PR Check / Branch Policy (pull_request) Has been cancelled
Generic: Repo Health / Site Health (pull_request) Has been cancelled
Generic: Repo Health / Access control (pull_request) Has been cancelled
Joomla: Extension CI / Release Readiness Check (pull_request) Has been cancelled
Universal: Secret Scanning / Gitleaks Secret Scan (pull_request) Has been cancelled
Universal: PR Check / Validate PR (pull_request) Has been cancelled
Joomla: Extension CI / Lint & Validate (pull_request) Has been cancelled
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || 'development' }}) (pull_request_target) Has been cancelled
Branch Cleanup / Delete merged branch (pull_request) Has been cancelled
Universal: Build & Release / Build & Release Pipeline (pull_request) Has been cancelled
Universal: Build & Release / Promote to RC (pull_request) Has been cancelled
- Log failures in protectBackupDir() and protectWebAccessibleDir() instead
of silently suppressing with @ (security-critical .htaccess writes)
- Add error_log() to empty catch blocks in boot() and syncMenuIcons()
- Add core.manage ACL check to checkDir() AJAX endpoint
- Surface opendir() failures in browseDir() with warning message
- Add HTTP status check (r.ok) to JS fetch calls before parsing JSON
- Log temp SQL file deletion failures in SteppedBackupEngine
2026-06-07 09:11:39 -05:00
Jonathan Miller
3edf635a4c
docs: update changelog with all unreleased changes for v01.05.00
Joomla: Extension CI / Tests (PHP 8.2) (pull_request) Has been cancelled
Joomla: Extension CI / Tests (PHP 8.3) (pull_request) Has been cancelled
Joomla: Extension CI / PHPStan Analysis (pull_request) Has been cancelled
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Universal: PR Check / Report Issues (pull_request) Has been cancelled
Generic: Repo Health / Scripts governance (pull_request) Has been cancelled
Generic: Repo Health / Repository health (pull_request) Has been cancelled
Generic: Repo Health / Report Issues (pull_request) Has been cancelled
Generic: Repo Health / Site Health (pull_request) Has been cancelled
Universal: PR Check / Branch Policy (pull_request) Has been cancelled
Generic: Repo Health / Access control (pull_request) Has been cancelled
Joomla: Extension CI / Release Readiness Check (pull_request) Has been cancelled
Joomla: Extension CI / Lint & Validate (pull_request) Has been cancelled
Universal: Secret Scanning / Gitleaks Secret Scan (pull_request) Has been cancelled
Universal: PR Check / Validate PR (pull_request) Has been cancelled
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || 'development' }}) (pull_request_target) Has been cancelled
Branch Cleanup / Delete merged branch (pull_request) Has been cancelled
Generic: Repo Health / Site Health (push) Has been cancelled
Generic: Repo Health / Access control (push) Has been cancelled
Universal: Build & Release / Promote to RC (pull_request) Has been cancelled
Universal: Build & Release / Build & Release Pipeline (pull_request) Has been cancelled
Universal: Auto Version Bump / Version Bump (push) Has been cancelled
Generic: Repo Health / Scripts governance (push) Has been cancelled
Generic: Repo Health / Repository health (push) Has been cancelled
Generic: Repo Health / Report Issues (push) Has been cancelled
2026-06-07 09:03:39 -05:00
gitea-actions[bot]
3339eac9de
chore(version): pre-release bump to 01.04.02-dev [skip ci]
2026-06-07 13:59:55 +00:00
Jonathan Miller
6e18c77670
feat: add submenu icons via FA6 CSS injection and sync menu icons on install
...
Generic: Repo Health / Scripts governance (push) Has been cancelled
Generic: Repo Health / Repository health (push) Has been cancelled
Generic: Repo Health / Report Issues (push) Has been cancelled
Generic: Repo Health / Site Health (push) Has been cancelled
Generic: Repo Health / Access control (push) Has been cancelled
Universal: Auto Version Bump / Version Bump (push) Has been cancelled
- Inject Font Awesome 6 icons for Dashboard, Backups, and Profiles submenu
items via MokoJoomBackupComponent::boot() using WebAssetManager
- Add syncMenuIcons() to installer script to set img column in #__menu
on both install and update (Joomla doesn't refresh icons on upgrade)
- Add encryptionPassword property to SteppedSession for stepped backup
encryption support
2026-06-07 08:59:30 -05:00
gitea-actions[bot]
3ee620eca1
chore(version): pre-release bump to 01.04.01-dev [skip ci]
2026-06-07 11:56:00 +00:00
Jonathan Miller
608aeb3641
feat: add dashboard menu, [DEFAULT_DIR] placeholder, live dir validation, and backup security
...
Generic: Repo Health / Scripts governance (push) Has been cancelled
Generic: Repo Health / Repository health (push) Has been cancelled
Generic: Repo Health / Report Issues (push) Has been cancelled
Generic: Repo Health / Site Health (push) Has been cancelled
Generic: Repo Health / Access control (push) Has been cancelled
Universal: Auto Version Bump / Version Bump (push) Has been cancelled
- Add Dashboard as first submenu entry in component manifest
- Add [DEFAULT_DIR] placeholder to PlaceholderResolver for portable profiles
- Add live AJAX directory permission checking on backup_dir field changes
- Add web-accessible warning badge on backup download buttons
- Auto-create .htaccess protection in web-accessible backup dirs on profile save
- Auto-create .htaccess protection at backup time in both engines
- Add checkDir AJAX endpoint for real-time directory validation
- Fix script.php warnMissingLicenseKey running on uninstall
2026-06-07 06:54:46 -05:00