Repository navigation
Expand file tree
/
Copy pathchangelog.txt
More file actions
1935 lines (1614 loc) · 96.3 KB
/
Copy pathchangelog.txt
File metadata and controls
1935 lines (1614 loc) · 96.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
2025-08-19 - 2.1.1.101_canary_2025-08-19
==========
This release is a canary release intended to be used for testing.
# Changes in this versions
This version has an update to the restore process that reduces the amount of temporary space used during restores.
With the option `--restore-volume-cache-hint` it is now possible to choose how much size to use, and the dafult is 4GiB.
A problem with ngclient saving sizes with the default multiplier was fixed, and an improved list of destinations was added.
The breaking change in 2.1.1.100 with the `--allow-empty-source` was tested and found to have too many negative issues, so it was inverted to be `--prevent-empty-source` such that it is possible to turn it on, but it does not by default fail if the source folder is empty.
For Debian packages, the libICU package is now a recommended dependency and will not prevent installing the package.
A pre-install script warns if no libICU package was found, and shows how to run without libICU present.
## Detailed list of changes:
- Fixed an issue with null values on Sharepoint mounted folders
- Improve support for libICU on Debian
- Fixed a case where testing would fail on a missing hash value
- Added support for limiting the usage of local temporary disk space during restore
- Inverted `--allow-empty-source` to `--prevent-empty-source` (opt-in)
- Fixed an issue with S3 backend reading stream twice
- Lowercase S3 AWS Client content hash for better compatibility with other providers
## ngclient changes:
- Improved searching for destinations
- Resolved some issues with colors not being applied
- Fixed an issue with non-default size multiplier causing invalid values to be saved
- Streamlined suffixes for sizes to be the same
- Removed support for picking `bytes` as the multiplier
- Fixed issue with livelog page requesting invalid data when disabled
2025-08-08 - 2.1.1.100_canary_2025-08-08
==========
This release is a canary release intended to be used for testing.
# Changes in this versions
This build adresses an issue with timeouts on B2 uploads, along with a number of minor fixes.
There is a breaking change in that Duplicati will now consider an empty *source* folder as an error, unless you specify `--allow-empty-source`. This is done to avoid common mistakes where a folder was supposed to be mounted but was not.
The Docker images have been overhauled and now supports running with a custom UID/GID combination.
The login flow has been secured slightly and now features an extra nonce value that is required on requests. If you have custom code authenticating with Duplicati this is a breaking change.
Finally, there is now also an option to log internal HTTP requests to the log for tracing and debugging.
## Detailed list of changes:
- Fixed commandline test command issuing a warning
- Fixed erratic timeouts on B2
- Corrected reported timeouts in BackendTester
- Fixed some quoting of SQLite queries
- Update Docker images with UID/GID support
- Fixed CLI help not showing the datafolder environment variable name
- Changed repair message to suggest purge-broken-files
- Fixed a thread resource leak in TrayIcon
- Fixed Vacuum failing to complete due to active transaction
- Fixed an issue with missing hashes on remote volumes causing crashes
- Updated localizations, thanks to all translators
- Fixed a case where databases could be opened with pooling enabled
- Remote Sync tool now restart and retries on transfer failures
- Fixed an issue that prevent setting a default theme
- Added detailed output option to serverutil list-backups command
- Added `--allow-empty-source` option
- Added nonce to refresh tokens and improved non-persisted logins
- Updated multiple packages to latest versions, including AWSSDK, Azure, SMB, FluentFTP, and SharpCompress
- Added option to log http requests and socket data
## ngclient changes:
- Converted from Sparkle to ShipUI
- Progress bar is now fixed length
- Updated translations, thanks to all translators
- Added support for a refresh nonce
2025-07-15 - 2.1.0.125_canary_2025-07-15
==========
This release is a canary release intended to be used for testing.
# Changes in this versions
This is almost identical to 2.1.0.124, but adds some destination URL parsing fixes.
## Detailed list of changes:
- Fixed wrong SQLite environment variable name
- Don't show stack if stopping a backup due to missing sources
- Update logic for probing for an access method in ServerUtil
- Fixed ngax not supporting `--use-ssl`
- Use template icons on macOS
- Fixed an error when loading log data
- Avoid floods of notifications
- Corrected encode/decode of URLs
- Fixed issue with recreated index files not reporting deleted blocks
### New in 2.1.0.125
- Fixed parsing of correctly encoded file-based URLs on Windows
## ngclient changes
- Fixed SMB editor handling paths incorrectly
- Fixed source editor not inserting empty paths
- Fixed an issue with selecting paths with a space
- Fixed some dialogs not updating UI after clicking cancelable
- Removed an extra leading slash for Windows destination paths
- Recalculate file existing on database move
- Show correct date and format in logs
### New in 2.1.0.125
- Fixed URL for bugreport in ngclient
- Fixed incorrect encoding/decoding of Windows file-paths for destination
- Fixed logic for removing source paths to no create empty entries
- Added a partial marker for fileset version that are partial
2025-07-11 - 2.1.0.124_canary_2025-07-11
==========
This release is a canary release intended to be used for testing.
# Changes in this versions
This is primarily a bugfix release for some minor issues that were reported on 2.1.0.123.
## Detailed list of changes:
- Fixed wrong SQLite environment variable name
- Don't show stack if stopping a backup due to missing sources
- Update logic for probing for an access method in ServerUtil
- Fixed ngax not supporting `--use-ssl`
- Use template icons on macOS
- Fixed an error when loading log data
- Avoid floods of notifications
- Corrected encode/decode of URLs
- Fixed issue with recreated index files not reporting deleted blocks
## ngclient changes
- Fixed SMB editor handling paths incorrectly
- Fixed source editor not inserting empty paths
- Fixed an issue with selecting paths with a space
- Fixed some dialogs not updating UI after clicking cancelable
- Removed an extra leading slash for Windows destination paths
- Recalculate file existing on database move
- Show correct date and format in logs
2025-07-09 - 2.1.0.123_canary_2025-07-09
==========
This release is a canary release intended to be used for testing.
This version is nearly identical to 2.1.0.121 which has a startup crash.
This version is nearly identical to 2.1.0.122 which has an issue with detached TrayIcon.
# Major changes in this version
This version introduces a new SQLite library, a new VSS provider, and some minor bugfixes.
## SQLite update
This version has changed the SQLite library from the previous System.Data.SQLite library to using `Microsoft.Data.Sqlite`.
This update was quite invasive, as the new SQLite library does not support positional arguments in SQL queries, which was used extensively in the Duplicati codebase.
With the update we see measurable speedups across all queries, and we are producing an article that describes our findings.
The update also bumps the SQLite library to use the latest available version and makes all SQLite queries async and cancelable, making the stop commands more responsive.
## New VSS provider supprt
The AlphaVSS library that is used for creating VSS snapshots is no longer being maintained.
This version now defaults to using the Vanara API layer to call the Windows VSS API and create snapshots.
Like before, this still requires the VC++ Redist to be installed.
For now, it is still possible to use AlphaVSS by setting `--snapshot-provider=AlphaVSS`.
Note that neither works on ARM64 as Windows is lacking libraries and tools for native ARM64 snapshots, only `--snapshot-provider=WMIC` works on ARM64.
## Bugfixing for ngclient
A number of reported compatibility issues with ngax has been fixed in this version.
## Detailed list of changes:
- Commandline UI expands environment variables
- The `file://` backend is no longer throttle exempt by default
- Fixed issue with TrayIcon not outputting help text in all cases
- No longer retains SeBackupPrivilege after testing for permissions
- Refresh token lifetime can now be configured
- Fixed multiple issues with kill signals not stopping the process
- Secret provider now correctly applied for all TrayIcon arguments
- Updated SQLite library to use `Microsoft.Data.Sqlite` packages instead
- Default VSS provider is now Vanara
- Hide options that are not supported on the current OS
- Fixed backup schedule order after multiple missed backups
- Fixed an issue with Google Drive backend not creating folders
- Updated all localization, thanks to all translators
### Updated in 2.1.0.122
- Fixed numeric Id sorting
- Updated texts for disabling index recreate
- Fixed a crash on startup in 2.1.0.121
- Fixed an issue with restore listing speed
### Updated in 2.1.0.123
- Fixed a crash with detached TrayIcon
- Fixed an error when creating a bugreport database
- Added faster status updates in UI
- Fixed a parsing issue with the remote sync tool
- Fixed an issue where some operations would report success even if they failed
## Ngclient changes:
- Fixed issue with `--` option prefixes not being matched
- Updated all localization, thanks to all translators
- Fixed issue with en-GB not using 24h time format
- Fixed issue with editor for GCS not having a path field
- Fixed issue with editor for B2 introducing extra `/` characters
- Fixed supporting -s postfix for backends for backwards compatibility
- Fixed case-insensitive support for boolean and enumeration options
- Custom arguments is now a two-line input
### Updated in 2.1.0.123
- Fixed showing destinations with no custom UI
- Fixed an issue with decoding URL artefacts in paths
- Change storage of preferences (this will reset som settings like sort order and dark-mode)
- Added option to not store a cookie token after login
- Added a button to create folders when restoring and picking destination
- Fixed deprecating CIFS and using SMB instead
- Added Next Scheduled Run to backup list
- Added a "Operation is starting ..." message to not show "Starting backup ..."
- Moved bugreport to the database page
- Fixed wrong editor mapping for COS and AliyunOSS
- Fixed an issue where a custom text for a dropdown would be lost on edit
- Fixed an issue with direct restore that would prevent restore from starting
- Added advanced settings for the direct restore flow
- Added an "Edit as text" option for advanced options
2025-07-07 - 2.1.0.122_canary_2025-07-07
==========
This release is a canary release intended to be used for testing.
This version is nearly identical to 2.1.0.121 which has a startup crash.
# Major changes in this version
This version introduces a new SQLite library, a new VSS provider, and some minor bugfixes.
## SQLite update
This version has changed the SQLite library from the previous System.Data.SQLite library to using `Microsoft.Data.Sqlite`.
This update was quite invasive, as the new SQLite library does not support positional arguments in SQL queries, which was used extensively in the Duplicati codebase.
With the update we see measurable speedups across all queries, and we are producing an article that describes our findings.
The update also bumps the SQLite library to use the latest available version and makes all SQLite queries async and cancelable, making the stop commands more responsive.
## New VSS provider supprt
The AlphaVSS library that is used for creating VSS snapshots is no longer being maintained.
This version now defaults to using the Vanara API layer to call the Windows VSS API and create snapshots.
Like before, this still requires the VC++ Redist to be installed.
For now, it is still possible to use AlphaVSS by setting `--snapshot-provider=AlphaVSS`.
Note that neither works on ARM64 as Windows is lacking libraries and tools for native ARM64 snapshots, only `--snapshot-provider=WMIC` works on ARM64.
## Bugfixing for ngclient
A number of reported compatibility issues with ngax has been fixed in this version.
## Detailed list of changes:
- Commandline UI expands environment variables
- The `file://` backend is no longer throttle exempt by default
- Fixed issue with TrayIcon not outputting help text in all cases
- No longer retains SeBackupPrivilege after testing for permissions
- Refresh token lifetime can now be configured
- Fixed multiple issues with kill signals not stopping the process
- Secret provider now correctly applied for all TrayIcon arguments
- Updated SQLite library to use `Microsoft.Data.Sqlite` packages instead
- Default VSS provider is now Vanara
- Hide options that are not supported on the current OS
- Fixed backup schedule order after multiple missed backups
- Fixed an issue with Google Drive backend not creating folders
- Updated all localization, thanks to all translators
### Updated in 2.1.0.122
- Fixed numeric Id sorting
- Updated texts for disabling index recreate
- Fixed a crash on startup in 2.1.0.121
- Fixed an issue with restore listing speed
## Ngclient changes:
- Fixed issue with `--` option prefixes not being matched
- Updated all localization, thanks to all translators
- Fixed issue with en-GB not using 24h time format
- Fixed issue with editor for GCS not having a path field
- Fixed issue with editor for B2 introducing extra `/` characters
- Fixed supporting -s postfix for backends for backwards compatibility
- Fixed case-insensitive support for boolean and enumeration options
- Custom arguments is now a two-line input
2025-07-07 - 2.1.0.121_canary_2025-07-07
==========
This release is a canary release intended to be used for testing.
# Major changes in this version
This version introduces a new SQLite library, a new VSS provider, and some minor bugfixes.
## SQLite update
This version has changed the SQLite library from the previous System.Data.SQLite library to using `Microsoft.Data.Sqlite`.
This update was quite invasive, as the new SQLite library does not support positional arguments in SQL queries, which was used extensively in the Duplicati codebase.
With the update we see measurable speedups across all queries, and we are producing an article that describes our findings.
The update also bumps the SQLite library to use the latest available version and makes all SQLite queries async and cancelable, making the stop commands more responsive.
## New VSS provider supprt
The AlphaVSS library that is used for creating VSS snapshots is no longer being maintained.
This version now defaults to using the Vanara API layer to call the Windows VSS API and create snapshots.
Like before, this still requires the VC++ Redist to be installed.
For now, it is still possible to use AlphaVSS by setting `--snapshot-provider=AlphaVSS`.
Note that neither works on ARM64 as Windows is lacking libraries and tools for native ARM64 snapshots, only `--snapshot-provider=WMIC` works on ARM64.
## Bugfixing for ngclient
A number of reported compatibility issues with ngax has been fixed in this version.
## Detailed list of changes:
- Commandline UI expands environment variables
- The `file://` backend is no longer throttle exempt by default
- Fixed issue with TrayIcon not outputting help text in all cases
- No longer retains SeBackupPrivilege after testing for permissions
- Refresh token lifetime can now be configured
- Fixed multiple issues with kill signals not stopping the process
- Secret provider now correctly applied for all TrayIcon arguments
- Updated SQLite library to use `Microsoft.Data.Sqlite` packages instead
- Default VSS provider is now Vanara
- Hide options that are not supported on the current OS
- Fixed backup schedule order after multiple missed backups
- Fixed an issue with Google Drive backend not creating folders
- Updated all localization, thanks to all translators
## Ngclient changes:
- Fixed issue with `--` option prefixes not being matched
- Updated all localization, thanks to all translators
- Fixed issue with en-GB not using 24h time format
- Fixed issue with editor for GCS not having a path field
- Fixed issue with editor for B2 introducing extra `/` characters
- Fixed supporting -s postfix for backends for backwards compatibility
- Fixed case-insensitive support for boolean and enumeration options
- Custom arguments is now a two-line input
2025-06-24 - 2.1.0.120_canary_2025-06-24
==========
This release is a canary release intended to be used for testing.
The intention is to tap this release as an experimental release if no significant issues are uncovered.
# Major changes in this version
This release is mostly fixing minor issues reported from 2.1.0.119, with only a few changes that could impact backups.
A significant amount of fixes has been completed for ngclient.
The repair flow can now detect and fix cases where a file or folder has been assigned no metadata.
Since the codebase does not support this, the current fix is to assign an empty metadata block if possible, and otherwise use the smallest metadata block.
The Test output no longer reports failures on index files that were fixed during the test process.
The destination picker UI in ngclient has been reworked in multiple ways, providing a more robust experience with the Test button and results being more prominent.
The restore flow and file picker has been updated to fix a number of issues with files and folders that have the same prefix.
Some issues with the picker not having the correct visual representation of the state.
## Detailed list of changes:
- Reduced logging from remote connection
- Filter sent reports by destination to avoid duplicates
- Disable WebSocket for Agent
- Added support for using ssh-agent with the SSH backend
- Detect bind-permissions denied for the Duplicati webserver
- Improved secret provider pattern matching and misconfiguration detection
- Updated MailKit library to latest version
- Updated Windows script example
- Updated logic for assigning the OAuth url option
- Messages in test-command handler are now localizable
- Added attributes for macOS entitlements
- Detecting EPERM as "Permission Denied" on Linux/macOS
- Added null checks and invalid email detection for email report module
- Fixed 100s timeouts on some backends
- Reduced logging of messages during websocket authentication
- Changed secret provider option to be a password-type
- Changed `replace-faulty-index-files` option name to `dont-replace-faulty-index-files`
- Added correct loading and unloading of modules
- Added back PROPFIND debug options to WebDAV
- Added support for `X-Forwarded-For` prefix
- Added Mega S4 endpoints
- Added check and repair to detect empty metadata entries
- Fixed Ids being returned for filesets instead of version numbers
- Websocket sends update signal after metadata update
- Websocket has task-completed event
- Fixed not adding quadruple `----` on restore from config
- Removed fixed files from test output
- Handle transitive virtual folders in ListFolderContents
## Ngclient changes:
- Upgraded to Angular 20
- Fixed some colors not being selected
- Added plurals for log view
- Updated destination url picker
- Fixed issues with quadruple dashes in commandline
- Added support for "empty" view for backends with no UI configuration
- Added support for additional localization
- Fixed MSGraph not showing site-id as mandatory option
- Avoid `undefined` in target url
- Added support for custom OAuth URLs
- Updated logic in export page to be consistent with the current state
- Show the version number of the current server on the About page
- Added zh-Hans to list of languages
- Fixed issue with localized content not showing icons
- Fixed issue with localization not being applied
- Handling of plurals in localization
- Improved locale support for date/time/number formats
- Fixed issue with Azure blob storage UI
- Added summary to log lines headers
- Marking fields as required in destination configuration
- Fixed commandline sending empty arguments
- Prevent adding quadruple slashes
- All destinations are now in searchable dropdown
- Fixed some logic detecting an empty folder on restore
- Showing size of backup data during restore, if known
- Added backend config for AliyunOSS
- Improved logic for buttons on the database management page
- Fixed the "last backup" timestamp not showing the correct information
- Fixed an incorrect draft backup creation during restore
- Fixed loader on "Restore files" being shown even when not loading
- Restore view keeps track of temporarily recreated versions
- Restore view supports reload of the page and some navigation
- Database page does not attempt to delete non-existing file
- Added a check for restores with a backup that is missing a local database
- Fixed an issue with custom dropdowns in the destination selector not picking the correct value
- Added FTP to the list of backends (aFTP was already there)
- Added lazy-loading of custom dropdown values
- Fixed incorrect size being shown on the "Delete backup" page
- After direct import, go to home page
- Improved support for default backup options, retaining more options
- Fixed a non-working "back" button in the restore flow
- Added button to copy target url to clipboard
- Fixed some warning indicators not being correctly colored
- Updated restore view to support additional complex path configurations
- Added missing option to include metadata during restore
- Fixed not adding wildcards to file paths for restore flow
- Fixed an issue where task completion would sometimes leave the UI in an incomplete state
- Fixed url-encoding of options for export configuration
- Better detection of encrypted configuration in import configuration
- During export, disable buttons until data is correctly entered
- Fixed "No encryption" option being lost (visualy) on navigation
- Made the test status more visible and suggest to test on new backups and direct restore
- Improved waiting for repair to complete during restore without a local database
- Updated restore flow to better detect a completed restore
- Reworked all destination dialogs to better support hostname/bucketname, and path-only destinations
- Updated file picker to work better with multi-select and cross-os support
- Fixed importing metadata when importing a backup configuration
- Fixed a number of cases where icons and help-text would be rendered incorrectly
- Fixed an issue with settings view being obscured by the top-bar
- Fixed top-level source files in restore being shown as folders
2025-05-29 - 2.1.0.119_canary_2025-05-29
==========
This release is a canary release intended to be used for testing.
The intention is to tap this release as an experimental release if no significant issues are uncovered.
# Major changes in this version
## Index file corruption fixed
This update fixes a long-standing issue with index files being incomplete over time.
The effect of this is that the recreate database step takes much longer than expected.
With this update the index files no longer loose information during the compact step.
To remedy existing data, the test method can now be run and only check index files (`--full-remote-verification=indexesonly`).
By default, any defective index files that are found will be replaced with correct versions, so simply running the test command with a large sample size will fix the backup.
## Suppress warnings
A new option is added that can change warning messages to information messages, so the warnings no longer generate notifications.
The file access errors are now better grouped so it shows if the error is a permission error, a locked file error and others.
With the suppress feature it is possible to suppress one or more categories of these warnings.
## Better backend Test
The test feature has been updated to now check for write permissions, instead of just listing the remote folder.
For ngclient, the Test check now uses this extended check to inform the user if there are files in the destination folder.
This shows a warning if creating a new backup pointing to a folder with existing data, and a warning if attempting to restore from a folder with no files.
If the write part fails for a test during the restore flow, this is not treated as an error in ngclient.
## Auto VSS on Windows
If the user has Administrator privileges (`SeBackupPrivilege`) VSS is now set to `Auto` by default.
## Updated backends
Updated the backends: Jottacloud, Google Drive, Google Cloud Storage, Dropbox, and OpenStack.
Removed the Sia backend as the current implementation is not compatible with the pending hard-fork.
## No throttle for the file backend
The file backend is now excempt (by default) from throttle settings via `--throttle-disabled-backends`.
Individual backups can set `--throttle-disable` to opt-out of throttling.
## Disabling reported options on Webserver
The ngclient is using the reported options to figure out what features can be enabled.
This can now be configured with `--webservice-disable-api-extensions` so websocket usage can be disabled, among others.
## ngclient updates
A number of fixes and additions are made to ngclient, including a new grid-view for users with many backups.
## Database version upgrade to v17
The local database is again upgraded with an index changes performance.
The bundled `Duplicati.CommandLine.DatabaseTool.exe` / `duplicati-database-tool` can downgrade databases.
Since the change is only index addition, there is no data loss on downgrades.
## Detailed list of changes:
- Fixed issue with empty filesets being created
- Fixed issue with transactions being double comitted
- Fixed a case where a purge could loose a version
- Added option to register for remote control on TrayIcon startup
- Fixed an issue with purge-broken-files
- Fixed list-broken-files and purge-broken-files not reading database config
- Removed multiple unused libraries
- Fixed dbtool checks on Windows
- Added an extra check for the secret provider to ensure the modules behave
- Fixed a crash on serialization of result message
- Added an index to blockset entry
- Fixed an issue with compact not writing blocklists into index files
- Prevent overwriting config files with RPM install
- Add classification of file access errors
- Added feature to suppress warnings
- Fixed CIFS backend not parsing the writebuffer option
- More robust flushing of database messages on stops
- VSS is set to Auto on Windows, if the user has permissions to make snapshots
- Fixed incorrect text on compression level
- Removed mentions of removed backends
- Preserve space during compact by deleting files early, instead of at the end of the compact
- Reduced memory usage in SyncTool
- Fixed an issue where timestamps could drift and cause validation errors
- Updated translations, thanks to all translators
- Updated the Test method to also test for write-permissions (all backends)
- Removed the Sia backend due to incompatibility with hard-fork
- Updated GoogleDrive, GCS, and Dropbox to use HttpClient
- Updated Jottacloud to use HttpClient
- Updated OpenStack to use HttpClient
- Added simpler format for SSH key
- Removed old libraries and files that caused build warnings
- Default disable throttle for the file backend (configurable)
- Removed global options to set various unsupported options, in favor of per-backend options
- Improved error message if the backend is not a supported one
- Added support for repairing broken remote index files
- Improved response time for the Stop command
- Added a number of messages to websockets to automatically push updates to the browser
- Added support for toggling reported server features off
- Fixed a deadlock on restore when transfers failed
## Ngclient changes:
- Fixed avoiding colon for default port on destination url
- Fixed buttons on database page to update
- Fixed an issue where commandline would have extra options
- Showing the name of the backup being edited
- Fixed showing the correct relative time
- Sliders now show correctly when editing
- Added Server State to About page
- Added a grid-based view of the backup list
- Showing the backend type in the backup list
- Ask to resume server if paused when activating command
- Improved throttle dialog
- Updated translations, thanks to all translators
- Added pluralization and other minor fixes to the backup view
- Improved color scheme
- Added drop-area for SSH keyfile
- Added warning on leading slash for paths in destination
- Advanced options show a warning if they are overriding a global option when editing
- Fixed tooltips
- Minor fixes to the SSH page
- Notifications are slightly more visible now
- Added page to do advanced job delete
- Added warnings when leaving the backup page without saving
- Removed HttpOptions area on destination
- Support for custom OAuth url
- Added deprecation information to advanced options
- Fixed advanced options not behaving the same in ngax and ngclient
- Added a stop / abort button to tasks
- Don't show warnings when checking if files exist
2025-05-12 - 2.1.0.118_canary_2025-05-12
==========
This release is a canary release intended to be used for testing.
# Major changes in this version
This version has a number of minor fixes and a major rewrite of the the "repair" command.
The logic for the "repair" command is that it should be possible to recover loss of `.dblock` files, if the data is still present locally.
This logic has been fixed in multiple ways and now also supports recovering data, even if no individual `.dblock` volumes can be fully recovered.
In this case, the repair will recreate as much data as possible in new `.dblock` files, and configure it so as many files as possible are available.
The `purge-broken-files` can be used after repair has failed to recover eveything, and will only purge the files that were lost.
The `purge-broken-files` command has also been updated to support using incorrect metadata, such that files are not purged if they are only missing metadata.
There are again numerous fixes to ngclient, including some faster browsing of restore contents, and better remote validation of folder contents.
The UI now supports a number of different languages.
## Database version upgrade to v16
The local database is again upgraded with two index changes for correctness and performance.
The bundled `Duplicati.CommandLine.DatabaseTool.exe` / `duplicati-database-tool` can downgrade databases.
Since the change is only index addition, there is no data loss on downgrades.
## Detailed list of changes:
- Support `CACHEDIR.TAG` as a default exclude file marker
- Improved `list-broken-files` to more accurately show contents, thanks @gpatel-fr
- Added new faster API for listing restores (only used in ngclient)
- Added new API for testing to check for existing files (only used in ngclient)
- Updated translations, thanks to all the translators
- Fixed pCloud OAuth url in CLI
- Improved logic for combining Regex filters, thanks @Jojo-1000
- Improved error parsing for `box.com` backend
- Simplified log closing to avoid cases where the log file is kept open
- Prevent database actions when delete is invoked with no versions to delete
- Updated throttle library to force more smooth output
- Tracking task metadata (start/stop time) for better log scoping
- Fixed AuthID not being reported as a password property
- Removed CloudFiles backend
- Fixed issue with throttle not working correctly on some backends
- Fixed an issue with rclone giving errors after each operation
- Fixed repair command to support repairs with partial data available
- Updated local DB schema to v16 (two new indexes)
- Fixed scheduling order when starting a backup
- Fixed case where warnings were emitted if the local data contains duplicates during repair, thanks @warwickmm and @Jojo-1000
- Updated iDrivee2 to use HttpClient
- Updated TahoeLAFS to use HttpClient
- Removed long-standing `FIXMEGlobal` class
- Fixed issue with `server-util` timing out after 15 min, if using the `--wait` option
## Ngclient changes:
- Fixed "Export as commandline"
- Prevent GUI commandline from sending empty arguments
- Fixed some options were missing from the commandline view
- Added some confirmation dialogs
- Added indicator to show if backup is encrypted
- Improved notification state not always showing errors
- Fixed issue with multiple request fired on restore browsing
- Updated restore to use new faster API, if available
- Fixed issue with percent-encoded paths from configuration import
- Fixed issues with Test button not detecting SSL certificates or SSH key changes in all places
- Updated the Test button to check for existing files if the API is available
- Stop restore attempts early on known fatal errors (passphrase missing, empty folder, etc)
- Fixed an issue with advanced option lists not showing the correct labels
- Added a restore progress page
- Support multiple root folders on restore
- Test destination has a spinner while active
- Added spinners for long-running tasks from the start page
- Added TahoeLAFS UI
- Fixed the Live logs area
- Added multiple languages to the UI, thanks to all the translators
- Updated login page and loading indicator
2025-04-25 - 2.1.0.117_canary_2025-04-25
==========
This release is a canary release intended to be used for testing.
# Major changes in this version
This update adresses a few edge cases where a crash or other problem could cause the database to become out-of-sync.
Support for "archived" files makes Duplicati more compatible with life-cycle rules, that moves files into longer-term storage.
The support is currently added for S3 and Azure Blob Storage, and works by not attempting to test files that are archived.
Compacting still needs to be turned off if using life-cycle rules where files are inacessible.
The version of the local database is updated to v15 to support the archive timestamp.
A new tool is added `Duplicati.CommandLine.DatabaseTool.exe` / `duplicati-database-tool` which can downgrade databases.
The tool can be used prior to installing an older version, and will downgrade the database to the previous version (14 in this case).
The tool can target individual databases, but will default to take all databases in the storage folder.
Throttle options were broken with a recent update. The fixed version now shares the throttle between all transfers.
Previously, setting a 10kb/s limit would cause each individual stream to be capped to 10 kb/s, but now the setting will throttle the combined upload speed (each stream gets a fraction of the limit).
## Detailed list of changes:
- Added additional libICU compatibility versions
- Fixed an issue where dlist files would be uploaded ahead of time, causing failures on crashes
- Fixed an issue where compacting would sometimes kick off incorrectly
- File backend now throws the correct exceptions
- Ignore errors when closing and attempting pragma optimize
- Support reloading the page when restoring
- Added support for storage with archival options, like Glacier and Azure Cold storage
- Updated warning for cases where new files are found
- Added a database downgrade tool
- Added option to set SQLite cache size
- Fixed throttle not working, and made it a shared throttle
- Fixed an issue where the backup metadata could be cleared on save
## Ngclient changes:
- Continue button now works on editing backup
- Overlapping display on scrolling fixed
- Fixed Repeated background requests on some pages
- Database screen now shows the database state
- Improved support for resetting restore flow
- Settings page is more reactive to changes
- Server error messages are now shown
- Numerous fixes and updates to the source picker page
- Sort order and time display is now persisted in the browser
2025-04-17 - 2.1.0.116_canary_2025-04-17
==========
This release is a canary release intended to be used for testing.
This version is mostly the same as 2.1.0.115, so please see release notes from that.
# Major changes in this version
This is primarily a bug-fix release with only minor changes.
# Potentially breaking changes (from 2.1.0.109)
- Location of data folder has changed in some cases, refer to previous release for details
- Permissions are now applied to the data folder, refer to previous release for details
- New user interface, `ngclient` is the default; there is a button to switch between the two
## Detailed list of changes:
- Upgrade Minio library from 3.13 to 6.0.4
- Fixed delete command handling retention as well as specific version
- Fixed an issue with queries that need more than 128 parameters
- Updated memory caching and logging interface packages
- Fixed an issue with schedules missing in the UI
## Ngclient changes:
- Fixed a case where dialogs would be missing the confirmation button
- Improved the create-folder flow
- Improved default handling of retention settings
2025-04-14 - 2.1.0.115_canary_2025-04-14
==========
This release is a canary release intended to be used for testing.
This version is the same as 2.1.0.113 and 2.1.0.114 but rebuilt to fix a build-time issue.
# Major changes in this version
The ServerUtil tool can now ouput JSON instead of regular text.
Support for Zip64 is now always enabled, so manual data extraction requires a Zip64 enabled tool.
Added support for creating pre-authenticated headers to better support proxy setups.
Improved handling of duplicated blocks, both on compact and on backup.
Added support for Filen and Filejump storage destinations.
# Potentially breaking changes (from 2.1.0.109)
- Location of data folder has changed in some cases, refer to previous release for details
- Permissions are now applied to the data folder, refer to previous release for details
- New user interface, `ngclient` is the default; there is a button to switch between the two
## Detailed list of changes:
- Improved build process and added checks for missing and outdated libraries
- Improved anti-sleep on Windows
- Added option to emit machine-readable JSON from `ServerUtil` / `duplicati-server-util`
- Fixed issue with Mega backend not authenticating
- Added back missing options to MSGraph based backends
- Improved Zip64 support (always on)
- Prevent crashes when unable to set permissions on data folder or database
- Added `Filen.io` backend
- Fixed some delivery failures to Telegram
- Prevent setting permissions on data folder from ServerUtil
- Added support for pre-authenticated headers in selfhosted (proxy) setups
- Stop early if restoring a backup and no passphrase is supplied
- Removed a warning show when using relative restore version time
- Removed positional arguments from SQL queries
- Improved number of blocks that can be discarded during compact
- Improved storage re-use if files are added/removed/added
- Fixed a case where connections were not closed after use
- Updated Wasabi S3 endpoints
- Fixed locale-sensitive parsing bug for fr-CA
- Added `rclone` to Docker images, thanks @wjansenw
- Added Filejump backend
- Fixed some error flows during restore with missing data
## Ngclient changes:
- Fixed external links opening in new window
- Show error messages when testing connection
- Fixed bug with not setting server interface
- Added a tab to show crash log data
- Added sorting to list of backups
- Added Filen backend support
- Fixed removing backup when deleting
- Fixed dropping config file for restore
- Error messages can be dismissed
- Added support for date-time options
- Added live-logs and improved logs area
- Added controls for entering timespans
- Improved status bar and loading messages
- Fixed cases of white start screen
- Fixed issues with settings page not updating
- Fixed issue with loading exported config with path-encoded url
- Fixed File browser starting in broken state if path is missing
- Added support for Filejump backend
- Fixed issues with parsing dblock-size
- Added support for retention settings
- Fixed issues with timespans on edits
2025-04-14 - 2.1.0.114_canary_2025-04-14
==========
This release is a canary release intended to be used for testing.
This version is the same as 2.1.0.113 but rebuilt to fix a build-time issue.
# Major changes in this version
The ServerUtil tool can now ouput JSON instead of regular text.
Support for Zip64 is now always enabled, so manual data extraction requires a Zip64 enabled tool.
Added support for creating pre-authenticated headers to better support proxy setups.
Improved handling of duplicated blocks, both on compact and on backup.
Added support for Filen and Filejump storage destinations.
# Potentially breaking changes (from 2.1.0.109)
- Location of data folder has changed in some cases, refer to previous release for details
- Permissions are now applied to the data folder, refer to previous release for details
- New user interface, `ngclient` is the default; there is a button to switch between the two
## Detailed list of changes:
- Improved build process and added checks for missing and outdated libraries
- Improved anti-sleep on Windows
- Added option to emit machine-readable JSON from `ServerUtil` / `duplicati-server-util`
- Fixed issue with Mega backend not authenticating
- Added back missing options to MSGraph based backends
- Improved Zip64 support (always on)
- Prevent crashes when unable to set permissions on data folder or database
- Added `Filen.io` backend
- Fixed some delivery failures to Telegram
- Prevent setting permissions on data folder from ServerUtil
- Added support for pre-authenticated headers in selfhosted (proxy) setups
- Stop early if restoring a backup and no passphrase is supplied
- Removed a warning show when using relative restore version time
- Removed positional arguments from SQL queries
- Improved number of blocks that can be discarded during compact
- Improved storage re-use if files are added/removed/added
- Fixed a case where connections were not closed after use
- Updated Wasabi S3 endpoints
- Fixed locale-sensitive parsing bug for fr-CA
- Added `rclone` to Docker images, thanks @wjansenw
- Added Filejump backend
- Fixed some error flows during restore with missing data
## Ngclient changes:
- Fixed external links opening in new window
- Show error messages when testing connection
- Fixed bug with not setting server interface
- Added a tab to show crash log data
- Added sorting to list of backups
- Added Filen backend support
- Fixed removing backup when deleting
- Fixed dropping config file for restore
- Error messages can be dismissed
- Added support for date-time options
- Added live-logs and improved logs area
- Added controls for entering timespans
- Improved status bar and loading messages
- Fixed cases of white start screen
- Fixed issues with settings page not updating
- Fixed issue with loading exported config with path-encoded url
- Fixed File browser starting in broken state if path is missing
- Added support for Filejump backend
- Fixed issues with parsing dblock-size
- Added support for retention settings
- Fixed issues with timespans on edits
2025-04-11 - 2.1.0.113_canary_2025-04-11
==========
This release is a canary release intended to be used for testing.
# Major changes in this version
The ServerUtil tool can now ouput JSON instead of regular text.
Support for Zip64 is now always enabled, so manual data extraction requires a Zip64 enabled tool.
Added support for creating pre-authenticated headers to better support proxy setups.
Improved handling of duplicated blocks, both on compact and on backup.
Added support for Filen and Filejump storage destinations.
# Potentially breaking changes (from 2.1.0.109)
- Location of data folder has changed in some cases, refer to previous release for details
- Permissions are now applied to the data folder, refer to previous release for details
- New user interface, `ngclient` is the default; there is a button to switch between the two
## Detailed list of changes:
- Improved build process and added checks for missing and outdated libraries
- Improved anti-sleep on Windows
- Added option to emit machine-readable JSON from `ServerUtil` / `duplicati-server-util`
- Fixed issue with Mega backend not authenticating
- Added back missing options to MSGraph based backends
- Improved Zip64 support (always on)
- Prevent crashes when unable to set permissions on data folder or database
- Added `Filen.io` backend
- Fixed some delivery failures to Telegram
- Prevent setting permissions on data folder from ServerUtil
- Added support for pre-authenticated headers in selfhosted (proxy) setups
- Stop early if restoring a backup and no passphrase is supplied
- Removed a warning show when using relative restore version time
- Removed positional arguments from SQL queries
- Improved number of blocks that can be discarded during compact
- Improved storage re-use if files are added/removed/added
- Fixed a case where connections were not closed after use
- Updated Wasabi S3 endpoints
- Fixed locale-sensitive parsing bug for fr-CA
- Added `rclone` to Docker images, thanks @wjansenw
- Added Filejump backend
- Fixed some error flows during restore with missing data
## Ngclient changes:
- Fixed external links opening in new window
- Show error messages when testing connection
- Fixed bug with not setting server interface
- Added a tab to show crash log data
- Added sorting to list of backups
- Added Filen backend support
- Fixed removing backup when deleting
- Fixed dropping config file for restore
- Error messages can be dismissed
- Added support for date-time options
- Added live-logs and improved logs area
- Added controls for entering timespans
- Improved status bar and loading messages
- Fixed cases of white start screen
- Fixed issues with settings page not updating
- Fixed issue with loading exported config with path-encoded url
- Fixed File browser starting in broken state if path is missing
- Added support for Filejump backend
- Fixed issues with parsing dblock-size
- Added support for retention settings
- Fixed issues with timespans on edits
2025-03-26 - 2.1.0.112_canary_2025-03-26
==========
This release is a canary release intended to be used for testing.
# Major changes in this version
- Updated backends
The major change in this version is the addition of timeouts to every backend.
This has the potential to affect each backend individually.
- Improved validation
Further increased the checks made to validate that the database is consistent, and added new features to the repair operation to assist in recovering.
Certain problems are now checked before and after a backup, in an attempt to better close in on the conditions that create these situations.
- Updates to ngclient
Updates to reconnect logic and locale support.
# Potentially breaking changes (from 2.1.0.109)
- Location of data folder has changed in some cases, refer to previous release for details
- Permissions are now applied to the data folder, refer to previous release for details
- New user interface, `ngclient` is the default; there is a button to switch between the two
## Detailed list of changes:
- Added retries for sending HTTP-based reports
- Added warning icon back to TrayIcon
- Fixed a check that prevented repairs in timezones that are have a negative UTC offset
- Rewrote a number of SQL queries to avoid localization of SQL strings
- Added guards against faulty startup delays
- Updated all backends to use same parsing logic for authentication options
- Updated all backends to support timeouts
- Fixed a bug where databases would be created with strict permissions, even if opting out
- Updated SQLite loading to always set custom pragmas
- Updated SQLite loading to support custom `SQLITE_TMPDIR` environment variable
- Removed unwanted data in report JSON output
- Added support for deleting empty index files on repair
- Improved handling of stop "errors"
- Updated `box.com` backend to use HttpClient
- Added option to inject custom parameters into reports
- Improved error message on manifest version mismatches
- Removed a warning when attempting to pick a restore date with a negative prefix
- Support for large form-encoded HTTP reports
- Fixed an issue where the URL parser would return different results for similar inputs (for the `file://` input)
- Handling backspace on console password input
- Added guard against fileset errors in the database
- Added support for rebuilding filesets from remote data on repair
- TrayIcon can now start in a disconnected state, and keep probing for a connection
- Added current update channel to reports
- Added automatic zip64 usage for large bugreports
- Added support for showing the crashlog in the UI
- Fixed an issue with some dates causing problems in the timezone aware calculations
- Added support for sorting the list of backups in the UI
- Fixed an issue with restoring timestamps and metadata on folders
2025-03-15 - 2.1.0.111_canary_2025-03-15
==========
This release is a canary release intended to be used for testing.
# Major changes in this version
- Restore improvements
This version has a few tweaks to the new restore flow that makes it more robust.
- Improved validation
To safeguard against internal errors, there is now a more strict validation before performing cleanup.
The new logic checks if the previous operation failed and will only automatically repair the remote if this is the case.
The repair command bypasses this check and can repair the remote regardless.
If the previous run was fully completed, any leftover remote files are now treated as an error.
Additionally, operations that does not change remote state (list, test, restore, etc) will not repair the remote state, but just verify that it is working for the requested operation.
- Updates to ngclient
Multiple updates to ngclient: improved auth flow, searchable menus, Windows filesystem support, restore from configuration, and more.
# Potentially breaking changes (from 2.1.0.109)
- Location of data folder has changed in some cases, refer to previous release for details
- Permissions are now applied to the data folder, refer to previous release for details
- New user interface, `ngclient` is the default; there is a button to switch between the two
## Detailed list of changes:
- Reduced number of samples taken for testing
- Improved restore flow
- Improved error handling for Azure Blob storage
- Improved help text for remote synchronization tool
- Implemented more rigorous validation and safeguards for failed backups
- Better support for IPv6 and unmapped localhost scenarios
- Added check to avoid block sizes that are the same or less than volume size
- Introduced more async calls for better thread usage in handlers
- Added forced culture for SQL strings and simpler transaction logic
- Added Arm v7 Agent builds