Commit Graph

1968 Commits

Author SHA1 Message Date
Edouard Vanbelle ec70b21c6e refactor(User): clear separation PublicUserDto, FullUserDto, SelfUserDto 2026-08-21 14:29:36 +02:00
Edouard Vanbelle cc3be1ec38 refactor: apply clippy recos for rustc 1.98.0 2026-08-21 14:27:42 +02:00
Edouard Vanbelle 8cd25d7e0f security(RUSTSEC-2026-0258): update h2 crate
and ignore alert for aws dependency, risk of DoS is null with AWS/S3)
2026-08-21 13:49:49 +02:00
Edouard Vanbelle 543a1a88eb feat(admin > users): UI: correct oidc badge 2026-08-20 10:42:09 +02:00
Edouard Vanbelle 2049535516 feat(session): admin UI showing online sessions 2026-08-20 10:42:09 +02:00
Edouard Vanbelle 20e6e05bb4 feat(sessions): identify online sessions (connected users)
identify online session by writing the `last_seen_at`
information is stored in a map and flush each 30s to prevent performance impact on pgsql
2026-08-20 10:40:27 +02:00
Dionisio Pozo 9d69d9c7e7 Merge pull request #678 from Dessalines39394/fix/star-history-chart
fix(docs): restore the broken Star History chart
2026-08-16 22:18:14 +02:00
Dessalines39394 00e831ea83 fix(docs): restore Star History chart with a working provider
The Star History chart was broken because GitHub stargazer API restrictions disabled the previous service. Point the chart at a working alternative so the README graph renders again.
2026-08-16 11:12:08 +00:00
Dionisio Pozo 65e6026789 Merge pull request #676 from EdouardVanbelle/feat/explicit-login-failure-reason
feat(oidc): explicit login failure reason
2026-08-15 00:58:47 +02:00
Edouard Vanbelle 1a8306f3db feat(login): prevent login form flash on OIDC callback 2026-08-14 13:38:24 +02:00
Edouard Vanbelle 0d5a726ef4 feat(oidc): explicit rejection reason
Show explicitly login rejection (for example when a user does not have a valid
email reported from OIDC but email verification is set)
2026-08-14 13:38:24 +02:00
Dionisio Pozo 5d44b0ea75 Merge pull request #674 from EdouardVanbelle/feat/ui-log-namespaced
Feat/UI log namespaced
2026-08-14 03:58:44 +02:00
Dionisio Pozo 4e2b2e072d Merge pull request #673 from EdouardVanbelle/fix/user-preferences
fix(user-pref): permit edition of user prefs for OIDC account
2026-08-14 03:58:29 +02:00
Edouard Vanbelle 4154019603 feat(ui:delta): add heartbeat on worker 2026-08-14 01:52:53 +02:00
Edouard Vanbelle 55a3890ffa doc: add UI diagnostics help 2026-08-14 01:52:53 +02:00
Edouard Vanbelle 24da7443de feat(ui delta upload): user can change oxi.UPLOAD_BATCH_BYTES
```
oxi.UPLOAD_BATCH_BYTES // get current value
oxi.UPLOAD_BATCH_BYTES=1024*1024 // change values
```

values are stored in localstorage, default is 8*1024*1024
2026-08-14 01:52:14 +02:00
Edouard Vanbelle ef465b99de feat(ui:delta upload): warn user if refresh page during upload 2026-08-14 01:52:14 +02:00
Edouard Vanbelle e357caf43b feat(ui): add a logger to change log level and permit better diagnostics
in this case logs are added in the delta upload worker

you can increase verbosity from console via:

```javascript
// Usage:
oxi.setLogLevel('oxi:upload', 'debug')    // deep dive
oxi.setLogLevel('oxi:upload', 'warn')     // quiet
oxi.log.setLevel('debug')                  // everything to debug
```

values are stored in localstorage

example:

```
oxi.setLogLevel('oxi:upload', 'debug');
'oxi:upload → debug'
deltaUpload.ts:120 [f32ce1] delta start {file: 'Revue de presseg.odp', size: 23658927}
deltaUpload.ts:185 [f32ce1] worker: worker start {file: 'Revue de presseg.odp', size: 23658927}
deltaUpload.ts:186 [f32ce1] worker: wasm loaded
deltaUpload.ts:186 [f32ce1] worker: hashed — blake3=150edbc35f3475a0bdeecd15fe5278dda305ce3b27e53e9c40515a69f0b883f3 (76 chunks)
deltaUpload.ts:186 [f32ce1] worker: negotiate: 76 hashes → 76 missing, 0 dedup'd
deltaUpload.ts:186 [f32ce1] worker: chunk PUT: 28 chunks, 8825338 bytes
deltaUpload.ts:186 [f32ce1] worker: chunk PUT: 29 chunks, 8950230 bytes
deltaUpload.ts:186 [f32ce1] worker: chunk PUT: 19 chunks, 5883663 bytes
deltaUpload.ts:186 [f32ce1] worker: ✅ committed — uploaded 23 658 927 B (no dedup, blake3=150edbc35f3475a0bdeecd15fe5278dda305ce3b27e53e9c40515a69f0b883f3)
deltaUpload.ts:185 [f32ce1] worker: commit HTTP 201 {blake3: '150edbc35f3475a0bdeecd15fe5278dda305ce3b27e53e9c40515a69f0b883f3', uploadedBytes: 23658927, reusedBytes: 0, totalBytes: 23658927, attempt: 0}
deltaUpload.ts:213 [f32ce1] delta done {file: 'Revue de presseg.odp', blake3: '150edbc35f3475a0bdeecd15fe5278dda305ce3b27e53e9c40515a69f0b883f3', savedBytes: 0, uploadedBytes: 23658927}
```
2026-08-14 01:52:03 +02:00
Edouard Vanbelle 1104a4cb06 fix(user-pref): permit edition of user prefs for OIDC account 2026-08-13 20:39:55 +02:00
Dionisio Pozo b1493e2d0e Merge pull request #671 from EdouardVanbelle/i18n/context-translation 2026-08-13 16:58:42 +02:00
Dionisio Pozo aa0f12cd26 Merge pull request #670 from EdouardVanbelle/chore/dot-env-example 2026-08-13 16:58:34 +02:00
Edouard Vanbelle 27ab392a35 i18n: fix uncontexted strings
For example jobs where translated into "employment" in other language
Remove english text in other languages
2026-08-13 00:30:55 +02:00
Edouard Vanbelle c61bc818b1 doc: listen to 0.0.0.0 as example for Docker
consider that many user will use docker to test Oxicloud
2026-08-12 20:53:16 +02:00
Dionisio Pozo 06aff99fa3 Merge pull request #635 from swissiety/rfc-6868-param-encoding
fix(vcard): add RFC 6868 parameter value encoding
2026-08-12 10:32:26 +02:00
Edouard Vanbelle 555bf82a16 doc(dpop): update dpop status 2026-08-12 00:11:17 +02:00
Edouard Vanbelle 5a82aa1511 feat(session): UI: improve admin > sessions view 2026-08-11 23:50:43 +02:00
Dionisio Pozo 60ae6b4565 Merge pull request #662 from EdouardVanbelle/chore/i18n
i18n: update all languages
2026-08-10 00:10:42 +02:00
Edouard Vanbelle 2be2928ddc i18n: update all languages 2026-08-09 20:37:09 +02:00
Dionisio Pozo 779005055c Merge pull request #664 from EdouardVanbelle/feat/openapi 2026-08-09 19:46:44 +02:00
Dionisio Pozo 5baac919c8 Merge pull request #661 from EdouardVanbelle/feat/dpop 2026-08-09 19:46:30 +02:00
Edouard Vanbelle f78ed08e92 chore(test): increase rate limit to permit more tests 2026-08-09 18:03:19 +02:00
Edouard Vanbelle e0654cd848 feat(openapi): implement missing routes
Admin:
- /api/admin/drives, /api/admin/drives/{id}, /api/admin/drives/{id}/members, /api/admin/drives/{id}/members/{kind}/{sid}
- /api/admin/jobs/{name}/pause, /api/admin/jobs/{name}/runs/{id}/findings, /api/admin/jobs/runs/purge
- /api/admin/smtp/info, /api/admin/smtp/test
- /api/admin/storage/entries/{name}/rotate
- /api/admin/users/{id}/promote-to-internal

Auth:
- /api/auth/dpop/bind
- /api/auth/magic-link/send
- /api/auth/me/profile
- /api/auth/upgrade-to-internal

Drives / grants / trash / users / dedup:
- /api/drives/{id}, /api/drives/{id}/members (get + delete), /api/drives/{id}/policies, /api/drives/{id}/quota
- /api/grants/{id}/notify
- /api/trash/drive/{drive_id}
- /api/users/{id}
- /api/dedup/check-batch

Faces
- /api/people — cluster list (PersonDto[])
- /api/people/{id}/photos — file ids for one person
- /api/people/{id} — rename (or clear name)
- /api/people/merge — merge two clusters
- /api/people/recluster — re-run clustering
- /api/people/data — nuke all face data
- /api/people/faces/{file_id} — face boxes per photo (FaceBoxDto[])
2026-08-09 17:58:06 +02:00
Edouard Vanbelle 4739506698 fix(ci): fx the db migration check 2026-08-09 17:20:50 +02:00
Edouard Vanbelle d1436077f2 feat(dpop): wire audit event on dpop bound to session 2026-08-09 17:14:53 +02:00
Edouard Vanbelle bbc1e77e33 test(jobs): remove hardcoded number of jobs in tests 2026-08-09 17:03:27 +02:00
Edouard Vanbelle c61341b890 test(login): fix login logout test 2026-08-09 16:36:42 +02:00
Edouard Vanbelle 3b11b804e2 docs: add DPoP and Opaque on main page 2026-08-09 16:36:42 +02:00
Edouard Vanbelle a34da40ce9 feat(sessions): clean expired sessions (exp > 3month) 2026-08-09 16:36:42 +02:00
Edouard Vanbelle d638566d04 feat(openapi): add sessions + opaque 2026-08-09 16:36:42 +02:00
Edouard Vanbelle a7df46f8f8 feat(sessions): show session origin in admin panel + test 2026-08-09 16:36:42 +02:00
Edouard Vanbelle 763ee82028 security(session): do not expose 'sid' from OIDC
prefer exposing origin of the session: passwod, opaque, magic_link, oidc, unknown
2026-08-09 16:36:42 +02:00
Edouard Vanbelle c28eb9b42e fix(oidc): stamp id_token + sid to session 2026-08-09 16:36:42 +02:00
Edouard Vanbelle 950c8c0f38 feat(dpop): provide nonce on immediate login
provide the DPoP nonce via cookie on login, this reduce the amount of API call
and prevent having any first call returning in 401
2026-08-09 16:36:42 +02:00
Edouard Vanbelle 2eb1e8a1d5 feat(logout): improve logout flow 2026-08-09 16:36:19 +02:00
Edouard Vanbelle 321f3ad733 i18n(session): add missing translations 2026-08-09 14:04:42 +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 f4e923e381 fix(test): fix CRC error in png samples 2026-08-09 13:26:40 +02:00
Edouard Vanbelle 6a0911d560 fix(thumbnail): prevent upsampling 2026-08-09 13:26:09 +02:00
Edouard Vanbelle a9eaa3fd74 fix(test): fix playwright to suport OPAQUE+DPOP 2026-08-09 13:10:09 +02:00
Edouard Vanbelle 9e94cb398c test(dpop): OPAQUE + DPOP required for e2e tests 2026-08-09 12:31:39 +02:00