Nico
0a2c6bca0c
refactor(restic): auto try to unlock and remove stale locks ( #926 )
2026-05-30 13:21:22 +02:00
Nico
d4436b0cdc
refactor(restic): all commands return effects ( #924 )
...
* refactor(restic): all commands are effects
* fix(restic): preserve effect failure errors
* chore: pr feedbacks
2026-05-30 10:10:54 +02:00
Nicolas Meienberger
b292f94186
refactor(crypto): reject encrypted values from another secret in sealSecret
2026-05-18 22:00:21 +02:00
Nicolas Meienberger
0f5a6823ec
refactor(crypto): reject encrypted values from another secret
2026-05-18 21:14:20 +02:00
Nico
0351d5e0b9
refactor(auth): translate better-auth errors allowedHosts ( #854 )
...
Closes #852
2026-05-04 17:47:25 +02:00
Nicolas Meienberger
7be7c9edae
test(e2e): fix waiting on transitive state
Release Workflow / determine-release-type (push) Has been cancelled
Release Workflow / checks (push) Has been cancelled
Release Workflow / e2e-tests (push) Has been cancelled
Release Workflow / request-docs-version-update (push) Has been cancelled
Release Workflow / build-images (push) Has been cancelled
Release Workflow / publish-release (push) Has been cancelled
2026-05-03 20:51:43 +02:00
Nicolas Meienberger
c64862f604
refactor: extract shared test fixtures and secret helpers
2026-04-22 22:33:18 +02:00
Nico
e2c9ef0518
chore: fixed unused types ( #824 )
2026-04-22 22:04:46 +02:00
Nico
a0c34ee48d
chore: cleanup un-used exports ( #823 )
2026-04-22 21:14:37 +02:00
Nicolas Meienberger
95006a7471
chore(core package): re-organize files
2026-04-16 19:07:11 +02:00
Nico
4520335ebc
fix(rclone): pass explicitly the RCLONE_CONF env var ( #779 )
2026-04-12 09:25:57 +02:00
Nico
4305057185
test: move test runner from Bun to Vitest ( #727 )
...
* chore: migrate to vitest
* test: speed up some suites by sharing sessions and mocking expensive non-tested actions
* test: refactor some tests to verify behavior instead of implementation details
* chore: fix linting issues
2026-04-01 20:05:54 +02:00
Nico
2a219ac042
refactor(backups): consolidate execution into service helpers ( #717 )
2026-03-29 12:57:47 +02:00
Nico
05dd440dea
fix(restic): separate error summary from diagnostic details ( #694 )
Release Workflow / determine-release-type (push) Has been cancelled
Release Workflow / checks (push) Has been cancelled
Release Workflow / e2e-tests (push) Has been cancelled
Release Workflow / build-images (push) Has been cancelled
Release Workflow / publish-release (push) Has been cancelled
2026-03-21 20:50:23 +01:00
Nico
f6f17cd61c
fix: backup progress use simple polling & cache ( #678 )
...
Release Workflow / determine-release-type (push) Has been cancelled
Release Workflow / checks (push) Has been cancelled
Release Workflow / e2e-tests (push) Has been cancelled
Release Workflow / build-images (push) Has been cancelled
Release Workflow / publish-release (push) Has been cancelled
#593
2026-03-18 20:25:30 +01:00
Nico
7473c29948
feat: protect restores that would overwrite important internal path ( #663 )
2026-03-13 21:33:37 +01:00
Nico
d74f516336
feat: file-based provisionning of volumes and repos ( #656 )
...
* feat: file-based provisionning of volumes and repos
docs: provisioning example
chore: ui improvements
* chore: ci issues
2026-03-12 18:31:42 +01:00
Nico
332e5bffda
refactor: extract restic in core package ( #651 )
...
* refactor: extract restic in core package
* chore: add turbo task runner
* refactor: split server utils
* chore: simplify withDeps signature and fix non-null assertion
2026-03-11 21:56:07 +01:00
Nicolas Meienberger
b156d6154e
fix: rebase issues
2026-03-11 19:05:50 +01:00
Nico
55dbcf0eb3
refactor: move from arktype to zod ( #637 )
...
chore: gen api-client
2026-03-11 18:53:58 +01:00
Nico
1b948ed41e
fix: single item file restore ( #634 )
...
fix: single item file restore
test(e2e): restore single file at custom location
Closes #633
2026-03-11 18:53:15 +01:00
Nicolas Meienberger
c2ed9e3693
refactor: correctly delete orphan sessions after idp deletion
Release Workflow / determine-release-type (push) Has been cancelled
Release Workflow / checks (push) Has been cancelled
Release Workflow / e2e-tests (push) Has been cancelled
Release Workflow / build-images (push) Has been cancelled
Release Workflow / publish-release (push) Has been cancelled
2026-03-05 21:02:56 +01:00
Nico
6769f5fa6c
fix: run repo stats in background ( #620 )
...
Closes #614
2026-03-05 20:18:34 +01:00
Nicolas Meienberger
157be2d6ab
feat: custom flags allowlist
2026-03-04 19:42:08 +01:00
Nico
12454ee401
fix: restic glob pattern in include ( #594 )
...
Closes #590
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
* **Tests**
* Enhanced test coverage for backup pattern handling and anchoring
* Added end-to-end scenarios validating include patterns, exclusion patterns, and exclude-if-present functionality
* **Refactor**
* Updated pattern processing logic to improve relative path resolution for backup patterns
* Improved asynchronous handling in backup initialization workflow
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-03-04 18:48:47 +01:00
bcrooker
ef51d665c8
feat(backups): add custom restic params to backup schedules
...
Allows users to pass arbitrary restic flags via a new advanced section in the create/edit schedule form. Includes DB migration, schema update, DTO, service, and restic command changes.
2026-02-27 14:46:47 -05:00
Nico
942bf2b31b
refactor: tests ( #585 )
...
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
* **Tests**
* Improved test infrastructure and organization across backup, repository, volume, and utility modules with streamlined mock setup and cleaner test patterns.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-02-26 19:54:25 +01:00
Nico
4a812a884b
refactor(restic): split each command into its own file ( #584 )
...
refactor(restic): split each command into its own file
refactor: add missing await before promise expects
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
## Release Notes
* **Tests**
* Improved async assertion handling across test suites for enhanced test reliability
* Expanded test coverage for backup, restore, and other core operations
* **Refactor**
* Reorganized internal utility structure for improved code maintainability
* **Chores**
* Updated linting configuration and TypeScript dependencies
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-02-26 19:51:24 +01:00
Nico
3113af8ce8
fix(repo): add a custom key after creation with the configured hostname ( #583 )
...
Closes #456
2026-02-26 19:46:25 +01:00
Nico
00e7118771
fix: report timeout as errors ( #569 )
...
Closes #485
2026-02-25 18:02:47 +01:00
Nico
a0a813ed09
refactor: short id branded type ( #552 )
...
* refactor: short id branded type
* chore: pr feedbacks
2026-02-21 11:16:15 +01:00
Nico
45fd9f9de1
feat: repository used space ( #551 )
...
* feat: repository used space
refactor: use a smarter cache key logic for easier invalidations
* chore: pr feedbacks
2026-02-21 10:52:55 +01:00
Nico
182d39a887
feat: restore snapshot as tar ( #550 )
...
* feat: export snapshot as tar file
chore(mutext): prevent double lock release
* chore: pr feedbacks
* fix: dump single file no tar
* chore: pr feedbacks
2026-02-21 10:19:20 +01:00
Nico
8fcd446926
refactor: snapshot strip out base path ( #542 )
...
* refactor: strip out volume path in snapshot list / restore
chore: lint issue
* test: backups new include patterns
2026-02-18 21:45:19 +01:00
Nico
39ae0cfe6d
fix: remove trailing slash or space before constructing s3 uri ( #516 )
...
Closes #496
2026-02-14 14:18:36 +01:00
Nico
bad944a232
feat: restore progress ( #281 )
...
* feat: restore progress
* feat: keep restore progress on reload
* refactor: centralize sse event types
* refactor(sse): generic handler factory
2026-02-14 12:35:16 +01:00
Nico
1017f1a38b
feat: edit repository form ( #507 )
...
* feat: edit repository form
* refactor: local repo path concat as a code migration
* refactor: server constants
* chore: fix lint issue in test file
* refactor: add auth to getServerConstants
2026-02-14 11:49:33 +01:00
Nicolas
6d33a3a35e
refactor: remove delete option until we have a proper dry-run mode
2026-02-13 18:31:06 +01:00
Nico
7ebce1166b
feat: expand snapshot details with additional info ( #505 )
...
* feat: extend snapshot details with more info
Closes #385
* refactor: centralize restic backup schemas
* refactor: pr feedbacks
2026-02-12 18:25:21 +01:00
Nico
825d46c934
refactor: react-router -> tanstack start ( #498 )
...
* refactor: move to tanstack start
* refactor: auth flow & volumes
* refactor: repo & snapshot details
* refactor: backups, create repo, volumes
* refactor: create volume & restore snapshot
* refactor: notifications
* refactor: settings
* refactor: breadcrumbs
* fix: ts issues
* refactor: prod deployment
* fix: import css production
* refactor: nitro build
* refactor: winston -> consola
* fix: memory leak is sse events cleanup
* fix: cli usage
* chore: remove rr routes file
* refactor: pr feedbacks
* refactor: patch api client to have a global client per call
* refactor: pr feedbacks
* fix(dockerfile): add explicit port
* fix(e2e): healthcheck under /api
2026-02-11 21:41:06 +01:00
Nico
cb7988b8ed
refactor(retention badges): use restic forget dry run result instead of manual calc ( #494 )
...
* refactor(retention badges): use restic forget dry run result instead of manual calc
* chore: PR feedbacks
2026-02-10 20:14:35 +01:00
Nico
09c1cbbb94
feat: show retention tags in snapshots timeline ( #462 )
...
* feat: show retention tags in snapshots timeline
* refactor: use button for accesibility
2026-02-08 16:14:43 +01:00
Nico
35773a6969
refactor: upgrade to drizzle v1 ( #450 )
...
* refactor: move migrations to new structure
* refactor: convert all findMany to new structure
* fix(backups-schedule): missing null matching for last backup status
* chore: move root lib to server
2026-02-01 19:14:52 +01:00
Nico
5bb5fcd09c
refactor: paginate large file counts ( #441 )
...
* refactor: add pagination to handle volume folders with extremely large folder counts
* refactor: stream restic ls result
* test: file-tree load more
* refactor: string params
* fix(tsc): string pagination params
* chore: pr feedbacks
2026-01-31 16:05:42 +01:00
Nico
b8ad1ae41a
refactor: show progress card even if no data is streamed ( #440 )
2026-01-31 13:26:10 +01:00
Nicolas Meienberger
774c11a9ac
revert(sftp-repo): put back previous values for alive count and alive interval
2026-01-30 18:16:07 +01:00
Nico
93aabebd51
refactor: remove slug constraint in volume name ( #428 )
...
* refactor: remove slug constraint in volume name
Closes #413
* chore: remove un-used imports
* fix(notifications): validate name is not empty
* refactor: deny empty names
2026-01-29 20:57:20 +01:00
kealuya
c69615b3b6
Description: ( #393 )
...
Added support for virtual-host style access for Huawei Cloud OBS. This is achieved by introducing the AWS_S3_BUCKET_LOOKUP environment variable and adding the s3.bucket-lookup=dns option to the parameters.
Changes:
Set AWS_S3_BUCKET_LOOKUP environment variable.
Included s3.bucket-lookup=dns in the S3 configuration options to ensure compatibility with Huawei OBS DNS-based bucket addressing.
2026-01-25 11:23:14 +01:00
Nicolas Meienberger
16ac608d46
fix(sftp-repo): password request prompted in console
2026-01-24 23:03:54 +01:00
Nico
2ab37e6b67
refactor: async doctor ( #375 )
...
* feat: background doctor operation
* refactor(repo-details): design layout
* refactor(doctor): support abort signal in all operations
* chore: fix linting issue
* chore: pr feedbacks
* chore: merge conflicts
* refactor: handle aborted signal in all operations
* chore: pr feedbacks
* chore: remove old migration
2026-01-22 21:55:45 +01:00