Security and Secrets
Configure JWT, OPAQUE, provider credential encryption, password policy, CORS, and trusted proxies.
SyncTV separates security into several boundaries:
server.cluster_secret.| Method | First factor | Second factor | Notes |
|---|---|---|---|
| Password/OPAQUE | Yes | Available only when the server returns MFA_METHOD_PASSWORD | OPAQUE login is not the same as the password MFA verifier |
| WebAuthn/passkey | Yes | Yes | Requires WebAuthn configuration and a bound credential |
| Email code | Yes | Yes | Requires SMTP and email-code delivery |
| OAuth2 | Yes | No | OAuth2 does not participate in local 2FA, but 2FA-enabled users may log in with OAuth2 |
Before enabling 2FA, SyncTV verifies that the user has at least two usable local methods. After enabling 2FA, local single-factor login creates an MFA session instead of immediately issuing final tokens.
After 2FA is enabled, old single-factor refresh tokens should not keep rotating the session. Tokens issued after MFA or OAuth2 carry an accepted authentication context.
Semantics:
When a local first factor succeeds and a second factor is required, SyncTV creates a short-lived MFA session instead of issuing final tokens.
Client flow:
Failed MFA password attempts are recorded by brute-force protection and cannot bypass the normal password failure counters.
User preferences store user-level settings. two_factor_enabled is security-sensitive.
Constraints:
Management gRPC is used by the CLI and operational commands.
Production guidance:
management.auth_token.management.enable_reflection disabled in production.The management token is not a user access token. Treat it as infrastructure-level secret material.
Providers decide upstream request headers. The proxy layer executes provider-supplied headers only.
Consequences:
Range, Accept, User-Agent, and similar headers are not automatically forwarded by the proxy.Range, the provider must explicitly select it.User-Agent, client-facing headers and proxy upstream headers should match.Security and Secrets
Configure JWT, OPAQUE, provider credential encryption, password policy, CORS, and trusted proxies.
Email and OAuth2
Configure email codes, SMTP, and runtime OAuth2 provider settings.
WebAuthn
Configure passkey RP ID, origins, allowed origins, and challenge timeout.
Rate Limits
Configure HTTP, gRPC, chat, danmaku, WebSocket, and authentication rate limits.