From dc0bb9f0dc50bdb5929a6f81d4ced6fe9b0004b4 Mon Sep 17 00:00:00 2001 From: Harmen Date: Wed, 26 Aug 2026 07:34:49 +0200 Subject: [PATCH] De client zegt het zelf: bij een eigen relay wordt de quota-manager genegeerd MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit De gebruiker wees erop dat de broncode van Trezor Suite lokaal staat, in het project Trezor onder Repos/trezor-suite. Dat beantwoordde in een half uur wat uit de serverkant alleen niet te halen was, en het draait de vraag van vanavond om. Uit een commentaarregel van Trezor zelf, in suite-common/suite-sync-quota-manager/src/createSuiteSyncQuotaManagerCompositionRoot.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)." Die vlag staat standaard op false. Daarmee is het pakket dat nu draait niet alleen zwaar maar waarschijnlijk kapot bij ontwerp. Met een eigen relay-URL registreert de cliënt geen eigenaar, en de relay van Trezor weigert iedereen zonder rij in de limietentabel. Die rij komt er dus nooit: het enige dat hem zou maken wordt door de cliënt overgeslagen. Niet de kale Evolu-relay was de gok, maar deze. Twee dingen die er gratis bij kwamen en die vragen van eerder beantwoorden. Suite neemt http:// (de e2e-test gebruikt http://10.0.2.2:4000 en :4001), dus TLS is geen eis en dat raakt het masterplan Bereikbaarheid. En de instellingen staan onder dev-utils, met twee losse velden voor relay en quota-manager, plus een bevestiging op het apparaat bij het aanzetten. Wat er nog echt open is, is geen redenering maar een proef: Suite gebruikt @evolu/web@3.0.0-next.1 met een eigen patch in .yarn/patches, en de gepubliceerde relay-image hoeft daar niet bij te passen. Dat is met docker run in minuten te weerleggen en staat als eerste taak. De vindplaats zelf is als naslag opgeschreven, met de vijf bestanden die iets opleverden en twee waarschuwingen: het meeste komt uit suite-native, dus de mobiele app, en het is een kloon op een moment in de tijd. Tests: niet gedraaid, dit raakt alleen documentatie. Co-Authored-By: Claude Opus 5 --- Docs/CONTINUE_HERE.md | 2 +- Docs/Plannen/Actief/008-Umbrelapp/OPEN.md | 19 ++++-- Docs/Plannen/Actief/008-Umbrelapp/TAKEN.md | 19 +++--- Docs/Referenties/Upstream-evolu-relay.md | 73 +++++++++++++++++++--- 4 files changed, 91 insertions(+), 22 deletions(-) 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.