How bigboxer23/solar-moon-ftp works
Solar Moon FTP is a local service that rebuilds vsftpd’s virtual-user configuration in response to SQS notifications. The listener invokes the configuration component, which obtains access keys through the customer component and repository, writes user credentials and directories, then runs configured database-update and permission commands. The README also describes customer CRUD and vsftpd service management, but the sampled implementation does not show those operations in detail. Edges reflect the excerpts or README; framework wiring and unsampled command behavior are not inferred.
Main entry points: FTPConfigurationComponent.java Configuration rebuild · FTPSQSQueueListener.java SQS listener · FTPCustomerComponent.java FTP customer access · FTPCustomerRepository.java Customer repository
Components 12
Update intake
- Spring Boot app
src/main/java/com/bigboxer23/solar_moon/ftp/SolarMoonFTPApp.java - SQS listener
src/main/java/com/bigboxer23/solar_moon/ftp/FTPSQSQueueListener.java
Customer data
- FTP customer access
src/main/java/com/bigboxer23/solar_moon/ftp/FTPCustomerComponent.java - Customer repository
src/main/java/com/bigboxer23/solar_moon/ftp/FTPCustomerRepository.java - Customer table
FTP provisioning
- Configuration rebuild
src/main/java/com/bigboxer23/solar_moon/ftp/FTPConfigurationComponent.java - Virtual-user file
- User directories
- Configured commands
Other components
- Service operator
- AWS SQS
- vsftpd service
Connections 11
- Service operator → Spring Boot app: starts
- AWS SQS → SQS listener: delivers messages
src/main/java/com/bigboxer23/solar_moon/ftp/FTPSQSQueueListener.java - SQS listener → AWS SQS: polls and deletes
src/main/java/com/bigboxer23/solar_moon/ftp/FTPSQSQueueListener.java - SQS listener → Configuration rebuild: triggers rebuild
src/main/java/com/bigboxer23/solar_moon/ftp/FTPSQSQueueListener.java - Configuration rebuild → FTP customer access: requests access keys
src/main/java/com/bigboxer23/solar_moon/ftp/FTPConfigurationComponent.java - FTP customer access → Customer repository: gets repository
src/main/java/com/bigboxer23/solar_moon/ftp/FTPCustomerComponent.java - Customer repository → Customer table: scans table
src/main/java/com/bigboxer23/solar_moon/ftp/FTPCustomerRepository.java - Configuration rebuild → Virtual-user file: writes credentials
src/main/java/com/bigboxer23/solar_moon/ftp/FTPConfigurationComponent.java - Configuration rebuild → User directories: creates per-user
src/main/java/com/bigboxer23/solar_moon/ftp/FTPConfigurationComponent.java - Configuration rebuild → Configured commands: runs configured
src/main/java/com/bigboxer23/solar_moon/ftp/FTPConfigurationComponent.java - Configured commands → vsftpd service: updates configuration