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>
5.4 KiB
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; zieHomeGit/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. Wat daarvan hier het zwaarst weegt:
- Elke image gepind als
repo:versie@sha256:<digest>, metlinux/amd64énlinux/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. - 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.
iconweglaten engalleryleeg, en dat kan pas op het moment van inleveren: zolang het een eigen store is, moet het icoon er juist in. Zeticondaarom als laatste regel van het manifest, dan is dat één verwijdering.- Drie tot vijf schermafbeeldingen, 1440 bij 900 in PNG, of gewone schermafbeeldingen waarna het store-team de opmaak doet.
- 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
- 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
- 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
- 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.