Files
UmbrelApps/Docs/Plannen/Masterplannen/Publicatie-Relay.PLAN.md
T
HarmenandClaude Opus 5 67ed9b603b Eén app store, twee apps
umbrelOS leest per store één repo, dus twee apps in twee repo's kan niet. Deze
repo is de store en bevat vanaf nu Electrum Gate en het werk aan Evolu Relay.
Opgezet als verse repo op verzoek van de gebruiker: de historie van ElectrumTLS
en van EvoluRelay komt niet mee.

Dat heeft één gevolg dat verder gaat dan opruimen. In de historie van
ElectrumTLS staat het domein van de gebruiker en het certificaatpad, van vóór de
opschoning van 19-08. Die komt hier niet in. Zolang die repo op de Git-server
blijft staan verandert dat niets, dus het weghalen ervan is het laatste stuk van
open punt 3 van het plan Appstore, en geen bijzaak.

De store zelf hoefde niet te veranderen: store-id whatsnext, en dus blijft het
app-id whatsnext-electrum-gate. Dat hangt aan het store-id en niet aan de URL,
dus voor umbrelOS is dit dezelfde app in een andere store. Dat de store op 19-08
naar de maker genoemd werd in plaats van naar deze ene app, betaalt zich hier
uit.

Wat de documentatie betreft is dit één wortel voor beide apps, en dat was de
reden om samen te voegen en niet de prijs ervan: de appstore-spec, het pinnen
van images en de werkwijze golden al voor allebei en stonden in twee repo's naast
elkaar. De kruisverwijzing die daarvoor nodig was (Referenties/Umbrel-appstore.md
in de oude EvoluRelay-repo) is verdwenen; wat daarin stond over de plekken waar
de relay een ander geval is, staat nu als ontwerp in het masterplan Umbrelapp §4.

Botsende namen kregen een achtervoegsel met de app, en alleen die: Publicatie
werd Publicatie-Gate en Publicatie-Relay, CHANGELOG.md werd
CHANGELOG-electrum-gate.md. Proefopstelling kreeg 007, tussen de twee bestaande
nummers, zodat de bovenkant van de reeks op tier-orde blijft staan.
CONTINUE_HERE.md heeft een kolom App, maar de tiers lopen over beide apps heen:
er is één volgorde van werken.

Electrum Gate gaat naar 0.0.15, want website, repo, support, submission en icon
wijzen nu naar UmbrelApps en zonder versieverhoging rolt dat niet uit. De release
notes leggen aan de gebruiker uit dat hij de store opnieuw moet toevoegen. Of een
geïnstalleerde app een wisseling van store-URL overleeft is nog steeds niet
uitgezocht; dat blijkt bij het omzetten.

Twee dingen in de plannen van Electrum Gate waren door deze verhuizing niet meer
waar en zijn bijgewerkt: de taak "de repo hernoemen" in fase 7 is afgevinkt, en
de repo-vorm in PLAN.md §4a toonde nog de store-id electrumtls, die al sinds
fase 7 achterhaald was.

Tests: 39 goed 0 fout en 54 goed 0 fout, niets overgeslagen.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-25 16:27:57 +02:00

101 lines
5.4 KiB
Markdown

# Publicatie-Relay - masterplan
> **App: Evolu Relay.** Er is ook een **Publicatie-Gate**; inleveren bij de officiële store is per app en
> de twee plannen delen alleen de eisen, niet het werk.
>
> Status: nog niet actief, en dit is het plan dat het langst mag wachten. Bij promotie naar
> `Plannen/Actief/NNN-Publicatie-Relay/` worden de paragrafen hieronder over de vier bestanden verdeeld;
> zie `HomeGit/Docs/Werkproces.md` §1b.
>
> Afhankelijk van: **Umbrelapp**, en van een image die te pinnen valt. Zie §4.
## 1. Doel
De app inleveren in de officiële Umbrel-appstore, zodat er niet eerst een store-URL geplakt hoeft te
worden. Dat verandert de maatstaf: niet "hij werkt hier" maar "iemand anders keurt het pakket goed",
tegen eisen die niet van ons zijn.
Het vooronderzoek noemde dit als keuze tussen een eigen store en de officiële. Die keuze is er niet echt:
je begint sowieso met een eigen store, want anders valt er niets te testen. De vraag is alleen of je
daarna inlevert.
## 2. Afbakening
Alles wat er tussen een werkend pakket in een eigen store en een aanvaarde bijdrage aan
`getumbrel/umbrel-apps` zit. Het pakket zelf is het masterplan **Umbrelapp**.
## 3. Niet-doelen
- **Geen functionaliteit erbij om de app aantrekkelijker te maken.** Wat er niet in zit omdat we het niet
nodig hebben, hoeft er niet in omdat een winkelpagina er beter van wordt.
- **Geen afstemming met Trezor**, tenzij een reviewer erom vraagt. Zie open punt 3.
## 4. Ontwerp
De eisen staan niet in de README van `umbrel-apps` maar in de skill-documentatie waar die naar verwijst.
Ze zijn uitgeschreven, met bron per regel, in
[Umbrel-appstore-spec.md](../../Referenties/Umbrel-appstore-spec.md). Wat daarvan hier het zwaarst weegt:
1. **Elke image gepind als `repo:versie@sha256:<digest>`, met `linux/amd64` én `linux/arm64`.** Dit is de
eis waar dit plan op kan stranden, en het is geen kwestie van uitvoeren: hij vraagt dat de image
überhaupt in een registry bestaat, voor beide architecturen. Publiceert Trezor er geen, dan bouw en
publiceer je zelf, en dan lever je een pakket in dat naar je eigen image wijst. Dat is een doorlopende
verplichting en een reviewer zal ernaar vragen.
2. **Een kaal app-id, dus zonder store-voorvoegsel.** Dat betekent voor de gebruiker één keer opnieuw
installeren, want voor umbrelOS is een ander id een andere app.
3. **`icon` weglaten en `gallery` leeg**, en dat kan pas op het moment van inleveren: zolang het een eigen
store is, moet het icoon er juist in. Zet `icon` daarom als laatste regel van het manifest, dan is dat
één verwijdering.
4. **Drie tot vijf schermafbeeldingen**, 1440 bij 900 in PNG, of gewone schermafbeeldingen waarna het
store-team de opmaak doet.
5. **De inlog van umbrelOS aan laten staan.** Dit is voor deze app geen formaliteit maar de kern van het
risico; zie §5.
## 5. Het risico dat niet in een checklist staat
Electrum Gate heeft er één, een leesmount in de map van een andere app. Dit pakket heeft er ook één, en
een andere: **de relay moet bereikbaar zijn voor een cliënt die geen umbrelOS-sessie heeft.** De
inlevereisen zeggen dat de inlog aan moet blijven en dat een `PROXY_AUTH_WHITELIST` alleen smal mag zijn,
en alleen voor paden die geen cookie kunnen sturen.
Of dat hier lukt, hangt volledig af van hoe de relay zelf authenticeert. Doet hij dat niet, dan lever je
een pakket in met een open eindpunt, en dan is dit geen presentatiekwestie meer maar een ontwerpkwestie.
Dat is de reden dat dit plan achter **Umbrelapp** staat en niet ernaast: het antwoord komt daarvandaan, en
zonder dat antwoord is inleveren zinloos.
Wat wél in ons voordeel werkt: deze app leest niets buiten zijn eigen map, heeft geen Docker-socket, geen
privileged container en geen afhankelijkheid van een andere app. Dat is een schoner pakket dan Electrum
Gate.
## 6. Het werk in grote lijnen
**Fase 1 - de harde eisen halen.** Images pinnen, app-id kaal maken, manifestvelden in de voorgeschreven
volgorde. Uitkomst: een pakket dat op de checklist niets meer rood heeft.
**Fase 2 - de presentatie.** Schermafbeeldingen met plaatsvervangende gegevens, en een `description` die
zegt waarom dit bestaat en niet wat het technisch is.
**Fase 3 - de vraag vóór de PR.** Het punt uit §5 voorleggen als issue in `umbrel-apps`. Een issue kost
minder dan een afgewezen PR.
**Fase 4 - inleveren en de review doorlopen.**
## 7. Open punten
1. **Willen we dit eigenlijk?** Een eigen store werkt en kost niets. Inleveren betekent een pakket
onderhouden voor onbekende gebruikers, en als de image van onszelf is, betekent het ook die
onderhouden. Dit is een echte keuze en geen vanzelfsprekend eindpunt.
**Moment:** als **Umbrelapp** af is en de app een tijd gedraaid heeft · **Eigenaar:** gebruiker
2. **Als de image zelf gebouwd moet worden, waar komt hij te staan?** En wie verhoogt hem als Trezor een
nieuwe versie uitbrengt?
**Moment:** valt samen met punt 1 · **Eigenaar:** gebruiker
3. **Afstemmen met Trezor?** Een reviewer kan vragen of Trezor hierachter staat, omdat het hun software is
en hun naam op de tegel.
**Moment:** fase 3 · **Eigenaar:** gebruiker
## 8. Verificatie
Deze is anders dan bij de andere plannen: het bewijs is de aanvaarde PR. Wat er vóór die tijd te
controleren valt, is dat elke regel van de checklist in §4 met een commando of een bestand te staven is,
en dat de app na het kaal maken van het app-id nog steeds vanaf nul installeert.