Commit Graph

27 Commits

Author SHA1 Message Date
Ultradesu ed918b9373 feat(node-player): redesign auth page with loading state
Publish Metadata Agent Image (dev) / build-and-push-image (push) Successful in 1m31s
Publish Node Player Image (dev) / build-and-push-image (push) Successful in 43s
Publish Web Player Image (dev) / build-and-push-image (push) Successful in 2m22s
- Show spinner while checking session (no login form flash on refresh)
- Translate UI to English
- Match player's dark theme (colors, fonts, card style)
- Render login form only when authentication is actually needed

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-08 16:27:22 +01:00
Ultradesu 1ea5f66ea3 fix(node-player): add offline_access scope and server-side token refresh
Publish Metadata Agent Image (dev) / build-and-push-image (push) Has been cancelled
Publish Node Player Image (dev) / build-and-push-image (push) Successful in 36s
Publish Web Player Image (dev) / build-and-push-image (push) Successful in 1m50s
- Add offline_access to OIDC scope so Authentik issues a refresh token
- /auth/token now checks if access token is expired and refreshes it
  server-side before returning to the client

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-08 16:01:16 +01:00
Ultradesu 7bc7de44cf fix(node-player): restore useEffect import in QueueList
Publish Metadata Agent Image (dev) / build-and-push-image (push) Has been cancelled
Publish Node Player Image (dev) / build-and-push-image (push) Successful in 38s
Publish Web Player Image (dev) / build-and-push-image (push) Successful in 1m48s
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-08 15:44:28 +01:00
Ultradesu befba57374 fix(node-player): auto-refresh expired JWT tokens on 401
Publish Metadata Agent Image (dev) / build-and-push-image (push) Has been cancelled
Publish Node Player Image (dev) / build-and-push-image (push) Failing after 28s
Publish Web Player Image (dev) / build-and-push-image (push) Has been cancelled
Adds an axios response interceptor that catches 401 errors, fetches a
fresh access token from /auth/token, and retries the original request.
Concurrent refresh attempts are deduplicated.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-08 15:41:47 +01:00
Ultradesu a9a8ee81b8 fix(node-player): load cover art via axios with Bearer token
Publish Metadata Agent Image (dev) / build-and-push-image (push) Successful in 1m22s
Publish Node Player Image (dev) / build-and-push-image (push) Failing after 29s
Publish Web Player Image (dev) / build-and-push-image (push) Has been cancelled
Cover images were loaded via <img src> which doesn't include the
Authorization header, resulting in 401 from the Rust API. Now covers
are fetched through axios as blobs and displayed via object URLs.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-08 15:39:52 +01:00
Ultradesu b1f75b3ee2 fix(node-player): use Express 5 catch-all route syntax
Publish Metadata Agent Image / build-and-push-image (push) Has been cancelled
Publish Web Player Image / build-and-push-image (push) Has been cancelled
Publish Node Player Image / build-and-push-image (push) Has been cancelled
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-08 15:20:02 +01:00
Ultradesu f3392eff9f fix(node-player): use expires_in instead of expires_at on AccessToken type
Publish Web Player Image / build-and-push-image (push) Waiting to run
Publish Metadata Agent Image / build-and-push-image (push) Successful in 4m18s
Publish Node Player Image / build-and-push-image (push) Successful in 1m20s
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-08 15:01:30 +01:00
Ultradesu e99cacae8b feat(auth): replace cookie/api-key auth with JWT Bearer tokens, separate UI from API
Publish Metadata Agent Image / build-and-push-image (push) Successful in 6m3s
Publish Node Player Image / build-and-push-image (push) Failing after 58s
Publish Web Player Image / build-and-push-image (push) Has been cancelled
- Add JWT Bearer token validation to Rust API via OIDC provider JWKS
  with automatic key rotation and 1-hour cache
- Remove x-api-key auth support and built-in web UI from furumi-web-player,
  leaving it as a pure API server
- Add /auth/token endpoint to Node player server to expose OIDC access
  tokens to the frontend
- Move Node player auth endpoints from /api/* to /auth/* to avoid
  path conflicts with Rust API
- Add static file serving to Node Express server for production
  single-container deployment
- Fix SameSite=Strict cookie issue breaking OIDC redirect flow (use Lax)
- Add Dockerfile.node-player with multi-stage Node.js build
- Add CI workflows for node-player Docker image (dev + release)
- Optimize Rust Dockerfiles with dependency caching layer
- Update docker-compose with OIDC env vars and OLLAMA_MODEL support
- Cherry-pick agent LLM client fixes from DEV branch

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-08 14:51:52 +01:00
Boris Cherepanov 94d14e8fc8 feat: update styles
Publish Metadata Agent Image / build-and-push-image (push) Successful in 5m22s
Publish Web Player Image / build-and-push-image (push) Successful in 4m15s
2026-04-04 19:34:20 +03:00
Boris Cherepanov 0b6f518b72 feat: refactoring
Publish Metadata Agent Image / build-and-push-image (push) Successful in 4m2s
Publish Web Player Image / build-and-push-image (push) Successful in 4m47s
2026-04-04 19:17:33 +03:00
Boris Cherepanov 3199c12af5 feat: added alternative queue display
Publish Metadata Agent Image / build-and-push-image (push) Successful in 3m58s
Publish Web Player Image / build-and-push-image (push) Successful in 4m16s
2026-04-04 18:49:29 +03:00
Boris Cherepanov daaa3b0814 feat: update styles 2026-04-04 18:33:45 +03:00
Boris Cherepanov e42566f44e fix: correct behavior click of buttons
Publish Metadata Agent Image / build-and-push-image (push) Successful in 3m46s
Publish Web Player Image / build-and-push-image (push) Successful in 5m1s
2026-04-02 00:48:57 +03:00
Boris Cherepanov 30c6400354 feat: create playback service
Publish Metadata Agent Image / build-and-push-image (push) Successful in 7m58s
Publish Web Player Image / build-and-push-image (push) Has been cancelled
2026-04-02 00:38:30 +03:00
Boris Cherepanov 480880f292 fix: load audio thmb 2026-04-02 00:29:21 +03:00
Boris Cherepanov 83a145d0a8 feat: work with order in state 2026-04-02 00:13:30 +03:00
Boris Cherepanov 8ceee6028a fix: then height 100%
Publish Metadata Agent Image / build-and-push-image (push) Successful in 1m5s
Publish Web Player Image / build-and-push-image (push) Successful in 1m6s
2026-03-23 16:55:22 +03:00
Boris Cherepanov 3491c52793 feat: refactoring data fetching 2026-03-23 16:55:22 +03:00
Boris Cherepanov f0e1bbc7f8 feat: added redux 2026-03-23 16:55:22 +03:00
Boris Cherepanov 8f38e27eb0 feat: addex type declaration 2026-03-23 16:55:22 +03:00
Boris Cherepanov 8cac2d1160 feat: refactoring 2026-03-23 16:55:22 +03:00
Boris Cherepanov 5a5dab85d0 feat: added api conversation + api review 2026-03-23 16:55:22 +03:00
Boris Cherepanov 310f0061d3 feat: added cors for web-player-backend 2026-03-23 16:55:22 +03:00
Boris Cherepanov c30a3aff5d feat: refactoring
Publish Metadata Agent Image / build-and-push-image (push) Successful in 1m10s
Publish Web Player Image / build-and-push-image (push) Successful in 1m7s
Publish Server Image / build-and-push-image (push) Successful in 2m7s
2026-03-19 18:04:13 +03:00
Boris Cherepanov 71d88bacf2 feat: refactoring modules
Publish Metadata Agent Image / build-and-push-image (push) Successful in 1m9s
Publish Web Player Image / build-and-push-image (push) Successful in 1m15s
Publish Server Image / build-and-push-image (push) Successful in 2m11s
2026-03-19 17:32:27 +03:00
Boris Cherepanov 4f239c2546 feat: added disable auth mode
Publish Metadata Agent Image / build-and-push-image (push) Successful in 1m6s
Publish Web Player Image / build-and-push-image (push) Successful in 1m14s
Publish Server Image / build-and-push-image (push) Successful in 2m9s
2026-03-19 15:47:21 +03:00
Boris Cherepanov cfcf6e4029 feat: added express + vite app + oidc
Publish Metadata Agent Image / build-and-push-image (push) Successful in 3m28s
Publish Web Player Image / build-and-push-image (push) Successful in 1m9s
Publish Server Image / build-and-push-image (push) Successful in 2m16s
2026-03-19 15:06:32 +03:00