App Config
Location: MediaBlaster → App Config → App Settings tab
Configure how connected apps (starting with the MediaBlaster Roku app) behave, look, and navigate. Settings are stored in WordPress and served publicly to clients via the REST config endpoint.
This is not API discovery — the app must already know your WordPress site URL to request config. Do not store apiBaseUrl, apiOrigin, secrets, or private credentials here.
Platform tabs
| Tab | Status |
|---|---|
App Settings (platform=roku) | Available |
| Mobile, Google TV, Fire TV, Apple TV, Next.js | Planned — same page will gain additional tabs |
Tab URL pattern: admin.php?page=mediablaster_app_config&platform=roku
Storage
| Item | Value |
|---|---|
| WordPress option | mediablaster_app_config |
| Platform slice | mediablaster_app_config['roku'] |
| Capability | manage_options |
| Save action | admin_post_mediablaster_save_app_config |
PHP classes:
includes/class-mediablaster-app-config.php— defaults, merge, sanitize, REST assemblyincludes/class-mediablaster-app-config-admin.php— admin UIincludes/rest/class-mediablaster-rest-app-config-controller.php—GET /config
Admin assets: admin/css/wp-smart-tv-app-config-admin.css (extends CMB2 options-page styling).
Sections (App Settings tab)
| Section | Purpose |
|---|---|
| General | App name, debug mode |
| Content Availability | VOD, movies, series, categories, search, continue watching |
| Branding | Colors, fallback images, card/poster aspect ratios |
| Links | Support and privacy URLs |
| Sidebar | Sidebar visibility and widths |
| Navigation Features | Which destinations appear in app navigation (features object) |
| Labels | Custom UI labels (labels object) |
| Homepage Layout | Home screen layout toggles (layout object) |
| Home Tag Rows | Tag-based home row settings (homeTagRows object) |
| Boot | Startup behavior (boot object) |
| REST Endpoint | Read-only display of the public config URL |
Each field includes inline help text under its label. Section titles include a short description.
REST endpoint
GET /wp-json/mediablaster/v3/config?platform=roku
- Public, read-only (no authentication required)
- Default
platformquery value:roku - Unsupported platform →
400 mediablaster_invalid_platform
See REST API — App Config for the response shape.
Not the same as GET /app/config — that route returns subscription/Stripe client configuration when the subscriptions module and REST API are enabled. See Subscriptions and Apps API.
Defaults and saving
- If nothing has been saved, the endpoint returns built-in Roku defaults immediately.
- Boolean toggles use CMB2-style switches (
value="on"). homeRowsis always[]in v1 (no admin UI yet).- Hidden future fields remain in the schema and REST response; their values are preserved on save but are not shown in the admin UI. Remove keys from
MediaBlaster_App_Config::get_admin_hidden_field_keys()to expose them in a later release.
Filters (developers)
| Filter | Purpose |
|---|---|
mediablaster_app_config_platforms | Register additional platform slugs |
mediablaster_app_config | Adjust merged platform config before REST assembly |
mediablaster_app_config_response | Adjust final REST payload |