v0.6.0
Version v0.6.0 of Paygate is the largest change so far in Paygate's history. This release contains changes to support multiple ACH file upload protocols (SFTP - SSH file transfers), a more responsive local development setup, secure and validated TLS connections between paygate and all of its dependencies, versioned database migrations, and several other improvements.
Also included in this release are several admin endpoints (those bound on the :9092
HTTP server). HTTP endpoints for reading micro-deposits made against a depository (intended for customer service and integration testing), manually initiating the merging of Transfers into files for upload to their origin/ODFI, and to read ACH file upload configs (FTP, SFTP, paths, etc..).
BREAKING CHANGES
sftp_configs
has been renamed toftp_configs
as it was incorrectly named before.- A new table called
sftp_configs
has been created for SSH File Transfers - Users need to copy data and delete the table so paygate can re-create
sftp_configs
for its new purpose.
- A new table called
ADDITIONS
- main: bind HTTP server with TLS if HTTPS_* variables are defined
- files: support
ACH_FILE_TRANSFER_INTERVAL=off
to disable async file operations - http: setup http.Client's with additional root certificates
- main: override -log.format with LOG_FORMAT and -http.addr with HTTP_BIND_ADDRESS
- main: override -admin.addr with HTTP_ADMIN_BIND_ADDRESS
- files: support setting additional root certificates for FTP connections
- internal/filetransfer: initial addition of the SFTP Agent
- internal/filetransfer: add HTTP endpoints for reading SFTP configs
- internal/filetransfer: sftp: override HostKeyCallback if provided in config
- internal/filetransfer: provide env variables for FTP and SFTP connections (e.g. timeouts, concurrency)
- internal/database: use lopezator/migrator for versioned database migrations
- internal/filetransfer: sftp: read base64 encoded public/private keys
- files: read ACH_FILE_MAX_LINES to override NACHA 10k line default
- internal/filetransfer: add DEV_FILE_TRANSFER_TYPE for local dev
- internal/filetransfer: sftp: create remote outbound dir and upload into it
- files: setup a channel for manually merge and uploading of Transfers
- micro-deposits: add to ACH files for upload to the Federal Reserve
- micro-deposits: add admin route for reading micro-deposits
BUG FIXES
- transfers: set CompanyDescriptiveDate to today
- internal/database: fix confusing log from copy/paste
- depositories: fix bug where multiple fields weren't updated
- change asTransfer to copy option sub-structs
- transfers: ship YYYDetail sub-objects as pointers to copy around properly
- transfers: test (transferRequest).asTransfer(..) for all supported sub-objects
- main: cleanup ACH_FILE_STORAGE_DIR and always create directories if needed
- internal/filetransfer: ftp: change back to the previous working dir after changing
- files: stop reading and downloading files concurrently
- main: if ACH_FILE_STORAGE_DIR is our zero value use ./storage/
- common: return strconv.Atoi's error when parsing whole dollar amount
- files: upload ACH files to their origin, not destination
- internal/filetransfer: sftp: fix nil panic in readFiles
IMPROVEMENTS
- transfers: verify TEL and WEB re-occurring transfers are rejected
- files: rename 'sftp' to 'ftp' as sftp is an ssh-based file transfer protocol
- internal/filetransfer: retry file reads on "internal inconsistency" errors
- build: in local dev merge and upload way more often
- micro-deposits: unhardcode amounts and post the transaction to Accounts
- internal/filetransfer: sftp: log once (in app lifetime) about missing host_public_key
- micro-deposits: don't persist (and thus don't check) inversing debit
- build: update docker images (for tests) and download tools instead
- depositories: improve logging
- pkg/achclient: ignore 404's when deleting ACH files
- build: upgrade github.com/moov-io/base to v0.10.0
BUILD
- build: push moov/paygate:latest on 'make release-push'
- chore(deps): update moov/ofac docker tag to v0.9.0