Skip to content

Enhance S3 uploads, retention policies, and Azure SQL support - #149

Merged
Skyfay merged 9 commits into
mainfrom
dev
Aug 15, 2026
Merged

Enhance S3 uploads, retention policies, and Azure SQL support#149
Skyfay merged 9 commits into
mainfrom
dev

Conversation

@Skyfay

@Skyfay Skyfay commented Aug 15, 2026

Copy link
Copy Markdown
Owner

No description provided.

Skyfay added 9 commits August 9, 2026 12:23
Adds shared S3 upload tuning defaults (8 parallel parts at 8 MB), new per-destination config fields for part concurrency and max part size, and adaptive part sizing that keeps connections busy while respecting S3 limits. Updates S3 upload execution to apply resolved queue/part values, log effective multipart settings and throughput, and includes docs plus new unit tests for tuning logic and adapter wiring.
Smart retention policies now support an optional hourly tier that keeps one backup per hour for N hours before the daily tier takes over. The field is hidden in the UI until Add hourly tier is clicked, so existing policies are unaffected.

Also fixes two safety issues: a SMART or SIMPLE policy with no usable settings now keeps all backups instead of deleting them, and the applyTier guard now catches undefined limits so policies written before the hourly field existed cannot accidentally enable an unbounded tier.

Retention configs are now validated by RetentionConfigurationSchema before being stored, rejecting negative, fractional, or non-numeric tier values.
Retention now sorts and buckets backups by the timestamp recorded in each .meta.json sidecar, with lastModified only as a fallback when no recorded timestamp is available. It adds a dedicated sidecar loader that applies lock and chain metadata, warns when recorded and modified times drift significantly, and supports bounded parallel read() calls via a new readConcurrency adapter capability for stateless storage backends. Docs and unit tests were expanded to cover the new time-source behavior, drift logging, and sidecar read concurrency rules.
Introduces a new beta `azure-sql` database adapter with BACPAC backup and restore via SqlPackage, including connection testing, catalog browsing, multi-db archive handling, restore preflight, and full adapter wiring across UI, permissions, formats, and metadata. Also adds SqlPackage runtime/install support in Docker and dev setup scripts, updates docs and source listings, and hardens MSSQL behavior by rejecting unsupported Azure engines early and falling back when size metadata views are unavailable.
Adds Azure SQL Database (beta) to README, docs landing pages, getting started content, and website FAQ support lists. Expands reference and restore docs with BACPAC format details, version and engine edition handling, and restore caveats. Also trims the changelog feature entry to a shorter summary.
Replace the Intl.supportedValuesOf membership check with an Intl.DateTimeFormat construction test. The old check rejected ~140 modern IANA names (e.g. Asia/Kolkata, Europe/Kyiv) that browsers expose in their picker but ICU's canonical list omits. Also prepend the stored timezone to the picker list when it is absent from the current browser's supported values, so the active setting remains selectable.
Updated Docker install docs and docker-compose example to recommend mounting `/tmp` as backup staging space, including the `docker run` volume example. Clarified `TMPDIR` behavior in user and developer docs, and added warnings that large file backups can fill the container writable layer without a dedicated mount.
S3 object listing now walks all ListObjectsV2 pages, filters folder markers by trailing slash instead of size, and keeps legitimate zero-byte files. It also adds a dedicated S3 listTree implementation with per-page progress updates and abort support, then wires listTree into all S3 adapter variants. Unit tests were expanded to cover pagination, prefix stripping across pages, folder marker behavior, and listTree progress and cancellation paths.
Add MSSQL server-path helpers and use them for dump and restore so SQL Server paths keep the correct separator and backup file paths work on Windows and UNC shares. Restore renames now move files into instance default data and log directories with unique names per data file, with fallback behavior for older servers, plus updated MSSQL user guide and unit coverage.
@Skyfay
Skyfay merged commit 1d74cb1 into main Aug 15, 2026
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant