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
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
LeoVasanko
91e07d61b6
Uploads by PUT range requests rather than WS, remove dead code WS handlers ( #9 )
...
Increases block size to 16 MiB and adjusts progress display to work smoothly with that. Also removes download WS that was already unused. Provides faster upload speed than over WS.
Reviewed-on: #9
2026-04-25 03:55:52 +01:00
Leo Vasanko
48112dec26
Frontend: don't show img preview for video/audio/doc files
...
- MediaPreview.vue: only render <img> for non-video, non-audio items
(video/audio already have their own player containers)
- Document.ts: limit previewurl to previewable files (was checking only .complete)
2026-04-24 23:54:02 +00:00
Leo Vasanko
53b3835ba2
Upload end of file first for large files (for preview to function).
2026-04-24 00:02:17 +00:00
Leo Vasanko
bb25d8db74
Avoid showing previews while file upload is in progress or the file is incomplete. This avoids 500 errors on server trying to generate the preview.
2026-04-23 19:34:16 +00:00
Leo Vasanko
a2e2cccebe
Don't show broken media previews during uploads, instead show a spinner indicating completion.
2026-04-23 17:40:03 +00:00
Leo Vasanko
314422c96c
Allow duplicate selected entries of the same name from different paths.
2026-04-23 17:01:03 +00:00
Leo Vasanko
0b08acdcc3
Intl support for search hotkey (where US keyboard has it).
2026-02-05 00:57:42 +00:00
Leo Vasanko
298f389dad
Keyboard navigation fixes (still not perfect but better).
2026-02-05 00:54:15 +00:00
Leo Vasanko
a163798178
Fix search bar losing focus under specific conditions, mainly that when the search takes more than 50ms, causing results to be emptied, with a file priorly focused, was causing breadcrumbs to get focused. (reactivity is hard)
2026-02-05 00:07:45 +00:00
Leo Vasanko
204a308396
Pass the new allocated field through search filtering. Fixes issue where 0 allocated was reported in search results.
2026-02-04 23:55:05 +00:00
Leo Vasanko
ad37a48df9
Brighter low free space colors.
2026-02-04 20:40:59 +00:00
Leo Vasanko
84d80518a6
Auth restricted endpoint is picky about the trailing slash, use it consistently.
2026-02-04 20:35:29 +00:00
Leo Vasanko
5b4be95ace
Correctly handle customized server name in admin settings dialog.
2026-02-04 20:15:56 +00:00
Leo Vasanko
69c26ff85b
Space usage widget show full name if possible, allow longer names.
2026-02-04 20:12:49 +00:00
Leo Vasanko
84fcf25cc5
Rename HeaderSelected to SelectionToolbar.
2026-02-04 20:01:05 +00:00
Leo Vasanko
09ef869d7e
Improved selection toolbar UX.
2026-02-04 19:57:31 +00:00
Leo Vasanko
1f757ef335
Consistent header and footer sizing.
2026-02-04 19:19:41 +00:00
Leo Vasanko
b3df715e25
Fix free/used disk space handling. Implement file disk usage tracking. Display indicators on FileExplorer for incomplete files (sparse allocation, upload in progress).
2026-02-04 19:15:09 +00:00
Leo Vasanko
0656a027f4
Implement server name config to override the default of using share folder name.
2026-02-04 18:00:21 +00:00
Leo Vasanko
aab1c59022
Punch a hole in the pie to make a donut.
2026-02-04 17:27:56 +00:00
Leo Vasanko
395d6c3cce
Unused imports
2026-02-04 17:09:14 +00:00
Leo Vasanko
c698f74319
Don't allow header scale larger with the window above 1000px, while the rest of the app keeps scaling by root font size.
2026-02-04 17:08:32 +00:00
Leo Vasanko
56aacb8f87
Revisited diskspace widget animations and styling.
2026-02-04 17:01:22 +00:00
Leo Vasanko
78890347cc
More consistent and properly scaling header layout and positioning. Search keyboard tooltip hidden for mobile users.
2026-02-04 16:13:03 +00:00
Leo Vasanko
598c63278a
New much prettier disk space widget.
2026-02-04 15:14:06 +00:00
Leo Vasanko
0b8462d0dc
Refactor to make full file list completely non-reactive because pinia persistence was causing long delays especially while searching when there were a lot of files. Implement better ghosts that do not alter the file list.
2026-02-04 02:03:41 +00:00
Leo Vasanko
d7aae07af0
Prebuild lookup structures to reduce UI lag on very large file lists.
2026-02-04 00:18:28 +00:00
Leo Vasanko
510a908841
Disk space pie chart.
2026-02-01 06:59:15 +00:00
Leo Vasanko
15d227fda2
Implement a larger set of file menu options.
2026-02-01 06:34:50 +00:00
Leo Vasanko
5c530652fa
Change default port to 8989 like Droppy. Using 8999 for backend in dev mode.
2026-02-01 06:09:56 +00:00
Leo Vasanko
e8517c75e2
Better UI feedback on search order changes.
2026-02-01 05:48:15 +00:00
Leo Vasanko
b1fae56c86
Fix a search caching issue.
2026-02-01 05:38:48 +00:00
Leo Vasanko
098febec99
New header/footer layout and styles. Use cursorTooltip in more places, make it prettier. Fix tooltip still sometimes activating with touch (now only with mouse).
2026-02-01 05:22:48 +00:00
Leo Vasanko
6264f9624f
Remove download to folder, just download zip or single file. The folder download is still accessible by Alt+Click on the download button (in the few browsers that support it).
2026-02-01 03:47:14 +00:00
Leo Vasanko
e0937ed233
Automatically navigate into newly uploaded folders.
2026-02-01 03:27:13 +00:00
Leo Vasanko
51bf029d2a
Implement ghost items reflecting pending changes from frontend (e.g. files being uploaded) until the server acknowledges them. This gives immediate UI feedback and is clearer in cases.
2026-02-01 03:23:43 +00:00
Leo Vasanko
abe967de1b
Remove dead code.
2026-02-01 02:49:50 +00:00
Leo Vasanko
5ead0f4deb
Debouncing to avoid UI flicker while typing in search.
2026-01-31 22:45:27 +00:00
Leo Vasanko
9828597e6b
Search optimizations and fixes. Prevent re-renders on hash change (redux). Clear previous search results at the start of a new search.
2026-01-31 22:37:47 +00:00
Leo Vasanko
d1440f539b
Optimizing the search faster; don't trigger full re render by URL changes.
2026-01-31 22:17:05 +00:00
Leo Vasanko
40fb7bf398
Implement background worker to make search response faster and avoid hanging the UI when there are a lot of files. Implement better toast messages for transitional events that automatically disappear.
2026-01-31 21:02:16 +00:00
Leo Vasanko
1e74245721
Smarter ZIP download naming.
2026-01-31 20:59:43 +00:00
Leo Vasanko
61e59c9b45
Fixes for public mode authentication flows.
2026-01-31 04:48:44 +00:00
Leo Vasanko
9c173ff0bf
Finalize Paskia integration and built-in authentication.
2026-01-31 00:48:02 +00:00
Leo Vasanko
1dab7f0fd1
Bundle icons into a single file.
2026-01-30 19:12:27 +00:00
Leo Vasanko
26b7a8595e
TypeScript check and typing corrections.
2026-01-30 19:03:37 +00:00
Leo Vasanko
1061c916aa
Upgrade frontend packages, Pinia API changes.
2026-01-30 18:53:25 +00:00
Leo Vasanko
938ece90fe
Update scripts with latest fastapi-vue-setup.
2026-01-30 18:52:54 +00:00