Sprint 3 Complete - Cloud Storage Full Implementation: New Features: ✅ Multipart upload for large files (>100MB) ✅ Automatic part size (10MB) and concurrency (10 parts) ✅ MinIO testing infrastructure ✅ Comprehensive integration test script ✅ Complete cloud storage documentation New Files: - CLOUD.md - Complete cloud storage guide (580+ lines) - docker-compose.minio.yml - MinIO + PostgreSQL + MySQL test setup - scripts/test_cloud_storage.sh - Full integration test suite Multipart Upload: - Automatic for files >100MB - 10MB part size for optimal performance - 10 concurrent parts for faster uploads - Progress tracking for multipart transfers - AWS S3 Upload Manager integration Testing Infrastructure: - docker-compose.minio.yml: * MinIO S3-compatible storage * PostgreSQL 16 test database * MySQL 8.0 test database * Automatic bucket creation * Health checks for all services - test_cloud_storage.sh (14 test scenarios): 1. Service startup and health checks 2. Test database creation with sample data 3. Local backup creation 4. Cloud upload to MinIO 5. Cloud list verification 6. Backup with cloud URI 7. Database drop for restore test 8. Restore from cloud URI 9. Data verification after restore 10. Cloud backup integrity verification 11. Cleanup dry-run test 12. Multiple backups creation 13. Actual cleanup test 14. Large file multipart upload (>100MB) Documentation (CLOUD.md): - Quick start guide - URI syntax documentation - Configuration methods (4 approaches) - All cloud commands with examples - Provider-specific setup (AWS S3, MinIO, B2, GCS) - Multipart upload details - Progress tracking - Metadata synchronization - Best practices (security, performance, reliability) - Troubleshooting guide - Real-world examples - FAQ section Sprint 3 COMPLETE! Total implementation: 100% of requirements met Cloud storage features now at 100%: ✅ URI parser and support ✅ Backup/restore/verify/cleanup integration ✅ Multipart uploads ✅ Testing infrastructure ✅ Comprehensive documentation
66 lines
3.1 KiB
Modula-2
Executable File
66 lines
3.1 KiB
Modula-2
Executable File
module dbbackup
|
|
|
|
go 1.24.0
|
|
|
|
toolchain go1.24.9
|
|
|
|
require (
|
|
github.com/Netflix/go-expect v0.0.0-20220104043353-73e0943537d2
|
|
github.com/charmbracelet/bubbles v0.21.0
|
|
github.com/charmbracelet/bubbletea v1.3.10
|
|
github.com/charmbracelet/lipgloss v1.1.0
|
|
github.com/go-sql-driver/mysql v1.9.3
|
|
github.com/jackc/pgx/v5 v5.7.6
|
|
github.com/sirupsen/logrus v1.9.3
|
|
github.com/spf13/cobra v1.10.1
|
|
github.com/spf13/pflag v1.0.9
|
|
)
|
|
|
|
require (
|
|
filippo.io/edwards25519 v1.1.0 // indirect
|
|
github.com/aws/aws-sdk-go-v2 v1.40.0 // indirect
|
|
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.3 // indirect
|
|
github.com/aws/aws-sdk-go-v2/config v1.32.2 // indirect
|
|
github.com/aws/aws-sdk-go-v2/credentials v1.19.2 // indirect
|
|
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.14 // indirect
|
|
github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.20.12 // indirect
|
|
github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.14 // indirect
|
|
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.14 // indirect
|
|
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.4 // indirect
|
|
github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.14 // indirect
|
|
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.3 // indirect
|
|
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.5 // indirect
|
|
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.14 // indirect
|
|
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.14 // indirect
|
|
github.com/aws/aws-sdk-go-v2/service/s3 v1.92.1 // indirect
|
|
github.com/aws/aws-sdk-go-v2/service/signin v1.0.2 // indirect
|
|
github.com/aws/aws-sdk-go-v2/service/sso v1.30.5 // indirect
|
|
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.10 // indirect
|
|
github.com/aws/aws-sdk-go-v2/service/sts v1.41.2 // indirect
|
|
github.com/aws/smithy-go v1.23.2 // indirect
|
|
github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect
|
|
github.com/charmbracelet/colorprofile v0.2.3-0.20250311203215-f60798e515dc // indirect
|
|
github.com/charmbracelet/x/ansi v0.10.1 // indirect
|
|
github.com/charmbracelet/x/cellbuf v0.0.13-0.20250311204145-2c3ea96c31dd // indirect
|
|
github.com/charmbracelet/x/term v0.2.1 // indirect
|
|
github.com/creack/pty v1.1.17 // indirect
|
|
github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f // indirect
|
|
github.com/inconshreveable/mousetrap v1.1.0 // indirect
|
|
github.com/jackc/pgpassfile v1.0.0 // indirect
|
|
github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761 // indirect
|
|
github.com/jackc/puddle/v2 v2.2.2 // indirect
|
|
github.com/lucasb-eyer/go-colorful v1.2.0 // indirect
|
|
github.com/mattn/go-isatty v0.0.20 // indirect
|
|
github.com/mattn/go-localereader v0.0.1 // indirect
|
|
github.com/mattn/go-runewidth v0.0.16 // indirect
|
|
github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 // indirect
|
|
github.com/muesli/cancelreader v0.2.2 // indirect
|
|
github.com/muesli/termenv v0.16.0 // indirect
|
|
github.com/rivo/uniseg v0.4.7 // indirect
|
|
github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect
|
|
golang.org/x/crypto v0.37.0 // indirect
|
|
golang.org/x/sync v0.13.0 // indirect
|
|
golang.org/x/sys v0.36.0 // indirect
|
|
golang.org/x/text v0.24.0 // indirect
|
|
)
|