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).
Prevenire doppio-wrapping di full-document bodyHtml in block designer
Quando bodyBlocks è null e bodyHtml è un documento completo <!DOCTYPE html> (ad esempio, modelli di seme canonico), importandolo come un singolo blocco causato ...
Pass human-readable expiry time to email verification template
Add humanizeMinutes() helper that formats minutes as days/hours/minutes (e.g. "1 day" for 1440 min). Pass as {{expiryText}} to match updated canonical template ...
Migliorare il modello di verifica e-mail — URL fallback, testo di scadenza, soggetto
- Aggiungi il link di verifica del testo semplice qui sotto pulsante come copia-paste fallback - Cambiare la variabile di scadenza da {{expiryMinutes}} a {{expi...
Ripristinare il layout della pagina di verifica mediante lo zero delle dimensioni di input nascoste
MUI Box interpreta i valori numerici di larghezza/altezza 0–1 in percentuale, quindi larghezza:1 ha fatto coprire l'ingresso nascosto la scheda completa. Cambia...
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.
Serializzare l'HTML completo dell'email con il frame esterno sul modello salva
- serializzareFullEmailHtml avvolge i blocchi interni nella cornice esterna di marca (Testo logo, titolo/sottotitolo, area contenuti, logo piè di pagina + nome ...
Aggiungi cornice esterna di marca a modello canonico di e-mail-verificazione
Avvolge contenuti interni con una shell e-mail corretta: intestazione con nome org, area di contenuto imbottita, e piè di pagina. Utilizza {{orgName}} come iden...
Add code-based email verification path to /verify-email endpoint
The endpoint now handles both token (link click) and userId+code (manual 6-digit entry). Token path unchanged; code path hashes the supplied code and matches ag...
Token link auto-verifica e reindirizza a login; aggiungere codice focus indicatore
- /verification?token=xxx ora chiama verificareEmailByToken sul supporto e reindirizza a login sul successo; torna alla voce del codice sul fallimento - La case...
Ascensore *** widget sopra il overlay click-to-focus (z-index)
L'overlay (posizione:absolute, z-index:0) copre il Capcha widget perché è apparso in seguito in ordine DOM. Aggiungere z-index:1 al *** contenitore permette agl...
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.
Add weekly image prune and journal vacuum CronJob for k1m1
CronJob runs every Sunday 3am, privileged, pinned to k1m1. - crictl rmi --prune removes unused container images - nsenter journal vacuum enforces 500MB cap - CI...
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...
Intestazione redattore compatto — rimuovere grandi titolo / tag, spostare le azioni in riga nav
Rimuove la carta di intestazione appiccicosa (titolo, sottotitolo, Salva/Cancella/Anteprima pulsanti, Modifica/Anteprima scheda barra) da EmailTemplateEdit per ...
Richiedere *** nella pagina di verifica prima di ogni tentativo di verifica/rimanda
*** viene resettato dopo ogni azione (successo o fallimento) in modo da un fresco risolvere è richiesto per ogni tentativo successivo.
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...
Reindirizzare a /verificazione dopo la registrazione invece di rendere inline
Mantiene l'URL accurato — mostra del browser /verificazione non /member.
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...
Aggiorna redirect da /resend-verification a /verification sul sito del registro
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...
Reindirizza EMAIL NOT VERIFIED per registrare/resend-verification
Rimuove la inline EmailVerifyCard dalla pagina di login e tutti i relativi State/callbacks. Su EMAIL NOT VERIFIED, l'utente è ora inoltrato E' il posto giusto. ...
Aggiungi /resend-verification pagina per reindirizzare il login
Crea un percorso standalone /resend-verification che accetta ?email e ?userId query params, riutilizzando PostCompletionScreen per una coerente verifica e-mail ...
Scheda di verifica Widen a 32rem per impedire il confezionamento dell'etichetta del pulsante
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')...
Impostare Host/X-Forwarded-Host così APIService risolve il corretto org
APIService sovrascrive X-Forwarded-Host con request.getServerName(), che legge dall'intestazione Host. Senza un intestazione Host esplicita il servizio interno ...
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.
Riprogettare la schermata di verifica dell'e-mail + correggere l'errore di email del risend
- PostCompletionScreen: layout a pagina intera con sfondo org animato, carta di vetro morfismo, logo, caselle di codice visive a 6 cifre, successo / stati verif...
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...
Rimuovere il carico di funzionalità impaziente da getOrganizationByDomain
Le caratteristiche sono una preoccupazione di livello org non correlata alla maggior parte dei chiamanti di questo metodo (ad esempio registrazione, risoluzione...
Mutate presenta la collezione in loco per evitare cascade orfano Errore di ritorno
Calling org.setFeatures (newList) sostituisce il persistente tracciato dall'ibernato raccolta, causando JpaSystemException quando qualsiasi query attiva automat...
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...
Invia la verifica utilizzando e-mail non userId, avanti X-Forwarded-Host
SecurityService /register /resend-verification si aspetta e-mail nel corpo, non userId (che la risposta di errore di login non include mai). Anche in avanti X-F...
Abbinamento di avatar kamo-internal — 3 dimensioni, MinIO, passo di caricamento separato
La finestra di dialogo Crop ora produce tre blobs PNG (50/150/350px) tramite tela, identico AvatarManager di kamo-internal. Dopo la registrazione restituisce us...
Add register-photo endpoint for unauthenticated post-registration avatar upload
POST **************** accepts userId + file/fileSm/fileMd/fileLg without a session. Guards: user must be unverified and have no avatar yet, preventing abuse aga...
Sostituisci l'errore EMAIL NOT VERIFIED con una ricca scheda di verifica
Quando il login fallisce con EMAIL NOT VERIFIED la carta di accesso è ora sostituita da una schermo lucido "Check your inbox": busta animata SVG con patta di ap...
Estendere il caricamento di foto per supportare i formati AVIF e SVG
Aggiunge immagine/avif e immagine/svg+xml all'elenco di accettazione dell'ingresso del file e convalida regex. Aggiorna l'etichetta di suggerimento per elencare...
Aggiungi reag-easy-crop photo editor per la fase di upload di registrazione
Specchi il PhotoCropDialog di AvatarManager di kamo-internal: - finestra di dialogo raccolto si apre immediatamente dopo la selezione del file - padella trascin...
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.
Passare il corpo di errore a monte tramite proxy di sicurezza invece di un messaggio generico
Precedentemente restituito {error: "Upstream error"} su non-2xx, perdendo il reale messaggio di errore da SecurityService. Ora inoltra il codice di stato e il c...
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...
Sostituire la cache di sessione Redis con Java API fetch diretto in org route
Prevenire stale ageReqType cache da mostrare il controllo dell'età in modo non corretto
- Org route: ridurre Redis TTL da 24h a 5min e aggiungere etàReqTypeMember al rilevamento delle macchie in modo che i campi di sicurezza rimangano freschi dopo ...
Come quello che vedi la spedizione?
Tutto questo arriva nel vostro spazio di lavoro da solo. Iniziare sul piano gratuito e leggere di nuovo questa pagina in un mese.
