Aggiungi pagine delle impostazioni dell'account per domande di telefono + sicurezza (SP3)
Addirittura... Servizio di sicurezza /api/account/*. Syncs nav in tutte le 3 posizioni.
Filo reale API chiama in /recuperare pagina (SP3)
Sostituisce tutte le stube falseSubmit() con recuperoApi chiamate. Aggiunge SMS OTP verifica fase, ingresso di e-mail di seme, passo di nuova password e atterra...
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)
Aggiungere entità di recupero + repos; urto a 1.3.0 (SP3)
Aggiunge PasswordResetToken, SmsOtp, RecoverySession, AccountVerificationCode entità JPA con corrispondenti repository per il flusso di recupero SP3.
Aggiungi SecurityQuestionCatalog enum + sq1/2/3 + seedPhraseHash all'utente (SP3)
Add SP3 recovery table DDL + User column additions to SchemaCleanupRunner
Anteprima del percorso attraverso il backend di Browser-rendered modal (parte di SP2)
Il EmailTemplateBrowser ora possiede l'anteprima modale direttamente, quindi il Manager non ha più bisogno di intercettare richieste di anteprima a livello di r...
Wire EmailTemplateEdit to real API
Idrata da templateApi.get, salva tramite templateApi.update. Categoria dropdown è API-driven con la garanzia di creazione di categoria in linea. Variabili picke...
Wire EmailTemplateBrowser a API reale + aggiungere la scheda Default di sistema
Sostituisce ~140 linee di dati mock con le chiamate templateApi.list(). Condizione quinta scheda 'System Defaults' appare solo per gli amministratori e i render...
Aggiungi EmailTemplatePreview modal
Si apre su Anteprima azione riga. Backend-rendered tramite templateApi.preview(); risultato visualizzato in un iframe sabbiato per isolamento stile. Corrisponde...
Aggiungi templateApi + categoriaApi + variabiliContraccia i moduli client
E' una specie di... endpoints con helper TypeScript digitati. variabiliContratti specchi SP1 TemplateKeys Javadoc così il raccoglitore variabile dell'editor mos...
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...
Aggiungi EmailTemplateCategoryService — CRUD per le categorie org-scope
Caso-insensibile nome unicità per org applicato a livello di servizio (scelga l'indice unico parziale nel DB). Cancellazione nulls categoria id sui modelli inte...
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...
Aggiungi NoReplySenderService per 'NoReply@{domain}' dall'indirizzo
Singola fonte di verità per e-mail transazionale da indirizzi. Accetta un stringa di dominio, abbassare-normalizza, restituisce "NoReply@θdomain>". I chiamanti ...
Aggiungi TemplateRenderer per la sostituzione {{var}}
Render basato su regex senza stato. I vars mancanti sostituiscono la stringa vuota e emettere un registro WARN con templateKey + orgId per attribuzione. Nessuna...
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 ...
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...
Aggiungi CanonicalTemplateLoader + CanonicalTemplate record
Legge i tre modelli REQUIRED (WELCOME, PASSWORD RESET, EMAIL VERIFICAZIONE) dalle risorse dei percorsi di classe E' il momento giusto. Consumato da KamoInitiali...
Aggiungi HTML canonica + JSON per WELCOME, PASSWORD RESET, EMAIL VERIFICATION
Contenuto fondamentale per le righe SYSTEM. Caricato su KamoInitializerService avvio da CanonicalTemplateLoader e UPSERTed in email templates. Parte della SP1.
Aggiungere EmailTemplate entità + repository
Memorizza una riga SYSTEM per template key (org id NULL, is system TRUE) plus un clone per org per template key. Riferimento morbido org id/category id. DB... t...
Aggiungi EmailTemplateCategory entità + repository
Le categorie Org-scoped per i modelli di posta elettronica. Soft BIGINT org id (no FK) corrisponde a modelli esistenti. L'unicità del nome Case-insensibile per-...
Aggiungi TemplateStatus enum + TemplateKeys costanti per modelli transazionali
Dichiara il ciclo di vita REQUIRED/CUSTOM/ARCHIVED e i tre chiavi di modello richieste (WELCOME, PASSWORD RESET, EMAIL VERIFICATION). Contratti variabili per og...
Seed KamoCRM with ALL_WORK_ELIGIBLE on fresh installs
The createOrg() helper applies this single argument to both ageReqTypeMember and ageReqTypeTeamMember; consistent with platform convention. Pairs with KamoCRMAg...
Add one-time runner to migrate KamoCRM agereq to ALL_WORK_ELIGIBLE
Conditional idempotent UPDATE runs on service startup; WHERE clause checks the expected old value so re-runs are no-ops. Errors are logged and swallowed — start...
Integrazione logo + accurato /integrazioni metadati
Le pagine di integrazione e hub ora visualizzano i loghi dei fornitori (riutilizzando l'esistente # I beni che la homepage # TechStackBanner utilizza già). Il l...
Espandere /integrazioni a tutti i fornitori di homepage-list
Allinea la pagina /integrazioni con le integrazioni effettive esposte da la homepage (TechStackBanner). Aggiunge 28 nuove pagine di integrazione che cosa il pro...
Aggiungi Home Mortgage Brokers industria pagina
Nuova pagina di soluzione del settore a /solutions/mortgage-brokers per ipoteca intermediari e promotori di prestiti. Segui l'onesta configurazione della piatta...
Aggiungere 92 pagine SEO — industrie, integrazioni, glossario
Livello 1 del piano di espansione dei contenuti SEO: tre nuovi contenuti sottosistemi con un totale di 92 nuovi URL crawlable più 3 pagine hub. 1. /soluzioni —...
Add geo-database-url to analytics-secret for CockroachDB geolite lookup
Kamo Analytics uses this URL to look up visitor IP→country/region/city from the **************** tables. Uses kamo user with password auth and sslmode=require (...
Aggiungi k8s manifesti per kamo-nowww (catch-all IngressRoute, priorità 1)
Aggiungi kamo-nowww middleware redirect (apex/unknown→www, ACME pass-through, 308)
Add public known-aliases endpoint for kamo-nowww build-time bake-in
Aggiungi un sottile backlink KamoCRM alle pagine di registrazione
Specchi il distintivo PoweredByKamo spedito in kamo-login. Da kamo-register è servito su ogni dominio del cliente white-label, questo crea una stabile dofollow ...
Like what you see shipping?
All of it arrives in your workspace on its own. Start on the free plan and read this page again in a month.
