chore(hub): schema 1 van de device-handtekening verwijderen #170
No reviewers
Labels
No labels
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
janpeter/Scrum4Me!170
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "chore/hub-signature-drop-v1"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Sluitstuk van IDEA-183 (Task 6 uit het plan). De overgang is voorbij: schema v2 is live, de TestFlight-build met v2 draait op het toestel, en er is precies één actief apparaat in
hub_devices— dat toestel, vier minuten vóór deze wijziging nog gezien. Niets spreekt nog v1.Wat eruit gaat
buildCanonicalString(v1) en de schemakeuze inwithSignedDevice. Er is nu één pad: elk ondertekend verzoek wordt als v2 geverifieerd.X-Hub-Sig-Versionniet meer. De iOS-client blijft hem sturen — onschadelijk, en hem weghalen zou een tweede lockstep-deploy kosten voor niets. Er is expliciet een test die aantoont dat een verzoek zónder die header gewoon authenticeert, zodat de header echt vestigiaal is en niet stilzwijgend verplicht.+-weigering verliest haarschema === 2-voorwaarde en geldt vanaf nu voor élk ondertekend verzoek.De volgorde was de eis, niet de stijl
Zeven bestanden tekenden verzoeken met
buildCanonicalString; zes daarvan zouden omvallen op het moment dat de v1-tak verdwijnt. Commit 1 migreert die zes naar één gedeelde helper in__tests__/lib/hub/test-signing.ts— met de productiecode nog dual-schema, en groen — en pas commit 2 verwijdert v1.git showbevestigt die scheiding: commit 1 raakt uitsluitend__tests__/, commit 2 draagt delib/hub/-wijzigingen. Zes kopieën van één contract was precies de vorm die deze bug veroorzaakte; er is er nu één.Een achtste gebruiker (
__tests__/lib/hub/signature-scheme.test.ts) die het plan miste, is meegenomen.Testaantal
2047 → 2044. Alle vier verdwenen tests waren v1-specifiek (de default-terugval zonder header, de twee sabotage-kruisingen, en de disjunctheidstest tussen v1 en v2), plus één nieuwe test erbij voor de vestigiale header. De review heeft die vier bij naam nagelopen in plaats van het verschil aan te nemen.
Verificatie
090be14:npm ci && npm run verify && npm run build && git diff --exit-code.npm run verify: 250 bestanden, 2044 tests.Na merge is er geen weg terug naar een oudere app-build — die tekent v1 en krijgt dan 401. Dat is de bewuste keuze die met deze PR wordt gemaakt.
🤖 Generated with Claude Code
Verdict: APPROVED
Geen gekoppeld plan gevonden — beoordeeld op codekwaliteit + product-standaarden.
Findings
De diff verwijdert schema 1 uit de hub-device-handtekening op een consistente manier:
withSignedDevicebouwt onvoorwaardelijk de v2-canonical string, de oude export/headerkeuze verdwijnt, de runbooktekst is bijgewerkt, en de tests blijven de relevante contracten dekken (:/%3A, rauwe+als 400, query-manipulatie, en de vestigialeX-Hub-Sig-Version-header).