30 Commits

Author SHA1 Message Date
824cd2ad53 refactor(backend): extract governor setup into a function 2026-06-28 17:46:16 +03:00
40d57d7c77 fix(backend): add missing sqlx cache for thumbnail update query 2026-06-28 17:43:30 +03:00
da9cd3e03b feat(backend): keep logs in daily rolling files 2026-06-28 13:05:09 +03:00
eb95eed752 refactor(backend): return concrete FuturesByteStream instead of impl Stream 2026-06-28 13:03:37 +03:00
affe9bcd14 feat: generate and display thumbnails asynchronously 2026-06-28 12:18:26 +03:00
7d06c9e93d docs: add README and env examples 2026-06-24 20:11:07 +03:00
a40c1f7396 feat(backend): add swagger-ui endpoint via utoipa 2026-06-24 19:22:39 +03:00
be3f7da565 fix(backend): skip auth rate limiter in test env 2026-06-14 23:38:48 +03:00
91459db5ec refactor(backend): remove redundant main_response_mapper middleware 2026-06-13 18:59:52 +03:00
450b3fdf52 refactor(backend): drop redundant LoftError from Result return types 2026-06-13 17:31:03 +03:00
2616896ecb refactor(backend): replace unwraps with typed errors 2026-06-13 12:38:44 +03:00
21d65af470 test(backend): cover stream_part range requests 2026-06-07 20:20:53 +03:00
4699ffe6af feat(backend): cap upload body size at 5 GB 2026-06-07 19:54:14 +03:00
b2a7787e45 feat(backend): serve video with HTTP range requests 2026-06-07 19:53:19 +03:00
ec1c458bb7 feat(backend): rate limit auth routes with tower_governor 2026-06-06 17:50:36 +03:00
f8c56623a4 build: dockerize app, migrate on boot 2026-06-04 00:07:55 +03:00
0f6bfe2111 fix(backend): match the authenticated user into get/download/delete operations 2026-06-03 23:34:29 +03:00
b561389175 refactor(backend): use async fn syntax per clippy lint 2026-05-30 00:44:04 +03:00
882b28c883 refactor(backend): replace String with &str in fn params 2026-05-30 00:36:35 +03:00
c310d69b11 test(backend): load .env.test for test database isolation 2026-05-29 00:56:34 +03:00
5cc384b3c0 feat(backend): infer file type from extension using mime_guess 2026-05-29 00:56:02 +03:00
2501f6ca67 feat(backend): scope files to users with FK user_id, rename storage_path to storage_key for clarity 2026-05-28 21:24:12 +03:00
70f839698a perf(backend): replace buffered upload/download with opendal Writer/Reader streams 2026-05-28 20:37:18 +03:00
e7eaa42064 feat(backend): replace auth stub with real session, create users and sessions tables 2026-05-26 02:34:23 +03:00
ce835da9a4 feat(backend): add opendal storage for file payload and postgres record for metadata, add CORS layer 2026-05-21 00:27:37 +03:00
0aa87d61e5 feat: migrate file storage to postgres with sqlx 2026-05-01 01:16:45 +03:00
e6b5cb75ba chore: add TraceLayer for per-request method and path logging 2026-04-27 21:59:07 +03:00
a120838cbc feat: add auth middleware chain with ctx resolver and cookie parsing 2026-04-21 00:04:10 +03:00
90c9b9d6ff chore: scaffold axum server with in-memory CRUD, auth stub and tracing 2026-04-19 16:03:04 +03:00
6edf0d07d3 chore: init project 2026-04-03 21:47:27 +03:00