[DEV-643] Adds support for FTPS - #33
Merged
Merged
Conversation
This commit updates the project to add support for FTP services running by the Glider Data Assembly Center where FTPS is enabled or required. The standard FTP client impemented by the stdlib Python `ftplib` package does not support auto negotiation or FTPS by default, instead the client has to be implemented to support FTPS explicitly but that places an undue burden on the `gutils` operations team so this commit implements the auto-negotiation and TLS session reuse. This commit extends integration testing through FTP extensively by including changes to `docker-compose.yml` to include FTP services, and a Makefile and an integration test pathway available as a Makefile target. AI was used to review the changes and offer feedback about edge cases in FTP implementations. AI was used to clean up and document the utility for checking FTP service capabilities: initially the tool was very plain and bare bones, AI made the output very "pretty". The primary changes to the codebase were made exclusively by me and reviewed by AI. Assisted-by: Claude:claude-opus-5
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.
This commit updates the project to add support for FTP services running by the Glider Data Assembly Center where FTPS is enabled or required. The standard FTP client impemented by the stdlib Python
ftplibpackage does not support auto negotiation or FTPS by default, instead the client has to be implemented to support FTPS explicitly but that places an undue burden on thegutilsoperations team so this commit implements the auto-negotiation and TLS session reuse. This commit extends integration testing through FTP extensively by including changes todocker-compose.ymlto include FTP services, and a Makefile and an integration test pathway available as a Makefile target.AI was used to review the changes and offer feedback about edge cases in FTP implementations. AI was used to clean up and document the utility for checking FTP service capabilities: initially the tool was very plain and bare bones, AI made the output very "pretty".
The primary changes to the codebase were made exclusively by me and reviewed by AI.
Assisted-by: Claude:claude-opus-5