fix: SFTP fields not showing when SFTP selected #99

Merged
jmiller merged 5 commits from fix/sftp-key-upload into main 2026-06-23 15:40:44 +00:00
Owner

Summary

Two fixes for SFTP profile configuration:

  1. Key file upload — SshKeyField with FileReader API, base64 encoding, sentinel-based key preservation
  2. Auth type dropdown — password / key / key+passphrase with conditional showon
  3. Remove required from showon fields — Joomla validates required server-side regardless of visibility, blocking profile save when not using SFTP

Also removes insecure FTP from the dropdown.

Test Plan

  • Save profile with remote_storage=None — no validation errors
  • Save profile with remote_storage=SFTP — fields visible
  • Upload key file → save → reopen → key shows as loaded
  • Select auth type Password → password field visible, key hidden
## Summary Two fixes for SFTP profile configuration: 1. **Key file upload** — SshKeyField with FileReader API, base64 encoding, sentinel-based key preservation 2. **Auth type dropdown** — password / key / key+passphrase with conditional showon 3. **Remove `required` from showon fields** — Joomla validates required server-side regardless of visibility, blocking profile save when not using SFTP Also removes insecure FTP from the dropdown. ## Test Plan - [ ] Save profile with remote_storage=None — no validation errors - [ ] Save profile with remote_storage=SFTP — fields visible - [ ] Upload key file → save → reopen → key shows as loaded - [ ] Select auth type Password → password field visible, key hidden
jmiller added the component: admincomponent: remote labels 2026-06-23 15:38:05 +00:00
jmiller added 2 commits 2026-06-23 15:38:06 +00:00
fix: remove required attr from SFTP showon fields — blocks save when not SFTP
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 22s
1e9c8d54f4
Joomla validates required fields server-side regardless of showon
visibility. SFTP fields with required="true" block saving when
remote_storage is set to None or S3/GDrive because the hidden
fields submit empty values. Validation should be done in
ProfileTable::check() conditionally instead.
chore(version): pre-release bump to 01.35.04-dev [skip ci]
Publish to Composer / Publish Package (release) Failing after 32s
5785e9fd1e
jmiller added 3 commits 2026-06-23 15:40:29 +00:00
Merge branch 'fix/sftp-key-upload' of https://git.mokoconsulting.tech/MokoConsulting/MokoSuiteBackup into fix/sftp-key-upload
Joomla: Extension CI / Tests (PHP 8.2) (pull_request) Blocked by required conditions
Joomla: Extension CI / Tests (PHP 8.3) (pull_request) Blocked by required conditions
Joomla: Extension CI / PHPStan Analysis (pull_request) Blocked by required conditions
Joomla: Extension CI / Build RC Pre-Release (pull_request) Blocked by required conditions
Universal: PR Check / Build RC Package (pull_request) Blocked by required conditions
Universal: PR Check / Report Issues (pull_request) Blocked by required conditions
Generic: Repo Health / Scripts governance (pull_request) Blocked by required conditions
Generic: Repo Health / Repository health (pull_request) Blocked by required conditions
Generic: Repo Health / Report Issues (pull_request) Blocked by required conditions
Universal: PR Check / Branch Policy (pull_request) Failing after 1s
Generic: Repo Health / Access control (pull_request) Successful in 2s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Joomla: Extension CI / Release Readiness Check (pull_request) Failing after 5s
Universal: PR Check / Validate PR (pull_request) Failing after 4s
Universal: PR Check / Secret Scan (pull_request) Successful in 5s
Joomla: Extension CI / Lint & Validate (pull_request) Failing after 9s
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Branch Cleanup / Delete merged branch (pull_request) Successful in 2s
Universal: Workflow Sync Trigger / Sync workflows to live repos (pull_request) Failing after 5s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 38s
Universal: Build & Release / Promote to RC (pull_request) Has been skipped
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 44s
Universal: Build & Release / Build & Release Pipeline (pull_request) Successful in 21s
bda4b0a23d
# Conflicts:
#	.mokogitea/workflows/issue-branch.yml
#	README.md
#	source/packages/com_mokosuitebackup/mokosuitebackup.xml
#	source/packages/plg_actionlog_mokosuitebackup/mokosuitebackup.xml
#	source/packages/plg_console_mokosuitebackup/mokosuitebackup.xml
#	source/packages/plg_content_mokosuitebackup/mokosuitebackup.xml
#	source/packages/plg_quickicon_mokosuitebackup/mokosuitebackup.xml
#	source/packages/plg_system_mokosuitebackup/mokosuitebackup.xml
#	source/packages/plg_task_mokosuitebackup/mokosuitebackup.xml
#	source/packages/plg_webservices_mokosuitebackup/mokosuitebackup.xml
#	source/pkg_mokosuitebackup.xml
jmiller merged commit bc06657317 into main 2026-06-23 15:40:44 +00:00
jmiller deleted branch fix/sftp-key-upload 2026-06-23 15:40:44 +00:00
Sign in to join this conversation.
No Reviewers
Priority -
Type -
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: MokoConsulting/MokoSuiteBackup#99