Erstellen Sie Mitgliedsprotokoll bei der Registrierung, damit sich neue Benutzer einloggen können
bevölkern alle EMAIL_VERIFICATION Vorlagen-Variablen
War das Senden nur {token, code" Vorlage braucht auch orgName, firstName, überprüfenLink und auslaufendeMinuten. Laden org und Benutzer, um die vollen vars baue...
Verwenden Sie subdomain-aware SQL, um findByDomain JPQL Logik zu entsprechen
Org Domain-Suche in ResendVerifikation wurde eine exact-match Abfrage die für Subdomains gespeichert als Kind Aufzeichnungen (z.B. 'api' mit Eltern gespeichert ...
Korrekt E-MailService URL-Port in configmap (4203 -- 80)
EmailService K8s Service stellt Port 80, nicht 4203. Überprüfung E-Mails waren Timing aus auf jeder Registrierungsversuch.
Bypass JPA org Lookup zur Vermeidung von Hibernate-Cakade-Feed-Fehler
************ löst ******** aus die eine Hibernate Auto-Flush verursacht. Das Flush scheitert, weil Organization.features war vorher ersetzt durch eine einfache ...
Verwenden Sie getReferenceById, um Kaskaden orphanRemoval Flush Fehler bei der Registrierung zu vermeiden
Ladeorganisation über findById innen @Transactional verursachte Hibernate erkennen, die Funktionen Sammlung wurde während der Auto-Flush, Werfen de-Referenz Jpa...
Register-Foto-Endpunkt für nicht authentifizierten Post-Registrierungs-Avatar-Upload hinzufügen
POST ************ akzeptiert userId + file/fileSm/fileMd/fileLg ohne Sitzung. Guards: Benutzer muss nicht überprüft werden und haben noch keinen Avatar, verhind...
Align Registrierung Feldnamen und Antwortform mit Frontend-Vertrag
Frontend sendet nameFirst/nameLetzte, aber Controller lesen firstName/lastName, verursacht 400 "Vorname ist erforderlich". Erfolgsresonanz kehrt zurück {status,...
SecurityService und dao.repositories zu EnableJpaRepositories scan hinzufügen
UserPhoneLookupRepository in Recovery-Paket wurde nicht abgeholt, weil EnableJpaRepositories nur aufgeführt dao.repos und Handel. Hinzugefügt die SecurityServic...
GET /api/security/geoip/me für Client IP Country Lookup hinzufügen
Liest reale Client IP von X-For / X-Real-IP Headern, macht eine GeoLite2 Suche und gibt { country_code, country_name zurück. Wird durch Kamo-register's Land Aut...
Doppeler E-MailTemplateServiceClient Bohnenkonflikt lösen
************ und ************ waren identisch @Components mit dem gleichen Standard-Bean eine Standard-Bean, was ************ beim Start. Löschen Sie das Duplik...
Adresse 4 Code-Review-Ergebnisse in Registrierungs- und Login-Pfaden
- Rohe Ausnahmemeldung in /registrieren 500 Pfad; log instead - Fail-closed (503) auf E-Mail-verifizierte DB-Prüffehler bei Anmeldung - überprüfenEmailToken wir...
Einführung von SP4 E-Mail-Nachprüfung und Registrierungsverkabelung
- Löschen Sie Legacy email/VerificationEmail.java (hardcoded SMTP stub) - ************ hinzufügen (Spiegel-Rehitpaket-Muster) - Add ************ - Token-Generat...
AccountSettingsController + Service für Telefon + Sicherheitsfragen hinzufügen (SP3)
Ermöglicht angemeldeten Benutzern, das Telefon zu setzen/verifizieren und 3 Sicherheitsfragen zu konfigurieren. Routen zu /api/account/* (session-authenticated ...
BulkTextSmsClient + EmailTemplateServiceClient + PasswordRecoveryController (SP3) hinzufügen
Vollständiger Passwort-Recovery-Flow: E-Mail-Link, SMS OTP, Sicherheitsfragen, Samen Phrase. Routen nach /api/wiederherstellung/* (unuthenttärkt). Verwendet SP1...
Wire EmailTemplateSeedClient in ************
Thin RestTemplate Client, der POSTs zu EmailService's ************ nach einem org + Besitzer TeamMember sind beharrte. Retries zweimal mit Backoff; Ausfall wirf...
Angelebt Z bis datagiert, so dass JS es als UTC parsiert
LocalDateTime.toString() produziert keinen Zeitzonen-Designator, was JavaScript's neues Date() zur Behandlung des UTC-Wertes als Ortszeit und Anzeigezeiten 7-8 ...
PT Mitternacht Cutoff nach UTC für heutige Abfrage konvertieren
Commits sind in UTC gespeichert, aber der Cutoff war eine naive LocalDateTime in PT, was dazu führt, dass PT-Demits gesternabend (00:00-06:59 UTC) gezählt als h...
Entfernen Sie Häuser/Apps/Corporieren/Einsicht von den erforderlichen DNS-Aliasen
Fügen Sie öffentliche bekannte-alasen Endpunkt für kamo-nowww Build-Time back-in
Redact Tokens 32 Zeichen in Changelog-Dennisierung
Jedes Wort (Lauf von nicht-Whitespace), das 32 Zeichen oder länger ist ersetzt mit ************, bevor Titel und Beschreibungen gesendet werden zu der Übersetzu...
TXT Verifikation Token auf Domain erstellen, überprüfen Sie in verifiziert-dns
- erstellenDomain: erzeugen 32-char UUID Token und speichern über setVerificationToken - überprüfenDs: überprüfen _kamo-verify TXT-Rekord für kamo-site-verifica...
Update erforderliche Aliasnamen - hinzufügen App, capcha, docs, unterschreiben; Vermächtnis entfernen
Cross-Or-Domain-Management durch Überprüfung der Benutzerbeteiligung
Übersetzungskonkurenz zu 3 Threads zur Vermeidung von DB Pool Erschöpfung
Unbounded @Async (SimpleAsyncTaskExecutor) erzeugte 50 Threads gleichzeitig wenn der Retrotry-Planer feuerte, jeder eine DB-Transaktion eröffnete und entwässert...
Drei Fehler verhindern, dass Changelog-Übersetzungen gespeichert werden
1. ************ war verworfen Ereignisse, weil handleWebhook() hatte keine @Transaktionelle - speichern + publikation() lief draußen jede Transaktion. Füg...
Hinzufügen /setup/dns backend . One-Domain-Durchsetzung, SSL-Sonde, neue Aliasnamen
- Ersetzen Sie eine eigene Domain pro Org in POST /api/security/Domains - Capcha, docs, unterschreiben Sie zu Standard-Aliasen; entfernen Sie Vermächtnis-Alias ...
Wortersatz zur Übersetzungsstunde anwenden, nicht zu nehmen
Originaltext wird in der DB aufbewahrt, so dass das Hinzufügen einer neuen Regel und Um bestehende Datensätze zu aktualisieren, ist eine Übersetzungshilfe erfor...
Changelog-Wortersatz vor der Übersetzung verschieben
Textersatz (Docs-Docs, Meet-Meet, etc.) und geheimer Name Redaktion (K8s geheime Namen) wurden zuvor Client-Seite in angewendet ChangelogClient.tsx, d.h. die ro...
Überprüfen Sie TeamMember.isOrganizationOwner Flagge für die Besitzererkennung in my-networks Endpunkt
Die vorherige Überprüfung hat sich nur org.getOwner() (user_id_owner column) angesehen, welche kann für vorhandene Orgs null sein. Die autoritäre Eigentümerflag...
Org und Mitglieds-IDs als Strings in my-networks Endpunkt, um JS Präzisionsverlust zu verhindern
Einschließen Elternorg in /org/domain response
Der getOrganizationByDomain Endpunkt baut manuell eine Antwortkarte aber nie die Mutterorganisation Referenz enthalten. Dies verhinderte das Frontend von zu wis...
Lassen Sie sich nicht null übersetzte Beschreibung verstecken das englische Original in changelog
Die Übersetzungsrekubation für Nicht-en-Lokale war bedingungslos überschrieben Beschreibung mit ****************, die null ist, wenn: - die Übersetzung wurde ge...
Übersetzen config von application.yml entfernen gehört in k8s/configmap.yaml
Verwenden Sie UUID-basierte Repo-Methoden für Abonnement-Plan Übersetzungen, vermeiden Sie Faul-Ladung im Zeitplaner
Hinzufügen von async-Übersetzung für Changelog und Abonnement-Pläne, fügen Sie lokale öffentliche APIs hinzu
Fügen Sie Concurrency-Gruppe hinzu, um doppelte Workflow-Läufe zu verhindern
Wenn ein Push einen Workflow auslöst und workflow_dispatch ebenfalls gefeuert wird (oder zwei Drücke kommen in schneller Folge), beide Läufe würden ausführen gl...
TranslateService zur Changelog-Liste für öffentliche Projekte hinzufügen
Fügen Sie Blei-Aufnahme-Management und öffentliche Empfangs-Controller
Fügt zwei Controller für das automatisierte Lead-Einführungssystem hinzu: - LeadIntakeController: authentifiziert CRUD für Aufnahmeendpunkte, Feld Mappings, N...
Verwenden Sie bare PST Mitternacht (keine UTC-Konvertierung), um die aktuellen Änderungen zu zählen
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.