Jurnal de schimbări
Ce e nou.
Fiecare îmbunătățire a platformei, pe măsură ce se livrează.
· AIService
Vocea asistentului SI se întoarce pentru Alexa
Programul Voice Assistant (2026-10-27) P3-1, P3-5. POST **************** (intern, X-Internal-Auth): Conversația propriului asistent al membrului prin aceeași orchestrare de sincronizare, cu un stil de voce (două propoziții scurte vorbite, nimic clinic sau secret), fără instrumente PHI (EHR / pachete de sănătate niciodată, și PHI-sensibile instrumente în PHI organizații), apeluri riscante ținute și întrebat ca "Să ...? Spune da sau nu." (trimite, bani, securitate și dispozitive au nevoie de PIN-ul vorbit înainte de a fi luat da), un termen limită după care la rândul său continuă să ruleze și ridică SI_ASSISTANT_REPLY cu telefon push, 'pune-mă prin <SI>' cu sesiunea proprie a acelui SI (kamoai-service K5; SI-urile suspendate sau retrase sunt refuzate) și "trimiteți asta pe telefonul meu". Cârligele de orchestrare sunt aditive: TurnOptions pe handleMessageSyncDetailed, SyncTurn.held, un filtru de instrumente pe AssistantService.withTools, PlaneTool.phiSensitive din _meta-ul planului de instrumente.
· EmailService
Canale telefonice și vocale per-kind, oglinda vocală și SI_ASSISTANT_REPLY
Program de asistent vocal (2026-10-27) P3-5, P4-1, P4-2, P4-4. - GET / PUT / API / notificări / canale și PUT **************** per-fel de alegeri TELEFON / VOCE (Clopotul este întotdeauna pornit), orele de liniște vocală (implicit 21:00-08:00 zona de membri), limita zilnică de voce (implicit 10). - raise (): împingerea telefonului onorează alegerea TELEFONULUI; NotificationVoiceSender trimite un card de trecere după ce se angajează IoTService /api/iot/internal/voice/notify (orele silențioase de voce, Kamo Nu deranjați, un eveniment de calendar în curs de desfășurare și RPM_ALERT și SI_AUTH_REQUEST niciodată). Titlurile vorbite sunt sigure pentru voce. - **************** și /read pentru 'întreabă Kamo Universe ce e nou'. - SI_ASSISTANT_REPLY aparține nici o aplicație; enumerate după SI_AUTH_REQUEST.
· SecurityService
Termină un SI din starea sa, starea contează, nu șterge pe /account
- Statutul Terminat al unui SI rulează ciclul de viață de pensionare al SI după restul Salvare (curse oprite, linie telefonică, scaun și licență eliberată, acreditări și Sesiunile revocate, sarcinile predate, istoricul păstrat). Necesită MANAGE_AI_WORKFORCE Retire face, plus statutul propriu MANAGE_MEMBER_SECURITY; un SI niciodată Se încheie singur; alegerea stației de lucru urmează. Alte stări sunt Un SI terminat este spus în mod clar că nu se poate întoarce. - GET **************** **************** customers/status-counts: câte o interogare grupată, limitată la organizație. - POST members-subscribers/status (Terminate/Activate: members.is_active numai, niciodată utilizatorul; MANAGE_MEMBERS) și clienții/starea (Dezactivează/Activează: Numărul de conturi este activ numai; EDIT_ACCOUNTS sau DELETE_ACCOUNTS). - members-subscribers?include=all listează membrii terminați pentru /account. - DELETE customers/{uid} este doar pentru operatorii platformei (open god window).
· kamo-shared-library
Alegerea canalelor pe categorii, ore si limita de liniste vocala, SI_ASSISTANT_REPLY, categorii de activitate vocala
Programul Voice Assistant (2026-10-27) P3-5, P3-6, P4-1. Declară ce s-a aplicat manual: member_notification_channels (membru, gen, TELEFON|VOCE, activat), **************** **************** **************** și IotActivityKind VOICE_ASSISTANT_TURN, VOICE_ALERT_SENT adăugat ultima dată.
· kamo-internal
Înregistrările DNS ale domeniului alias, aliasul implicit al unui coleg, adresa reală de trimitere ca
Setări -> E-mail -> Domenii -> Alias domenii: fiecare domeniu arată dacă este Dacă sunteți gata sau așteptați DNS, și un dialog de înregistrări DNS listează MX, SPF și DKIM Înregistrările de care are nevoie (de la EmailService), fiecare verificată live, cu butoane de copiere. Compunerea ca coleg se deschide acum pe aliasul său implicit, aceeași regulă Propriul alias implicit al membrului urmează (colleagueDefaultAlias). "Ieșirea ca" a filei de membru citește sendsAs-ul serverului în loc să ghicească din prima copie a domeniului alias, care a fost greșită atunci când nu există niciun domeniu alias În mod implicit.
· kamo-shared-library
Declarați coloanele și tabelele de legături de asistență vocală (legături personale, ultima eroare, PIN-uri, profiluri vocale)
Coloane pe iot_alexa_links (last_error_code/at, pending_grant_choice, owner_kind, owner_member_id, site_id, notifications_enabled) și tabelele iot_voice_org_settings, iot_voice_persons, iot_voice_pins, aplicate manual Aceste fișiere sunt stocate de la iot-service **************** astfel încât KamoInitializer să le poată recrea.
· MCPGatewayService
Meetings_join_external, **************** meetings_cancel_external (TPEXTMEET)
Un SI se alătură unei întâlniri externe (Zoom, Teams, Meet, Webex, GoTo, orice furnizor) din detaliile pe care i le-a dat un coleg de echipă, JOIN_MEETING (paznicul de identitate îl deține pe canalele nedovedite), drepturi de acces la întâlnire, drepturi de acces la întâlnire, drepturi de acces la întâlnire VIEW_MEETINGS + ACCESS_VOIP (verificat din nou în kamoai-service cu unirea solicitantului), numai pe un server verificat Solicitare (citată, propria rulare, o confirmare sau linia de întâlnire a unui coechipier autentificat); niciodată pe propria linie a SI-ului Codurile de acces și cheile nu se întorc niciodată la model. meetings_join puncte în afara legăturilor aici. Gardienii: nu dezvăluie (audiența apelului este din afară), nu conține, fraze de aprobare, goldeni regenerați.
· kamo-internal
Rapoartele de creditare ipotecară accesibile din orice ecran MLOS, deschise deja filtrate
- Link-urile de raport pot pre-umple acum parametrii: **************** (data Presetări sau intervale de început..sfârșit, liste cu virgule pentru selectări multiple) Un raport declară că sunt onorate; un link nu lărgește niciodată ceea ce vede un membru. - ReportQuickLinks: meniul Rapoarte al unui ecran de lucru. Se întreabă serverul care rapoarte Membrul poate rula (o dată pe pagină) și oferă doar acelea, deci nu redă nimic pentru un membru care nu poate deschide niciunul. - Plasat pe bara de instrumente Pipeline, pagina HMDA LAR, Consiliul, Documente, Capital & Risk, Ecranele de subscriere, prețuri și guvernanță; pe pagina împrumutului se deschide fiecare raport Filtrat la acel împrumut (audit de stare, calendarul TRID, condiții, documente, încuietori, Evenimente de blocare, comenzi ale furnizorilor, decizii SI); setările de piață leagă licențierea și Istoricul complet de configurare (panoul de pregătire arată doar ultimele șase). - Banda "Împrumut echitabil - în curând" a guvernanței a dispărut: Rezultatele echitabile de împrumut sunt Un raport real acum. - Tipul de raft de creditare ipotecară și pictograme. Se împerechează cu kamo-shared-library 17a7a233 și SecurityService 6ce48d17.
· kamo-internal
Administratorii pot edita rolul Administrator, cu dreptul său de blocare fixat pe
Rolul Administrator (Acces complet) a fost afișat ca Protejat și nu a putut fi deschis trimite lockedRights (apelatorul deține acel rol), rolul se deschide cu drepturile sale editabile și Acordarea / revocarea ramurii trece acum peste forțarea și revocarea forțată a drepturilor de acces Modelele de securitate ale rolului rămân doar în citire.The role's security models remain read-only.
· KlusterServices
Postfix învață domeniile alias din baza de date de e-mail
Domeniile alias ale unei organizații (Setări -> E-mail -> Domenii) obișnuiau să aibă nevoie virtual_alias_domains și o hartă scrisă de mână editată aici. EmailService păstrează acum Așadar, avem o tabelă alias_domains în serverul de mail (KamoMailAliasDomains), iar postfix o citește: mysql-virtual-alias-domains.cf acceptă domeniul, și **************** livrează local@alias la local@target numai Atunci când este un cont real sau alias, astfel încât numele necunoscute sunt refuzate la RCPT. Aditiv: domeniile statice și harta platformei kamouniverse.com rămân în față Tabelul există deja live (creat manual și de către EmailService la adresa: O hartă care numește un tabel lipsă va eșua la fiecare căutare, deci este de asemenea în mysql-init-configmap.yaml pentru o nouă bază de date.
· SecurityService
Membrii care dețin rolul de Administrator își pot edita drepturile
PUT /api/security/roles/{id} direcționează drepturile rolului Administrator prin **************** ÎNAINTE DE ORICE ALTĂ SCRIRE AȘA CĂ O SALVARE REFUZATĂ SCRIE Numai un apelant care deține acel rol (sau are o fereastră god deschisă) poate; CONFIGURE_SYSTEM singur O salvare care ar opri CONFIGURE_SYSTEM este un 400 cu un motiv simplu, pentru că nu este suficientă. Modelele de securitate de pe acest rol rămân blocate, iar rolul este denumit carry lockedRights.
· kamo-shared-library
Administratorii pot edita drepturile rolului de administrator, fără a dezactiva niciodată CONFIGURE_SYSTEM
Rolul de Administrator (Acces Complet) este stocat isAllowEditSecurity=false, astfel încât nimeni nu ar putea schimba **************** este singura ușă înăuntru: acceptă doar drepturile sale org's role_admin_id și refuză orice salvare (după normalizarea nivelului) care lasă un drept în Acest set este CONFIGURE_SYSTEM plus strămoșii săi: Dreapta care deschide Setări > Esențiale și fiecare rol scrie, astfel încât titularii săi pot veni întotdeauna înapoi. SecurityRoleDTO.lockedRights spune editorului ce switch-uri sunt fixate.
· EmailService
Alias domenii primesc și semnează pe cont propriu; coleg și auto implicite
Serverul de e-mail învață acum domeniile alias ale unei organizații de la EmailService în loc de KamoMailAliasDomains păstrează o tabelă alias_domains în fișierul de configurare baza de date KamoMail MySQL (creată la început; postfix o citește - vezi klusterservices mail/), redirecționarea local@alias către local@target unde este o adresă reală Adăugați/eliminați-l, sincronizați-l, iar o pornire va reconcilia rândurile de rute care au fost sincronizate Să-l predați. Fiecare domeniu alias care nu este o gazdă de platformă primește o cheie DKIM acolo, și EmailSmtpService.sendAsMember semnează un mail al unui membru de la acesta cu adresa existentă Gazdele platformei păstrează cheile lui rspamd, astfel încât e-mailul kamouniverse.com este GET **************** listează adresele MX, SPF și DKIM Înregistrează nevoile domeniului, fiecare verificat live. De asemenea: - AliasView.sendsAs: adresa unui alias implicit iese de fapt ca (copia sa pe domeniul aliasului DEFAULT al org-ului, altfel în sine) - fila de setări a ghicit. - /sendable marchează cutia poștală primară a unui coleg (isPrimary), deci compunerea ca Acestea se pot deschide pe aliasul lor implicit. - Un membru poate seta propriul expeditor implicit fără MANAGE_EMAIL_ACCOUNTS.
· SecurityService
Ofițeri de creditare și selectori de investitori pentru rapoartele de creditare ipotecară, dovedite pe Hibernate-ul flotei
- mortgageLoanOfficers: membrii desemnați ca credit officer pe cel puțin una dintre (mai restrâns decât fiecare membru, astfel încât selectorul listează numele care Împrumuturile de potrivire). - mortgageInvestors: numele investitorilor pe instantaneele de stabilire a prețurilor organizației. **************** rulează toate cele optsprezece rapoarte (kamo-shared-library 17a7a233) pe ACEST serviciu Hibernate 6.2 fără bază de date: fiecare declarație fiecare Raportul este compilat în raport cu maparea reală, cu valorile implicite și cu fiecare Parametrul set, iar interogarea de împrumut a organizației răspunde la un împrumut sintetic, astfel încât Biblioteca este construită pe 6.5, iar Java CI nu rulează pe versiunile anterioare Acesta este singurul loc în care o incompatibilitate 6.2 ar arăta înainte ca un membru Am deschis raportul.
· kamo-shared-library
Un raft de creditare ipotecară de optsprezece rapoarte de audit, conformitate și operațiuni
Raport Studio nu a avut rapoarte ipotecare; MLOS a avut un raport de conformitate reală ( Pagina HMDA LAR) și un set de ecrane de lucru care nu puteau fi filtrate, exportate sau programate. Acest lucru adaugă un dosar de creditare ipotecară și optsprezece rapoarte, toate cu domeniu de aplicare organizațional, toate gated pe View Ipotecar Pipeline, toate cu drill-through, vizualizări salvate, Planificare și export CSV/Excel/PDF: - Reglementare: HMDA LAR Review, HMDA Edit Verificari, rezultate echitabile de împrumut (screening Fișa de lucru a raportului de solicitare a ipotecii, TRID Timpul de dezvăluire (zile lucrătoare generale vs. specifice, regula cutiei poștale), Adverse Promptitudinea acțiunii (Reg B 30 de zile) - Conductă și producție: îmbătrânirea conductei, producția și timpul ciclului, precipitațiile și Pull-Through - Birou de blocare: rata de expirare de blocare, Extensii de blocare, Relocks & Breaks - Subscriere & Operațiuni: Condiții de îmbătrânire și derogări, Cerințele documentului, Turnaround-ul comenzii furnizorului - Audit: Audit de schimbare a statutului de împrumut, SI Decizie & Override Audit, Licențiere Conformitate, audit de modificare a configurației Cadru: ReportFolder.MORTGAGE și ReportRowFilter — se aplică filtrul unui membru La rândurile finalizate, cu aceleași semnificații ale operatorului ca și calea SQL, pentru rapoarte ale căror coloane sunt calculate (zilele în stare, rezultatele termenului limită). MortgageReportSupport păstrează fiecare împrumut citit o proiecție scalară limitată de organizație (LoanFile -> AppMortgage -> organizație), deoarece cele mai multe tabele ipotecare Nu poartă nici o coloană de organizație și încărcările entității declanșează o interogare pentru fiecare copil unu-la-unu. Textul de ajutor al fiecărui raport spune ceea ce nu poate vedea: fără taxe detaliate (fără toleranță) (verificare), nici o înregistrare a intenției de a continua, notificări trimise în afara sistemului, LAR necompletat
· kamo-shared-library
Entitatea AiExternalMeeting pentru SI se alătură întâlnirilor terțelor părți (TPEXTMEET)
Declară ai_external_meeting (kamoai-service **************** A fost aplicat) astfel încât KamoInitializer să-l poată recrea.
· AIService
Sesiuni GPT-Live prin intermediul releului (tichete LIVE_AUDIO), sondate cu o sesiune live
TPGPTLIVE (proprietarul 2026-10-27, pilot). WebSocket-ul primar al GPT-Live ia doar cheia proiectului, deci un bilet LIVE_AUDIO ruteaza comanda REALTIME_AUDIO a org-ului, pastreaza modelele sale live si transmite wss://…/v1/live/sessions cu cheia adaugata Un secret de client în timp real nu este niciodată creat pentru un model live; secretul de client în timp real nu este niciodată creat pentru un model live Sonda REALTIME_AUDIO a unui model live deschide o sesiune GPT-Live (session.start -> session.started -> close) Preia <base>/live/sessions, calea pluginului LiveKit. Nume sugestie gpt-live-* = REALTIME_AUDIO; model cunoscut gpt-live-1.
· SecurityService
Seed cele zece drepturi de calculator ipotecar de la CALC_SIMPLE
Oricine poate deschide calculatorul astăzi găsește Calculator -> Ipoteca pe boot care adaugă CALC_MORTGAGE_* (shared-lib 1ae01ae8); fiecare este apoi acordat sau retras pe cont propriu.
· kamo-internal
Alias domenii în Setări și pe fila cutiei poștale a membrului
Setări -> E-mail -> Domenii câștigă un card Alias domenii: adăugați un verificat Alegeți un domeniu, eliminați unul, alegeți implicit sau niciunul. Fila E-mail și cutie poștală a membrului afișează acum adresele cutiei poștale principale pe fiecare domeniu alias (Dylan@kamocrm.com este de asemenea Dylan@kamouniverse.com) și Formularul add-alias devine un selector de domeniu, astfel încât un alias poate merge direct pe un Un alias de domeniu. Proxy-ul nu mai limitează aliasurile la domeniul unic implicit al organizației; EmailService refuză deja un domeniu pe care organizația nu îl deține.
· EmailService
Gestionați domeniile alias ale organizației și permiteți aliasurile pe ele
org_alias_domains a existat doar prin SQL scris de mână. Nou /api/email/alias-domains le listează (orice membru al organizației) și adaugă, elimină Un domeniu poate fi adăugat numai atunci când este activată opțiunea Manage Email Accounts (Manajare conturi de e-mail) Organizația a dovedit că o deține, și niciodată una dintre cutiile sale poștale deja trăiesc pe. KamoMail createAlias acceptă acum un alias pe un domeniu alias (sales@kamouniverse.com): domeniul nu are un rând virtual_domains, deci aliasul este înregistrat sub domeniul cutiei poștale de destinație; postfix caută aliasuri după Sursa este singură și listează deja domeniul în virtual_alias_domains. De asemenea, stabilește AliasResponseMemberIsTextTest, pe care comitetul anterior l-a rupt Adăugarea aliasDomainAddresses la AliasView.
· kamo-internal
Zece Calculatoare ipotecare sub Calculator → Ipoteca
Plata lunară, accesibilitatea achiziției, suma împrumutului din plată, plata în avans, costurile de închidere Estimator, numerar pentru a închide, DTI, LTV (cu CLTV și HCLTV), plata suplimentară / Early Payoff și un Programul de amortizare, fiecare un mod de calculator în propria fereastră de instrumente, construit dintr-un kit partajat (mortgageUi.tsx): rezultate de numărare, gogoși colorate, bare, indicatoare și curbe de echilibru, bani Câmpurile de procente și procente cu glisoare, intrările păstrate cu fereastra, mișcarea redusă respectată. Fiecare dintre ele este controlată de propriul drept CALC_MORTGAGE_* (shared-lib 1ae01ae8, id-uri 650-659) Un membru care deține doar un singur credit ipotecar primește calculatorul în locul său Locuiește în lib/mortgage/calculatorMath.ts deasupra payment.ts/affordability.ts, cu teste Turul calculatorului câștigă un pas de Ipotecă; copia este în dicționar (aa98d5f2).
· kamo-shared-library
Zece drepturi de calculator ipotecar sub Calculator (650-659)
CALC_MORTGAGE_PAYMENT, _AFFORDABILITY, _LOAN_FROM_PAYMENT, _DOWN_PAYMENT, _CLOSING_COSTS, _CASH_TO_CLOSE, _DTI, _LTV, _EXTRA_PAYMENT și _AMORTIZATION: unul pe calculator Ipotecar, ServiceType.CALCULATOR pe lângă cele nouă moduri existente, fiecare o rădăcină de sine stătătoare. RoleRightHierarchyTest: valori 403 -> 413, standalone 79 -> 89, rădăcini 124 -> 134.
· KlusterServices
Fiecare identitate a ocupantului întâlnirii este propria sesiune verificată (mod_kamo_presence_identity)
TPMEETAUTH (comanda proprietarului 2026-10-26): urechea SI citește cine este fiecare punct final Stocul presence_identity dezvăluie identitatea unui client, în timp ce stocul presence_identity dezvăluie identitatea unui client <identitatea> proprie doar pentru sesiunile token, deci un guest.meet.Meet anonim sau un Piciorul lui Jigasi ar putea fi unul forjat. Acest modul MUC dezbracă fiecare client Identitatea și scrie doar contextul JWT al sesiunii (sidecar-ul îl semnează ***; oaspeții poartă guest-<hex>). Unit-testat în cadrul proiectului Prosody pod (identitate falsificată eliminată, identitate token scrisă). Aplicat 2026-10-27 04:32Z cu nici o conferință live (Statistici jicofo: 0 conferințe, 0 Jicofo și Jigasi se reconectează, oaspeții primesc jetoane.
· MCPGatewayService
Într-o întâlnire, vorbitorul propriu al liniei decide autoritatea (supervizorul autentificat comandă, coechipierul întreabă, invitatul este oricine)
TPMEETAUTH (comanda proprietarului 2026-10-26). kamoai-voice numește linia de întâlnire a Răspunsuri la apeluri (X-Kamo-Meeting-Turn, niciodată modelul); MeetingTurns întreabă kamoai-service care a spus-o, din fluxul propriu al acelui punct final și verificat Identitate: - SUPERVISOR (autentificat, sau un oaspete pe care l-au confirmat): ordinea lor, numărul Uniune de insubordonare (orderRef meet:<turn> sau auth:<id>), fără popup; - TEAM_MEMBER: autentificat, paza de identitate lasă SI-ul să acționeze Doar drepturi PROPRII; - NONE / necitit / nu se potrivesc pe fluxul vorbitorului: oricine-nivel. Ordinele sunt păstrate pe linie, niciodată sub cheia de rulare, deci ordinea unui vorbitor Identity_request_confirmation într-o întâlnire este pentru a confirma identitatea unei persoane În acest caz, vorbitorul liniei (about=meet-turn:<turn>). Teste: (6), IdentityPackTest (+1); suită completă 2013 verde.
· SecurityService
O linie de întâlnire pe care un supraveghetor autentificat a spus că este o comandă pe care Planul de instrumente o poate împrumuta (meet:<turn id>)
TPMEETAUTH (comanda proprietarului 2026-10-26): în Kamo Meet un supervizor autentificat Solicitarea lor este ordinul lor direct (Fără uniune de insubordonare) verifică linia prin atribuirea vorbitorului de către kamoai-service (fiecare (microfonul propriu al participantului) și îl citează ca meet:<turn id>.
· kamo-internal
Afișează adresele unui alias pe domeniile alias ale organizației
Sub fiecare alias din fila E-mail și cutie poștală a membrului, listați același alias pe Org alias domenii, și sub cipul de expeditor implicit, adresa pe care o Ieși afară.
· EmailService
Un alias funcționează pe fiecare domeniu de alias, cum ar fi cutia poștală principală
Domeniile alias ale organizației (org_alias_domains) au oglindit deja domeniul primar al membrului Căsuța poștală în compozitor (erik@kamocrm.com oferit și ca erik@kamouniverse.com) dar niciodată aliasurile lor, deci eric.white@kamocrm.com nu a putut trimite ca eric.white@kamouniverse.com - deși platforma postfix are deja o hartă de aliasuri livrează acea adresă către alias. Fiecare alias obține acum aceleași rânduri oglindă în /sendable, care citește canSendAs, deci O copie a unui alias implicit pe aliasul implicit al organizației Acest domeniu ia valoarea implicită, la fel ca și domeniul primar Întoarce aliasDomainAddresses astfel încât Setările să le poată afișa.
· MCPGatewayService
Protecție împotriva impersonării - o conversație neverificată primește doar ceea ce poate cere oricine până când membrul confirmă în Kamo
Proprietar 2026-10-26 (TPCALLTOOLS B): cineva care doar pretinde a fi membru, Un supraveghetor sau cineva cu autoritate nu trebuie să determine SI-ul să facă nimic dăunătoare sau care se bazează pe acea afirmație, chiar și în cadrul drepturilor proprii ale SI; Protecție forțată pe partea serverului. IdentityGuard (fasole nouă, un constructor; cu fir de setter): pentru scrierea unui SI într-o cursă pe un canal care nu dovedește pe nimeni (apel, întâlnire, text, nedovedit E-mail, chat web/social, urmărirea acestora; kamoai-service /auth-requests/identity), fără confirmare permanentă, ordinea coechipierului, Verificat onRequestOf sau aprobare umană, numai scrierile la nivel de oricine trec (mesaje interne, înregistrări noi, sarcini, note, rezervări, contabilitate proprie) și răspunde propriului interlocutor al conversației, fără atașamente. Orice altceva răspunde la IDENTITY_UNVERIFIED (auditat DENIED) identity_request_confirmation. O căutare eșuată păstrează scrierile păzite. identity_request_confirmation răspunde la ID-ul cererii (un apel live așteaptă pe Un răspuns APPROVED marchează executarea confirmată, astfel încât OrderDelegation își ridică (confirmarea este apoi ordinea de rulare, auth:<id>, Fără drepturi sindicale de insubordonare).
· kamo-internal
Alegerea unui alias ca expeditor implicit al unui membru
Fila E-mail și cutie poștală a membrului câștigă o coloană Expeditor implicit pe aliasuri tabel: faceți un alias implicit sau predați-l înapoi în cutia poștală principală. Compozitorul deschide câmpul De la pe aliasul respectiv oriunde ar fi altfel În cutia poștală principală a membrului se deschide un mesaj nou, un mesaj nou, un răspuns și O cutie poștală partajată, secundară sau a unui coleg este o cutie poștală Aliasul păstrează identitatea de trimitere a primului, dar nu și identitatea de trimitere a celui de-al doilea și șablon de semnătură, așa cum a făcut deja un alias ales manual.
· EmailService
Un membru poate trimite de la un alias în mod implicit
PUT **************** alege în ce alias se află Un alias pentru fiecare membru (null îl șterge). Un alias pentru fiecare membru cel mult carries is_default; coloana exista deja si nu a fost setata niciodata. / adresabile și / de la-adrese raportează acum isDefault pe rândurile de alias, care este ceea ce Compozitorul își deschide câmpul De la.

Universul tău te așteaptă.
Începeți gratuit în câteva minute.Adăugați produse oricând sunteți pregătit — fără migrare, fără autentificări noi.
Gratuit pentru totdeauna — nu este necesar un card de credit