Commit Graph

679 Commits

Author SHA1 Message Date
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
Edouard Vanbelle 6f4abfcec4 refactor(js): avoid use of window.XXX and move to import/export
- change worker: do not cache html pages (not necessary)
- remove use of window.XXX and maximize import/export,
  this will provide more clarety,
  show circular dependencies + you will benefit IDE help
2026-04-14 19:05:01 +02:00
Edouard Vanbelle a2e5cfce24 chore(biome): JS check: error on undeclared variables/function 2026-04-14 19:03:54 +02:00
Dionisio Pozo 6a6c29033b Merge pull request #293 from EdouardVanbelle/refactor/css-color 2026-04-14 18:15:53 +02:00
Edouard Vanbelle 2061f8808b style(front): apply biome recos 2026-04-14 13:33:55 +02:00
Edouard Vanbelle d01b2c6ec4 refactor(css): use variable rather direct color 2026-04-14 13:33:51 +02:00
Edouard Vanbelle 08884f3b6d refactor(css): track use of undeclared CSS variables 2026-04-14 12:43:51 +02:00
Dionisio Pozo 5677089f43 Merge pull request #292 from EdouardVanbelle/chore/css-rules 2026-04-14 01:20:50 +02:00
Edouard Vanbelle 11973cae2a chore(css): ensure css are not using direct colors 2026-04-14 01:10:34 +02:00
Dionisio Pozo 37ffa85ab7 Merge pull request #290 from subhranil2605/fix/windows-crlf-entrypoint 2026-04-13 19:32:41 +02:00
Subhranil Sarkar 96e9087f41 fix: resolve CRLF line ending issue for Windows users
Windows Git converts LF to CRLF by default, causing entrypoint.sh
to fail inside Alpine Linux containers with 'no such file or directory'.

Changes:
- Dockerfile: added sed to strip carriage returns from entrypoint.sh
- .gitattributes: enforce LF line endings for all shell scripts

Fixes #289
2026-04-13 21:49:08 +05:30
Dionisio Pozo 65c8fc7f5e Merge pull request #288 from EdouardVanbelle/fix/frontend-search-view 2026-04-13 14:42:24 +02:00
Dionisio Pozo f74cf4d9b5 Merge pull request #287 from EdouardVanbelle/fix/frontend-shared-view 2026-04-13 14:41:48 +02:00
Dionisio Pozo 024cdc610a Merge pull request #286 from EdouardVanbelle/refactor/dark-theme 2026-04-13 14:29:14 +02:00
Edouard Vanbelle 2733542bce refactor(css): dark theme: remove and merge specific cases 2026-04-13 13:26:38 +02:00
Edouard Vanbelle e6a815a03c refactor(css): dark theme: merge photos 2026-04-13 13:26:38 +02:00
Edouard Vanbelle f7c7136149 refactor(css): dark theme: merge notfication + dropzone 2026-04-13 13:26:38 +02:00
Edouard Vanbelle 260eb4d4c8 refactor(css): merge context menu for dark theme 2026-04-13 13:26:38 +02:00
Edouard Vanbelle 4dff552299 refactor(css): use 1 global declaration for scrollbar 2026-04-13 13:26:38 +02:00
Edouard Vanbelle ce207ebad1 refactor(css): merge profile + admin dark style 2026-04-13 13:26:38 +02:00
Edouard Vanbelle 413832d1a2 refactor(css): remove use generic colors for language-selector + correct item selection color 2026-04-13 13:26:38 +02:00
Edouard Vanbelle 26ce794090 fix(SharedSection): hide files list header, shared view has it's own view 2026-04-13 13:25:48 +02:00
Edouard Vanbelle 28963965a1 fix(searchResult): move search result into sticky header 2026-04-13 13:24:58 +02:00
Dionisio Pozo 9e632e147a Merge pull request #284 from su77ungr/main 2026-04-13 04:17:14 +02:00
su77ungr 1b14475d05 add WWW-Authenticate handshake for spec-compliancy 2026-04-13 02:12:17 +02:00
Dionisio Pozo 9e3e766646 Update README with OxiCloud vs NextCloud comparison 2026-04-12 20:59:45 +02:00
Dionisio Pozo dcea5040d0 Merge pull request #283 from EdouardVanbelle/refactor/css-regroupement 2026-04-12 09:53:27 +02:00