Files
memby/server/REMOTE_CONFIG.md
T

1.8 KiB
Raw Blame History

Remote Config

Membys Remote Config is deliberately limited to copy, an optional presentation flag and bounded navigation-rail measurements. It cannot control authentication, playback, routes or any behaviour needed to reach and use the library.

Set MEMBY_REMOTE_CONFIG_JSON in the deployments .env, as one JSON line, then redeploy the gateway. The value is one complete document; partial documents and unknown fields stop the gateway at start-up instead of silently inventing a mixed configuration. Increase configVersion for every change. A television will validate and store the new document in the background, then activate it only when a new app process starts.

{
  "schemaVersion": 1,
  "configVersion": 2,
  "minimumAppVersion": "0.2.54",
  "maximumAppVersion": "",
  "copy": {
    "navigation": {
      "home": "Home",
      "forYou": "For You",
      "search": "Discover",
      "movies": "Films",
      "tvShows": "TV Shows",
      "tvCalendar": "TV Calendar",
      "favourites": "Favourites",
      "user": "User",
      "settings": "Settings"
    },
    "tagline": "Your library, made personal"
  },
  "features": {
    "showNavigationVersion": false
  },
  "presentation": {
    "navigationRailExpandedWidthDp": 196,
    "navigationContentShiftDp": 120
  }
}

The gateway sends a content-derived ETag; an unchanged client receives 304 Not Modified. The APK accepts schema 1 only, requires a strictly newer positive configVersion, checks its own version against the optional inclusive bounds, limits every piece of copy to 64 characters without control whitespace, and bounds the two measurements. A missing, slow, malformed or incompatible response leaves the last-known-good document untouched. If no valid cache exists, the complete APK defaults are used.