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>
This commit is contained in:
@@ -0,0 +1,107 @@
|
||||
# Open punten - Webinterface
|
||||
|
||||
> Beslissingen die nog een **eigenaar** of een **moment** nodig hebben. Wordt een punt een taak, dan
|
||||
> verhuist het naar [TAKEN.md](TAKEN.md).
|
||||
>
|
||||
> **Nummers blijven staan**, ook als een punt beslist is: er kan elders naar verwezen worden. Beslissen
|
||||
> betekent verplaatsen naar de kop hieronder, niet hernummeren.
|
||||
|
||||
## Nog te beslissen
|
||||
|
||||
3. **Komt het activiteitenlog er?**
|
||||
Toegevoegd 19-08-2026, nadat de gebruiker vroeg of er iets over live client-aanroepen te tonen is, en
|
||||
bijgesteld naar logregels onder elkaar. Het ontwerp staat in [PLAN.md](PLAN.md) §4e en de kaart staat
|
||||
al op de pagina in de `no data`-toestand, dus de vorm is te beoordelen zonder dat er iets gebouwd is.
|
||||
|
||||
Wat er beslist moet worden is niet "kan het" maar "is dit het waard, nu het niet is wat er gevraagd
|
||||
werd". Er was gevraagd om **elk verzoek** te loggen, en dat kan niet zonder het Electrum-verkeer van de
|
||||
gebruiker uit te lezen. Wat overblijft is een regel per verbinding en per verkeerspiek. Het vraagt een
|
||||
`log_format` die langs de template-invulling moet, plus een tweede weg naar de bytetellers van een
|
||||
lopende verbinding, want nginx logt een stream-sessie pas bij het sluiten en een wallet houdt hem
|
||||
twaalf uur open.
|
||||
**Moment:** na fase 2, want dan draait de schrijflus toch al · **Eigenaar:** gebruiker
|
||||
|
||||
5. **Wordt er gecontroleerd of de TLS-poort zelf antwoordt?**
|
||||
Toegevoegd 19-08-2026, nadat de badge "Serving this page" eruit ging. De gebruiker wees erop dat die
|
||||
badge niets zei: de pagina wordt nooit getoond aan een wallet die op 50022 verbindt. Mijn gedachte
|
||||
erachter was dat de pagina en de TLS-terminatie in dezelfde container zitten, dus dat de een de ander
|
||||
bewijst, maar dat stond er niet en niemand leest het zo.
|
||||
|
||||
Wat daarbij opvalt en het eigenlijke punt is: **de app controleert wel of de Electrum-server antwoordt,
|
||||
maar niet of hij zelf antwoordt.** Dat is precies zijn enige taak. De agent zou een TLS-verbinding naar
|
||||
de eigen poort kunnen opzetten en de handdruk kunnen afmaken; dat bewijst het luisteren, het certificaat
|
||||
en de doorverbinding in één keer, en het is dezelfde truc waarmee de einddatum van het actieve
|
||||
certificaat te lezen valt.
|
||||
|
||||
Waarom het nog geen taak is: het raakt de agent, en die heeft nog nooit gedraaid. Er is weinig aan om
|
||||
een tweede ongeteste controle op een eerste ongeteste controle te bouwen. Zodra de agent op de Umbrel
|
||||
loopt, is dit de eerstvolgende zinvolle toevoeging aan het dashboard.
|
||||
**Moment:** nadat de agent draait · **Eigenaar:** gebruiker
|
||||
|
||||
7. **Kan Zoraxy of Nginx Proxy Manager verplicht gesteld worden bij de installatie?** Gevraagd door de
|
||||
gebruiker op 20-08-2026, die erbij opmerkte dat sommige apps bij de installatie twee dropdowns tonen.
|
||||
**Technisch antwoord: nee, niet als "de een of de ander".** Nagetrokken in de bron, zie
|
||||
[Umbrel-appstore-spec.md](../../../Referenties/Umbrel-appstore-spec.md) §4, met bronlinks.
|
||||
|
||||
Kort: dat dialoog toont één dropdown **per afhankelijkheid** en niet per keuze. In het schema van
|
||||
umbreld is `dependencies` een platte lijst van app-id's, en wat er in een dropdown staat komt van de
|
||||
andere kant, namelijk elke app die `implements: [<dat id>]` declareert. Het voorbeeld dat de gebruiker
|
||||
zag is `mempool` met `dependencies: [bitcoin, electrs]`. Zoraxy en NPM declareren geen `implements`,
|
||||
dus er is geen gedeelde rol om naar te wijzen, en dat staat in hún manifest en niet in het onze.
|
||||
|
||||
Wat overblijft is Zoraxy hard eisen, en dat is een dropdown met één optie. Wat er nog over te beslissen
|
||||
is, is of dat wenselijk is: het sluit de bron `Own folder` uit, en Zoraxy deïnstalleren zou deze app
|
||||
meesleuren.
|
||||
**Moment:** vrij · **Eigenaar:** gebruiker beslist
|
||||
|
||||
## Beslist
|
||||
|
||||
8. **Welke tagline, en waar?** - **Overal die van de appstore** (20-08-2026, gebruiker).
|
||||
"Your own node from anywhere, without waiting for Tor" staat nu ook op de pagina; daar stond "TLS in
|
||||
front of your own Electrum server".
|
||||
|
||||
De afweging was dat de twee lezers op een ander moment zitten: in de winkel moet de regel iemand
|
||||
overtuigen die de app niet kent, op het dashboard staat iemand die hem al draait. Dat pleit voor twee
|
||||
regels. Wat de doorslag gaf is dat deze afweging al eerder gemaakt is: bij het hernoemen naar Electrum
|
||||
Gate was de reden dat de oude naam het **middel** beschreef en niet de opbrengst. Met die maatstaf was
|
||||
de dashboardregel de achterblijver, niet de winkelregel.
|
||||
|
||||
Een toets houdt de twee plekken nu gelijk. Niet omdat het kan, maar omdat ze ver uit elkaar staan:
|
||||
niemand die het manifest aanpast, opent daarna de pagina.
|
||||
|
||||
6. **Kan een certificaat via de pagina geupload worden?** - **Ja, en gebouwd** (20-08-2026, op verzoek van
|
||||
de gebruiker). Zie [CHANGELOG-electrum-gate.md](../../../CHANGELOG-electrum-gate.md) 0.0.7 voor de vier
|
||||
stukken die het vroeg.
|
||||
|
||||
Twee besluiten die eruit voortkwamen en die het waard zijn om terug te lezen:
|
||||
|
||||
- **de bestandsnaam komt uit het certificaat en niet uit het verzoek.** Daarmee is de hele klasse
|
||||
padtrucs weg zonder dat er iets gefilterd hoeft te worden op invoer die je niet vertrouwt. Wat er
|
||||
niet in het alfabet zit gaat eruit, dus een jokerteken-certificaat voor `*.example.org` wordt
|
||||
`example.org`;
|
||||
- **uploaden kiest niet.** De nieuwe komt voorgeselecteerd in de lijst en de gebruiker drukt op de
|
||||
bestaande knop. Zo blijft er precies één plek waar TLS van certificaat wisselt, en dat is dezelfde
|
||||
reden waarom de app bij twijfel niets kiest.
|
||||
|
||||
Het geheim door een formulier: te verantwoorden omdat het pad achter de inlog van umbrelOS zit en de
|
||||
sleutel in de app-data van de gebruiker zelf landt, met rechten 0600. De agent kapt af op 96k en nginx
|
||||
ook, dus een verzoek dat te groot is komt niet eens bij de validatie.
|
||||
|
||||
|
||||
4. **Wat gebeurt er met de blokken-per-uur-grafiek in het eerste etmaal?** - **Vervallen** (19-08-2026).
|
||||
De vraag ging over een grafiek die er niet meer is: de gebruiker heeft blokken per uur diezelfde dag
|
||||
geschrapt, als grafiek én als tegel. Zie [PLAN.md](PLAN.md) §3.
|
||||
|
||||
1. **Wat toont de pagina als `status.json` ontbreekt?** - **Een neutrale melding, geen fout**
|
||||
(19-08-2026).
|
||||
"No readings yet", met de uitleg dat dit normaal is in de eerste minuten na een installatie of een
|
||||
herstart. Bewust neutraal opgemaakt en niet rood: het bestand ontbreekt in de normale gang van zaken
|
||||
even, en een foutkleur op een normale toestand leert mensen foutkleuren negeren.
|
||||
|
||||
Daarnaast blijft elk afzonderlijk veld op `unknown` staan in plaats van leeg. Een leeg veld leest als
|
||||
"in orde", en dit is de pagina die juist geraadpleegd wordt wanneer er iets mis lijkt.
|
||||
|
||||
2. **Nederlands of Engels?** - **Engels, en alles** (19-08-2026, gebruiker).
|
||||
Dat betekent de pagina én de teksten in `umbrel-app.yml`, want een Engelse pagina onder een
|
||||
Nederlandse winkelbeschrijving is een halve keuze. Codecommentaar blijft Nederlands: de
|
||||
projectafspraak koppelt zichtbare UI-tekst aan de taal van de app, en commentaar niet.
|
||||
Reference in New Issue
Block a user