diff --git a/Docs/CONTINUE_HERE.md b/Docs/CONTINUE_HERE.md index 7f276d3..59a3bd2 100644 --- a/Docs/CONTINUE_HERE.md +++ b/Docs/CONTINUE_HERE.md @@ -24,7 +24,7 @@ | Plan | App | Volgende stap | Status | |-|-|-|-| | [Webinterface](Plannen/Actief/005-Webinterface/TAKEN.md) | Gate | 0.0.10 op een telefoon nakijken, en het uploaden op het niet-gelukkige pad proberen met een sleutel die niet bij het certificaat hoort. Daarna open punt 5: laten controleren of de TLS-poort zélf antwoordt | 🔶 | -| [Umbrelapp](Plannen/Actief/008-Umbrelapp/TAKEN.md) | Relay | **Hij draait sinds 25-08-2026**, maar begin niet met verbeteren: eerst open punt 6. Er blijkt een kále Evolu-relay te bestaan met een gepubliceerde image, één container en geen database. Praat Suite daarmee, dan is dit pakket drie keer te vereenvoudigen en vervalt de blokkade over de eigenaarsregistratie | 🔶 | +| [Umbrelapp](Plannen/Actief/008-Umbrelapp/TAKEN.md) | Relay | **Hij draait sinds 25-08-2026, maar kan in de kern niet werken.** Uit de broncode van Suite: bij een eigen relay-URL registreert de cliënt geen eigenaar, terwijl Trezor's relay iedereen zonder limietenrij weigert. Volgende stap is de kále Evolu-relay proberen (`docker.io/evoluhq/relay:latest`, één container, gepubliceerde image) en waarschijnlijk daarnaartoe verbouwen. Zie open punt 6 | 🔶 | | [Proefopstelling](Plannen/Actief/007-Proefopstelling/TAKEN.md) | Relay | **Eerst beslissen of dit plan nog bestaansrecht heeft.** Fase 1 is af, maar fase 2 en 3 zijn ingehaald: het pakket draait al op de Umbrel, dus een lokale opstelling ernaast meet minder en kost meer. Wat overblijft zijn twee vragen die al als blokkade in **Umbrelapp** staan, en die horen op één plek | 🔶 | ## B - Los oppakbaar (geen blokkade, geen vaste volgorde) diff --git a/Docs/Plannen/Actief/008-Umbrelapp/OPEN.md b/Docs/Plannen/Actief/008-Umbrelapp/OPEN.md index e75c03c..bebcf88 100644 --- a/Docs/Plannen/Actief/008-Umbrelapp/OPEN.md +++ b/Docs/Plannen/Actief/008-Umbrelapp/OPEN.md @@ -22,13 +22,22 @@ eigen register, de onderhoudsplicht op een image, de Postgres met zijn wachtwoord, en de eigenaarsregistratie die nu de blokkade is. Drie containers worden er één. - Werkt het niet, dan is het huidige pakket het juiste en is deze vraag in een half uur beantwoord in - plaats van open blijven staan. + **Nog diezelfde avond grotendeels beantwoord uit de cliëntkant**, nadat de gebruiker erop wees dat de + broncode van Trezor Suite lokaal staat in een ander project. Uit een commentaarregel van Trezor zelf: + *"We only want to use QM for our own relay servers. In case custom URL has been set, QM is ignored."* + + Daarmee draait de vraag om. **Met een eigen relay-URL registreert Suite geen eigenaar**, en Trezor's relay + weigert iedereen zonder limietenrij. Die rij komt er dus nooit. Niet de kale Evolu-relay is de gok, maar + het pakket dat er nu staat: **Trezor's relay is als zelf-gehoste relay in de kern onbruikbaar** tenzij je + die rij met de hand zet. + + Wat er nog écht open is, is één ding en dat is geen redenering maar een proef: **klopt de + protocolversie?** Suite gebruikt `@evolu/web@3.0.0-next.1` met een eigen patch in `.yarn/patches/`, en + `docker.io/evoluhq/relay:latest` hoeft daar niet bij te passen. **Meten en niet redeneren:** `docker run --rm -p 4000:4000 docker.io/evoluhq/relay:latest`, Suite - ernaartoe wijzen, label maken. Dat is dezelfde test die al in **Proefopstelling** staat, nu met een - tweede kandidaat ernaast, en het is een extra argument om die twee plannen niet naast elkaar te laten - bestaan. + ernaartoe wijzen, label maken. De instellingen staan onder **dev-utils** en `http://` volstaat; zie + [Upstream-evolu-relay.md](../../../Referenties/Upstream-evolu-relay.md) §0 en §7. **Moment:** eerste taak van de volgende sessie, vóór er nog iets aan het huidige pakket verbeterd wordt · **Eigenaar:** gebruiker diff --git a/Docs/Plannen/Actief/008-Umbrelapp/TAKEN.md b/Docs/Plannen/Actief/008-Umbrelapp/TAKEN.md index 7d8fb0f..4992087 100644 --- a/Docs/Plannen/Actief/008-Umbrelapp/TAKEN.md +++ b/Docs/Plannen/Actief/008-Umbrelapp/TAKEN.md @@ -9,14 +9,17 @@ ## Volgende stap -- [ ] **Eerst: praat Trezor Suite met een kále Evolu-relay?** Zie [OPEN.md](OPEN.md) punt 6. Als het antwoord - ja is, wordt dit pakket drie keer eenvoudiger en vervalt de blokkade over de eigenaarsregistratie; - dan is verder sleutelen aan de huidige vorm weggegooid werk. Kost minuten: - `docker run --rm -p 4000:4000 docker.io/evoluhq/relay:latest`, Suite ernaartoe wijzen, label maken. - **Eigenaar: gebruiker** -- [ ] **Daarna pas: in de logs van de relay kijken of het databaseschema zichzelf aanmaakt.** De drie - containers staan omhoog, maar "Up" is nog geen "werkt": de relay kan draaien en toch klagen over - ontbrekende tabellen. `sudo docker logs whatsnext-evolu-relay_relay_1`. **Eigenaar: gebruiker** +- [ ] **De kále Evolu-relay proberen, en waarschijnlijk daarnaartoe verbouwen.** Zie [OPEN.md](OPEN.md) + punt 6: uit de broncode van Suite blijkt dat de cliënt bij een eigen relay-URL géén eigenaar + registreert, terwijl Trezor's relay iedereen zonder limietenrij weigert. Het pakket dat er nu staat kan + dus in de kern niet werken. Wat nog te meten is, is of de protocolversie klopt: + `docker run --rm -p 4000:4000 docker.io/evoluhq/relay:latest`, Suite ernaartoe wijzen onder + **dev-utils**, label maken. **Eigenaar: gebruiker** +- [ ] **Pas daarna beslissen wat er met het huidige pakket gebeurt.** Werkt de kale relay, dan wordt dit + één container op een gepubliceerde image en vervallen de bouwstap, het eigen register, de Postgres en + het wachtwoord. Werkt hij niet, dan is de limietenrij met de hand zetten de enige weg vooruit +- [ ] **In de logs van de relay kijken of het databaseschema zichzelf aanmaakt.** Alleen nog nuttig als het + huidige pakket blijft: `sudo docker logs whatsnext-evolu-relay_relay_1` ## Fase 1 - De app-map diff --git a/Docs/Referenties/Upstream-evolu-relay.md b/Docs/Referenties/Upstream-evolu-relay.md index 5d787ef..3676a6d 100644 --- a/Docs/Referenties/Upstream-evolu-relay.md +++ b/Docs/Referenties/Upstream-evolu-relay.md @@ -30,15 +30,47 @@ Evolu-relay?** Zo ja, dan vervalt vrijwel alles wat dit pakket ingewikkeld maakt register, geen onderhoudsplicht op een image, geen Postgres, geen wachtwoord, en vooral geen eigenaarsregistratie, wat nu de blokkade is. -Waarom het plausibel is: Suite is een Evolu-app, Evolu-apps praten met Evolu-relays, en de documentatie van -Evolu zegt zelfs dat een app meerdere relays tegelijk kan gebruiken. Waarom het toch mis kan gaan: de -protocolversie van de Evolu die Suite gebruikt hoeft niet die van de image te zijn, en Trezor kan iets -gewijzigd hebben. **Niet aannemen, meten**: `docker run --rm -p 4000:4000 docker.io/evoluhq/relay:latest` -en Suite ernaartoe wijzen kost minuten. +### Wat de cliëntkant zegt, en dat is beslissend -Wat er níet mee vervalt als het werkt: de quota-manager van Trezor is er voor hún gehoste dienst, en die -willen we sowieso niet. Dat het pakket die nu bevat, is geen fout maar het gevolg van het feit dat deze -laag ontdekt is vóórdat de laag eronder gevonden werd. +Nagelezen in de broncode van Trezor Suite zelf, die lokaal staat; zie §7. Drie bevindingen, en de tweede is +de belangrijkste van dit hele document. + +**1. Suite kan naar een eigen relay wijzen, en het zijn twee losse adressen.** In de instellingen onder +**dev-utils** staan een relay-URL en een quota-manager-URL, elk met een eigen opslaan-knop. De e2e-test van +de mobiele app vult ze met `http://10.0.2.2:4000` en `http://10.0.2.2:4001`, dus **`http://` volstaat** en +de poorten zijn precies die van ons. Het aanzetten van de synchronisatie vraagt daarna een bevestiging op +het Trezor-apparaat zelf. + +**2. Met een eigen relay-URL negeert Suite de quota-manager volledig.** Letterlijk, uit +`suite-common/suite-sync-quota-manager/src/createSuiteSyncQuotaManagerCompositionRoot.ts`: + +```ts +// We only want to use QM for our own relay servers. In case custom URL has been set, QM is ignored, +// unless enforceQuotaManager is set (used for e2e tests with a local relay). +const getIsQuotaManagerEnabled = () => + deps.getIsUsingTrezorRelay() || selectEnforceQuotaManager(deps.getState()); +``` + +`enforceQuotaManager` staat standaard op `false` en bestaat voor hun eigen e2e-tests. + +**Dat is een klem, en hij zit in Trezor's relay en niet in ons pakket.** De cliënt registreert geen eigenaar +zodra je een eigen relay gebruikt, maar de relay van Trezor blijft `isOwnerAllowed()` doen en weigert +iedereen zonder limietenrij (§3). Die rij komt er dus nooit, want het enige dat hem zou maken wordt door de +cliënt overgeslagen. **Trezor's relay is daarmee als zelf-gehoste relay in de kern onbruikbaar**, tenzij je +de rij met de hand in de database zet of de quota-manager buitenom aanroept. + +**3. En dat maakt de kale Evolu-relay niet alleen eenvoudiger maar waarschijnlijk de enige die werkt.** Daar +is geen limietentabel en geen eigenaarscontrole, en de cliënt wil sowieso geen quota-manager bij een eigen +relay. De twee kanten passen op elkaar. + +**Wat nog steeds gemeten moet worden**, want dit is redeneren uit code en geen proef: of de protocolversie +klopt. Suite gebruikt `@evolu/web@3.0.0-next.1` **met een eigen patch** in `.yarn/patches/`, en +`docker.io/evoluhq/relay:latest` hoeft daar niet bij te passen. Dat is nu het enige echte risico, en het is +in minuten te weerleggen: `docker run --rm -p 4000:4000 docker.io/evoluhq/relay:latest`, Suite ernaartoe +wijzen, label maken. + +Dat het huidige pakket de zware variant bevat is geen fout maar het gevolg van de volgorde waarin het +gevonden is: de laag van Trezor was eerder zichtbaar dan de laag eronder. ## 1. Wat het is @@ -183,3 +215,28 @@ Alles hierboven komt uit deze bestanden, geraadpleegd op 25-08-2026: Het oorspronkelijke vooronderzoek van 25-08-2026 staat ongewijzigd in [Vooronderzoek.PLAN.md](../Plannen/Masterplannen/Archief/Vooronderzoek.PLAN.md). Wat daar niet meer klopt, staat hierboven in §2 en §4. + +## 7. De broncode van Trezor Suite staat lokaal + +Aangedragen door de gebruiker op 25-08-2026, en het beantwoordde in een half uur wat uit de serverkant +alleen niet te halen was. In een ander project van de gebruiker staat een kloon van de cliënt: + +``` +D:\HomeGit\Trezor\Repos\trezor-suite +``` + +Dat is de tegenkant van deze relay, en bij een vraag als "verwacht de cliënt dit eigenlijk wel" is dat de +snelste bron. De plekken die hier iets opleverden: + +| Pad | Wat je er vindt | +|-|-| +| `suite-common/suite-sync-quota-manager/src/createSuiteSyncQuotaManagerCompositionRoot.ts` | de regel dat de quota-manager genegeerd wordt bij een eigen relay-URL | +| `suite-native/app/e2e/pageObjects/settingsActions.ts` | hoe je het in de interface instelt, met werkende voorbeeld-URL's op 4000 en 4001 | +| `suite-native/module-settings/src/hooks/useSuiteSyncRelayUrlForm.ts` | het formulier: keuze tussen de standaardserver en een eigen URL | +| `suite-native/suite-sync/src/createSuiteSyncNativeCompositionRoot.ts` | hoe de Evolu-cliënt wordt samengesteld | +| `.yarn/patches/@evolu-web-npm-3.0.0-next.1-*.patch` | dat Trezor de Evolu-cliënt **patcht**, en op welke versie | + +Twee waarschuwingen bij die bron. Het meeste hierboven komt uit **`suite-native`**, dus de mobiele app; de +desktopversie kan andere instellingen op een andere plek hebben, en dat is niet nagekeken. En het is een +kloon op een moment in de tijd: bij twijfel de datum van die kloon opzoeken voordat je er een conclusie op +bouwt.