Adăugați client-side curent Paznic gol parolă în secțiunea de schimbare parolă
Add org-scoping, password length validation, and code quality improvements to PasswordChangeController
Unificați previzualizarea și editorul într-un singur sistem coerent
- conţinutul şablonului sistemului de extragere prin intermediul DOMParser ţintind conţinutul celulei <td>, prevenirea împachetării duble atunci când EmailFrame...
Add @Transactional to DataLoader.run to fix LazyInitializationException on startup
Use JPA entity traversal for grant-all detection (covers dept/job roles)
Filter null rights in buildAppliedRightsWithSources; upgrade shared-lib to 1.5.0
Încarcă Avatar Creator avatar pe server după înregistrare
Avatar Creator avatare au fost stocate doar ca URL-uri de date SVG în formă locală și nu a trimis la server, lăsând noi utilizatori fără set de avatar. Conversi...
Use core NATS pub/sub for email-verified SSE fan-out
Replaces in-memory ConcurrentHashMap broadcast with NATS core pub/sub so all pods receive verification events regardless of which pod handled the token. Falls b...
Fix centru defilare și sistem șablon bloc de încărcare
- Elimina inaltime:100% din EmailFrame astfel incat continutul creste natural si deruleaza lucrari - Extras <body> conţinut din şabloane complete de sistem HTML...
Extragerea conținutului interior din HTML canonic atunci când încărcarea în editor bloc
Când bodyBlocks este nul și bodyHtml începe cu <!DOCTYPE, extrage conţinut principal <td> ca bloc HTML iniţial astfel încât utilizatorii să vadă existenţa conți...
Acceptă moștenire tab/titlu/helpTips recuzită pe EmailMailboxManager router
Reordonarea declarațiilor pentru a remedia erorile TS utilizate înainte de declarație
Mută obțineLogoSrc înainte de utilizare pentru a repara eroarea de comandă a declarației TS
Use avatarType field + JDBC for photo URL generation to handle Hibernate proxies
**************** previously used instanceof AvatarPhoto to determine avatar type and cast to read fileExtension. When Hibernate returns a base-class proxy (e.g....
Update EMAIL_VERIFICATION sample vars to match current template
Use expiryText instead of expiryMinutes (renamed variable), and update verifyLink to point to the register subdomain (correct send path).
Prevenirea dubla-ambalare de corp complet documentHtml în bloc designer
Când bodyBlocks este nul și bodyHtml este un document complet <!DOCTYPE html> (de exemplu, șabloane însămânțate canonice), importând-o ca un singur bloc cauzat ...
Restaurarea aspectului paginii de verificare prin zeroarea dimensiunilor de intrare ascunse
Caseta MUI interpretează valorile de lățime/înălțime numerică 0 lățimea:1 a făcut intrarea ascuns acoperă cardul complet. Schimbat la 0 astfel încât intrarea es...
Preserve DB domain case in NoReply from address
Removed toLowerCase() — the domain already comes from resolvePrimaryDomain which reads org_domains from the database, so case is canonical from DB.
Token link auto-verifică și redirecționează către autentificare; adăugați indicatorul de focalizare cod
- /verification?token=xx acum apeluri verifica EmailByToken pe Mount și redirecționează către autentificarea succesului; cade înapoi la codul de intrare pe eșec...
Lift *** widget deasupra click-to-focus overlay (z-index)
Suprapunerea (poziţia:absolut, z-index:0) acoperea Capcha widget pentru că a apărut mai târziu în ordinea DOM. Adăugare z-index:1 Containerul permite ca evenime...
Remove nonexistent postfix-lmdb package, install lmdb library instead
postfix-lmdb is not a valid Alpine package; lmdb support is built into the base postfix package. The pod was CrashLoopBackOff due to apk failure.
Fix Docs image registry, add Recreate strategy to coturn/postfix, increase qdrant memory
- Docs: fix wrong image registry (redis.kamo.svc... → **************** add Recreate strategy - coturn: add Recreate strategy to prevent rolling update port conf...
Switch Postfix sasl_passwd from hash to lmdb format
Alpine postfix build does not include hash support — postmap and smtp_sasl_password_maps were silently failing, deferring every outbound relay attempt through s...
Redirect la /verificare după înregistrare în loc de redarea în linie
Păstrează URL-ul exact .
Resolve root domain for NoReply from-address instead of bare subdomain
resolvePrimaryDomain() was returning the first domain entry (e.g. "www") which produced NoReply@www. Now prefers root domains (parent == null) so transactional ...
Populate all EMAIL_VERIFICATION template variables
Was sending only {token, code} — template also needs orgName, firstName, verifyLink, and expiryMinutes. Load org and user to build the full vars map, and resolv...
Actualizare redirecționare de la /resend-verificare la /verificare pe site-ul de înregistrare
Add internal.auth.secret to EmailService configmap
InternalAuthFilter was rejecting all service-to-service calls (send, seed-org) with 503 because internal.auth.secret was unconfigured. Matches the same INTERNAL...
Allow transactional send on port-25 relay and auto-seed missing templates
Port-25 SMTP (postfix) requires no auth — transactionalCredentials() was throwing ProviderUnavailableException when user/pass were unconfigured, blocking all ve...
Use subdomain-aware SQL to match findByDomain JPQL logic
Org domain lookup in resendVerification was doing an exact-match query that failed for subdomains stored as child records (e.g. 'api' with parent 'kamocrm.com')...
Setează gazda/X-forwarded-Host astfel APIService rezolvă org corect
APIService suprascrie X-forwarded-Host cu cerere.getServerName(), care citește din antetul gazdei. Fără un antet gazdă explicit serviciul intern K8s numele gazd...
Correct EmailService URL port in configmap (4203 -> 80)
EmailService K8s service exposes port 80, not 4203. Verification emails were timing out on every registration attempt.
Bypass JPA org lookup to avoid Hibernate cascade flush error
**************** triggers **************** which causes a Hibernate auto-flush. That flush fails because Organization.features was previously replaced with a pl...
Mutați elemente de colectare în loc pentru a evita orfană cascadă Eroare de memorie
Calling org.setFeatures (newList) înlocuiește Hibernate-tracked persistent colectare, provocând JpaSystemException atunci când orice interogare declanşează auto...
Use getReferenceById to avoid cascade orphanRemoval flush error on registration
Loading Organization via findById inside @Transactional caused Hibernate to detect the features collection was de-referenced during auto-flush, throwing JpaSyst...
Retrimite verificarea folosind e-mail nu userId, înainte X-forwarded-Host
SecurityService /register/resend-verification se așteaptă la e-mail în organism; nu userId (pe care răspunsul de eroare de autentificare nu îl include niciodată...
Add dao.repositories to JPA scan so EmailTemplateRepository is found
Same pattern as KamoInitializerService — explicit basePackages overrides default scanning and must include every package that has repositories.
Treceți corpul de eroare din amonte prin proxy de securitate în loc de mesaj generic
Din episoadele anterioare: mesaj de eroare de la Serviciul de Securitate. Acum transmite direct codul de stare şi corpul.
Align registration field names and response shape with frontend contract
Frontend sends nameFirst/nameLast but controller read firstName/lastName, causing 400 "First name is required". Success response now returns {status, userId, al...
Preveniți vârsta vecheReqType cache de la afișarea incorectă a verificării vârstei
- Traseu Org: reduce Redis TTL de la 24h la 5min și adaugă vârstaReqTypeMember să se oprească detectarea astfel încât câmpurile de securitate să rămână proaspet...
Add SecurityService and dao.repositories to EnableJpaRepositories scan
UserPhoneLookupRepository in recovery package was not picked up because EnableJpaRepositories only listed dao.repos and commerce. Added the SecurityService base...
Setează titlul filei browser-ului la "Registru - {org name} "
Name titlu la "Registrul - {org.title} " o dată încărcat org. Retragere statică în layout.tsx schimbat de la "Crea următorul App" la "Registru.".
Rezolvați erorile TS din pașii utilizați înainte de declarație și în stilul Capcha
Mişcaţi-vă! UtilizaţiMemos mai sus de utilizareEfecte care depinde de acestea; importa CSSVariables tip și să-l folosească pentru recuzita stil Capcha-widget.
Add dao.repositories to EnableJpaRepositories scan
EmailTemplateRepository lives under dao.repositories.email, not dao.repos, so it was not picked up as a Spring bean.
Ca ceea ce vezi de transport maritim?
Fiecare dintre aceste actualizări aterizează automat în spațiul de lucru. Începe gratuit și urmăriți-l crească săptămână după săptămână.