This TODO list outlines the steps needed to adapt the s3proxy-docker repository to work with the new TypeScript-based s3proxy v3.0.0 and shared testing infrastructure.
- Update
package.jsonto use s3proxy v3.0.0 - Update Node.js version requirement to 20+ for full ESM support
- Review and update other dependencies for compatibility
- Test dependency compatibility locally
- CRITICAL: Replace
express-s3proxy.jswith new ESM-compatible version - Update import statements from
require()to ES modules - Adapt to new s3proxy v3.0.0 API changes
- Update error handling for new TypeScript interfaces
- Test credential management with new version
- Verify AWS X-Ray integration still works
- Update environment variable handling for new version
- Review and update default configurations
- Test health check endpoints with new API
- Update base image to Node.js 20-alpine
- Add build argument for S3PROXY_VERSION
- Update multi-stage build for TypeScript/ESM support
- Modify COPY commands for new file structure
- Update health check configuration
- Test Docker build locally
- Update npm scripts in package.json for new Docker workflow
- Modify
dockerize-for-prod-awsscript - Modify
dockerize-for-prod-dockerhubscript - Update
dockertest script - Test all Docker-related npm scripts
- Remove duplicate test configurations
- Create mechanism to download shared testing configs from s3proxy repo
- Update test scripts to use shared configurations
- Integrate Artillery load testing with shared scenarios
- Test shared testing workflow locally
- Update
test/test.jsfor new s3proxy API - Add tests for new TypeScript interfaces
- Update nock mocking for API changes
- Add integration tests with shared configs
- Verify all tests pass with new version
- MAJOR: Replace
continuous-deployment.ymlwith new workflow - Add job for downloading shared testing configs
- Implement cross-repo integration testing
- Add performance comparison between npm and Docker
- Configure artifact sharing between jobs
- Add multi-platform build support
- Verify
DOCKERHUB_USERNAMEsecret exists - Verify
DOCKERHUB_TOKENsecret exists - Add
REPO_ACCESS_TOKENfor cross-repo communication - Test secret access in workflows
- Set up repository dispatch triggers
- Configure result reporting back to s3proxy repo
- Test end-to-end integration workflow
- Verify performance comparison functionality
- Update README.md for v3.0.0 changes
- Document new environment variables
- Update usage examples
- Add shared testing documentation
- Update supported architectures info
- Add troubleshooting section for new version
- Review and update inline code comments
- Update JSDoc comments for new API
- Create migration guide for existing users
- Document breaking changes
- Test Docker build with new s3proxy version
- Verify container starts and serves files correctly
- Test health endpoints
- Test range requests
- Test special character handling
- Test error scenarios
- Run basic load tests with shared configs
- Run sustained load tests
- Compare performance with previous version
- Verify memory usage and stability
- Test under various load patterns
- Test with real S3 buckets
- Test AWS credential handling
- Test in different AWS regions
- Test with various file types and sizes
- Test cross-platform compatibility (AMD64/ARM64)
- Update version in package.json to match s3proxy version
- Create version tags strategy
- Plan backward compatibility approach
- Document version migration path
- Create release notes for v3.0.0
- Prepare Docker Hub description updates
- Plan rollout strategy
- Prepare rollback plan if needed
- Monitor container performance in production
- Validate shared testing integration works
- Monitor for any regression issues
- Collect user feedback
- Remove old/unused files
- Clean up deprecated npm scripts
- Archive old documentation
- Update project metadata
- Ensure s3proxy v3.0.0 is published and stable
- Verify shared testing configs are available in s3proxy repo
- Confirm cross-repo integration approach with s3proxy maintainer
- Create backup of current working version
- Test migration in separate branch
- Plan for gradual rollout
- Prepare communication for breaking changes
HIGH PRIORITY (Must complete for basic functionality):
- Update dependencies and application code
- Update Dockerfile for Node.js 20+ and ESM
- Basic testing with new version
MEDIUM PRIORITY (Important for full integration):
- Shared testing infrastructure
- Updated CI/CD pipeline
- Documentation updates
LOW PRIORITY (Nice to have):
- Performance optimizations
- Advanced monitoring
- Additional test scenarios
- Phase 1-2: 2-3 days (Core updates and Docker)
- Phase 3-4: 3-4 days (Testing and CI/CD)
- Phase 5-6: 2-3 days (Documentation and QA)
- Phase 7-8: 1-2 days (Deployment and cleanup)
Total Estimated Time: 8-12 days
- Keep the current version working until migration is complete
- Test each phase thoroughly before moving to the next
- Consider creating a migration branch for development
- Coordinate with s3proxy repo maintainer for integration testing
- Document any issues or deviations from the plan