Edouard Vanbelle
2eb1e8a1d5
feat(logout): improve logout flow
2026-08-09 16:36:19 +02:00
Edouard Vanbelle
bbef8afb7b
fix(logout): reduce unwanted API call during logout
...
- stop trying to refresh session
- display "successfully signed out" rather "your session is expired"
2026-08-09 13:51:35 +02:00
Edouard Vanbelle
107dbfc731
fix(login): fix race in autofocus
2026-08-09 11:46:53 +02:00
Edouard Vanbelle
69c342f2ed
refactor(dpop): apply typescript prettier
2026-08-09 11:46:53 +02:00
Edouard Vanbelle
62475193ff
feat(admin): improve admin panel
...
normalise admin > users, sessions, drives
2026-08-09 10:41:34 +02:00
Edouard Vanbelle
10d831b204
feat(session): ensure dpop even with OIDC
2026-08-09 10:41:34 +02:00
Edouard Vanbelle
bee856fbd0
feat(session): handle sessions for admin
2026-08-09 10:41:34 +02:00
Edouard Vanbelle
93eb67f99b
feat(dpop): add service worker to sign requests
...
this will permit GET to resources and then to remove directly signing requests
2026-08-09 04:18:20 +02:00
Edouard Vanbelle
ed99b08e62
feat(DPoP): UI: bcast events to support multi tab
...
add also playwright test with the multi tab
2026-08-09 01:56:07 +02:00
Edouard Vanbelle
4c34b25a7b
feat(oidc): support of +alias email (clean it up to reconciliate)
2026-08-08 22:21:55 +02:00
Edouard Vanbelle
4d6c4bb92e
feat(oidc): improve error handling
2026-08-08 20:44:27 +02:00
Edouard Vanbelle
93bb114e21
feat(oidc): admin / my account: correct style
2026-08-08 20:21:34 +02:00
Edouard Vanbelle
e9495a63ad
feat(oidc): permit auto/manual oidc account link/unlink
...
link are checking that email matches, +email alias are normalize into email
if email is already used on another account, link is not possible
not usurpation risk as the IDP is choosen by the admin
2026-08-08 19:21:13 +02:00
Edouard Vanbelle
d8b3f2e026
refactor(oidc): migrate provider into issuer
...
this make OIDC compliant with the invariant binding (issuer and subject)
admin can now rename their provider without breaking
clarifing federation_kind: report the kind of federation wired not the allowed login method
hybryd login method are still allowed
2026-08-08 16:37:45 +02:00
Edouard Vanbelle
21607e3e7f
feat(opaque): improve password change
...
- rebuild the opaque envoloppe
- revoke all other useer's sessions
- send a security email to user
2026-08-06 20:52:17 +02:00
Edouard Vanbelle
84a1b0e005
feat(admin/user): show users auth method + add cli to recover broken opaque login
2026-08-05 21:13:21 +02:00
Edouard Vanbelle
c95d108bf8
feat(opaque): show users migrated in admin panel
2026-08-04 23:58:59 +02:00
Edouard Vanbelle
2de476d281
feat(pass reset): request a pass change on 1st login
2026-08-04 23:32:30 +02:00
Edouard Vanbelle
903d769e03
feat(opaque): handle the force password change
2026-08-04 07:03:08 +02:00
Edouard Vanbelle
95104904c4
feat(oidc): reduce amount of page when auto_redirect_to_oidc
2026-08-03 23:00:15 +02:00
Edouard Vanbelle
166b8c4891
feat(oidc): RP initiator logout
...
request token invalidation to IdP (OIDC) on logout
2026-08-03 07:59:14 +02:00
Edouard Vanbelle
5ebe2d3bae
feat(oidc): add auto-redirect for OIDC
...
add `auto_redirect_if_standalone_oidc` in `OXICLOUD_AUTH_POLICIES`
let admin decide to redirect immediately to IdP if OIDC is the only auth method enabled
2026-08-03 01:01:00 +02:00
Edouard Vanbelle
c00451fc88
feat(admin): better refresh in admin section when storage is in migration
2026-08-02 15:59:38 +02:00
Edouard Vanbelle
49a4c53eed
feat(admin storage): show finger print on key generation
2026-08-02 15:26:41 +02:00
Edouard Vanbelle
015f2da0f7
refactor(backend): normalize naming convention to backend rather storage
...
no ambiguity with the backend rather storage
2026-08-02 14:56:29 +02:00
Edouard Vanbelle
4297d8139a
feat(admin dashboard): clarify quota usage vs backend usage
2026-08-02 14:56:22 +02:00
Edouard Vanbelle
dd1528de92
feat(rotate-key): show finger print + way to know if can remove key
2026-08-02 04:26:47 +02:00
Edouard Vanbelle
0a41f561d0
feat(rotate-key): add report + key fingerprint in hexdigit fmt
2026-08-02 02:40:33 +02:00
Edouard Vanbelle
a58351b7ad
feat(storage key rot): add admin panel
2026-08-02 02:40:33 +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
d7c19570a5
feat(storage): wire choice of storage
2026-08-01 14:19:14 +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
48cbec8fae
feat(admin ui): too many tabs, change display
2026-07-30 01:14:35 +02:00
Edouard Vanbelle
4336eca4d1
feat(recoverable-job): add admin page
2026-07-29 08:03:43 +02:00
Edouard Vanbelle
e487af6e7e
feat(breadcrumb): show the granter (sharer) in the breadcrumb
2026-07-27 01:33:09 +02:00
Edouard Vanbelle
785d922243
feat(shared-with-me): show the sharer
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
7718970e75
i18n(search): apply i18n on all filters
2026-07-26 18:18:15 +02:00
Edouard Vanbelle
01076029aa
feat(search): add breadcrumb if a folder is provided
2026-07-26 18:18:15 +02:00
Edouard Vanbelle
87ddf8ffc8
refactor(search): simplify order by + wire reverse
2026-07-26 18:18:15 +02:00
Edouard Vanbelle
e5fa234f3a
refactor(search): normalize buttons to fit match other sections
2026-07-26 18:18:15 +02:00
Edouard Vanbelle
c946cf4333
refactor(search): adapt UI to use ResourceList
2026-07-26 18:18:15 +02:00
Edouard Vanbelle
8637ccfc4c
feat(drag&drop): no drop zone on search page
2026-07-26 18:05:42 +02:00
Edouard Vanbelle
761a203d7c
feat(drag&drop): dropzone is the while page
2026-07-26 13:27:17 +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
Bradley Nelson
3ad38ddde7
test(mounts): admin CRUD hurl coverage + frontend mounts-tab tests
...
Close the two coverage gaps in the external-mounts feature — the admin
REST surface and the admin UI tab both previously had no automated tests.
Backend (hurl):
- tests/api/external_mounts.hurl — black-box coverage of the admin mount
endpoints (list / create / delete): input validation (empty name,
non-existent host path → 400), create → 201 with the full view, the
mount appears in the list, delete → 204 then 404, and the /api/admin
middleware denies a non-admin on every verb → 403.
- server.env: enable OXICLOUD_ENABLE_EXTERNAL_MOUNTS for the test server;
run.sh: register the new scenario.
Frontend (vitest):
- admin/page.test.ts — opening the mounts tab loads + lists mounts,
the create form calls createExternalMount, and delete goes through the
confirm modal to deleteExternalMount.
Tooling:
- devenv.nix: add b3sum (used by tests/api/run.sh's storage-integrity check).
2026-07-21 18:19:03 -06:00