Widen commit log translations.title to TEXT to match colonna DB
La colonna era VARCHAR(512) sia nell'annotazione che nel DB, causando inserti di traduzione per fallire per lunghi titoli tradotti. La colonna DB è ora STRING (...
Paginated Recording lookup by (instance, extension, isVm)
Used by the softphone tabs as the canonical source of truth for call recordings and voicemails when the upstream provider can't list them — e.g. FreePBX 17 has ...
Drop stale BillingGroup-era commento + inutilizzato SubscriptionMember query
Strisce il blocco Doc di avanzi in AppliedModelEnforcementService che ha riferito al concetto di BillingGroup a lungo termine, e rimuove # Dopo aver consolidato...
Bypass di livello superiore + Rimborso base gratuito per org senza sub
L'assegno di livello org e' stato controllato. abbonamenti di passeggiate che mirano a un org. Con il nuovo modello target org, org che non hanno ancora un targ...
Dividi amministratori a livello di account da membri per-sub; sub acquisiscono target org
AbbonamentoMember (per abbonamento licenziatario + bandiere sub-manager) quindi un L'account sull'org KamoCRM può contenere abbonamenti multipli, ogni targeting...
AccountGroup - > AccountTier (sezione clienti, non fatturazione)
Il cliente-segmentazione al dettaglio (con scontoPercentuale, utilizzato da PriceList for tier-based pricing) collise in nome con l'ormai rimosso concetto di gr...
Fare Account il gruppo; sostituire User-set con Member-set + AccountMember
Il conto è ora stesso il "gruppo" — non c'è un gruppo separato di fatturazione concetto. I membri (org-scoped) appartengono al Conto direttamente tramite il nuo...
Migrare da BillingGroup a Account come principale di fatturazione
L'account è ora il singolo cliente principale Stripe. Un membro che ha bisogno pagare (ad esempio per un abbonamento) crea automaticamente un Account; tale Acco...
Map external customer address blocks into AccountAddress on pull
Add AdapterAddressMapper helper that converts a JSON address node from any provider into an EmbAddress and attaches it to an Account as a typed AccountAddress (...
Orient live records to Account address profile, snapshot indirizzi storici
Orient record di commercio dal vivo per fare riferimento al profilo principale del profilo dell'account indirizzi, con istantanee scattate solo quando i record ...
Passare Account.java a embeddables; aggiungere AccountAddress entità per le liste di spedizione/billing
- Aggiungi AccountAddressType enum (SHIPPING, BILLING) - Aggiungi AccountAddress entità (account FK, tipo, etichetta, EmbAddress, timestamp) - Aggiungi AccountA...
Tasti di ricerca del fornitore su Registrazione, archivio di segreteria, MinIO gamma di streaming
- Registrazione: aggiungere providerInstanceId + providerExternalId per unire provider call-history / voicemail righe di nuovo alle attività di imaging - PhoneV...
Add lead-history audit log — entità, registro, servizio, DTO, LeadService hooks
- entità LeadHistory (UUUID PK, FK lunghi normali — nessun vincolo FK per consentire la cancellazione del piombo / conversione) - LeadHistoryEventType enum con ...
Risolvere la mappatura della colonna duplicata sovrascrivendo colonne di indirizzi incorporate a MAILING *
Aggiorna gli adattatori RetailService e provider per la rimozione di Account.notes e la conversione di CurrencyType
Aggiungi supporto internazionale — Lead country/subdivision/timezone, Org language, CountryType isProvince
- CountryType: aggiungi PROVINCE NAMES set, isProvince(), getSubdivisionLabel() - Organizzazione: aggiungere lingua (LanguageType) campo - Lead: add country (Co...
Registrazione + RecordingExt entità, RecordingImagingService li scrive
- Nuova entità di registrazione (UUUID id, IMG ID, IS MASTER, IS VM, EXTENSION, MEMBER ID, LENGTH, DATE RECORDED, DATE CREATED [DB-defaulted via @CreationTimest...
Use @CreationTimestamp(source=DB) on ****************
The DB is the single source of truth for timestamps in this codebase. The canonical Hibernate pattern is @CreationTimestamp(source = SourceType.DB), which makes...
Let DB fill **************** via @Generated(INSERT)
INSERTs were failing with: null value in column "date_created" violates not-null constraint @ColumnDefault only declares the DB-side default for new rows; Hi...
Aggiungere l'entità e il repository di MemberCallFeatures per le preferenze di chiamata in avanti e auto-ritorno
UnprocessedRecording staging entità, ImgDat tracce, registrazione servizio di imaging
- Fix ImageAssocType ID collisione: VM RECORDING=8, CALL RECORDING=9 (erano entrambi duplicare MY DOCS a 4). - Aggiungi una registrazione master. Per-channel Op...
Aggiungi includereCompany a LeadMarket e companyName a Lead
- LeadMarket entità ottiene include company (Boolean, nullable) - L'entità di piombo ottiene company name (String, max 50, nullable) - LeadMarketDTO, CreateLead...
Serialize ExtensionDto.assignedMemberId come una stringa
overflows della gamma safe-integer di JS (ad esempio 1168485658174423046 round-trips come 1168485658174423000 una volta che un numero JSON colpisce il browser)....
Coerce isDisplayOnIntake=true quando è necessario=true in CustomFormService
Aggiungi isDisplayOnIntake per creare/aggiornamento richiesta DTO
Aggiungi i metodi di query findByAssignedMemberId a PhoneExtensionRepository
Add isConnected field to VoipProviderInstance
Nullable Boolean: null = never tested, true = last test passed, false = failed. Requires KamoInitializerService schema migration to add IS_CONNECTED column.
Conto non letto + helper di ricerca per sessione
Aggiunga il navtop. SupportButton badge può contare i biglietti di supporto che in realtà hanno bisogno attenzione (hanno messaggi di visitatori non letti) inve...
I biglietti di supporto hanno bisogno di conteggi non letti
I messaggi dei visitatori sui biglietti di supporto vengono memorizzati sotto lo stesso sistemaMember che l'agente autentica come, in modo che l'attuale session...
Geo visitatore istantaneo sull'entità dei biglietti
Aggiunge VISITOR IP ADDRESS, VISITOR COUNTRY CODE, VISITOR COUNTRY NAME, VISITOR CITY, colonne VISITOR SUBDIVISION. Catturato alla creazione di biglietti quindi...
Aggiungi findBySessionGuidIn per il caricamento in massa
Utilizzato dalla lista di supporto-ticket endpoint per catturare tutti i visitatori per un pagina in una domanda invece di N trovare separatoBySessionGuid chiam...
Corretto JsonIdentity Info proprietà da 'uniqueId' a 'id'
Ente membro ha dichiarato @JsonIdentityInfo(property = "uniqueId") ma il campo chiave principale effettivo è chiamato 'id'. Jackson ha lanciato "non può trovare...
Includere sessioni SUPPORT TICKET in query di appartenenza non letta
findChatMembershipsByMemberId ora restituisce i membri sia per CHAT e SUPPORT TICKET tipi di sessione, in modo che il per-membro esistente infrastruttura (getUn...
Add resetHasAttachmentsForFolder query to ConversationRepository
Allows sync to reset stale has_attachments flags before re-indexing so corrected MIME detection can rebuild the field from actual attachment data.
Multi-instance telefono / fornitore SMS fondazione schema
- Rinomina VoipProviderConfig → VoipProviderInstance; drop UNIQUE(org id), aggiungere ista name, config json, last sync at, last sync error. - Rinomina BulkText...
Goccia squadraMemberPayFeesSetting
La politica di pagamento dei dipendenti è sparita — le maniglie del refattore BillingGroup fatturazione per gruppo, non tramite il modello di sicurezza. Rimuove...
Aggiungi bandiere di visibilità per-alias
Aggiungi visibileToMembers / visibileToTeamMembers colonne booleane a ChildOrgSecurityModelAlias così gli amministratori possono limitare quali alias genitori a...
Applica timeout di connessione/scrittura/lettura a MinioClient via OkHttpClient
Senza timeout, un peer-replication downed del sito (k2m1) ha causato makeBucket e mettereObject chiamate a bloccare indefinitamente, surfacing come un infinito ...
Aggiungi entità, cifratura e alias/DNS log ponteggio
Aggiunge per-org GoDaddy creds (AES-GCM crittografato), un permessoRootSubdomains bandiera e la raccolta di alias su baby-org sul modello di sicurezza, un provi...
Drop RegistrationPhoneCode entità + repository
La registrazione self-service non utilizza più la verifica SMS-code per la campo di telefono — il modulo di registro raccoglie il numero di telefono come testo ...
Aggiungi System User flag + access-grant entità
Presenta il modello System User a livello di piattaforma: una bandiera User.isSystemUser (indice parziale unico applica un singoloton), più una tabella SystemUs...
Aggiungi RegistrazionePhoneCode entità + repository
Nuova tabella `registration phone codes` memorizza i codici di verifica SMS una tantum rilasciato durante la registrazione self-service, prima che un'entità ute...
Aggiungi AgeReqType.allowsUnder13() helper
Utilizzato da Add Member / Aggiungi flusso membro del team per saltare la raccolta e-mail per org il cui requisito di età consente agli utenti di età inferiore ...
Come quello che vedi la spedizione?
Ognuno di questi aggiornamenti atterra automaticamente nello spazio di lavoro. Inizia gratis e guardalo crescere settimana dopo settimana.