Commit graph

206 commits

Author SHA1 Message Date
Nicolas Meienberger
f77fd86694 Merge branch 'tvarohohlavy-secrets-management'
Some checks failed
Release Workflow / determine-release-type (push) Has been cancelled
Release Workflow / build-images (push) Has been cancelled
Release Workflow / publish-release (push) Has been cancelled
2025-12-16 20:47:29 +01:00
Nicolas Meienberger
47b3c80317 refactor(secret-input): remove isDirty check 2025-12-16 20:45:33 +01:00
Nicolas Meienberger
e57efcfcdc refactor: extract sortable card into its own component 2025-12-16 20:23:44 +01:00
Nicolas Meienberger
b983add4ca chore(frontend): parametrize server IP 2025-12-16 19:40:53 +01:00
Nicolas Meienberger
e39552ee68 chore: small code style improvements 2025-12-16 19:36:37 +01:00
Nicolas Meienberger
feb6353e21 chore(frontend): parametrize server IP 2025-12-16 18:02:54 +01:00
Nicolas Meienberger
fe5810b1a7 fix: circular dependency 2025-12-16 18:02:54 +01:00
Nico
9e3cc90ba1 refactor: allow to run without the SYS_ADMIN cap for simple setups (#138)
* refactor: allow to run without the SYS_ADMIN cap for simple setups

* fix: pr feedback
2025-12-16 18:02:54 +01:00
Nicolas Meienberger
ebca72f1ee fix: username optional in snapshot output 2025-12-16 18:02:54 +01:00
Nico
1b6539c5bf refactor: remove docker volum plugin functionnality (#137) 2025-12-16 18:02:54 +01:00
Nicolas Meienberger
fe5c9ea599 refactor(rclone-form): minor UI improvements 2025-12-16 18:02:54 +01:00
Nico
dc20f209f7 fix: run forget on mirrors in the background (#136) 2025-12-16 18:02:54 +01:00
Nicolas Meienberger
affd300a09 fix(rclone-volume): remote was not loaded correctly in the form 2025-12-16 18:02:54 +01:00
Nico
54d077bf43 fix: same time backups run multiple times (#134) 2025-12-16 18:02:54 +01:00
Nico
3efff035c5 fix(doctor): fail gracefully in case of unexpected error (#132) 2025-12-16 18:02:54 +01:00
Jakub Trávník
b55bebf8f4 Merge upstream/main into config-export-feature 2025-12-16 13:19:45 +01:00
Jakub Trávník
ded9d935ce Merge main into config-export-feature 2025-12-16 13:07:00 +01:00
Jakub Trávník
66f8ff0e50 few missing corrections related to all users export instead of just admin 2025-12-16 12:47:20 +01:00
Jakub Trávník
63f67b3b30 corrected schema for export after changes 2025-12-16 11:48:55 +01:00
Jakub Trávník
bf36f9aa56 reduced the scope of PR to MVP - exportAll only 2025-12-16 11:39:35 +01:00
Raj Dave
008af5487d Invalidates backup schedule queries on reorder
Ensures the backup schedule list is refreshed after reordering,
both on success and on error, by using the dedicated query key
instead of a generic string. This guarantees the UI reflects
the latest state.
2025-12-15 16:19:33 +03:00
Raj Dave
8e49b10042 Validates and improves schedule reordering
Ensures schedule reordering requests are valid by checking for duplicate and non-existent IDs.

Improves performance by using a transaction for batch updates.
2025-12-15 16:06:21 +03:00
Raj Dave
c3f5cd6b4e properly generate migration 2025-12-15 13:30:51 +03:00
Raj Dave
fa8e06a92e fix timestamp in drizzle journal 2025-12-15 13:26:47 +03:00
Raj Dave
b51f3549c2 Backend and UI modifications to allow reordering of backup schedules
Adds drag-and-drop functionality to reorder backup schedules

Introduces a sort order field to the database schema and implements API endpoints to update the schedule order.

This allows users to visually prioritize their backup jobs.
2025-12-15 13:13:34 +03:00
Jakub Trávník
c4ec8ea62b secret reference frontend usage 2025-12-15 10:50:24 +01:00
Jakub Trávník
58b1a0574e secret reference server usage 2025-12-15 10:50:13 +01:00
Jakub Trávník
605fb1c27c secret reference core support 2025-12-15 10:48:35 +01:00
Nicolas Meienberger
5216cc195d fix: circular dependency
Some checks failed
Release Workflow / determine-release-type (push) Has been cancelled
Release Workflow / build-images (push) Has been cancelled
Release Workflow / publish-release (push) Has been cancelled
2025-12-14 20:49:27 +01:00
Nico
b23317354c
refactor: allow to run without the SYS_ADMIN cap for simple setups (#138)
Some checks failed
Release Workflow / determine-release-type (push) Has been cancelled
Release Workflow / build-images (push) Has been cancelled
Release Workflow / publish-release (push) Has been cancelled
* refactor: allow to run without the SYS_ADMIN cap for simple setups

* fix: pr feedback
2025-12-14 20:30:33 +01:00
Nicolas Meienberger
95e4fe5547 fix: username optional in snapshot output
Some checks failed
Release Workflow / determine-release-type (push) Has been cancelled
Release Workflow / build-images (push) Has been cancelled
Release Workflow / publish-release (push) Has been cancelled
2025-12-14 20:25:42 +01:00
Nico
361311285a
refactor: remove docker volum plugin functionnality (#137) 2025-12-14 11:07:32 +01:00
Nicolas Meienberger
1eb247deec refactor(rclone-form): minor UI improvements 2025-12-14 10:44:05 +01:00
Nico
8a5d45cbfb
fix: run forget on mirrors in the background (#136) 2025-12-14 10:34:25 +01:00
Nicolas Meienberger
7619612b1b fix(rclone-volume): remote was not loaded correctly in the form 2025-12-14 10:33:16 +01:00
Nico
be53466739
fix: same time backups run multiple times (#134)
Some checks failed
Release Workflow / determine-release-type (push) Has been cancelled
Release Workflow / build-images (push) Has been cancelled
Release Workflow / publish-release (push) Has been cancelled
2025-12-13 23:47:41 +01:00
Nico
6ab5c549c1
fix(doctor): fail gracefully in case of unexpected error (#132) 2025-12-12 17:55:37 +01:00
Nicolas Meienberger
47f64b51af docs: update version in readme
Some checks failed
Release Workflow / determine-release-type (push) Has been cancelled
Release Workflow / build-images (push) Has been cancelled
Release Workflow / publish-release (push) Has been cancelled
2025-12-11 18:32:40 +01:00
Nico
c3acc26e05
refactor(notification): make username and password optional (smtp) (#126)
Some checks failed
Release Workflow / determine-release-type (push) Has been cancelled
Release Workflow / build-images (push) Has been cancelled
Release Workflow / publish-release (push) Has been cancelled
2025-12-10 21:36:18 +01:00
Nico
ef8fd7228f
fix(mirrors): keep last copy state (#125) 2025-12-10 21:18:10 +01:00
Nico
2ddf3c6597
refactor: split forms (#124)
* refactor: split create-volume-form

* refactor: split create-repository-form

* chore: pr feedbacks
2025-12-10 21:16:20 +01:00
Nico
9199a743db
feat: rclone volume backend (#123) 2025-12-10 20:20:49 +01:00
Nico
4c0ba33b5e
feat: notify on warning separation (#122) 2025-12-10 18:55:37 +01:00
Nicolas Meienberger
7091f1f296 chore: remove retry-lock 2025-12-06 11:17:31 +01:00
Nicolas Meienberger
fdb84374a0 refactor: remove icons where it was making the context worse 2025-12-06 11:13:26 +01:00
Nicolas Meienberger
c42380b26b refactor: remove trim on password
The password should be taken as-is. It could potentially contain a space
2025-12-06 10:36:39 +01:00
Nicolas Meienberger
51ed47c30f refactor: no need to print safe args as it's already sanitized 2025-12-06 10:36:39 +01:00
Nicolas Meienberger
b8ae10b316 fix: volume data not refreshing when changing selection 2025-12-06 10:36:39 +01:00
Nico
f232fc07c1 feat: custom include patterns (#104)
* feat: add custom include patterns

* feat: add exclude-if-present option
2025-12-06 10:36:39 +01:00
Nico
d542318e2c feat: naming backup schedules (#103)
* docs: add agents instructions

* feat: naming backup schedules

* fix: wrong table for filtering
2025-12-06 10:36:39 +01:00
Nicolas Meienberger
2660d91002 fix: broken migration 2025-12-06 10:36:25 +01:00
Nicolas Meienberger
b155f82575 chore: update dependencies 2025-12-06 10:36:25 +01:00
Nico
9120153375 feat: mirror repositories (#95)
* feat: mirror repositories

feat: mirror backup repositories

* chore: pr feedbacks
2025-12-06 10:36:17 +01:00
Jakub Trávník
780fdae63e cryptoUtils.decrypt alligned with encrypt in regards of handling extra space in password file 2025-12-06 10:35:55 +01:00
Jakub Trávník
fc482e9729 crypto.Utils comments updated to reflect behaviour 2025-12-06 10:35:55 +01:00
Jakub Trávník
1fe026a76f avoid logging secrets in smb backend 2025-12-06 10:35:55 +01:00
Jakub Trávník
2df1fa53a0 feat: implement encryption for sensitive fields in volume backends 2025-12-06 10:35:55 +01:00
Jakub Trávník
4403e3cf19
Merge branch 'main' into missing-icons 2025-12-05 00:22:39 +01:00
Nicolas Meienberger
e85cc35b1a feat: add DOCKER_HOST support
Some checks failed
Release Workflow / determine-release-type (push) Has been cancelled
Release Workflow / build-images (push) Has been cancelled
Release Workflow / publish-release (push) Has been cancelled
2025-12-04 19:09:23 +01:00
Nicolas Meienberger
321dc4cdf7 fix: volume data not refreshing when changing selection 2025-12-04 18:54:02 +01:00
Nicolas Meienberger
0f7bd1e042 fix: remove debug logs in production 2025-12-04 18:46:12 +01:00
Nico
08d8a47352
feat: custom include patterns (#104)
* feat: add custom include patterns

* feat: add exclude-if-present option
2025-12-04 18:44:34 +01:00
Nico
1e20fb225e
feat: naming backup schedules (#103)
* docs: add agents instructions

* feat: naming backup schedules

* fix: wrong table for filtering
2025-12-04 18:31:00 +01:00
Jakub Trávník
692dd5aa21 add isEncrypted check to decrypt as a safeguard 2025-12-03 23:50:51 +01:00
Nicolas Meienberger
b8e30e298c fix: broken migration
Some checks failed
Release Workflow / determine-release-type (push) Has been cancelled
Release Workflow / build-images (push) Has been cancelled
Release Workflow / publish-release (push) Has been cancelled
2025-12-03 21:56:41 +01:00
Nicolas Meienberger
ce07c588ad chore: update dependencies 2025-12-03 20:55:38 +01:00
Nico
e7f0a2828d
feat: mirror repositories (#95)
* feat: mirror repositories

feat: mirror backup repositories

* chore: pr feedbacks
2025-12-03 20:52:47 +01:00
Jakub Trávník
ff4c1404a6 feat: add icons to buttons and alerts for improved UI clarity 2025-12-03 17:31:44 +01:00
Jakub Trávník
a7e36e98d7 Add 401 error response for password requirement in export endpoints 2025-12-03 08:33:50 +01:00
Jakub Trávník
9f1a7694a3 fix: Entity lookup and frontend mutation patterns for config export
- Fix volumes/repositories export to prefer name lookup over ID
- Fallback to list+filter when only ID provided (services expect name)
- Refactor ExportDialog to use generated mutations instead of manual fetch
- Remove standalone /auth/verify-password endpoint (integrated into exports)
2025-12-03 00:12:34 +01:00
Jakub Trávník
2dfa15a83a remove redundant type key from exported objects 2025-12-02 11:47:26 +01:00
Jakub Trávník
13883f3053
Simplify UI message for secrets export
Co-authored-by: Nico <47644445+nicotsx@users.noreply.github.com>
2025-12-02 09:35:24 +01:00
Jakub Trávník
94712bb7b8 fix indentation 2025-12-01 23:14:22 +01:00
Nicolas Meienberger
7ff38f0128 refactor: run forget commands in the background
Some checks failed
Release Workflow / determine-release-type (push) Has been cancelled
Release Workflow / build-images (push) Has been cancelled
Release Workflow / publish-release (push) Has been cancelled
2025-12-01 20:22:43 +01:00
Nicolas Meienberger
33e6f3773b fix: only lock shared tasks if an exclusive is running
Some checks failed
Release Workflow / determine-release-type (push) Has been cancelled
Release Workflow / build-images (push) Has been cancelled
Release Workflow / publish-release (push) Has been cancelled
2025-12-01 20:07:30 +01:00
Nico
9b46737852
refactor(repositories): add a locking mechanism for restic operations (#94)
* refactor(repositories): add a locking mechanism for restic operations

* fix: add missing lock in list repositories
2025-12-01 19:47:21 +01:00
Jakub Trávník
fd4f031963 Better error logging for password verification failure 2025-12-01 17:45:28 +01:00
Jakub Trávník
f1e59e5931 Custom message for Full export 2025-12-01 17:44:07 +01:00
Jakub Trávník
2b6cd7af2c possibly handle nested secrets in arrrays 2025-12-01 17:15:18 +01:00
Jakub Trávník
7dab73e9bd More verbose error logging for notification and backups export errors 2025-12-01 17:10:12 +01:00
Jakub Trávník
eaca5abde5
Input validation and error handling for secretsMode param
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-12-01 17:07:24 +01:00
Jakub Trávník
7f966b504b
Explicit warning regarding volume secrets
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-12-01 17:02:50 +01:00
Jakub Trávník
709a08cfe8
Remove unrelated change
TODO: Fix Trash icon in different PR

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-12-01 17:00:51 +01:00
Jakub Trávník
c736657ffe
Error logging on repositories export failure
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-12-01 16:59:59 +01:00
Jakub Trávník
30047cbcf0 audit logging on recoveryKey export 2025-12-01 16:56:59 +01:00
Jakub Trávník
ced7a08672 fix: add type safety for ExportDialog trigger props 2025-12-01 16:51:40 +01:00
Jakub Trávník
5093699568 remove obsolete ExportCard 2025-12-01 16:43:52 +01:00
Jakub Trávník
c65d84ee9a pass id and name to export dialog 2025-12-01 16:36:17 +01:00
Jakub Trávník
11646b6187 Merge branch 'config-export-feature' of https://github.com/tvarohohlavy/zerobyte into config-export-feature 2025-12-01 16:24:35 +01:00
Jakub Trávník
a9ac6eec20 rename API endpoints for backups and notifications 2025-12-01 16:24:15 +01:00
Jakub Trávník
2306df316e
Error logging on failed to decrypt
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-12-01 16:17:05 +01:00
Jakub Trávník
07f7c5e025 Merge branch 'config-export-feature' of https://github.com/tvarohohlavy/zerobyte into config-export-feature 2025-12-01 16:14:57 +01:00
Jakub Trávník
4536f8a613 input validation in fetchRepositories 2025-12-01 16:14:43 +01:00
Jakub Trávník
f452d72050
Fix keyboard navigation in the export card
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-12-01 16:11:12 +01:00
Jakub Trávník
82f632f63a
Update app/client/components/export-dialog.tsx
remove unused variable

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-12-01 15:58:07 +01:00
Jakub Trávník
95342f6ec9
Update app/server/modules/lifecycle/config-export.controller.ts
More verbose error handling

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-12-01 15:55:09 +01:00
Jakub Trávník
1b874727e3
Update app/server/modules/lifecycle/config-export.controller.ts
More verbose error handling

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-12-01 15:53:12 +01:00
Jakub Trávník
c5c5da78bd
Delete unrelated change
TODO: Fix Trash icon in different PR

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-12-01 15:48:45 +01:00
Jakub Trávník
0d339d973f
Deleted unrelated change
TODO: Fix trash icon in separate PR

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-12-01 15:47:59 +01:00
Jakub Trávník
d72975e9e2 reauthentication on secrets export 2025-12-01 15:41:33 +01:00