Commit graph

55 commits

Author SHA1 Message Date
Nicolas Meienberger
3f550678db refactor: put export endpoint in system controller 2026-01-04 15:02:47 +01:00
Nicolas Meienberger
081a10afeb refactor: simplify export process to minimal working concept 2026-01-04 14:18:10 +01:00
Nicolas Meienberger
20c3b8156d Merge remote-tracking branch 'upstream/main' into config-export-feature 2026-01-04 12:54:19 +01:00
Nico
d7bcf4c9e2
feat: display updates and release notes (#290)
* feat: display notification when new release is available

* refactor: standalone re-usable cache util

* refactor: clear cache on server startup

* refactor: add timeout to gh release fetch

* fix: run with app version env variable
2026-01-04 10:19:23 +01:00
Nicolas Meienberger
1fff5f53c5 chore: fix migration version
Some checks failed
Release Workflow / checks (push) Has been cancelled
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
2026-01-03 00:26:57 +01:00
Nicolas Meienberger
3eb07ef924 refactor: allow the server to start, even in case of migration failure
Some checks failed
Release Workflow / checks (push) Has been cancelled
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
2026-01-03 00:16:42 +01:00
Nico
b0a1e4b3d7
fix: also migrate tag for schedule mirrors (#283)
Some checks failed
Release Workflow / determine-release-type (push) Has been cancelled
Release Workflow / checks (push) Has been cancelled
Release Workflow / build-images (push) Has been cancelled
Release Workflow / publish-release (push) Has been cancelled
2026-01-02 23:07:14 +01:00
Nico
b8fe2a985b
feat: insecure tls & cacert for self-hosted repos (#277)
* feat: insecure tls & cacert for self-hosted repos

* fix: extra arg
2026-01-02 18:13:19 +01:00
Jakub Trávník
378878f439 do not consider shortId as metadata 2025-12-31 23:35:13 +01:00
Jakub Trávník
0859fba431 feat: enhance repository export by adding isExistingRepository flag and computing path for local repos 2025-12-30 14:33:53 +01:00
Jakub Trávník
4090d5caa6 feat: add isExistingRepository flag to repository configs for import compatibility 2025-12-30 14:23:47 +01:00
Jakub Trávník
ce714f7bfc refactor: clean up imports and improve formatting in export dialog and settings components 2025-12-30 00:06:49 +01:00
Jakub Trávník
e15fff2c23
Merge branch 'main' into config-export-feature 2025-12-29 21:00:00 +01:00
Nico
ae5233d9fb
refactor: tag snapshots with schedule short_id instead of db id (#248)
* refactor: tag snapshots with schedule short_id instead of db id

* chore: formatting issues
2025-12-28 11:42:25 +01:00
Jakub Trávník
375cd10fea fix(export): add missing keys to metadata exclusion list 2025-12-23 11:09:49 +01:00
Jakub Trávník
62df1b1241 refactor(config-export): simplify auth and add mirrors support
- Use authenticated context from requireAuth middleware instead of
  duplicating session verification logic
- Remove unused cookie imports and constants (COOKIE_NAME, COOKIE_OPTIONS)
- Add backupScheduleMirrorsTable to export for complete backup config
- Include mirror-specific metadata keys (lastCopyAt, lastCopyStatus, lastCopyError)
2025-12-23 00:45:50 +01:00
Jakub Trávník
dc5c88efcd feat(auth): add authentication middleware to export controller 2025-12-23 00:26:37 +01:00
Jakub Trávník
630b34ee10
Merge branch 'main' into config-export-feature 2025-12-23 00:22:17 +01:00
Nico
ac9de54a7b
fix: allow arbitrary name for repositories and correctly import existing local repos (#197)
* fix: allow arbitrary name for repositories and correctly import existing local repos

* chore: rebase conflicts
2025-12-22 20:50:53 +01:00
Jakub Trávník
512bee535a Merge remote-tracking branch 'upstream/main' into config-export-feature 2025-12-22 17:00:59 +01:00
Nico
8cdd06ec49
fix(stop): always update status to warning when stop is executed (#202)
* fix(stop): always update status to warning when stop is executed

* fix: automatically put in_progress backups to warning during startup
2025-12-21 14:25:45 +01:00
Nico
94f49e2022
refactor: separate healthcheck and auto remount in two separate jobs (#179)
* refactor: separate healthcheck and auto remount in two separate jobs

* fix: try catch in volume auto remount
2025-12-18 23:03:41 +01:00
Nico
a17da2562f
refactor(startup): ensure entities always use the latest configuration format (#173)
* refactor(startup): ensure entities always use the latest configuration schema

* refactor: await config updates to avoid race condition on later mount
2025-12-18 18:11:39 +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
Nico
361311285a
refactor: remove docker volum plugin functionnality (#137) 2025-12-14 11:07:32 +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
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
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
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
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
4536f8a613 input validation in fetchRepositories 2025-12-01 16:14:43 +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
3df892455f optionaly exclude runtime info 2025-12-01 11:29:39 +01:00
Jakub Trávník
2be65f6069 config export feature 2025-12-01 10:59:30 +01:00
Nico
9a9991eb9b
restore as a page (#87)
* feat: add custom restore target directory

Adds the ability to restore snapshots to a custom directory instead of
only the original path. Closes #12.

Changes:
- Add target parameter to restore API endpoint
- Add directory picker UI in file browser restore dialog
- Add target input field in snapshot restore form
- Create reusable PathSelector component

Note: Run `bun run gen:api-client` after merging to regenerate types.

* refactor: path selector design

* refactor: unify restore snapshot dialogs

* refactor: restore snapshot as a page

* chore: fix liniting issues

* chore(create-notification): remove un-used prop

---------

Co-authored-by: Deepseek1 <Deepseek1@users.noreply.github.com>
2025-11-30 16:43:34 +01:00
Nicolas Meienberger
58708cf35d refactor: repo healthcheck once per day
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-11-29 12:25:46 +01:00
Nico
673827f9f3
refactor: all timestamps to ms (#77)
* refactor: change all timestamps to be in miliseconds

* chore: format files

* chore: fix syntax error
2025-11-26 23:20:22 +01:00