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
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
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
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
Edouard Vanbelle
057bab5dad
chore: prepare JS + CSS linter and add CI depending frontend of backend changes
2026-04-08 00:09:24 +02:00
Edouard Vanbelle
badf35f08f
chore: remove all executable attributes on non bash files
2026-04-01 23:14:42 +02: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
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