Providers
The Providers view is the top-level kill-switch dashboard for every external platform Lumio integrates with (Twitch, YouTube, Kick, Trovo, Discord, Spotify, StreamElements, …). Each provider exposes a platform kill-switch plus three sub-flags for its connection types: Login, Channel, and Bot. It is also where operators configure and connect the Global Bot identity for Discord.
Where to find it
Admin sidebar → Providers (/providers).
Quick start
- Open Admin → Providers.
- Scan the cards — each provider has its own card with the current credentials status ("Configured" / "Not Configured"), connection counts, and the four toggles.
- To take a whole platform offline, flip the Platform kill-switch to off.
- To block only new logins while keeping existing channel + bot connections, leave Platform on and flip the Login sub-toggle off.
- For Discord, configure the Global Bot by pasting the Application ID and Bot Token, then click Save Token and Connect Bot.
Detailed walkthrough
Per-provider card
Each provider card surfaces:
- Status — Enabled / Disabled at the platform level.
- Credentials — Configured / Not Configured with a link to System Connections when not.
- Statistics — Channel Connections, Login Connections, Bot Connections counts.
- Kill-switch (Platform) — master switch. Off disables all three sub-flags.
- Connection Types (sub-toggles) — Login, Channel, Bot. Each can be flipped independently while Platform is on.
Disabling warning text: "Disabling will block new connections and logins. Existing connections will continue working."
Global Bot section
Present for platforms that support a Lumio-owned bot identity (Discord, Twitch, Trovo, Kick, YouTube). Shows:
- Connected as
<username>or "Not connected". - Connect Bot — launches the OAuth authorize flow.
- Disconnect Bot — confirms, then drops the token.
Discord-specific fields
Discord has two extra inputs above the Global Bot block:
- Application ID — the Discord application ID from the Developer Portal.
- Bot Token — paste the bot token; Save Token stores it encrypted in
app_credentials.
Integrations row
Some providers show extra integration badges (for example, Discord shows "Installed: N Discord servers" — pulls from the adminDiscordGuilds count).
Common scenarios
- Twitch EventSub outage — flip Platform → off on Twitch. Existing connections keep working (they use cached tokens via the Token Refresh Worker), but no new logins or reconnects are accepted.
- Rolling a breaking bot update — disable the Bot sub-toggle only; channel API calls and OAuth logins keep flowing while bots stay disconnected.
- Initial Discord setup — paste Application ID and Bot Token, Save Token, Connect Bot. The bot shows up as "Connected as …".
- YouTube quota exhausted — flip YouTube's Channel sub-toggle off until the daily quota resets.
Permissions
| Action | Permission |
|---|---|
| View provider cards / stats | providers:read |
| Toggle kill-switches / sub-toggles | providers:edit |
| Connect / disconnect global bot | bot-connections:create + bot-connections:delete |
| Save Discord bot token | providers:edit |
| Configure credentials (jump-off) | system-connections:edit |
Dashboard entry requires admin:access. System admins implicitly hold every permission above.
API
| UI action | GraphQL | REST |
|---|---|---|
| List providers with stats | adminProviders | GET /v1/admin/providers |
| Toggle platform | adminToggleProvider | PATCH /v1/admin/providers/\{platform\}/toggle |
| Toggle sub-flag | adminToggleProviderSubtype | PATCH /v1/admin/providers/\{platform\}/\{subtype\}/toggle |
| Set platform enabled (explicit) | adminSetProviderEnabled | PATCH /v1/admin/providers/\{platform\}/enabled |
| Set subtype enabled (explicit) | adminSetProviderSubtypeEnabled | PATCH /v1/admin/providers/\{platform\}/\{subtype\}/enabled |
| Get global bot status | adminGlobalBotConnections | GET /v1/admin/bot-connections |
| Authorize URL for global bot | adminBotAuthorizeUrl | GET /v1/admin/bot-connections/\{platform\}/authorize |
| Exchange OAuth code | adminExchangeBotConnection | POST /v1/admin/bot-connections/\{platform\}/exchange |
| Save Discord bot token | adminSetDiscordBotToken | PUT /v1/admin/bot-connections/discord |
| Disconnect global bot | adminDeleteGlobalBotConnection | DELETE /v1/admin/bot-connections/\{platform\} |
Tips & gotchas
- Toggles are hierarchical. Platform off ⇒ Login/Channel/Bot off regardless of their individual state. Turning Platform back on restores the last sub-state.
- Existing tokens keep working while a toggle is off — the switch gates new flows only. For immediate hard-offline, rotate tokens via System Connections.
- The Discord Bot Token cannot be read back. If it's lost, generate a new token in the Discord Developer Portal and re-save.
- Connection counts reflect the latest DB state at page load; they're not live. Refresh for current numbers.
- Credentials must be Configured before any sub-toggle can be meaningfully used. If Credentials is "Not Configured", the Connect Bot button is a no-op.
Related
- System Connections — Lumio's outbound OAuth credentials per platform
- Bot Control — per-account pause / resume
- Discord Guilds — Discord-specific guild mappings
- Feature Flags — fine-grained feature kill-switches (one layer below provider kill-switches)