49 lines
1.8 KiB
Markdown
49 lines
1.8 KiB
Markdown
# Remote Config
|
||||
|
|
|
|||
|
|
Memby’s 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 deployment’s `.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.
|
|||
|
|
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"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.
|