Nicolas Meienberger
d5021566ac
refactor(backups): split into helpers
2026-04-01 23:24:51 +02:00
Nicolas Meienberger
af4ac1c39c
refactor: simplify singleton pattern
2026-04-01 23:11:51 +02:00
Nicolas Meienberger
23a2a168be
fix: cancel started backups when agent disconnects
2026-04-01 22:06:08 +02:00
Nicolas Meienberger
f965348d02
fix: restore repo lock during agent backups
2026-04-01 21:51:39 +02:00
Nicolas Meienberger
296e13ba1f
refactor: split commands in separate files
2026-04-02 23:17:06 +02:00
Nicolas Meienberger
5eb1d2b727
feat: backup through agent
...
wip
2026-04-02 23:12:51 +02:00
Nicolas Meienberger
e168a8ddf5
revert: remove db agents for now
2026-04-02 22:59:56 +02:00
Nicolas Meienberger
7cfe3b3ebe
refactor: effect
2026-04-02 22:59:56 +02:00
Nicolas Meienberger
51bc6fefb4
feat: agent token
2026-04-02 22:59:56 +02:00
Nicolas Meienberger
136279a25d
chore: init contracts package
...
chore: contracts package
feat: agent package
2026-04-02 22:59:56 +02:00
Nicolas Meienberger
4991d3e2ba
feat: init agent/controller minimal
2026-04-02 22:59:56 +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
Nicolas Meienberger
e265f7d478
test: fix flaky test depending on mutex timing
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-04-01 09:27:13 +02:00
Nicolas Meienberger
3acf565ccd
fix: force user to provide known hosts values in sftp volume / repository creation
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-31 20:27:48 +02:00
Nico
2a219ac042
refactor(backups): consolidate execution into service helpers ( #717 )
2026-03-29 12:57:47 +02:00
Nico
866a3c63e8
feat: manual backup option ( #713 )
...
Closes #710
2026-03-26 19:35:18 +01:00
Nicolas Meienberger
b4668e23c7
test(e2e): attach browser logs and full errors in report
2026-03-24 07:52:54 +01: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
618f37e250
fix(notifications): fix telegram shoutrrr URL encoding ( #691 )
...
Closes #690
2026-03-21 20:38:45 +01:00
Nicolas Meienberger
aa23967329
fix: encrypt ntfy access token at rest
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-20 20:37:51 +01:00
Nicolas Meienberger
bad5f78991
fix(smb): use long form params username / password instead of user / pass
...
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
#674
2026-03-20 19:29:40 +01:00
Nico
a039bb478e
fix: separate raw include paths and patterns ( #683 )
...
Separate include patters and included path cleanly to avoid path with special characters to be expanded. Closes https://github.com/nicotsx/zerobyte/discussions/680
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
* **New Features**
* Added ability to select specific directories and paths for inclusion in backup schedules, separate from pattern-based rules.
* **Bug Fixes & Improvements**
* Automatically migrates existing backup configurations to work with the new path selection system.
* Enhanced backup restoration to properly handle both selected paths and pattern-based inclusions.
* **Chores**
* Updated database schema to support path selections in backup schedules.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-03-20 19:27:54 +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
429b69ec92
fix: show back warnings logs and surface in UI ( #677 )
...
fix: show back warnings logs and surface in UI
#544
chore: fix dev login issue
2026-03-18 20:21:14 +01:00
Nico
e39220c024
fix: allow quoted urls in env variables ( #676 )
2026-03-17 22:09:22 +01:00
Nicolas Meienberger
2d10da72f6
refactor(volume-backend): assert mounted helper
2026-03-15 12:03:27 +01:00
Nicolas Meienberger
5f7f2005fa
refactor(notifications): extract config secret mapping
2026-03-15 11:51:17 +01:00
Nicolas Meienberger
a2d34a027e
refactor(notifications): use native URL builder
2026-03-15 11:40:03 +01:00
Nico
7473c29948
feat: protect restores that would overwrite important internal path ( #663 )
2026-03-13 21:33:37 +01:00
Nicolas Meienberger
66f95dcd8e
fix: reject include patterns that are not in the volume root
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-12 20:17:40 +01:00
Nicolas Meienberger
469f0d6c4e
fix(dump): content-disposition header with special characters
2026-03-12 19:17:32 +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
Nicolas Meienberger
b132ad6df5
fix: add additional chmod after file write
...
Closes #478 The mode option of fs.writeFile does not reliably apply
permissions on all filesystems. On Synology NAS Docker volumes (btrfs),
the file ends up with 0755 permissions instead of 0600, causing SSH to
refuse the key.
2026-03-12 18:01:45 +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
d07be16fc6
fix(rclone): use correct timeout in seconds
2026-03-11 19:19:06 +01:00
Nico
19b827c049
fix: dump snapshot ( #646 )
...
Closes #602
2026-03-10 18:01:51 +01:00
Nico
df312cd419
refactor: move from arktype to zod ( #637 )
...
chore: gen api-client
2026-03-09 18:27:03 +01:00
Nico
d660c8e2e4
fix: single item file restore ( #634 )
...
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
fix: single item file restore
test(e2e): restore single file at custom location
Closes #633
2026-03-08 13:38:00 +01:00
Nicolas Meienberger
3d2900ab69
refactor: harden cron validation and fail early in case of wrong pattern
2026-03-08 12:47:19 +01:00
Nico
3e50e37e02
chore: bump drizzle to beta-16 ( #622 )
...
chore: bump drizzle to beta-16
test: increase test coverage
2026-03-05 22:23:45 +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
c1e8036323
fix: sso cross org link with valid invite ( #621 )
2026-03-05 20:21:24 +01:00
Nico
6769f5fa6c
fix: run repo stats in background ( #620 )
...
Closes #614
2026-03-05 20:18:34 +01:00
Nicolas Meienberger
6f560ecae9
chore: api client gen
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-04 22:00:04 +01:00
Nicolas Meienberger
157be2d6ab
feat: custom flags allowlist
2026-03-04 19:42:08 +01:00
Nico
0c20473e30
refactor(sso): extract sso code into it's own module ( #617 )
2026-03-04 18:48:47 +01:00
Nico
2f253d4999
fix: move active session to an existing org, when deleting ( #612 )
...
### TL;DR
Added session cleanup logic to handle active organization reassignment when user organizations are deleted.
### What changed?
Enhanced the `cleanupUserOrganizations` method in `AuthService` to reassign active organizations for users whose current active organization is being deleted. The method now:
- Identifies users who are members of organizations being deleted
- Finds alternative organizations for each affected user
- Updates their sessions to use a fallback organization or null if no alternatives exist
- Wraps the entire operation in a database transaction for consistency
### How to test?
Run the new test suite:
```bash
bun test app/server/modules/auth/__tests__/auth.cleanup-user-organizations.test.ts
```
The test verifies that when a user's organization is deleted, other members' sessions are properly updated to use their remaining organization memberships as the active organization.
### Why make this change?
Prevents orphaned session references when organizations are deleted. Without this change, users could have sessions pointing to non-existent organizations as their active workspace, leading to potential application errors or inconsistent state.
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
## Release Notes
* **Bug Fixes**
* Improved organization deletion handling. When an organization is deleted, user sessions are now automatically reassigned to a valid fallback organization, ensuring session state consistency and preventing invalid organization references.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-03-04 18:48:47 +01:00
Nico
a24c6d825e
refactor: sso utils ( #608 )
2026-03-04 18:48:47 +01:00
Nico
235706b230
fix(sso): prevent auto-linking with an existing account in a different org ( #607 )
...
* fix(sso): prevent auto-linking with an existing account in a different org
* chore: lint issue
* chore: bump @better-auth/sso
2026-03-04 18:48:47 +01:00
Nicolas Meienberger
5f6409e0a5
test: increase coverage for existing controllers
2026-03-04 18:48:47 +01:00