Edouard Vanbelle
9485ee5540
feat(storage key rot): add blob header engine
2026-08-02 02:40:33 +02:00
Edouard Vanbelle
e164689771
feat(storage key rot): remove dead born OXICLOUD_STORAGE_<N>_ENCRYPTION_CIPHER
...
+ alway ovewrite on storage migration (got issue when migrating with blob already existing and a key change)
2026-08-02 02:40:33 +02:00
Edouard Vanbelle
bbfb106a32
feat(maintenance): add a maintenance notification during backend migration
2026-08-01 18:46:17 +02:00
Edouard Vanbelle
142afecbbf
feat(storage): add a guide on storage
2026-08-01 17:50:35 +02:00
Edouard Vanbelle
f409658c96
feat(storage): hot swap backend on migrate
2026-08-01 17:11:07 +02:00
Edouard Vanbelle
8329b4aa56
feat(storage): improve admin panel
2026-08-01 17:10:06 +02:00
Edouard Vanbelle
cc439aaff9
fix(dedup): fix informations
2026-08-01 16:20:49 +02:00
Edouard Vanbelle
f949939508
feat(storage): add cmd option --select-storage
2026-08-01 14:36:24 +02:00
Edouard Vanbelle
d7c19570a5
feat(storage): wire choice of storage
2026-08-01 14:19:14 +02:00
Edouard Vanbelle
2de71b6d9a
feat(storage): add readonly during storage migration
2026-08-01 13:43:04 +02:00
Edouard Vanbelle
6b7bb67500
feat(storage): jobs can choose storage to migrate/scan
2026-08-01 13:06:09 +02:00
Edouard Vanbelle
354e058114
feat(storage): add multi entry in config
2026-08-01 12:58:43 +02:00
Edouard Vanbelle
82a50936d4
feat(storage-migration): move storage mig. to recoverable job
2026-08-01 11:53:51 +02:00
Edouard Vanbelle
5a87999949
fix(integration test): fix drive test used bytes with grace period
2026-07-30 01:29:09 +02:00
Edouard Vanbelle
9fe47a53ea
feat(jobs): add admin call to purge jubs result
2026-07-30 00:39:11 +02:00
Edouard Vanbelle
507bc2e98d
feat(recoverable-job): add backend_consistency (storage)
2026-07-30 00:15:20 +02:00
Edouard Vanbelle
8de50ec404
feat(jobs/ui): blobs_consistency add b3sum check
2026-07-29 23:15:45 +02:00
Edouard Vanbelle
e822714b50
feat(jobs/ui): reorder job names + fix(blobs_consistency)
2026-07-29 23:01:20 +02:00
Edouard Vanbelle
5527d09618
feat(recoverable-job): check if old blob (no cdc) still remains: notice only
2026-07-29 22:47:07 +02:00
Edouard Vanbelle
61b8571a48
feat(recoverable-job): add grace period for drives, files, folders consistency
2026-07-29 22:29:20 +02:00
Edouard Vanbelle
44356b14f2
feat(recoverable-job): add blobs_consistency job
2026-07-29 22:25:05 +02:00
Edouard Vanbelle
0f12399a48
feat(recoverable-job): fix files_consistency to check blob chunk consistency
2026-07-29 22:17:15 +02:00
Edouard Vanbelle
5881968f50
feat(recoverable-job): add progress view
2026-07-29 08:41:19 +02:00
Edouard Vanbelle
4336eca4d1
feat(recoverable-job): add admin page
2026-07-29 08:03:43 +02:00
Edouard Vanbelle
e1556e3d36
feat(recoverable-job): add findings
2026-07-29 07:57:06 +02:00
Edouard Vanbelle
41d83b3053
feat(recoverable-job): add consistency_batch (runs all consistency check)
2026-07-29 01:44:52 +02:00
Edouard Vanbelle
782a5c99bd
feat(recoverable-job): add folder_consistency
2026-07-29 01:39:58 +02:00
Edouard Vanbelle
394708c9a1
feat(recov. job): add drive consistency service
2026-07-29 01:25:15 +02:00
Edouard Vanbelle
8177b04786
feat(recoverable-job): wire API (cancel, view run, ...)
2026-07-28 23:25:37 +02:00
Edouard Vanbelle
302d2ff80f
feat(recoverable-job): add core engine
2026-07-28 22:39:07 +02:00
Edouard Vanbelle
0e8b1fbbeb
refactor(job-registry): simplify the job registering*
2026-07-28 21:13:09 +02:00
Edouard Vanbelle
24c514fe59
fix(job-registry): fix error handling*
2026-07-28 00:35:31 +02:00
Edouard Vanbelle
f66f7fa31f
feat(job-registry): remplace /api/admin/internal/trigger-*
...
remplace /api/admin/internal/trigger-* to /api/admin/jobs/{...}/trigger
remove OXICLOUD_ENABLE_ADMIN_INTERNAL_ENDPOINTS
2026-07-27 23:54:43 +02:00
Edouard Vanbelle
dfedde54a4
feat(job-registry): wire /api/admin/jobs/*
2026-07-27 23:38:12 +02:00
Edouard Vanbelle
72b99f5b9a
refactor: apply clippy
2026-07-27 23:06:02 +02:00
Edouard Vanbelle
1190dfef87
feat(job-registry): wire grant cleaner
2026-07-27 23:03:22 +02:00
Edouard Vanbelle
f740de3c10
feat(job-registry): wire dedub_gc
2026-07-27 22:56:02 +02:00
Edouard Vanbelle
f5f794fde5
feat(job-registry): handle job without periodicity but with trigger
2026-07-27 22:53:13 +02:00
Edouard Vanbelle
d0f4e1ef5a
feat(job-registry): wire engine + wire trash cleaner
2026-07-27 22:24:15 +02:00
Edouard Vanbelle
8bb62affc8
feat(job-registry): add the job engine
2026-07-27 22:05:08 +02:00
Edouard Vanbelle
e487af6e7e
feat(breadcrumb): show the granter (sharer) in the breadcrumb
2026-07-27 01:33:09 +02:00
Edouard Vanbelle
3b31b8911b
feat(breadcrumb): build breadcrumb in 1 API call
...
add /api/folders/{id}/ancestors
this API to iterate parent up to the drive root or the shared folder
this will help UI to build the breadcrumb in 1 API call
and to identify the root element (is it a drive users has access to or
a shared folder ?)
ui: now only 1 API call is now required to build the breadcrumb
2026-07-27 01:33:09 +02:00
Edouard Vanbelle
87ddf8ffc8
refactor(search): simplify order by + wire reverse
2026-07-26 18:18:15 +02:00
Edouard Vanbelle
c22741bc7f
refactor(search): normalize answer to /resources format
2026-07-26 18:18:15 +02:00
Dionisio Pozo
ef3e3f45b3
Merge pull request #521 from BCNelson/feat/external-file-mounts
...
feat(mounts): external file mounts — pluggable provider, read-write, WebDAV/NextCloud, admin UI
2026-07-22 06:52:43 +02:00
Dionisio Pozo
86268049ff
Merge pull request #641 from EdouardVanbelle/refactor/front-resource-list
...
feat(fileDto, folderDto): add is_favorite + is_shared
2026-07-22 06:51:28 +02:00
DioCrafts
d66956824c
Optimize storage, GC, and upload hot paths
2026-07-22 02:06:29 +02:00
Edouard Vanbelle
d9987782c4
feat(fileDto, folderDto): add is_favorite + is_shared
...
- provide is_shared and is_favorite information in DTO, information propagated as badge/buttons per items
regarding performances I try to be minimalis on SQL to prevent any perf regression
- remove old set of sharedids and favoriteids (was not functionnal anymore)
- fix date picker (no past selection) in grant
- fix contextmenu close on /files section
2026-07-22 01:55:10 +02:00
Bradley Nelson
9f4bc54113
Merge upstream/main into feat/external-file-mounts
...
Resolve conflicts between the external-file-mounts feature and upstream's
D5/D7 refactor (per-file provenance, keyset pagination, cross-drive move
gates, resource-access hook, folder-cascade lifecycle hook).
Key resolutions:
- FolderService::new now takes (repo, authz, file_lifecycle, mount_router);
all callers + DI updated.
- FileRetrievalService / FileManagementService keep both the mount_router
and the new resource_access_hook / drive_repo / storage_usage wiring.
- list_files_batch_with_perms: adapt the mount branch from offset- to
keyset (after_name) pagination, mirroring paginate_mount_entries.
- download_file_impl: keep upstream's &HeaderMap + `impl IntoResponse + use<>`
signature, retain the mount-download branch.
- Mount DTOs: the retired `owner_id` field maps onto created_by/updated_by
(the mount owner) — the fields the frontend now uses for owner display.
- admin/+page.svelte: keep upstream's user-delete modal + the 'mounts' tab.
- Bump memmap2 0.9.10 -> 0.9.11 (RUSTSEC critical advisory fix) and
regenerate Cargo.lock against the merged Cargo.toml.
2026-07-21 17:09:36 -06:00
Dionisio Pozo
67fe944c2a
Merge pull request #596 from swissiety/rfc-5789-http-patch
2026-07-22 00:32:27 +02:00