Stoppen Sie das Runden int64-IDs auf dem Weg zurück zum Server

Fixkamo-internal
Verschifft
19. August 2026 um 02:02 UTC
Autor
kamo
Ausschuss
1709c43

Die Hälfte der int64-ID-Arbeiten des Kunden. Jeder von ihnen nahm eine ID, die der Server hatte intakt gesendet und steckte es durch Number()/parseInt(), die alles umrundet, was über 2-53 kommt -- so nannte die Anfrage eine Zeile, die nicht existiert. Mehrere saßen neben einem Geschwister-Anruf, der bereits die gleiche ID genau geschickt, das ist, was macht sie sichtbar: - binderApi.shareBinder gesendete Number(memberId) während unshareBinder sendet es ganz, so ein Ordner könnte geteilt werden und dann nicht ungeslott. - MemberCreateForm gesendet Number(memberId) zur Zuweisung einer Mailbox, dann verwendet die gleiche ID in der primären Mailbox-Pfad ein Anruf später -- zwei Anrufe, zwei verschiedene Mitglieder. - Die E-Zeichen-Picker rundeten die Mitglieder-ID, das Konto uid und das Kontomitglied ab id, Befestigung von Unterzeichnern an ids, die nicht existieren. - Commerce-Bestellungen parsed ein getippt KäuferUid mit parseInt, so dass Einfügen eines echten 19-stelligen uid hat die Bestellung gegen einen anderen Käufer erstellt. - PipelineApplicationsTab angepasst HypothekAppsApi genaue String uid mit Number(), und dass abgerundete uid dann Routing UND **************** -- ein status schreiben gegen den falschen Kreditantrag. Seine Entstauberkarte und Auswahl-Set sind jetzt von String(uid) keyed; die beiden Endpunkte antworten mit unterschiedlichen JS-Typen für die gleichen Anwendung, so dass eine numerische Schlüssel könnte nie mit einem String ein. Typen weiten sich auf "String | number" statt "String" aus: Eine Zahl ist, was für ein Service, ist nicht wieder aufgebaut, noch sendet, und es ist bereits abgerundet. Die zwei Arithmetik Verwendungen eines uid waren Demo-Saatgut, nicht Identität, und jetzt erzwang explizit und lokal. scripts/check-int64-zod-ids.mjs schließt sich npm Test an und schließt die Tür auf der spezifischen Falle dies begann: eine zod Gewerkschaft nimmt die FIRST Matching Zweig, so z.union([z.coerce.number(), z.string()]) parsiert eine exakte ID direkt wieder in einen Verlust Doppelte beim Lesen fast identisch mit der richtigen Reihenfolge. Mutation-geprüft gegen der ursprüngliche Fehlerorganisation (OrganisationDTOSchema).

Alle Änderungen

Wie, was Sie sehen Versand?

Jedes dieser Updates landet automatisch in Ihrem Arbeitsbereich. Starten Sie frei und beobachten Sie es Woche für Woche wachsen.

Free Forever startenPreisgestaltung anzeigen