Değişiklik Günlüğü
Yeni ne var?
Gemideki her iyileştirme.
· InitializerService
Multi-instance Telefon/SMS sağlayıcı migration
Hibernate ddl-auto:update yeni tablolar oluşturur (VOIP PROVIDER INSTANCE, BULK TEXT PROVIDER INSTANCE, PHONE EXTENSION, PHONE END USER, PHONE DEVICE, PHONE DEVICE, PHONE VOICEMAIL, SYSTEM CONFIGURATION) adı verilen / yeni varlıklardan kamo-shared-library 232d731. Hibernate'un yapamadığı şeyi ele alalım: - Geleneksel voip provider yapılandırılmış / toplu text provider yapılandırın Yeni * instance masaları, Örnek name from sağlayıcı type. - Drop NOT CONFIGURED (korinal 0) satırları - artık "no sağlayıcı" devlet. - Şimdi boş mirası bırak * yapılandırılmış tablolar. - Backfill example id on member voip configure, voip conversations, and and and and kamotokens.org oauth token her org'un en eski aktif örneklerini kullanarak. - Rebuild org oauth token eşsiz indeks from (org id, sağlayıcı) to (org id, sağlayıcı, örneğin id) org çalışması için çok fazla RingCentral örneği. - Drop yetim eşsiz indeksler voip conversations + sağlayıcı örnek masalardan. - Sistem yapılandırıcı tekton sırasını yazın (dip senkronizasyon aralığı 10min varsayılan, Gerçek etkinleştirin) – platform operatörü bunu yeni platform ile yapılandırır VOIP & SMS sekmesi. Tüm ifadeler idempotent; Zaten NATO'da yeniden çalışan DB güvenlidir. 20 sipariş - SchemaCleanupRunner (1), OrganizasyonTypeRemovalRunner (2), KamoCRMAgeReqUpdateRunner (10).
· kamo-shared-library
Multi-instance Telefon/SMS sağlayıcı şema temel
- Rename VoipProviderConfig → VoipProviderInstance; drop UNIQUE(org id), örneğin name, configure json, son sync at, son en error. Rename BulkTextProviderConfig → BulkTextProviderInstance; aynı multi-instance tedavi. - Yeni varlıklar: PhoneExction, PhoneEndUser, PhoneDevice, TelefonVoicemail, SystemConfiguration. - ÜyeVoipConfig, VoipConversation, OrgOAuthToken (multiple RingCentral examples per org). - Yeni enums: PhoneExctionStatus, PhoneEndUserStatus, PhoneDeviceType, PhoneDeviceRegistrationStatus. Deprecate Not CONFIGURED in **************************** (EnumType.ORDINAL altında mevcut satırları korumak için ordinal 0'da). - Yeni Akışroute SMS sağlayıcısı için BulkTextProviderType'a FLOWROUTE ekleyin. - Sağlayıcı-abstraction DTOs (ExctionDto, PhoneUserDto, DeviceDto, VoicemailEntryDto, InstanceHealthDto, Create/Update requests). Multi-instance telefon/SMS refaksiyonunun ilk aşaması - **************** (in kamo-login repo). KamoInitializer migration + hizmeti takip etmek için yeniden faktörler.
· KlusterServices
Deploy FreePBX 17 + Jigasi SIP köprü k1m1 ve k2m1
FreePBX (tiredofit/freepbx:17-latest) hostNetwork so SIP /RTP ile çalışır Gerçek müşteri IP'leri korur, Node Selector aracılığıyla bir-per-node tuttu. SIP on 5060 UDP/TCP (5061 TLS), RTP aralığı 18000-18999 Janus'tan kaçınmak için seçildi (20000-20999), Coturn (52000-65535) ve WireGuard (51820-51821). Jigasi, iç bir ClusterIP SIP köprüsü olarak da ekledi, böylece FreePBX ücretsiz gövde konferanslara çağrır; Prosody şimdi bir jigasi kullanıcısına hüküm verir JIGASI XMPP PASSWORD. Admin UI, Traefik aracılığıyla ulaşılabilir pbx.k1.kluster.kamocrm.com / pbx.k2.kluster.kamocrm.com ile Auto-cert STATIC DOMAINS aracılığıyla tohumlandı.
· kamo-internal
Platform-admin view, pagination, canlı arama, filtreler, org logos
Platform yöneticileri ( üst düzey org sahibi) şimdi sistemdeki her org’u sistem aracılığıyla görüyor Yeni /api/güvenlik/org/all-networks sadece kendi üyelikleri yerine uç noktası. Yönetici bağlamını yansıtacak başlık ve alt başlık güncellemesi. Diğer geliştirmeler: - Pagination: müşteri tarafı, varsayılan 25 / sayfa, yapılandırılabilir (10/25/50/100) Canlı arama: isim, kısa başlık veya alan tarafından filtreler gerçek zamanlı olarak - Filtre cipsi: "All", "Orgs I Own", "DNS Not Still Configured" - Bir sonraki sayfada gösterilen son sayı - Büyük sayfa için elpsis ile sayfa sayısı düğmeleri sayılıyor - OrgLogo bileşeni logo oluşturmasını konsolide eder (organLogoUrl ile kısa bir logo). Hem mevcut-org kartı hem de listedeki tüm veyag kartları için - ENTER düğmesi doğru bir şekilde org.memberId (paylaşmış kullanıcı+member kaydı) tarafından korunan - ENTER AS SYSTEM MEMBER, tüm orgs için kullanılabilir
· SecurityService
Platform yöneticileri için GET /api/security/org/all-networks ekleyin
Üst düzey org sahipleri şimdi sistemdeki tüm organizasyonları sistemle getirebiliyor Üyeye göre üyelik bilgileri. Ya da caller'in bir üyesi var Kayıt almak Owner/memberId nüfusludur; diğerleri üyeId: null, isOwner: false. Endpoint, caller'in hem üst düzey ya dag'da hem de bir mal sahibi olduğu sonucuna varır.
· kamo-internal
Güvenlik model editörü + temizlik
- ************'daki Güvenlik modeli editörü şimdi bölünmüş durumda Four sub-tabs: General (Basic Info, Viability, Who Can Create, Platform Ayarları, Domain Config, Trade Markets), Censorship (alcohol / tütün / itfaiyeciler + üye + takım üye yaş aralıkları), İzinli Uygulamalar ve Varsayılan güvenlik rolleri. - New **************************** Bir yönetici bir modelin düzenler RootSubdomains bayrağına ve ebeveynin geri kalanıyla birlikte olmasını sağlar Modelin ayarları. Daha önce bu org- çapında Subdomain içinde yaşadı Sınıflar popup. - Subdomain Branches popup sadece org-site bitlerine basitleştirilmiştir - Rooney kimlikleri + usta uçabilme sağlar. Per-model alias taşındı Hem diyalog hem de onun prop yüzeyi; GüvenlikRoleManager düşer Şimdi de kullanılmıyor. - Takıma her referansı ortadan kaldırırMemberPayFeesSetting / PayFeesSetting / TriStateFeeOption - "Employee Self-Pay Kamo Fees" (İngilizce). Model tablosundaki model editörü ve çipleri gitti, birlikte Uygulamalı Modellerde tür aliazlar. - / sıralamalar / platform / keşifler ve / sıralamalar / platform / plan sayfalarıdır silindi (kahramanlı billing yüzeyinin yer sahipleri). iniş sayfası, SettingsStatusWindow sub-topik liste ve rota /icon Haritaların hepsi eşleşen girişleri bırakır. -Business Group sub-tab on **************** now now now Tembel Grubu'nun ünvanını sadece engelli bir okuma alanı olarak gösterir (aydı). Daha önce tamamen bir bilgi uyarısının arkasında gizli) bu yüzden yöneticiler görebilir Grup adı değiştirilemeyeceğini anlarken.
· kamo-internal
Alias görünürlük + Subdomain Branches düğmesi şube tipi sayfasında
SubdomainBranchesDialog: - Alias editörü bir masa tarzı sıra listesi ile çip listesini değiştirdi Üyeler ve Takım Üyeleri alias başına kutuları kontrol eder - yöneticiler hangi kontrolleri kontrol eder Yaratıcı türleri her ebeveyni / ağ / komplekste görür - OnUpdateModelSubdomainConfig imzası dolu alias nesneleri geçmek için güncellendi (alias, görünürToMembers, düz teller yerine görünürToTeamMembers) GüvenlikRoleManager: - full securityModels state + yükFull SecurityModels harita alias with **************** Bayraklar - devam eden ModelSubdomainConfig, arka uçlara tam bir yer geçer BölümSetupManager **************** - Subdomain Branches düğmesine eklendi (mirrors güvenlik-roles sayfası) ile Aynı SubdomainBranchesDialog, konum-fetch Dağında ve model yeniden yükleniyor Diyalog açıldığında
· SecurityService
Alias görünürlük filtreleme + oto-verify subdomain sahipliği
Organizasyon Kontrolü: - Web-alias org creation now auto-marks mülkiyet Onaylandı = Gerçek ve Gerçek yaratılan OrgDomain'de doğrulanmış = gerçek - TXT bir kayıt gerekli değil Onların adına DNS'i verdik - CUSTOM ebeveynAliasType yolu şimdi per-alias yaratıcısı-tip görünürlüğü uygular (mirrors /creatable filtre, böylece arka uç atılamaz) BranchTypeController /creatable: - ebeveynAliases listesi şimdi caller'in yaratıcıType tarafından filtrelenmiştir: MEMBERS sadece görünürToMembers = gerçek aliaslar, TEAM MEMBERS sadece sadece görünür görüyor görünürToTeamMembers = gerçek aliazlar, OWNERS her şeyi görür Her bir Alias DTO şimdi görünürToMembers + görünürToTeamMembers bayrakları içerir Güvenlik Model Kontrolü: - processSubdomainBranchConfig şimdi okur **************** Alias harita nesneleri ve aramalar onları devam etmek için tüm Tam'ı değiştirir
· kamo-shared-library
Per-alias yaratıcı-tip görünürlük bayrakları ekleyin
GörünürToMembers / görünürToTeamMembers boolean sütunları için ÇocukOrgGüvenlik Modeli Alias bu yüzden yöneticiler hangi ebeveynleri kısıtlayabilir Çocuk veyags oluştururken Üye vs Takım Üyelerine görünür. - Entity: iki @Builder. BOOL DEFAULT TRUE ile gerçek sütunlar - SubdomainAliasDTO: Her iki bayrak da entity'den ortaya çıkıyor - ************ yeni AliasEntry rekor + TümFullFull Bu görünürlük devam eden aşırı yükleme; Tüm (strings) delegeleri ona değiştirin
· kamo-internal
Ayarlar dialog, web-alias sihirbaz yolu ve DNS düzenleme paneli
Üç yüzeyde Subdomain Branches UI ekleyin: - ************ yeni "Subdomain Branches" düğmesine Org seviyesi için bir diyalog açın + Rooney creds, bir a dialog ile RootSubdomains + ebeveyn takmalarına izin vermek için güvenlik-model editörü (reuses) Sihirbazın Alias/toSafeAlias yardımcıları) - /network/create: TemelsStep şimdi bir dönüş alanınız arasındaki şubeler Yol ve bir Kamo web-alias yolu ( ebeveyn veyag’in bayrağı, GoDaddy statüsü ve seçilmiş şube tipinin aliazlar). Alias düşüş listeleri ROOT (ne zaman izin verildiğinde) artı per-model alias; canlı yardım Kullanıcı değişiklikleri veya alan değişiklikleri olarak önizleme güncelleştirmeleri - /setup /dns: yeni DnsProvisioning Panel, org'un geçici günü ve Kalıcı bağlantıyı yer imlerinize ekleyin. Sonraki.js BFF rotaları ************************
· SecurityService
Org- level imar, Rooney müşteri ve web-alias veyag yol yaratır
Yeni Subdomain Branchleri arka uçta son verir: - SubdomainBranchesController for org- level enable + Rooney creds (canlı) -NBDnsClient idempotent CNAME upsertleri ve credential çekleri gerçekleştirir - DnsProvisioning Service async-queues the standard KnownAliases subset and OrgDnsProvisionLog için per-record satırları yazıyor GüvenlikModelController,RootSubdomains + aliaslara izin verir[] create /update - **************** web-alias yolunu kabul eder (WebAlias + ebeveynAliasType + ebeveynAliasId + webAlias), hesaplamalar Sonuç olarak FQDN ebeveynin kök bölgesi altında ve DNS düzenlemesini başlatıyor İşlemsel veyag sonra tamamen yaratır - BranchTypeController's /creatable endpoint per-model aliasları açığa çıkarır Ve ebeveyn-org subdomain-branches statüsü bu yüzden büyücü UI'yi kapatabilir
· kamo-shared-library
Varlıklar, cipher ve alias/DNS günlük scaffolding
Kalıcı bağlantıyı yer imlerinize ekleyin (AES-GCM şifreli),RootSubdomains bayrağına izin veriyor Ve çocuk-org alias koleksiyonu güvenlik modeli, bir DNS düzenleme Kontrol logunu ve Güvenlik Hizmeti tarafından kullanılan paylaşılan bir GizliCipher yardımcısı Onları ön plana geri dönmeden API anahtarlarını depolayın.
· kamo-internal
Ek /suffix dropdowns, posta kutusu domain kapısı, açık durum
- Ad prefix and suffix şimdi dağılır AdPrefixType / NameSuffixType katalogları tarafından teslim edilen org yapılandırılmış kataloglar endpoint. Ekranlar kısaltma + seçeneği başına tam adı. - "Provision organization email postabox" artık devre dışı bırakılırsa Organizasyon e-postasının domaini org'in doğrulanmış posta kutusundan birini karşılaştırır Alanlar (GET /api/email/bölgelerden alındı). Clear inline mesajlaşma Eksik e-posta nedeniyle devre dışı olup olmadığını açıklıyor, doğrulanmadı Alanlar yapılandırılmış, veya bir alan yanlış eşleştirme - ve gerçek isimleri yapılandırılmış alanlar böylece yönetici ne kullanacağını bilir. - Takım üyeliği statüsü artık PROSPECT'ye varsayılan değildir; adminler gerekir Açıkça bir yaşam döngüsü devleti seçin veya göndermek bloke edilir. Özet Özet Özet Özet Panel, bir statü seçilene kadar " set" gösterir.
· SecurityService
Explicit takım durumu + isim prefix /suffix kataloglar
- GET ******************** Şimdi Adları döndürür ve nameSuffixes, NamePrefixType ve NameSuffixType'dan kaynaklandı, böylece Üye ekleyin / Takım Üye formları onları zor kodlamak zorunda değildir. - POST /create-team-member şimdi omits'in bir isteği reddetti TakımMembershipStatus (400). Önceki sessiz PROSPECT geri çekilmedir gitti - caller açıkça bu takımda bir hayat döngüsü devleti seçmeli üyeler varsayılan olarak asla yanlış anlaşılmaz.
· kamo-internal
Tam geniş, üç tane Add Üye form düzeni
Tüm içerik alanını yerine kullanmak için form yeniden çalışır. 1100px- çapında merkezi sütun. - 3-column yanıtlı düzen: yapışkan sol bölüm nav (md+), tam genişlikte Form (always), sağdaki canlı özet paneli (xl+). - Alan satırları şimdi mevcut genişlik için ölçek: isim bölümü md+'da 5up, İletişim + rol satırları xl breakpoints'te 4up'a kadar çıkıyor. - Sticky alt aksiyon bar, bir statü ipucu ve bir durum ipucu ile dolu genişlikte ve gradient birincil CTA. Bölüm nav, kullanıcıyı vurgulamak için kaydırma-spy kullanır ve tıklama-to-scroll'u destekler. - Polonyalı kart tarzı - yumuşak sınırlar, ince hover asansör, gradient Bölüm-header icons. - Yeni sağ taraf özet kart aynaları form verileri canlı (avatar) İlkler, isim, kullanıcı adı, e-posta, rol, durum çipi) ve bir şeyler gösteriyor Bir kez doğrulama geçer.
· kamo-register
Merge alias/email/name/phone tek bir "My Profile" adım
Daha önce ayrı "My E-Mail & Alias", "My Name" ve "Phone Number" 13+ kayıt için bir "My Profile" adıma adım atıyor, Alias + e-posta + yasal adı gerekli ve telefon numarası Seçmeli (Başlandığında SMS yoluyla). Under-13 kayıtantları artık bir tane görüyor "My User Alias" adımı – e-posta, yasal isim veya telefon yok. - RegisterFlow: basitleştirilmiş adım listesi, birleşik işSonraki doğrulama, Yeni formAdımContent vakaları. Profil adım iç içe Görünüşe uygun üç bölüm. - RegisterStatus, 13 tamamlanmanın altında bir "REGISTERED" değeri kazanır. Nerede doğrulamak için e-posta yoktur - doğrudan doğruya doğru yolluyorlar e-posta-verikasyon sayfası yerine kayıtlı=1 ile giriş sayfası.
· SecurityService
E-posta + yasal adı 13 işareti altında için Seçmeli yapın
/api / güvenlik / kayıt uç noktası daha önce herhangi bir istek reddetti Eksik e-posta, ilk adı veya soyadı. Bu, 13 yaşın altındaki yolu yarattı (KIDS ONLY veyags, veya ALL AGES bir alt-13 kayıt sahibi) imkansız - Bu hesaplar haklı olarak sadece bir alias + parola + tohum cümlesi vardır. Geçerlilik şimdi her yolda alias + şifre gerektirir ve davranır e-posta + ilk adı + son bir isim as an all-or-nothing üçlü: tedarik etmek Bunlardan herhangi biri üçünü gerektirir. doğrulama-posta gönderisi ve Yanıt e-posta alanı şimdi bir e-postanın gerçekte olup olmadığını koruyor Verilen ve yanıt durumu "REGISTERED" (şu anki mevcut "EMAIL VERIFICATION REQUIRED", doğrulama için e-posta yoktur.
· kamo-shared-library
Add **************** for enter-as checks
· kamo-internal
Sistem Kullanıcı Oluşturucu sayfası + ağ ENTER AS SYSTEM MEMBER
Platform Yönetimi → Yapılandırma, bir ebeveyn-org- sahibi-sadece Platformda yer alan veya geri dönen sayfa platformu taklit etmek için izin Sistem Kullanıcısı Bölüm, iş unvanı veya bireysel ekip üyesi. Tüm üç nav lokasyonunda kayıt olun (sayfa karo listesi, AyarlarStatusWindow rotaları + sub-topikler ve sayfanın kendisi). Updates / network yeni /api/güvenlik/enter-as uç noktası için kullanmak için Mevcut ENTER düğmesi, bu yüzden hedef alan bir seans alır Hedef veyag'nin üyesinden inşa edilmiştir ( kaynağın kaynağının nerede olduğunu anlayın org's memberID/orgID yeni oturuma sızdırıldı. Bir ENTER AS ekleyin SİSTEM MEMBER düğmesine bir sonraki ENTER'a, sadece sonra verir **************** Çağrıcının uygun olduğunu doğrulayın.
· SecurityService
Geri dolum, akış, mutasyon muhafızları, yapılandırılmış API
Self-heal düzenleme: SystemUserfillService her şeyde çalışır SecurityService boot (From DataLoader) to add the is system user column ve sistem user access table eğer eksikse, singleton System Kullanıcı kaydı var ve her şeyde bir yönetici-role TeamMember yaratıyor Üst düzey olmayan veya zaten ait değil. Ayrıca de çalışır Organizasyon zamanı bu kadar yeni veyags bir Sistem Kullanıcı üyeliği almak Bir sonraki yeniden başlatmayı beklemek yerine hemen. Cross-org akışa girer: eski /api/generate-otk el-off'u değiştirir (ki bu caller'in kaynak-org oturumunu varış alanına sızdırın) /api / güvenlik / enter-as. Yeni uç noktası taze inşa eder - kapsamın toplan Hedef veyag'in gerçek üyesi, bu nedenle üyeID/orgID/rights her zaman maç Ya da girilir. JSON'u seans etmek için bir SUDO MEMBER ID alanı ekleyin Bu Sistem Kullanıcı Yetkisi insan operatörünün üyesi Id Bağlanma için. Guards: SystemUserGuard Sisteme herhangi bir API tabanlı mutasyonu reddediyor Kullanıcı kaydı veya üyeliğinin herhangi biri ( MemberController'e bağlı olarak, Üye Güvenlik Kontrolü, ******************** Gizleniyor GetMembersAndSubscriptrs'den sistem kullanıcısı,TeamMembersAndContractors, VeBölüm uç noktalarına göre members alın, bu yüzden kiracılar asla listelerde görmüyorlar. Config yüzey: SystemUserConfigController hibe üzerinde CRUD ortaya çıkarır Üst düzey teknoloji sahipleri için masa sadece ve SystemUserCapabilityController Return a boolean the /network page uses to karar vermek için kullanır ENTER AS SYSTEM MEMBER düğmesine.
· kamo-shared-library
Sistem Kullanıcı bayrağı + erişim-grant varlık
Platform çapında Sistem Kullanıcı modelini tanıtın: bir Kullanıcı.isSistem Kullanıcı bayrağı (unique kısmi indeks tekton uygular), artı bir SystemUserAccess masası Üst düzey düzey teknoloji departmanları, iş başlıkları veya ekip üyeleri Sistem Kullanıcısını çocuğa veyalara girmek için taklit edebilir. Access rows are are are are are Platform-internal ( RolRightType girişleri değil) bu yüzden dışarıda kalıyorlar onant-ışın hakları yüzeyi.
· kamo-register
Telefon doğrulama + güvenlik soruları adımları
13+ için Şifre ve Hesap Kurtarma arasındaki iki yeni adım Kayıtçılar: bir telefon numarası (isteğenim, atlanabilir, SMS kodu ile doğrulama) ve bir güvenlik soruşturması adım (gerçekten, 3 ayrı ayrı ayrı Cevaplarla sorular. Alt-13 kayıt sahipleri her ikisini de atlamaya devam ediyor Ve iyileşme için tohum cümlelerine güven. FormPhoneNumber: idle -> giriş-code -> doğrulanmış devlet makinesi, per-step Capcha widget SMS göndermek, değişim- sayım ve yolları atlamak. Form SecurityQuestions: 3 damladowns + cevaplar, benzersizlik uygulanabilir, Katalog yeni halk arka uç noktasından getirildi. - RegisterFlow: yeni formData alanları, koşullu adımlar, durunSonraki Geçerlilik, telefon + güvenlikSorular, gönderilen bedene bağlanır. - /api/güvenlik proxy şimdi X-Forwarded-Host'ı ileri sürebilir SMS sağlayıcısı seçimi için org çöz.
· SecurityService
Oturum sırasında telefon + güvenlik soruları toplayın
Telefon numarası ve güvenlik-question koleksiyonu kendi hizmet servisine taşıyın Kayıt akışı (aslında amaçlanmış oldukları yerlerde) Posta ayarları sayfasını gerektiren. - Yeni KayıtPhoneHizmet: 6 dijital SMS kodları oluşturmak / BulkTextSmsClient, 10 dakikalık TTL, sayı başına 5 saatlik oran sınırı. - Kayıt hizmetleri artık bir kayıt params rekorunu opsiyonel olarak kabul eder Doğrulanmış doğrulanmış doğrulanmış doğrulanmış doğrulanmış doğrulanmış doğrulanmış doğrulanmış doğrulanmış doğrulanmış doğrulanmış doğrulanmış doğrulanmış doğrulanmış doğrulanmış doğrulanmış doğrulanmış doğrulanmış doğrulanmış doğrulanmış doğrulanmış doğrulanmış doğrulanmış doğrulanmış doğrulanmış doğrulanmış doğrulanmış doğrulanmış doğrulanmış doğrulanmış doğrulanmış doğrulanmış doğrulanmış doğrulanmış doğrulanmış doğrulanmış doğrulanmış doğrulanmış doğrulanmış doğrulanmış doğrulanmış doğrulanmış doğrulanmış doğrulanmış doğrulanmış doğrulanmış doğrulanmış doğrulanmış doğrulanmış doğrulanmış doğrulanmış doğrulanmış doğrulanmış doğrulanmış doğrulanmış doğrulanmış doğrulanmış doğrulanmış doğrulanmış doğrulanmış doğrulanmış doğrulanmış doğrulanmış doğrulanmış doğrulanmış doğrulanmış Telefon ve 3entry güvenlik-question listesi; güvenlik soruları Mevcut cevap-normalleştirme kuralı ile şifrelenir. - /api / güvenlik / kayıt kabul **************** Kullanıcıyı devam etmeden önce kodun doğrulanan telefonunu iddia eder. - Yeni halk uç noktaları POST / kayıt / telefon/initiate (Capcha-gated) POST / kayıt / telefon / doğrulama ve GET ************************
· kamo-shared-library
KayıtPhoneCode varlık + repository
Yeni masa "phone phone codes' mağazaları bir-shot SMS doğrulama kodları Kendi hizmet kaydı sırasında, bir kullanıcı varlığı var önce. Bir NULL kullanıcıId taşımaktan kaçınmak için HesapVerificationCode'dan ayrı ayrı O masada.
· kamo-internal
Üye ekleyin / Takım Üye sayfalar ekle
- /account: sekme çizilmiş düğmelerle tek belirsiz düğmenin yerinin Üye sekmesinde <Member> ekleyin, Takım Üyeleri sekmesinde <Team Member> ekleyin. Eski kırıklık yerine özel bir form sayfasına her düğme rotaları Üye ayrıntılı görüşe girer. - Yeni / sıralamalar / üye / yeni ve / sıralamalar / yeni sayfalar, her ikisi de Paylaşılan bir ÜyeCreateForm tarafından "variant" bir prop ile desteklendi. - Form tek sayfa, bölüm odaklı bir düzendir (isim, kimlik, iletişim, iletişim, iletişim, org postabox, ekip üyesi-sadece rol / konum, inceleme). Live user-watch on e-posta ve kullanıcı zaten var olduğunda uyarır veya zaten bağlantılı Bu org'da bir üye olarak. - org's AgeReqType'ı onurlandırır: Gereklilik kullanıcıların 13 yaşında izin verirse Kişisel ve organizasyon e-posta alanları gizlidir ve kullanıcı adı dönüşür birincil tanımlayıcı. - Seçmeli "Provision organization e-posta posta kutusu" çekbox oluşturur E-posta hizmeti aracılığıyla posta kutusu ve üyenin birincil posta kutusu olarak atar. - Profil sekmesi / sıralamalar / üye /[id] şimdi İş Yeri, Takım Üyelik durumu ve TeamMember kayıtları için resmi İş Adı, teld Mevcut PUT /api / güvenlik/members/{id} son noktaya.
· SecurityService
Üye ekleyin / Takım Üye yaratım akışı akışı ekleyin
- Yeni ÜyeCreateController ortaya çıkıyor: * GET ******************** - yaş-req, zaman bölgesi, bölümler, iş başlıkları * GET **************** - çürük varlığı e-posta veya kullanıcı adı ile kontrol * POST /api / güvenlik/members/create - caller's orgg * POST ******************** - TeamMember oluşturmak Bölüm / iş unvanı / iş yeri / üyelik durumu / güvenlik seviyesi - E-posta veya kullanıcı adı zaten maçlandığında mevcut bir Kullanıcıyı yeniden kullanın; aksi takdirde Net yeni bir kullanıcı oluşturur ve EMAIL VERIFICATION şablonunu gönderir. WELCOME şablon her zaman yaratıma gönderilir. - YaşReqType'ın 13 kullanıcı altında izin verdiği orgs için, e-posta koleksiyonudur Atılır ve kullanıcı birincil tanımlayıcı olur. - GET /members /{id} konumu geri dönmek için + takımMembershipStatus + TeamMembers içinOrganizasyonOwner ve PUT devam etmek için TakımMembershipStatus ve kayıt bir TeamMember olduğunda işTitleOfficial. - Varsayılan rol atama + haklar malzemeleştirme Üye hizmetleri için delege Bu yüzden her yeni üye, etkili haklarıyla zaten uygulandı. - Fix EntitlementService: boolean getter büyülendiIsOrganizasyon Sahibi (Lombok, ilkel boolean alanları içinOrganizasyonOwner'dır).
· kamo-shared-library
YaşReqType.allowsUnder13() yardımcı
Add Member / Add Team Member tarafından kullanılır Yaş gereksinimi olan veya 13 yaşın altındaki kullanıcılara izin verir (ALL AGES, KIDS ONLY, ALL COPPA GRADS).
· kamo-internal
Rebuild member Plans & Billing Grupları etrafında Billing
Üye Sayfa Planları ve Billing sekmesi şu anda bir pulsing ışıltı ile yapılır ve sekme barında bir StarRate ikon. Görüldüğü zaman Visible İmzalanan kullanıcı OR, imzalanmış kullanıcının org'a sahiptir. İçerikler bölünmüş Four sub-tabs: Aboneler, Faturalar, Ödeme Bilgileri, Yönet Grubu. Billing-group selector dropdown + "Add Billing Group" ikon düğmesi canlı Alt kota barın sağında; grup seçimi her paneli yönlendirir. Abonelik paneli aktif pazar başına bir kart gösterir (FREE DEFAULT KamoCRM her zaman mevcut), değişim planı / iptal / tepki ve per-seat lisansı-assignment grid. Öncekilik auto-deactivation çalışır server-side on koltuk azaltımı. Ödeme Bilgi paneli Stripe Elements via StripeProvider + a Bir fatura grubuna ekleyen ÖdemeMethodFormu (not the değil) Eski veya üst düzey müşteri). - Yönetim Grubu paneli unvanı / fatura iletişim / üye izinleri düzenler (Licensee, Group Plan Manager,ManageSubscription, CanManageBilling) ve ekliyor/removes üyeleri. Varsayılan Grup sadece okunur - onun roster Iklim (her biri açık bir grupta değil), ve hiçbir başlık ya da İzin düzenlemeleri izin verilir. - /kess/account?tab=billing silindi. BillingManager + PlanCalculator kaldırıldı. Her yerde yeni üyeye güncel olan bağlantılar Planlar ve Billing sekmesi. - AyarlarStatusWindow + / hem de iniş nav hem de pruned (üç yönlü) nav-en kuralı için senkronize edin. - BranchSetupManager yeni bir "Ticaret Pazarları" bölümünü içeride alır Güvenlik-model editörü, yeni Güvenlik ModelMarketController kullanarak Add/detach SUBSCRIPTION piyasaları per-scope Public/Member/Member / Takım-Member toggles. - ******************** per-org Billing'i göstermek için yeniden yazıldı Gruplar + per-grup abonelikleri + MRR / notlar / platform / planlar yer sahipleri sayfalar haline gelir (eski içerikleri Temiz kesme ile gitti. Yeni API proxyleri: /api/güvenlik/entitles and **************** Yeni kullanım başlıkları GüvenlikHizmeti Özel Durumlarda Ödevleme Hizmeti UI. Legacy tüketici dosyaları (StatsManager, ÖzelliklerManager, BranchSetupManager) abonelik tabanlılarına kadar @ts-nocheck taşır gating code is reworked on useEntitlements.
· SecurityService
EntitlementService + SecurityModel ticaret pazarları
- EntitlementService, aktif aktif bir özellikle birleşme yoluyla hesaplar BillingGroupLicense planı + KamoCRM Free-tier bazline. Önbellekler Redis'deki 15 dakikalık projeksiyonlar üyeId'da anahtarlandı. - EntitlementInvalidationListener kamo.entitlements.invalidateidate Redis kanalı (MEMBER:/GROUP:/ORG: ödeme yükleri) bu yüzden BillingService mutasyonları Hemen ortaya çıkıyor. - /api/güvenlik / hak sahipleri açığa çıkar /me, **************** ve önbelli bir POST. - GüvenlikModelMarketController in ******************** Bir ÇocukOrgu Güvenlik Modeli'ne Giriş/detaches tradeMarkets to a ChildOrgGüvenlik Modeli'ne bağlanır ve çevirir Public / Member / Team-Member scope booleans.
· BillingService
Billing Services etrafında yeniden yaz
Deletes the org- level **************** kontrolörler, hizmetler ve DTO'lar. Tanıklar: - BillingGroupController montaj grupları, üyeler, abonelikler, lisanslar, Ödeme yöntemleri ve /api/billing/gruplar altında faturalar. - BillingGroupService (yaşam döngüsü + Varsayılan Grup + Free temelline), BillingGroupMemberService (bir grup üyeli bir uygulama), BillingGroupSubscriptionService (Stripe senkronizasyonu FREE DEFAULT iptal / kesinti) ******************** BillingGroupIn billService, Lisans Hizmeti (auto-deactivation priority + inverse-priority reaksiyonivation). - PlanCatalogHizmet + PlanCatalognetler ******************** - StripeWebhook abonelik / fatura / ödeme-method olayları tüketmek. - EntitlementInvalidator Redis'in geçersizliğini yayınlamaktadır. PlatformAdminService + PlatformAdminController per-org roll-up geri dönüyor.

Evreniniz sizi bekliyor.
Birkaç dakika içinde ücretsiz olarak başlatın. Hazır olduğunuzda ürünleri ekleyin - göç yok, yeni girişler yok.
Sonsuza kadar ücretsiz — kredi kartı gerekmiyor