fix: migrations, auth, providers health check, E2E tests, remove neko-sama
- Add proper Alembic initial migration (0001_initial_schema.py) - Migrate refresh tokens from JSON file to SQLite (RefreshTokenTable) - Remove Neko-Sama provider entirely (redirects to Gupy, not a host) - Fix provider health check always showing UNKNOWN - Run check_all_health() on startup - Fix POST /providers/health/check background task bug - Add HTMX refresh after manual health check trigger - Fix anime search relevance scoring with MIN_RELEVANCE_THRESHOLD=0.5 - Replace bare 'except:' with 'except Exception:' across codebase - Add Playwright E2E test suite (12 tests, auth setup, helpers) - Fix toast container blocking clicks via pointer-events: none - Remove obsolete Jest/Vite test files and config - Clean up obsolete test_watchlist scripts - Update sonarr model comment for active providers
This commit is contained in:
@@ -335,7 +335,7 @@ The downloaders are organized into three categories with separate base classes:
|
||||
- User authentication and last login tracking
|
||||
- **JWT Tokens** - Stateless authentication with refresh token support
|
||||
- Access tokens: 24-hour expiration (configurable via `ACCESS_TOKEN_EXPIRE_MINUTES`)
|
||||
- Refresh tokens: 30-day expiration (stored in `config/refresh_tokens.json`)
|
||||
- Refresh tokens: 30-day expiration (stored in SQLite `refresh_tokens` table)
|
||||
- HS256 algorithm with JWT_SECRET_KEY (change in production!)
|
||||
- Token verification and user extraction
|
||||
- **Password Security**
|
||||
@@ -348,7 +348,7 @@ The downloaders are organized into three categories with separate base classes:
|
||||
- **Configuration**
|
||||
- `JWT_SECRET_KEY` environment variable (MUST be changed from default)
|
||||
- Users stored in `config/users.json`
|
||||
- Refresh tokens stored in `config/refresh_tokens.json`
|
||||
- Refresh tokens stored in SQLite `refresh_tokens` table
|
||||
|
||||
**Authentication Endpoints:**
|
||||
- `POST /api/auth/register` - User registration
|
||||
@@ -709,7 +709,7 @@ JWT_SECRET_KEY=change-me-in-production # JWT signing key (MUST be changed, min
|
||||
**Configuration Files:**
|
||||
- `.env` - Environment configuration (create from .env.example)
|
||||
- `config/users.json` - User authentication database (created automatically)
|
||||
- `config/refresh_tokens.json` - Refresh token storage (created automatically)
|
||||
- `refresh_tokens` table - Refresh token storage (SQLite database)
|
||||
- `config/sonarr.json` - Sonarr webhook configuration (created automatically)
|
||||
- `config/sonarr_mappings.json` - Sonarr to anime provider mappings (created automatically)
|
||||
- `config/watchlist.json` - User watchlist items (created automatically)
|
||||
@@ -746,7 +746,7 @@ JWT_SECRET_KEY=change-me-in-production # JWT signing key (MUST be changed, min
|
||||
- Passwords truncated to 72 bytes (bcrypt limitation)
|
||||
- JWT secret key validation (minimum 32 characters, default rejected)
|
||||
- Credentials stored in `config/users.json`
|
||||
- Refresh tokens stored in `config/refresh_tokens.json`
|
||||
- Refresh tokens stored in SQLite `refresh_tokens` table
|
||||
|
||||
## Key Implementation Details
|
||||
|
||||
|
||||
Reference in New Issue
Block a user