Common Workflows
Choose the Goal
Section titled “Choose the Goal”Start from the goal you are handling. These workflows keep the operating order; field, API, and configuration details live in the linked topic pages.
User Workflows
Section titled “User Workflows”- Sign in and confirm email, 2FA, or OAuth2 status.
- Create a room or open an existing room entry point.
- Submit a password or join review if the room requires it.
- Add media or choose an existing playlist item.
- Start playback if you have permission, otherwise wait for a room administrator.
- If playback fails, refresh the playback info and check whether proxy playback is required.
- Make sure at least two local factors are available: password, passkey, verified email.
- Bind a passkey or verify email.
- Enable 2FA.
- Sign out and sign in once to verify the second factor.
- Do not remove factors until at least two local methods remain.
Room Administrator Workflows
Section titled “Room Administrator Workflows”Create a Controlled Room
Section titled “Create a Controlled Room”- Create a room with a clear name and description.
- Set a room password if needed.
- Enable
requireApprovalfor semi-public rooms. - Set
maxMembersaccording to service and upstream Provider capacity. - Review member and guest default permissions.
- Join once with a normal account to validate the path.
Handle Member Issues
Section titled “Handle Member Issues”| Goal | Action | Note |
|---|---|---|
| Temporary mute | Remove send_chat from the member | Lower impact than disabling chat room-wide |
| Grant playback control | Add play_control | Add change_current_media for media switching |
| Remove disruptive member | Kick the member or platform-ban the user | Room ban is not a platform ban |
| Long-term responsibility | Adjust role or defaults | Avoid large stacks of personal overrides |
See Permissions Model and Rooms, Permissions, and Preferences for details.
Platform Administrator Workflows
Section titled “Platform Administrator Workflows”Launch Validation
Section titled “Launch Validation”- Follow the Production Checklist for secrets, database, Redis, TLS, and backups.
- Run
synctv config validate --strict. - Check
/health/ready. - Sign in as root, create a normal user, and create a test room.
- Validate WebSocket, chat, playback control, Provider browse, and proxy playback.
- Enable metrics and confirm scraping.
- Perform a PostgreSQL and secret restore drill.
Add a Media Provider
Section titled “Add a Media Provider”- Decide between a local Provider and a remote Provider instance.
- Configure or create the Provider instance and ensure credential encryption is configured.
- Test login, browse, search, and playback with an administrator.
- Test both direct and proxy playback.
- For Range-capable upstreams, verify seek and slice cache behavior.
- Give users a clear default Provider or usage guidance.
See Add Media.
Developer Workflows
Section titled “Developer Workflows”Bring Up a Client
Section titled “Bring Up a Client”- Read Client Integration Guide for HTTP, gRPC, and WebSocket boundaries.
- Start the service with OpenAPI and export
/api-docs/openapi.json. - Generate an SDK or write minimal requests.
- Implement login and refresh token handling.
- Create a WebSocket ticket and connect to
/ws/rooms/{roomId}. - Use Realtime API to observe playback state, playback info, room settings, and members.
- Handle
status,code,requestId, andRetry-Afterusing Errors.
Add or Change an API
Section titled “Add or Change an API”- Choose HTTP/OpenAPI, gRPC, or Realtime.
- Update proto or handler while keeping errors and permissions consistent.
- Add tests and update OpenAPI or protobuf documentation.
- Update SDK and API Examples, Realtime API, or gRPC Debugging.
- If protocol behavior changes, update API and Protobuf Evolution.
Operator Workflows
Section titled “Operator Workflows”Capacity or Performance Issue
Section titled “Capacity or Performance Issue”- Inspect HTTP, WebSocket, database, cache, Provider, livestream, and cluster metrics.
- Use Capacity Planning to identify connection, database, Redis, Provider, bandwidth, or storage bottlenecks.
- Reduce upstream pressure with Redis, slice cache, member limits, and connection limits.
- In multi-replica mode, confirm shared PostgreSQL, Redis, and consistent secrets.
- Record version, deployment shape, key metrics, and logs before using Troubleshooting.
Rotate Secrets
Section titled “Rotate Secrets”- Read Security Hardening and Rotation.
- Separate directly rotatable tokens from JWT, OPAQUE setup secret, and credential encryption key.
- Back up old secrets.
- Validate login, Provider decryption, WebSocket, OAuth2, and WebAuthn in a test environment.
- Deploy during a quiet window and watch error rates.