feat(v1.0.0): SSH Output — SFTP/sudo-tee upload, vault SSH, wizard, pipeline renderer#13
Merged
Merged
Conversation
…kup, tests
Backend:
- Nouveau provider input SSH (ssh2/SFTP) : test connexion par source (stat, readdir,
permissions), fetch avec filtrage namePattern (glob/regex/date vars)
- Vault SSH-Remote : CRUD chiffré, test connexion en 3 étapes (connexion/path/write),
browse répertoire SFTP, résolution de patterns de date {YYYY}/{MM}/{DD}/{HH}
- Output SSH : envoi d'archives via SFTP avec pathOverride par sortie
- Migration Prisma : champ pathOverride sur BackupOutput
- Tests : SshInputProvider (test + fetch), VaultService.resolveSshDatePattern
Frontend:
- Pages SSH Input : liste, création (layout 2 colonnes SshFileBrowser + SshSourcesList),
édition — pattern provider existant
- Pages Vault SSH-Remote : liste, création, édition avec test connexion live
- Backup wizard : icône + sous-titre typés pour inputs SSH, logique canNoArchive extraite
dans computeNoArchiveState (utils testable), blocage multi-sources SSH
- i18n fr/en : clés SSH Input, SSH Remote, noArchive SSH
- Tests : StepZip (canNoArchive/noArchiveReason), backupWizard.utils (computeNoArchiveState)
…ipeline renderer, tests - Backend: SshOutputConfig CRUD module (controller, service, DTOs, Prisma migration) - Provider: SshOutputProvider with SFTP and sudo-tee upload modes, isValidation cleanup - Provider: isValidation flag triggers deleteRemoteFile after upload (connection test flow) - Module settings: connectionTimeoutMs for ssh-output (default 30 000 ms) - Frontend: SSH Output list/create/edit pages, SshBrowserBase + SshFolderPickerDialog shared components - Frontend: pipeline renderer for SSH output (SshOutputDetail card, registry entry) - Frontend: pipeline renderer for SSH input (SshInputDetail with source paths) - Frontend: BackupWizard StepOutputs with pathOverride validation (blocked until tested) - i18n: en + fr keys for output.ssh.* - Tests: ssh-output.provider.spec (10 cases incl. isValidation), pipelineRenderers.test (20 cases) - Tests: ssh-input.provider.spec + input.service.spec fixed (ModuleSettingsService mock)
…l conflicts All conflicts resolved in favour of the feature branch (complete v1.0.0 implementation with SshOutputConfig entity, ModuleSettingsService timeout, clean provider without debug logs, SshBrowserBase refactor).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
SshOutputConfigcomplet (CRUD, migration Prisma20260615120000) + providerSshOutputProvideravec upload SFTP et sudo-tee, flagisValidationdéclenchedeleteRemoteFileaprès upload,connectionTimeoutMsen module settingsSshBrowserBase+SshFolderPickerDialog, étape wizardStepOutputsavec validationpathOverridebloquante tant que non testé, renderer pipelineSshOutputDetail+SshInputDetailssh-output.provider.spec(dontisValidation), 20 caspipelineRenderers.test, correctifsssh-input.provider.spec+input.service.specTest plan
prisma migrate devpour appliquer20260615120000_v0_9_5_ssh_output_configpathOverrideest bloqué tant que non testépnpm lint && pnpm exec tsc --noEmit && pnpm testbackend/frontend — 0 erreur