This commit represents a significant architectural overhaul of vaultik: Database Schema Changes: - Switch files table to use UUID primary keys instead of path-based keys - Add UUID primary keys to blobs table for immediate chunk association - Update all foreign key relationships to use UUIDs - Add comprehensive schema documentation in DATAMODEL.md - Add SQLite busy timeout handling for concurrent operations Streaming and Performance Improvements: - Implement true streaming blob packing without intermediate storage - Add streaming chunk processing to reduce memory usage - Improve progress reporting with real-time metrics - Add upload metrics tracking in new uploads table CLI Refactoring: - Restructure CLI to use subcommands: snapshot create/list/purge/verify - Add store info command for S3 configuration display - Add custom duration parser supporting days/weeks/months/years - Remove old backup.go in favor of enhanced snapshot.go - Add --cron flag for silent operation Configuration Changes: - Remove unused index_prefix configuration option - Add support for snapshot pruning retention policies - Improve configuration validation and error messages Testing Improvements: - Add comprehensive repository tests with edge cases - Add cascade delete debugging tests - Fix concurrent operation tests to use SQLite busy timeout - Remove tolerance for SQLITE_BUSY errors in tests Documentation: - Add MIT LICENSE file - Update README with new command structure - Add comprehensive DATAMODEL.md explaining database schema - Update DESIGN.md with UUID-based architecture Other Changes: - Add test-config.yml for testing - Update Makefile with better test output formatting - Fix various race conditions in concurrent operations - Improve error handling throughout
63 lines
2.7 KiB
Modula-2
63 lines
2.7 KiB
Modula-2
module git.eeqj.de/sneak/vaultik
|
|
|
|
go 1.24.4
|
|
|
|
require (
|
|
filippo.io/age v1.2.1
|
|
github.com/aws/aws-sdk-go-v2 v1.36.6
|
|
github.com/aws/aws-sdk-go-v2/config v1.29.18
|
|
github.com/aws/aws-sdk-go-v2/credentials v1.17.71
|
|
github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.85
|
|
github.com/aws/aws-sdk-go-v2/service/s3 v1.84.1
|
|
github.com/aws/smithy-go v1.22.4
|
|
github.com/dustin/go-humanize v1.0.1
|
|
github.com/google/uuid v1.6.0
|
|
github.com/johannesboyne/gofakes3 v0.0.0-20250603205740-ed9094be7668
|
|
github.com/jotfs/fastcdc-go v0.2.0
|
|
github.com/klauspost/compress v1.18.0
|
|
github.com/spf13/afero v1.14.0
|
|
github.com/spf13/cobra v1.9.1
|
|
github.com/stretchr/testify v1.9.0
|
|
go.uber.org/fx v1.24.0
|
|
golang.org/x/term v0.33.0
|
|
gopkg.in/yaml.v3 v3.0.1
|
|
modernc.org/sqlite v1.38.0
|
|
)
|
|
|
|
require (
|
|
github.com/aws/aws-sdk-go v1.44.256 // indirect
|
|
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.11 // indirect
|
|
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.33 // indirect
|
|
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.37 // indirect
|
|
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.37 // indirect
|
|
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3 // indirect
|
|
github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.37 // indirect
|
|
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.4 // indirect
|
|
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.7.5 // indirect
|
|
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.18 // indirect
|
|
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.18 // indirect
|
|
github.com/aws/aws-sdk-go-v2/service/sso v1.25.6 // indirect
|
|
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.30.4 // indirect
|
|
github.com/aws/aws-sdk-go-v2/service/sts v1.34.1 // indirect
|
|
github.com/davecgh/go-spew v1.1.1 // indirect
|
|
github.com/inconshreveable/mousetrap v1.1.0 // indirect
|
|
github.com/mattn/go-isatty v0.0.20 // indirect
|
|
github.com/ncruces/go-strftime v0.1.9 // indirect
|
|
github.com/pmezard/go-difflib v1.0.0 // indirect
|
|
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect
|
|
github.com/ryszard/goskiplist v0.0.0-20150312221310-2dfbae5fcf46 // indirect
|
|
github.com/spf13/pflag v1.0.6 // indirect
|
|
go.shabbyrobe.org/gocovmerge v0.0.0-20230507111327-fa4f82cfbf4d // indirect
|
|
go.uber.org/dig v1.19.0 // indirect
|
|
go.uber.org/multierr v1.10.0 // indirect
|
|
go.uber.org/zap v1.26.0 // indirect
|
|
golang.org/x/crypto v0.38.0 // indirect
|
|
golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0 // indirect
|
|
golang.org/x/sys v0.34.0 // indirect
|
|
golang.org/x/text v0.25.0 // indirect
|
|
golang.org/x/tools v0.33.0 // indirect
|
|
modernc.org/libc v1.65.10 // indirect
|
|
modernc.org/mathutil v1.7.1 // indirect
|
|
modernc.org/memory v1.11.0 // indirect
|
|
)
|