Resolve duplicate emailTemplateServiceClient bean conflict
**************** and **************** were identical @Components with the same default bean name, causing **************** at startup. Delete the duplicate in r...
Bump kamo-shared-library la 1.4.0
Docker Stage 1 construiește kamo-shared-library main (acum 1.4.0) și instalează el la local .m2; pompa de serviciu încă referindu-se la 1.0.0 care Maven nu a pu...
Aplică corectitudinea SP6 și stabilirea calității implementării
C1: utilizați NEXT PUBLIC H*** SITE KEY env var în loc de hardcoded placeholder C2: schimbare RegisterResponse.userId și toate params API de la număr la șir (Co...
SP6 înregistrare vrăjitor refactor
- Inlocuiti FormPersonalInfo cu FormName (nume campuri) si FormAvatar (Generator Creator Avatar cu moduri de generare/upload/skip pentru 13+) - Șterge formularu...
SP5 migrate KamoCRM agereq to ALL_WORK_ELIGIBLE
Add KamoCRMAgeReqUpdateRunner (order 10) — conditional idempotent UPDATE on startup; WHERE clause checks old value so re-runs are no-ops. Errors are swallowed s...
Address 4 code-review findings in registration and login paths
- Hide raw exception message in /register 500 path; log instead - Fail-closed (503) on email-verified DB check failure in login - verifyEmailToken throws if use...
Implement SP4 email verification and registration wiring
- Delete legacy email/VerificationEmail.java (hardcoded SMTP stub) - Add **************** (mirrors recovery package pattern) - Add **************** — token gene...
Adaugă e-mailVerificare Token entity + repo + Utilizator.alias/emailVerified + UserRepo interogări; buck 1.4.0 (SP4)
Add SP4 email_verification_tokens DDL + User alias/email_verified columns
Adaugă pagini cu setările contului pentru telefoane + întrebări de securitate (SP3)
Adds ***************** cu cabluri API la Serviciul de Securitate /api/cont/*. Sincronizează navigarea în toate cele 3 locații.
Telefoane API reale în pagina /recoperă (SP3)
Înlocuiește toate falsSubmit () coturi cu apeluri de recuperareApi. Adaugă SMS OTP verifica faza, de intrare e-mail semințe, nou pas de parolă, și token ateriza...
Add AccountSettingsController + Service for phone + security questions (SP3)
Allows logged-in users to set/verify phone and configure 3 security questions. Routes to /api/account/* (session-authenticated via KSESSION_DATA).
Add BulkTextSmsClient + EmailTemplateServiceClient + PasswordRecoveryController (SP3)
Full password recovery flow: email-link, SMS OTP, security questions, seed phrase. Routes to /api/recover/* (unauthenticated). Uses SP1 email pipeline + VOIPSer...
Add InternalAuthFilter + POST /api/bulktext/send for service-to-service SMS (SP3)
Adaugă entități de recuperare + repo; cucui la 1.3.0 (SP3)
Adaugă ParolaResetToken, SmsOtp, Sesiune de recuperare, Codul de verificare a contului Entitățile JPA cu depozite corespunzătoare pentru fluxul de recuperare SP...
Adaugă întrebare de securitateCatalog enum + mp1/2/3 + semințePhraseHash la Utilizator (SP3)
Add SP3 recovery table DDL + User column additions to SchemaCleanupRunner
Previzualizarea traseului prin modul de predare a backendului Browser (parte din SP2)
EmailTemplateBrowser deține acum modul Preview direct, astfel încât Managerul nu mai trebuie să intercepteze cererile de previzualizare la nivel de rând și redi...
Wire EmailTemplateEdit to real API
Hidrate din șablonApi.get, salvează prin șablonApi.actualizare. Categorie Dropdown este condus de API cu inline categorie-creare de costuri. Variabile Alegeți c...
Wire EmailTemplateBrowser to real API + add System Implicits tab
Înlocuiește ~140 linii de date simulate cu șablonApi.list() apeluri. Condiționat fila a cincea "System Implicits" apare numai pentru administratori de top-org ș...
Adaugă e-mailTemplatePreview modal
Se deschide pe rand de actiune Preview. Previzualizare rezultat afişat într-un iframe cu nisip pentru izolare stil. Se potriveşte Traseul exact de cod care trim...
Ștergeți e-mailGeneralManager.tsx (~560 linii de cod mort)
Componenta nu a fost importată nicăieri. Cârligele sale (manipularea sa, dezabonare, livrare de urmărire, implicit din email) nu a avut suport și au fost pur co...
Adaugă șablonApi + categorieApi + module client contracte variabile
Wraps SP1's /api/email/templels/* and *************** criteriile de evaluare cu ajutorul tipScript. contracte variabile oglinzi SP1 ȘablonKeys Javadoc astfel în...
Wire EmailTemplateSeedClient into ****************
Thin RestTemplate client that POSTs to EmailService's **************** after an org + owner TeamMember are persisted. Retries twice with backoff; failure throws...
Add EmailTemplateCategoryController REST endpoints
**************** CRUD. Delete response includes reassignedCount — the number of templates that became uncategorized as a result of removing the category. Sessio...
Add EmailTemplateController REST endpoints + DTOs
Exposes /api/email/templates/* CRUD + preview + duplicate + reset-to-default + service-to-service /send + /seed-org/{orgId}. Top-level orgs (no parent) addition...
Add InternalAuthFilter for service-to-service endpoints
Validates X-Internal-Auth header on /api/email/templates/send and /api/email/templates/seed-org/* paths. Other paths bypass this filter (user session auth handl...
Add EmailTemplateCategoryService — CRUD for org-scoped categories
Case-insensitive name uniqueness per org enforced at service layer (matches the partial unique index in the DB). Deletion nulls category_id on affected template...
Add EmailTemplateService — CRUD + send + seed + reset-to-default
Core orchestrator for transactional email. sendToUser resolves the template, renders subject/body, picks the org's primary domain from Organization.domains, and...
Adăugare fără răspunsSenderService pentru 'NoReply@{domeniu}' from-adresă
O singură sursă de adevăr pentru e-mail tranzacţional de la adrese. Acceptă domeniu șir, minuscule-normalizează, întoarce "NoReply@<domain>." Apelantii trebuie ...
Adaugă expeditor cu șablon pentru substituția {var}}
Regex fără stat. Vars lipsă substituie șir gol și emite un jurnal WARN cu șablonKey + orgId pentru atribuire. Nicio scăpare HTML în v1 Parte din SP1.
Append Z to dateCommitted so JS parses it as UTC
LocalDateTime.toString() produces no timezone designator, causing JavaScript's new Date() to treat the UTC value as local time and display timestamps 7-8 hours ...
Add EmailTemplateSeedRunner for SYSTEM + per-org seeding
Runs at @Order(20) on KamoInitializerService startup. Loads canonical templates from kamo-shared-library resources; upserts SYSTEM rows (no clobber); backfills ...
Convert PT midnight cutoff to UTC for today-count query
Commits are stored in UTC but the cutoff was a naive LocalDateTime in PT, causing yesterday-evening PT commits (00:00–06:59 UTC) to be counted as today.
Add partial unique indexes + CHECK constraints for email_templates
Hibernate ddl-auto can't generate partial unique indexes or computed-CHECK constraints. This commit adds them via the existing idempotent DDL runner pattern aft...
Bump kamo-shared-library versiune la 1.2.0 pentru suplimentele SP1
Adaugă e-mailTemplate, E-mailTemplateCategory, TemplateStatus, TemplateKeys, Template canonic, Template canonicLoader, și resurse HTML canonice.
Adaugă înregistrare canonicăTemplatăLoader + Templier canonic
Citește cele trei șabloane solicitate (BINE, PASSWORD RESET, EMAIL VERIFICARE) din resurse de clasă la Nu-ţi face griji. Consumat de KamoInitializerService for ...
Adaugă HTML canonic + JSON pentru Welcome, PASSWORD RESET, EMAIL VERIFICARE
Conținutul sursei adevărului pentru rândurile de sistem. Încărcat la KamoInitializerService Startup by CanonicalTemplateLoader and UPSERTED into email templels....
Redenumește căsuța poștalăId→id și furnizorulStatus→status în răspunsul listei de căsuțe poștale
Aliniază numele de câmp cu așteptările frontend pentru listarea căsuțelor poștale membre.
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ă.