Dionisio Pozo
34f04b216a
Merge pull request #683 from EdouardVanbelle/refactor/userdto
2026-08-22 23:31:25 +02:00
Dionisio Pozo
f231c36e76
Merge pull request #684 from yzxcj797/fix/floating-datetime-682
2026-08-22 23:31:03 +02:00
Dionisio Pozo
358ab670ea
Merge pull request #680 from EdouardVanbelle/feat/active-sessions
2026-08-22 23:30:39 +02:00
Edouard Vanbelle
06e4df5318
fix(upload): fix race condition in front-end
2026-08-22 08:09:21 +02:00
yzxcj797
af9d9badb4
fix(caldav): accept floating-time DTSTART/DTEND values
...
parse_ical_datetime rejected any datetime without the trailing 'Z',
so events created without a timezone in calendar apps — which DAVx5
syncs as floating time per RFC 5545 3.3.5 form 2 — failed with
'Invalid DTSTART: Invalid datetime format: expected YYYYMMDDTHHMMSSZ'
and HTTP 400, breaking the whole event upload.
Accept the 15-char floating form and interpret the wall-clock time as
UTC. TZID-anchored forms remain unsupported until VTIMEZONE handling
lands.
Fixes #682
2026-08-22 07:28:21 +08:00
Edouard Vanbelle
537e7f15ef
fix(users): /api/admin/users always returns a FullUserDto[]
2026-08-22 00:14:37 +02:00
Edouard Vanbelle
a8fa281a02
refactor(user): apply chanoges to hurl tests
2026-08-21 23:56:25 +02:00
Edouard Vanbelle
c583b26355
refactor(user): apply change on update entries
2026-08-21 23:18:23 +02:00
Edouard Vanbelle
6a11036d96
feat(admin): show active session/users on dashboard
2026-08-21 23:00:49 +02:00
Edouard Vanbelle
117815ef4d
feat(user): show if user is online
2026-08-21 19:34:11 +02:00
Edouard Vanbelle
ec9b5087f3
refactor(User): apply changes on frontend
2026-08-21 17:10:02 +02:00
Edouard Vanbelle
a11ae679cf
refactor(User): move UserDto to PublicUserDto
2026-08-21 16:10:51 +02:00
Edouard Vanbelle
d17b3b6bd3
refactor(User): wire /api/auth/me to SelfUserDto and /api/admin/users to FullUserDto
2026-08-21 15:43:43 +02:00
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
xalares
915d13ad8e
Miscellaneous french translation corrections
2026-08-20 19:27:32 +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