# Changelog

## [Unreleased]

- None

## 2025-11-03

### Added

- [SAFE/ADD] Initial SFTP transfer module (`sftp_transfer.py`) enabling optional upload of non-zipped feed files prior to archive creation.
- Jenkinsfile with parameters for SFTP configuration (host, user, folder, password, transfer toggle).
- Secure Jenkins credential binding for `SFTP_PASSWORD` via `withCredentials`.
- Host key policy tests (strict vs non-strict) in `tests/test_sftp_transfer.py`.
- Dev note for local SFTP server support (ephemeral) when `SFTP_HOST=localhost`.
- Documentation: `docs/sftp_transfer.md` detailing configuration, design, and usage.
- Unit tests for SFTP module (retry logic, failures, continue-on-error, sanitization).
- README updated with new environment variables for SFTP feature.

### Changed

- Integrated SFTP invocation into `feed_file_exporter.py` guarded by `TRANSFER_FILES` flag.

### Security

- Prevented path traversal by restricting remote names to basename and sanitizing remote directory.
- Avoided logging secrets (password never logged).

### Notes

- Future enhancements: parallel uploads, key-based auth, metrics.
