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.
|