Add `options: HashMap<String, serde_json::Value>` to DatabaseConfig and
`options: Option<HashMap<...>>` to InputDatabaseConfig so callers can
pass arbitrary per-database options (e.g. keep_ownership for pg_dumpall).
Update all DatabaseConfig struct literals in test files and add three
new config-service unit tests covering present, absent, and non-bool values.
* fix: refactoring
* chore: add google-cloud-storage and google-cloud-auth deps
* feat: add GCS provider config model
* feat: add GCS credential, client, and stream-source helpers
StreamSource bridges build_stream's Send-only byte stream into the SDK's
StreamingSource (which send_buffered requires to be Send+Sync+'static) via a
bounded mpsc channel, avoiding any change to the shared UploadStream type.
* feat: implement GCS StorageProvider upload
* feat: register google-cloud-storage provider in factory
* test: GCS upload roundtrip against fake-gcs-server
* fix: format GCS bucket as projects/_/buckets/<name> in upload_with_client
write_object rejects the bare bucket id with "malformed bucket name"; the
production provider passed config.bucket_name unformatted, so real uploads
would always fail. Format once in upload_with_client so prod and the
fake-gcs-server test share the corrected path.
* style: cargo fmt GCS provider files
* fix: gcs
- Add mysql:8.4 client tools stage to Dockerfile so the real mysqldump
binary (with --network-timeout) takes PATH precedence over MariaDB's
mysqldump symlink, which lacks this flag
- Use --network-timeout in MySQL backup command; sets net_read_timeout and
net_write_timeout to 86400s for the duration of the dump
- Simplify config: replace net_read_timeout/net_write_timeout/max_allowed_packet
with a single max_packet_size field (optional, defaults to 512M)
- Log mysqldump/mariadb-dump client version as a debug message before each backup
* fix: tests and refactoring, add justfile instead of makefile
* chore: add tiberius dependency for MSSQL support
* feat: add Mssql variant to DbType enum and config validation
* feat: add MSSQL domain adapter with tiberius ping and sqlpackage backup/restore
* feat: install sqlpackage in Docker base and prod stages
* feat: add MSSQL service to docker-compose and config examples
* fix: log backup errors instead of silently discarding them
* fix: use dotnet-install.sh instead of Microsoft apt feed (SHA1 key rejected by Debian Trixie)
* fix: add /TrustServerCertificate:true to sqlpackage commands for self-signed certs
* fix: use connection string with TrustServerCertificate for sqlpackage
* fix: use user database in MSSQL config example (system databases cannot be exported)
* feat: add seed-mssql task and seed script
* fix: docker-compose.yml
* fix: s3 port type mismatch, add string_or_number_to_string deserializer
* chore: docker-compose.databases.yml
* fix: tests and refactoring, add justfile instead of makefile
* fix: restoration process for postgres/mysql and mariadb
* fix: restoration process for postgres/mysql and mariadb
* fix: postgres restore
* fix: mariadb/mysql restore, added backticks to drop command
* fix: mongodb and migration test for firebird
* fix: docker-compose.yml
---------
Co-authored-by: charlesgauthereau <charles.gauthereau@soluce-technologies.com>
* fix: s3 port type mismatch, add string_or_number_to_string deserializer
* fix: adding some tests
* fix: adding some tests
* fix: working on pipeline
* fix: working on pipeline
* fix: working on pipeline
* fix: working on pipeline
* fix: working on pipeline
* fix: working on pipeline
* fix: working on pipeline
* fix: working on pipeline
* fix: working on pipeline
* fix: working on pipeline
* fix: working on pipeline
* fix: working on pipeline
* fix: working on pipeline
* fix: working on pipeline
* fix: working on pipeline
* fix: working on pipeline
* fix: working on pipeline
* fix: working on pipeline
* fix: working on pipeline
* fix: working on pipeline
* fix: working on pipeline
* fix: working on pipeline
---------
Co-authored-by: charlesgauthereau <charles.gauthereau@soluce-technologies.com>