Commit Graph

705 Commits

Author SHA1 Message Date
Edouard Vanbelle bdb5a6c7a9 fix(ui): correct close button on shared dialog
- close is more appropriate rather cancel
    - translate shared dialog
2026-04-25 21:09:05 +02:00
Edouard Vanbelle 1fd92f9efa fix(ui): update shared badge on change 2026-04-25 21:08:38 +02:00
Edouard Vanbelle 1d8da579cc refactor(ui): keep badges order (favorite, shared) 2026-04-24 23:07:33 +02:00
Dionisio Pozo 9095a80da2 Merge pull request #314 from onthebed/clawoss/fix/311-wopi-discovery-unescape
fix(wopi): decode escaped discovery action URLs
2026-04-24 21:50:36 +02:00
onthebed fa5efe0fd0 fix(wopi): decode escaped discovery action URLs
Decode XML-escaped WOPI discovery action attributes before storing them
so generated editor URLs use real query separators instead of literal
& entities. Add regression coverage for parsed actions and generated
edit URLs.
2026-04-25 03:43:30 +08:00
Diocrafts b603ebcdd3 Increase Docker publish timeout 2026-04-23 07:58:58 +02:00
Diocrafts e4847078dc quick fix 2026-04-22 22:41:08 +02:00
Diocrafts 7809d998de Fix Docker publish release trigger 2026-04-22 22:40:32 +02:00
Diocrafts c0cb86c273 docs: migrate legacy docs to official site 2026-04-22 07:50:41 +02:00
Diocrafts e10a908f07 chore(release): bump version to 0.5.6 2026-04-21 18:41:21 +02:00
Diocrafts 36f7602d3f new images 2026-04-20 21:30:27 +02:00
Diocrafts d18bf0d1ce new images 2026-04-20 21:09:30 +02:00
Dionisio Pozo 5288e692f0 Merge pull request #308 from lesgrandsvoisins/main 2026-04-19 12:31:59 +02:00
Chris Mann afffe3d0a1 Corrected sso to oauth2 in config 2026-04-19 11:47:23 +02:00
Dionisio Pozo 5caa6894db Merge pull request #307 from lesgrandsvoisins/main 2026-04-19 11:41:41 +02:00
Chris Mann fd4153b332 Added the starts of a new Nixos Package 2026-04-19 11:33:53 +02:00
Dionisio Pozo 265d5abaf8 Merge pull request #305 from bobo-xxx/clawoss/fix/oidc-username-validation 2026-04-18 09:38:26 +02:00
BillionClaw 0c4290261e fix(auth): sanitize claims.sub when padding/truncating OIDC usernames
When OIDC providers (e.g. Keycloak) use email addresses as usernames or
when claims.sub contains @ or other invalid characters, the username
padding and collision-suffix logic could introduce invalid characters.

The fix filters claims.sub through the same allowed-character filter
before using it in username construction.

Fixes DioCrafts/OxiCloud#259
2026-04-18 07:26:36 +00:00
Dionisio Pozo c1878ec263 Merge pull request #304 from bobo-xxx/clawoss/docs/fix-docker-image-reference 2026-04-18 00:05:42 +02:00
BillionClaw f99e8be94f docs: fix docker image reference from oxicloud to diocrafts/oxicloud 2026-04-17 21:52:59 +00:00
Dionisio Pozo f4f2418b69 Merge pull request #302 from bobo-xxx/clawoss/fix/oidc-email-username-259 2026-04-17 20:12:51 +02:00
BillionClaw b2f0cec6bc fix(auth): handle email-style usernames in OIDC JIT provisioning 2026-04-17 18:10:17 +00:00
Dionisio Pozo f8e3524c9e Merge pull request #301 from EdouardVanbelle/fix/recent-section 2026-04-17 14:04:33 +02:00
Edouard Vanbelle e2f8e8513f fix(navigation): correct recent section 2026-04-17 13:46:24 +02:00
Dionisio Pozo 09f8fd2f62 Merge pull request #300 from EdouardVanbelle/feat/show-shared 2026-04-17 00:03:04 +02:00
Edouard Vanbelle ceff552736 feat(shared): show in classic view if an item is shared 2026-04-16 23:13:08 +02:00
Edouard Vanbelle c8e67f77ea fix(frontent): remove default section to avoid blink when hash in url is not 'file' 2026-04-16 23:13:08 +02:00
Dionisio Pozo 8c49cb347c Merge pull request #299 from EdouardVanbelle/fixes 2026-04-16 06:00:26 +02:00
Edouard Vanbelle 9073274e69 fix(list-view/select-all-checkbox): avoid multiple listener on select all checkbox 2026-04-16 01:06:09 +02:00
Edouard Vanbelle c8dbcd2409 fix(multi-select/action bar): keep large bar 2026-04-16 00:58:11 +02:00
Edouard Vanbelle 8e18e0c848 fix(section/favorite): ensure select-all-checkbox is wired 2026-04-16 00:57:01 +02:00
Dionisio Pozo 3276da366c Merge pull request #298 from EdouardVanbelle/feat/buttons 2026-04-16 00:46:39 +02:00
Dionisio Pozo 2a1e771355 Merge pull request #294 from EdouardVanbelle/chore/add-script-to-populate-icons 2026-04-16 00:13:21 +02:00
Dionisio Pozo 0cb0983b84 Merge pull request #297 from EdouardVanbelle/refactor/section 2026-04-16 00:03:46 +02:00
Edouard Vanbelle 7bb4ed0940 refactor(frontend/sections): remove app.is{Xxx}View and use only app.currentSection 2026-04-16 00:01:50 +02:00
Edouard Vanbelle 33165c6d5a feat(frontand/buttons): move multiselect into buttons = keep visible card/list selector 2026-04-15 23:49:20 +02:00
Edouard Vanbelle 30fffbdd33 refactor(music): use music icon rather svg 2026-04-15 08:49:17 +02:00
Edouard Vanbelle 4c327b3fe1 fix(icons): add missing referenced icons
- icons added via tools/check-icons.py
2026-04-15 08:49:17 +02:00
Edouard Vanbelle 372a2a91bc chore(tools): add a script to populate static/js/core/icons.js 2026-04-15 08:49:17 +02:00
Diocrafts b1827c9f3d fix(docker): switch Azure crates to rustls, drop OpenSSL dependency
Azure SDK crates (azure_core, azure_storage, azure_storage_blobs) were
enabling reqwest/default-tls → native-tls → openssl-sys via their
default 'enable_reqwest' feature. This breaks the Alpine musl Docker
build which lacks libssl.a/libcrypto.a.

- Set default-features = false on all 3 Azure crates
- Enable 'enable_reqwest_rustls' + 'hmac_rust' (pure Rust, no OpenSSL)
- Pin reqwest to ^0.12 (azure_core 0.21 requires reqwest ^0.12)
- openssl-sys is now fully eliminated from the dependency tree
2026-04-15 08:04:36 +02:00
Dionisio Pozo 4d0ad666bd Merge pull request #296 from EdouardVanbelle/fix/music 2026-04-15 06:01:56 +02:00
Dionisio Pozo 152a1aa51e Merge pull request #295 from EdouardVanbelle/style/front-format 2026-04-15 06:01:21 +02:00
Edouard Vanbelle 0b27c3b400 fix(navigation): correct hash url and navigation to music 2026-04-15 00:39:37 +02:00
Edouard Vanbelle 6e3d87c27e style(front): correct format 2026-04-15 00:15:53 +02:00
Diocrafts 761d159a92 feat(dedup): CDC sub-file deduplication with FastCDC + parallel chunk storage + dedup skip
- Replace whole-file SHA-256 dedup with FastCDC 2020 content-defined chunking
  (min 64KB, avg 256KB, max 1MB) + BLAKE3 hashing
- Add chunk_manifests table (file_hash → chunk_hashes[] + chunk_sizes[])
- Add put_blob_from_bytes to BlobStorageBackend trait (all 7 backends)
- 3-phase store_chunks pipeline:
  Phase 0: batch-check existing chunks (single PG query)
  Phase 1: selective disk read (skip existing chunks entirely)
  Phase 2: parallel upload with buffer_unordered(8)
- CDC-aware read_blob_stream and read_blob_range_stream with legacy fallback
- Transactional manifest + chunk ref-count cascade on remove_reference
- 12 CDC tests (determinism, reassembly, contiguity, sub-file dedup, etc.)
- Update deduplication.md to reflect new architecture
2026-04-14 23:17:39 +02:00
Diocrafts cd3733b459 feat: pluggable storage backends (S3, Azure, local) with admin UI
Implement 4-phase external storage backends architecture:

Phase 1 - Foundation:
- BlobStorageBackend trait (application/ports/blob_storage_ports.rs)
- LocalBlobBackend: extracted all tokio::fs ops from DedupService
- S3BlobBackend: AWS SDK with custom endpoint support (MinIO, R2, B2)
- DedupService refactored to use Arc<dyn BlobStorageBackend>

Phase 2 - Admin Panel:
- StorageSettingsService with DB persistence + env override
- Storage tab in admin panel (backend selector, S3 form, provider presets)
- GET/PUT/POST endpoints for storage settings + connection test
- i18n keys (en/es) and BEM CSS

Phase 3 - Migration:
- MigrationBlobBackend decorator (dual-read: target-first + source fallback)
- Background migration job with parallel transfers + progress tracking
- Migration UI (progress bar, ETA, pause/resume/verify/complete)
- 6 admin API endpoints for migration lifecycle

Phase 4 - Enterprise Extras:
- CachedBlobBackend: LRU disk cache for remote backends
- EncryptedBlobBackend: AES-256-GCM at-rest encryption
- AzureBlobBackend: Azure Blob Storage support
- RetryBlobBackend: exponential backoff for transient errors
- Decorator composition in DI: retry → encryption → cache

All 223 tests passing, clippy clean, fmt verified.
2026-04-14 21:33:38 +02:00
Dionisio Pozo 6fc632af7e Merge pull request #291 from EdouardVanbelle/refactor/js-import-export 2026-04-14 19:39:10 +02:00
Edouard Vanbelle 62a7713af5 refactor(server): apply fmt + lint recos 2026-04-14 19:05:01 +02:00
Edouard Vanbelle af23c56486 refactor(build.rs): can now bundle .js modules (flatten import/export) 2026-04-14 19:05:01 +02:00
Edouard Vanbelle c139ba3e3b refactor(build.rs): support of module + minimify each .js files (temp solution) 2026-04-14 19:05:01 +02:00