WebDAV sync support, access tokens, REST control endpoints #10

Merged
LeoVasanko merged 6 commits from webdav into main 2026-04-26 05:22:52 +00:00
6 Commits
Author SHA1 Message Date
Leo Vasanko 4fd166b934 Use https in WebDAV examples and add Android clients
- Replace all http:// example URLs with https:// in WebDAV section
- Add Solid Explorer and CX File Explorer Android setup instructions
- Use davs:// and webdavs:// for Linux HTTPS WebDAV URLs
2026-04-26 05:18:19 +00:00
Leo Vasanko 747ae7a8d5 Document WebDAV access and compatible clients in README
- Add WebDAV Access section with client setup instructions
- Explain Basic auth and API token authentication for WebDAV
- Document Windows NTLM limitation and token-based workaround
- Fix typo: authenticatioon → authentication
2026-04-26 05:15:55 +00:00
Leo Vasanko f7ffc3f8bc Restore UA-aware auth header advertisement
Revert accidental removal of WWW-Authenticate headers.
Windows WebDAV clients receive Basic + Negotiate;
all other clients receive Basic only.
2026-04-26 05:13:37 +00:00
Leo Vasanko de78b41be4 Add token-based auth for WebDAV/NTLM and API access
- Add Token model with CRUD endpoints (/api/tokens, /auth/tokens)
- Support Basic auth with token:<secret> for built-in users
- Implement full NTLMv2 handshake for Windows WebDAV clients
- Add SSO token auth via check_permissions() proxy
- Hydrate request auth context from session or Authorization header
- Persist session cookie after successful Authorization-based login
- Add secure flag to session cookies based on request scheme
- Add frontend UserTokensModal for creating/revoking tokens
- Fix devserver to run workspace source via python -m cista
- Add tests for token CRUD and file auth (Basic, NTLM, session)
- Remove proactive WWW-Authenticate advertisement
2026-04-26 04:58:46 +00:00
Leo Vasanko d1faedc011 WebDAV support! 2026-04-25 18:20:55 +00:00
Leo Vasanko 410a8a7568 Replace WebSocket control API with REST file operations
- Add cista/fileserver.py: REST blueprint at /files with PUT upload,
  DELETE, MKCOL, POST cp/mv (combined), GET/HEAD static serving
- Remove WS control handler and all ControlBase/Cmd protocol types
- Frontend: SelectionToolbar, FileExplorer, Gallery now POST to /files
  instead of opening a control WebSocket per operation
- Remove controlUrl export from WS.ts
- Add tests: REST API, static streaming, path/escaping security
- Catch ValueError from filename.sanitize and return 400 Bad Request
2026-04-25 17:26:08 +00:00