108 lines
6.9 KiB
Markdown
108 lines
6.9 KiB
Markdown
# 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.
|