Risolvi i diritti dei membri come una vera cascata invece di NUKE-always-wins
I diritti effettivi sono stati calcolati piegando ogni fonte (roli, reparto, lavoro titolo, membro) in una mappa in cui NUKE ha sempre vinto. Ciò significava ch...
Revertire la sicurezza Fornitore di autodidatta; membro del self-heal diritti applicati
Due problemi prod dal cambiamento di sicurezzaProvider-mirror: 1. Enter-as-System-Member non è riuscito con "Nessun appartenenza all'organizzazione fornitore d...
Aggiorna lo stato del fornitore quando OAuth popup si chiude
Il fornitore ora reindirizza al callback api-gateway (un'origine diversa), in modo che il suo postMessage non può passare il controllo di origine apripista. Rec...
Passaggio pubblico per email OAuth provider callback
Avanti GET *****************************************************************************************************************************************************...
Ridirezione pubblica fissa + gateway-forwards
Piattaforma email OAuth (Microsoft 365 / Google / Zoho) non aveva pubblico valido redirect URI: il reindirizzamento è derivato dall'host richiesta, che in prod ...
Serve e-sign editor PDF per qualsiasi documento convertito, incl PDF nativi
L'editor di e-sign (DocumentEditor → PdfCanvas / PageThumbnailSidebar) apre qualsiasi documento convertito, non solo i file caricati attraverso il flusso sig-te...
I miei Docs usa MY DOCS ordinal (3), non enum id (4)
Il backend risolve ImageAssocType tramite `valori()[assocType]` (indice normale) e persiste @Enumerated (ORDINAL). Ogni superficie di imaging passa l'ordinale, ...
Convertire documenti deduplicati in modo che la modifica e-sign sia abilitata
Quando i byte di un file caricato corrispondono a un ImgDat esistente, il percorso dedup (registrante-esistente) riutilizzato quel dat verbatim e mai eseguito l...
Ritorno 200 tutti Falso per funzionalità di org non configurate
GET /api/voip/capabilities ha lanciato ProviderNotConfiguredException (422) quando un org non aveva alcun fornitore di telefonia, registrando un errore di conso...
Stop 404/422 errori di console per nav non personalizzati e senza telefono
Leggi il punto finale della collezione ui-preferences (sempre 200) per l'iniziale navLayout caricare invece del GET single-key, che 404s quando un membro ha mai...
Fornire proattivamente solo gli alias del browser (media.*)
Il meccanismo di scoperta log-scan non può mai scarponitra l'alias `media`: esso è sempre contattato dal browser tramite una subresource WebSocket/XHR (SockJS /...
Gate lead contact-info per incarico + nuovi diritti sulla privacy
Specchio i tre nuovi diritti CRM. Sulla pagina di dettaglio di piombo, maschera / bloccare il Contatti primari, indirizzi postali e indirizzi di proprietà per i...
Enforce lead contact-info privacy rights
ottenereAllLeads ora restituisce il magra LeadListDTO e nasconde piste senza firma dai membri senza VIEW UNASSIGNED LEADS. getLeadById maschere contatto info (s...
Lead contact-info privacy rights + elenco magra DTO
Aggiungi tre diritti CRM (161-163): "Assegnato ad altri: View/Edit Lead Contatto Info" e "Vista Piombo Unassigned". Aggiungi LeadListDTO - un magra proiezione p...
Interprete blocco LAST EDIT AT come UTC per la scadenza epoca-millis
dbNow() ora restituisce DB-UTC wall-clock (ora()::timestamp), quindi recuperare l'assoluto istantaneo con toInstant(UTC) invece della zona di default JVM — mant...
DbNow() ora()->:timestamp (TIMESTAMPTZ->Instant ha rotto LocalDateTime)
SELECT now() restituisce TIMESTAMPTZ, che Hibernate si materializza come java.time. istanza istantanea e non può lanciare al tipo di ritorno dichiarato LocalDat...
Invia il tipo di iscrizione dai percorsi /member e /team
/team signups creare un TEAM MEMBER (creato PROSPECT, in attesa di attivazione di amministrazione); /member le iscrizioni creano un MEMBER. RegisterFlow prende ...
/team crea un TEAM MEMBER (PROSPECT), /member crea un MEMBER
La registrazione pubblica ora onora il membroTipo il sito del registro invia (da /membro vs /team path): /team crea un TEAM MEMBER — come PROSPECT, quindi un am...
Filtro agente mostra nome membro + estensione del telefono, non e-mail
L'Agente a discesa etichettato ogni compagno di squadra con la loro e-mail perché il caricatore prima letturaName/last Nome chiavi il backend non invia mai (inv...
Esponere l'estensione del telefono di lavoro del team-membro in team-membri-appaltatori
Il filtro agente /leads ha bisogno dell'estensione del telefono di lavoro per le opzioni di etichetta come "Nome (ext 8080)". L'estensione esiste già su TeamMem...
Il popup di supporto di richiesta mostra argomenti condivisi da genitore-org
Indicare il tema della creazione del biglietto a discesa al nuovo /api/support/topics/ endpoint disponibile (own-org + argomenti condivisi dai genitori) così gl...
Superficie genitore-org argomenti condivisi in richiesta-support popup
Gli utenti di Child-org non potevano vedere gli argomenti di supporto condivisi del loro genitore org (assignToOwnOrg=false) quando si richiede il supporto, per...
Corretto invertito genitori-shared query argomento
La query dell'argomento del bambino-org filtrata su assegnaToOwnOrg=TRUE (solo su proprio-org) quando dovrebbe restituire argomenti CONDIVIDI con bambini org (a...
I nuovi figli ereditano la sicurezza del genitoreProvider
Quando si crea un org bambino da kamo-internal, impostare il nuovo org di sicurezzaProvider a il genitore org's securityProvider (il org è creato sotto) invece ...
Mostra l'avviso collegato all'account su ?linked=1
Quando si registra un account esistente a un nuovo org, si reindirizza qui con ?linked=1. Mostra "Hai già un account Kamo - abbiamo aggiunto questa organizzazio...
Mantenere la risposta collegata all'account per gli utenti esistenti
Quando l'email inserita appartiene già ad un account ACTIVE, il backend collega questo og a esso e ritorna ACCOUNT LINKED. Collegare direttamente gli utenti all...
Wire up membro/team-member creare + Prospect-gate UI
- Aggiungere le rotte di proxy POST mancanti /api/security/members/creare e /create-team-member (questo 405'd prima, quindi la creazione non ha mai raggiunto il...
Riutilizzare gli utenti esistenti, specchio per la sicurezzaProvider, gate team-member sign-in
Riutilizzo (senza account duplicati per la stessa persona): - MemberCreateController ora riutilizza un utente esistente tramite email personale case-INSENSITIVE...
SecurityProvider adesione specchio + riutilizzazione / patch
# Specchio un utente # la sicurezza dell'orgProvider org come membro di base (incorporato; no-op quando l'org si assicura o l'utente è già lì). La regola che og...
Invia il nome host del dichiarante nel corpo in modo che l'account atterra sotto il giusto org
L'org risolto è stato disponibile sul client ma mai inviato al backend — l'org è stato trasmesso solo implicitamente tramite X-Forwarded-Host, che l'ingresso ri...
File nuovi account sotto l'org del dominio, non kamocrm
/Registrati legato il nuovo membro org alla richiesta Host, ma il segnale org mai sopravvissuta al luppolo: kamo-register proxes ogni iscrizione al condiviso ap...
Risolvere org-by-domain con un alias più profondo
Aggiunga... dominio esatto match, quindi rilasciare l'etichetta più profonda una volta (register.optionone.com -> optionone.com) in modo che un subdominio di re...
Stop viewport agitazione sui browser con barre di scorrimento classiche
Su macchine il cui Chrome utilizza layout-consumo (non-overlay) barre di scorrimento, le pagine di login/recupero fidgeted con entrambe le barre di scorrimento ...
Wire Tasks scheda per backend reale + eliminare azione + conteggio live
Aggiunge i Prossimi percorsi proxy per /leads/{id}/tasks[/{taskId}] (la scheda ottieneTasks/ addTask/updateTask/completeTask chiamate erano 404ing), un'azione d...
Leader task REST API + in tempo reale TASK CHANGED
Implementa il backend /leads/view Tasks scheda era già chiamando ma che mai esistito: GET/POST/PUT/DELETE Non e' vero. (LeadTaskController + LeadTaskService), o...
LeadTask entità per attività di follow-up di piombo
Backs /leads/view Tasks scheda (precedentemente un frontend-solo stub senza persistenza). LeadTask (tabella LEAD TASK) rispecchia la frontend TaskItem forma E' ...
Datagrid in tempo reale + vista live lead con serrature per-pane edit
/leads griglia è ora completamente live su websocket (NATS→STOMP): righe aggiungere/remove/aggiornamento contro il filtro attivo automaticamente e le celle camb...
Org-guardare l'abbonamento /topic/leads/rt/{orgId} in tempo reale
Protezione cross-tenant SUBSCRIBE per il nuovo tema in tempo reale di piombo, specchiando il esistente /topic/social/feed guard: un membro può iscriversi solo a...
Per-pane edit-lock REST API + auto-save spazzatrice
Aggiunge /api/security/leads/{id}/locks E' una cosa da fare. LeadLockService: prenotazione esclusiva per-pane, battito cardiaco abbordante che resettare un TTL ...
In tempo reale NATS pubblicazione + per-pane edit-lock entità
Pubblica gli eventi principali org-scoped su security.leads.rt.{orgId} (creato/updated/ cancellato con le chiavi del campo modificato, la cronologia-appended) i...
Rimuovi sezione "Non disponibile per te"
Stop surfacing nav dispone di un membro non ha accesso a. La navigazione pagina di layout elencato ogni nav nascosto opzione come chip bloccati; caduto il blocc...
Generico byte endpoints rifiutare MLOS per-party docs (vault/loan)
Le immagini generiche byte endpoints (download / stream / bulk-download / thumbnail) e l'aggregazione del legante autorizzato solo su org + un numerico controso...
Integrare le schede primarie nell'intestazione sulle pagine di Style A rimanenti
Seguire la spazzata Style A→B, che copre pagine che non attraversano Visualizza impostazioni: - /kb: KbNavBar diventa un intestazione gradiente eroe con gli ar...
Centro il venditore-prodotti stato snackbar in cima
La pillola di stato di salvataggio/aggiornamento ha usato l'ancoraggio predefinito di MUI (bottom-left, no ancoraOrigin set) così ha reso off-center. Ancora in ...
CreatePair è idempotent per la coppia primaria (stops duplicate BorrowerPairs)
crearePair unico chiamante è il mago 'assicurare il mutuatario primario', ma è incondizionatamente inserito una nuova coppia ogni chiamata, quindi un autosave c...
Rilocare le barre di conta inferiore nell'intestazione attraverso le schede sociali, importazioni
Si applica il trattamento dei vendor-tab alle superfici delle impostazioni CRM in sibling in modo che il standalone "x • y" barra riassuntiva in basso non mangi...
Non servire documenti soffice su /stream e /bulk-download
getDocumentMetadata (utilizzato dal flusso + rinforzo byte percorsi) non filtrare le righe trattenute il modo di scaricareDocument fa, e un'eliminazione morbida...
Spostare il contatore/prodotto sopra le azioni dell'intestazione, in basso allineare Refresh + Add Vendor
Riprende la pagina immobiliare la barra di riepilogo del fondo standalone utilizzata per occupare — la linea "x vendors • x prodotti" ora impila sopra l'azione ...
Integra le schede primarie nell'intestazione della pagina (Stile B) attraverso le pagine Style A
Ogni pagina gradiente-eroe che ha reso le sue schede primarie in una scheda separata sotto l'intestazione ora li rende all'interno dell'intestazione gradiente s...
Come quello che vedi la spedizione?
Ognuno di questi aggiornamenti atterra automaticamente nello spazio di lavoro. Inizia gratis e guardalo crescere settimana dopo settimana.