Edouard Vanbelle
fd467b2d3b
ci(load): add ref input to dispatch nightly against any branch
...
Adds a `ref` input to workflow_dispatch so the nightly can be triggered
from main and run the scenarios against a feature branch that does not
yet carry the workflow file (e.g. feat/drive). Empty input falls back
to `github.ref`, so cron and bare dispatch are unchanged.
The regression-issue title and body now show the tested ref instead of
`github.sha`, which always resolves to the workflow's ref (main) under
workflow_dispatch and would otherwise mislead.
2026-06-18 09:38:25 +02:00
Edouard Vanbelle
0ef4c624c5
chore(load): start implementation of load tests
...
initial test from Ed's nuc:
metric pctl baseline current delta status
-----------------------------------------------------------------------------------------------
folder_cascade.list_depth1 p50 0.3ms 0.3ms -6.3% ok
folder_cascade.list_depth1 p95 2.3ms 0.5ms -75.7% ok
folder_cascade.list_depth1 p99 4.7ms 2.5ms -48.1% ok
folder_cascade.list_depth4 p50 0.4ms 0.3ms -10.0% ok
folder_cascade.list_depth4 p95 0.9ms 0.6ms -31.2% ok
folder_cascade.list_depth4 p99 2.4ms 1.0ms -56.7% ok
folder_cascade.list_depth8 p50 0.3ms 0.3ms -8.8% ok
folder_cascade.list_depth8 p95 0.6ms 0.5ms -22.2% ok
folder_cascade.list_depth8 p99 1.9ms 0.5ms -71.5% ok
folder_cascade.list_depth_deep p50 0.3ms 0.3ms -5.0% ok
folder_cascade.list_depth_deep p95 0.6ms 0.5ms -18.6% ok
folder_cascade.list_depth_deep p99 2.0ms 0.7ms -67.2% ok
share_cascade_rebac.list_grants p50 0.4ms 0.3ms -27.6% ok
share_cascade_rebac.list_grants p95 1.2ms 0.5ms -57.0% ok
share_cascade_rebac.list_grants p99 1.7ms 1.1ms -36.7% ok
share_cascade_rebac.fetch_as_grantee_depth1 p50 0.5ms 0.5ms -11.1% ok
share_cascade_rebac.fetch_as_grantee_depth1 p95 1.1ms 0.7ms -41.2% ok
share_cascade_rebac.fetch_as_grantee_depth1 p99 3.0ms 1.3ms -58.3% ok
share_cascade_rebac.fetch_as_grantee_depth4 p50 0.5ms 0.5ms -13.7% ok
share_cascade_rebac.fetch_as_grantee_depth4 p95 1.4ms 0.7ms -50.5% ok
share_cascade_rebac.fetch_as_grantee_depth4 p99 2.2ms 1.1ms -49.3% ok
share_cascade_rebac.fetch_as_grantee_depth8 p50 0.5ms 0.4ms -16.0% ok
share_cascade_rebac.fetch_as_grantee_depth8 p95 0.9ms 0.7ms -26.1% ok
share_cascade_rebac.fetch_as_grantee_depth8 p99 1.5ms 0.9ms -40.1% ok
share_cascade_rebac.fetch_as_grantee_depth_deep p50 0.5ms 0.4ms -17.3% ok
share_cascade_rebac.fetch_as_grantee_depth_deep p95 1.0ms 0.7ms -31.2% ok
share_cascade_rebac.fetch_as_grantee_depth_deep p99 1.6ms 0.8ms -49.4% ok
subject_group_nested.fetch_as_member_depth1 p50 0.5ms 0.4ms -8.4% ok
subject_group_nested.fetch_as_member_depth1 p95 0.6ms 0.6ms -10.2% ok
subject_group_nested.fetch_as_member_depth1 p99 1.4ms 0.6ms -55.2% ok
subject_group_nested.fetch_as_member_depth4 p50 0.5ms 0.5ms -7.9% ok
subject_group_nested.fetch_as_member_depth4 p95 0.6ms 0.6ms -4.0% ok
subject_group_nested.fetch_as_member_depth4 p99 0.7ms 0.6ms -2.2% ok
subject_group_nested.fetch_as_member_depth8 p50 0.5ms 0.4ms -8.9% ok
subject_group_nested.fetch_as_member_depth8 p95 0.5ms 0.6ms +7.1% ok
subject_group_nested.fetch_as_member_depth8 p99 0.6ms 0.7ms +10.3% ok
subject_group_nested.fetch_as_member_depth_deep p50 0.5ms 0.4ms -7.6% ok
subject_group_nested.fetch_as_member_depth_deep p95 0.6ms 0.5ms -11.9% ok
subject_group_nested.fetch_as_member_depth_deep p99 0.6ms 0.7ms +8.9% ok
2026-06-18 09:38:25 +02:00
Edouard Vanbelle
f095baf26b
chore(ci): translation and icons will warn only
2026-06-18 02:46:01 +02:00
Edouard Vanbelle
cde19704b3
chore(ci): fix ci.yml
2026-06-18 02:03:42 +02:00
Bradley Nelson
803150635c
add frontend
2026-06-16 21:26:36 -06:00
Bradley Nelson
87d68c5b6f
init plugins
2026-06-16 17:57:57 -06:00
Edouard Vanbelle
b1455b5583
chore(wasm): check, clippy, test, CI
2026-06-15 15:53:43 +02:00
Edouard Vanbelle
595273277b
test(e2e): webdav + nextcloud full e2e test coverage
...
add a full coverage of Webdav and Nextcloud
purpose: prepare move to Drives and ensure no regression at all
test scenarios are in docs/plan/BASELINE_TESTS_NC_WEBDAV.md
current existing bugs identified via these tests:
┌──────────┬─────────┬────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ Bug │ Surface │ Pin location │
├──────────┼─────────┼────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ G4/G5/K5 │ NC │ AlreadyExists → 500 instead of 412 (handle_move + trashbin restore) │
├──────────┼─────────┼────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ G9 │ NC │ Folder DELETE not row-recursive — orphan descendants stay live │
├──────────┼─────────┼────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ M5/M7 │ Native │ resolve_path_for_user mismatch — PUT writes, GET reads via lenient lookup, MOVE/DELETE can't find │
│ │ │ via strict │
├──────────┼─────────┼────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ M8 │ Native │ COPY discards destination filename — collides with source │
├──────────┼─────────┼────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ N2 │ Native │ LOCK creates the token, mutators don't check it — class-2 advertisement is aspirational │
└──────────┴─────────┴────────────────────────────────────────────────────────────────────────────────────────────────────┘
2026-06-13 19:01:40 +02:00
Edouard Vanbelle
8b08b081c5
chore(ci): check icons and i18n
2026-06-05 14:18:41 +02:00
Edouard Vanbelle
d2dedcbb00
fix(integration-test): ensure integration tests are runned on a separate DB to avoid polution
2026-05-31 23:53:40 +02:00
Edouard Vanbelle
e169f53218
test(integration): add integration test on subject group
2026-05-31 22:45:09 +02:00
Edouard Vanbelle
636f0b87bd
fix(builder): add OXC semantic to deconflic JS modules using the same global variables/functions
...
- this solve issues like: Uncaught SyntaxError: Identifier 'GROUP_BY_DEFS' has already been declared (at app.XXXX.js)
- add a protection on build: test to reload bundled app, on failure exit immediately (prevent the build or a broken bundle)
- add final check during CI: node --check on the bundle to brevent going to production too if any failure
example of a bundle:
```
warning: oxicloud@0.6.0: bundle: 50 files in dependency order:
warning: oxicloud@0.6.0: bundle: deconflicting 2 name(s): GROUP_BY_DEFS, LOAD_MORE_ID
warning: oxicloud@0.6.0: bundle: [29] GROUP_BY_DEFS -> GROUP_BY_DEFS_29 (favoritesView.js)
warning: oxicloud@0.6.0: bundle: [29] LOAD_MORE_ID -> LOAD_MORE_ID_29 (favoritesView.js)
warning: oxicloud@0.6.0: bundle: [31] GROUP_BY_DEFS -> GROUP_BY_DEFS_31 (recentView.js)
warning: oxicloud@0.6.0: bundle: [31] LOAD_MORE_ID -> LOAD_MORE_ID_31 (recentView.js)
warning: oxicloud@0.6.0: bundle: [34] GROUP_BY_DEFS -> GROUP_BY_DEFS_34 (sharedWithMeView.js)
warning: oxicloud@0.6.0: bundle: [34] LOAD_MORE_ID -> LOAD_MORE_ID_34 (sharedWithMeView.js)
warning: oxicloud@0.6.0: bundle: [44] GROUP_BY_DEFS -> GROUP_BY_DEFS_44 (filesView.js)
warning: oxicloud@0.6.0: bundle: [44] LOAD_MORE_ID -> LOAD_MORE_ID_44 (filesView.js)
```
2026-05-28 14:22:53 +02:00
Edouard Vanbelle
7ddbbc94cc
test(e2e): update all images and grow snapshot comparaison sensitivity
2026-05-27 11:35:42 +02:00
Edouard Vanbelle
891ff89a5d
test(playwright): add playwright report to track changes + correct playwright parameters
...
ci: fix actions/checkout@v6 → @v4 (v6 does not exist)
GitHub started rejecting invalid action versions at parse time,
causing every CI run to fail with 0s / 'workflow file issue'
before any jobs could start.
* test(e2e): only no retry
* test(e2e): use static name in tests to facilitate screenshot comparaison
* test(e2e): update linux screenshots
* test(e2e): adapt test due to user-vignette generation
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-27 11:29:58 +02:00
Edouard Vanbelle
a181d4081e
ci: add typescript check (no emit, check only types are fully declared)
2026-05-19 10:18:40 +02:00
Edouard Vanbelle
b47013ea8a
fix(ci): add missing b3sum
2026-05-13 19:47:39 +02:00
Edouard Vanbelle
f7946028f4
tests: add webdav tests
2026-05-13 15:55:34 +02:00
Edouard Vanbelle
a0aa9c5cd1
ci: trigger test on /tests change
2026-05-11 20:00:22 +02:00
Edouard Vanbelle
5df4075f7f
test(api): add API test coverage on files, folders, favorites, recent, trash
2026-05-11 19:31:12 +02:00
Edouard Vanbelle
a6923da88a
ci: build, api-test, front-test only on pull_request
2026-05-11 12:12:07 +02:00
Edouard Vanbelle
d8625b9f39
ci: merge end-to-end workflow into ci, permits to reduce amount of built
2026-05-11 12:10:15 +02:00
Edouard Vanbelle
cc14ec53ee
ci(api-tests): add API test to CI
2026-05-11 10:53:59 +02:00
Edouard Vanbelle
ddf6104749
chore(e2e-test): fix snapshot pixel ratio + try to reuse cargo build to reduce cpu consumption
2026-05-08 21:41:28 +02:00
Edouard Vanbelle
3c3d24ac72
test: initial end to end test with playwright
2026-05-08 21:41:28 +02:00
Edouard Vanbelle
46e823ffda
chore: move specific CI audit rules into global .cargo/audit.toml
2026-05-04 14:23:01 +02:00
Diocrafts
b603ebcdd3
Increase Docker publish timeout
2026-04-23 07:58:58 +02:00
Diocrafts
7809d998de
Fix Docker publish release trigger
2026-04-22 22:40:32 +02:00
Edouard Vanbelle
08884f3b6d
refactor(css): track use of undeclared CSS variables
2026-04-14 12:43:51 +02:00
Edouard Vanbelle
11973cae2a
chore(css): ensure css are not using direct colors
2026-04-14 01:10:34 +02:00
Diocrafts
f08cffc0e8
feat: add VitePress docs site, music file picker modal, Dockerfile optimization, i18n keys for 14 locales
...
- Add docs/ with VitePress site (19 pages): guide, config, architecture, FAQ
- Add GitHub Actions workflow for auto-deploy to GitHub Pages
- Replace music 'Add Tracks' upload picker with in-app audio file browser modal
- Add music picker CSS styles with dark theme support
- Add missing i18n keys (search_audio, no_audio_files, etc.) to all 14 locales
- Optimize Dockerfile: shared base stage, COPY --chmod, consolidated RUN, HEALTHCHECK
- Improve README: docs links, updated stats (222+ tests, 14 languages), feature status
2026-04-11 20:58:34 +02:00
Edouard Vanbelle
057bab5dad
chore: prepare JS + CSS linter and add CI depending frontend of backend changes
2026-04-08 00:09:24 +02:00
Dionisio
e90fb2ea3c
fix(release): v0.5.4 — fix Docker build and publish pipeline
...
- Dockerfile: add dummy src/bin/generate-openapi.rs in cacher stage to satisfy
Cargo.toml [[bin]] target resolution during dependency caching
- docker-publish.yml: add explicit ref to checkout steps so workflow_dispatch
builds the correct tag instead of HEAD of main
- docker-publish.yml: increase timeout to 180min for multi-arch QEMU builds
- Bump version to 0.5.4
Closes #250
2026-04-04 21:25:18 +02:00
Edouard Vanbelle
badf35f08f
chore: remove all executable attributes on non bash files
2026-04-01 23:14:42 +02:00
BillionClaw
3569c5fa5a
fix(ci): add PostgreSQL service to Docker publish workflow
...
The Docker Hub Release workflow's test job was missing the PostgreSQL
service required by the test suite. This caused the workflow to fail
before building and pushing the Docker image, resulting in missing
container images (e.g., v0.5.2).
Add the PostgreSQL service configuration matching ci.yml:
- PostgreSQL 16-alpine service container
- Health check configuration
- DATABASE_URL environment variable
- Database initialization step
Fixes #193
2026-03-17 10:49:02 +08:00
Jared Wolff
f6e2b30688
fix(ci): update references from db/schema.sql to sqlx migrations
...
CI and Docker builds broke after removing db/ in favor of migrations/.
- ci.yml: point psql init at migrations/20260307000000_initial_schema.sql
- Dockerfile: COPY migrations instead of db; remove unused db copy in final stage
- docker-build.yml: remove db/schema.sql presence check
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-09 15:43:15 -04:00
Dionisio
f2d35ca792
feat: auto-persist JWT secret, remove setup token requirement
...
- JWT secret auto-generates and persists to <STORAGE_PATH>/.jwt_secret
- Remove setup token: first admin setup is open until system initialized
- Fix schema.sql: move CREATE EXTENSION pg_trgm/ltree to top
- Update login UI and auth.js to remove setup token fields
2026-03-05 22:12:53 +01:00
George Wu
7e2e110cec
Ignore RUSTSEC-2023-0071 in security audit
...
RUSTSEC-2023-0071 (Marvin Attack) affects RSA private key operations.
This application uses HS256 for internal JWT signing and only performs
RSA public key verification (not private key operations) for OIDC/OAuth2.
2026-02-24 17:09:07 -08:00
Dionisio
a52d221c07
ci: increase docker build timeout to 2 hours for arm64 emulation
2026-02-11 18:56:39 +01:00
Dionisio
95e2f9acc8
ci: remove dependabot configuration
2026-02-11 18:00:38 +01:00
Dionisio
0f1dc0031e
fix(ci): trigger docker publish on tag push instead of release event
...
GitHub Actions events created by GITHUB_TOKEN don't trigger other
workflows. Changed trigger from 'release: published' to 'push: tags'
so docker-publish runs directly from the tag push.
2026-02-11 14:16:02 +01:00
Dionisio
ee131abeee
ci: add release workflow for automated GitHub releases
2026-02-11 14:11:16 +01:00
Dionisio
1e8a7dd5bb
feat: redesign admin panel & profile page, optimize Dockerfile, remove rootless
...
- Completely redesign admin.html matching OxiCloud design system
- Create standalone profile.html page with avatar, details & password change
- Optimize Dockerfile: 3-stage build, non-root user, OCI labels, layer cache
- Add .dockerignore to reduce build context
- Remove redundant Dockerfile.rootless & rootless-compose.yml
- Redesign login language selector as compact dropdown with search
- Fix CI/CD workflows (ci.yml, docker-build.yml, docker-publish.yml)
- Update app.js to navigate to profile page instead of modal
2026-02-11 14:09:40 +01:00
Dionisio
3050955f9c
feat: add admin/profile UI, i18n (fr/de/pt), fix CI pipelines
...
- Add admin panel link and profile modal in user menu dropdown
- Add French, German and Portuguese locale support (full translations)
- Register new locales across JS frontend and Rust backend
- Create CI pipeline (fmt, clippy, test, audit, build)
- Fix docker-build.yml (cache, real tests, reduced timeout)
- Fix docker-publish.yml (multi-arch via QEMU, latest tag, pre-publish tests)
- Add dependabot.yml for automated dependency updates
2026-02-11 12:37:03 +01:00
Dionisio Pozo
de60474c6c
Update docker-publish.yml
2025-04-22 16:24:14 +02:00
Dionisio Pozo
2a3503bcd0
Update docker-publish.yml
2025-04-22 11:44:12 +02:00
Dionisio Pozo
2aed76f9bc
Update docker-publish.yml
2025-04-22 09:00:12 +02:00
Dionisio Pozo
9cb4abaec7
Update docker-build.yml
2025-04-22 08:59:33 +02:00
DioCrafts
01c81bfb1a
adding features
2025-04-02 23:14:12 +02:00
DioCrafts
8b1f6d71c8
adding license, code of conduct, templates... etc)
2025-03-26 10:40:57 +01:00