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
27 lines
661 B
YAML
27 lines
661 B
YAML
# Vaultik test configuration
|
|
hostname: test-host
|
|
index_path: /tmp/vaultik-test/index.db
|
|
source_dirs:
|
|
- /tmp/vaultik-test/source
|
|
|
|
# S3 configuration
|
|
s3:
|
|
endpoint: http://localhost:19000 # gofakes3 test endpoint
|
|
bucket: test-bucket
|
|
prefix: test-
|
|
access_key_id: test-key
|
|
secret_access_key: test-secret
|
|
region: us-east-1
|
|
|
|
# Chunking configuration
|
|
chunk_size: 65536 # 64KB average chunk size
|
|
min_chunk_size: 32768 # 32KB minimum
|
|
max_chunk_size: 131072 # 128KB maximum
|
|
blob_size: 1048576 # 1MB blobs for testing
|
|
|
|
# Compression
|
|
compression_level: 3
|
|
|
|
# Encryption
|
|
# age_recipients:
|
|
# - age1qyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqs3mw88h |