Przejdź do treści
KAMOUniverse

Changelog

Co nowego.

Każde ulepszenie platformy, jak to wysyła.

  1. · InitializerService

    Migracja wieloinstanowego telefonu / dostawcy usług SMS

    Prowadzeni po Hibernate ddl-auto:update tworzy nowe tabele (VOIP_PROVIDER_INSTANCE, BULK_TEXT_PROVIDER_INSTANCE, PHONE_EXTENSION, PHONE_END_USER, PHONE_DEVICE, PHONE_VOICEMAIL, SYSTEM_CONFIGURACJA) od przemianowanych/nowych podmiotów w kamo-shared-library commit 232d731. Poręcza to, czego Hibernate nie może: - Kopiuj wiersze z dziedzictwa voip_provider_config / bulk_text_provider_config do Nowe tabele ._instance, syntetyzowanie instance_name z typu dostawcy. - Drop NOT_CONFIGURED (podstawowe 0) wiersze — nieobecność jest teraz stanem "bez dostawcy". - Rzuć teraz pochwalne spuściznę tabele "_config". - Backfill instance_id na member_voip_config, voip_conversations, i kamotokens.org_oauth_token przy użyciu najstarszego aktywnego przypadku orgnata org. - Odbuduj unikalny indeks org_oauth_token od (org_id, dostawca) do (org_id, dostawca instance_id) więc wiele instancji RingCentral na org. - Upuść sierocinowe unikalne indeksy z voip_conversations + tabel instancji dostawcy. - Poszukiwanie wiersza singleton system_configuration (odstęp 10 minut domyślny interwał wstępu 10min, Włączone true) — operator platformy konfiguruje to za pośrednictwem nowej platformy konfiguracyjnej Zakładka VOIP & SMS. Wszystkie wypowiedzi idempotentne; ponowne bieganie na już wyemigrowanym DB jest bezpieczne. Order 20 — po SchemaCleanupRunner (1), OrganizationTypeRemovalRunner (2), KamoCRMAgeReqAtajner(-e) (10).

  2. · kamo-shared-library

    Wieloinstancyjny schemat do smartfona / dostawcy SMS

    - Zamień nazwę VoipProviderConfig - VoipProviderInstance; drop UNIQUE(org_id), add instance_name, config_json, last_sync_error. - Zmień nazwę BulkTextProviderConfig - BulkTextProviderInstancja; takie samo leczenie wieloinstanowe. - Nowe podmioty: PhoneExtension, PhoneEndUser, PhoneDevice, PhoneVoicemail, SystemKonfiguracja. - Dodaj instance_id do MemberVoipConfig, VoipConversation, OrgOAuthToken (wiele instancji RingCentral na org). - Nowe enums: PhoneExtensionStatus, PhoneEndUserStatus, PhoneDeviceType, PhoneDeviceRegistrationStatus. - Deprecate NOT_CONFIGURED w "(przechowywanie w ordynal 0, aby zachować istniejące wiersze pod EnumType.ORDINAL). - Dodać FLOWROUTE do BulkTextProviderType dla nowego dostawcy SMS Flow. - DTO abstrakcyjne (ExtensionDto, PhoneUserDto, DeviceDto, VoicemailEntryDto, InstanceHealthDto, Create/Update requests). Pierwsza faza telefonu wieloinstanowego/reaktor faustny SMS – patrz ? (w repo kamo-login). Migracja KamoInitializer + refaktorzy serwisowa do naśladowania.

  3. · KlusterServices

    Wdraża FreePBX 17 + most Jigasi SIP na k1m1 i k2m1

    FreePBX (tiredofit/freepbx:17-dawny) działa z hostNetwork, więc SIP/RTP Przechowuje prawdziwe adresy IP klientów, przypięte jeden na węzeł za pośrednictwem nodeSelector. SIP on 5060 UDP/TCP (5061 TLS), RTP 18000-18999 wybrano, aby uniknąć Janus (20000-20999), Coturn (52000-65535) i WireGuard (51820-51821). Poznaj Jigasi dodaną jako wewnętrzny most SIP, aby FreePBX mógł Zaproszenia na spotkania z konferencjami; Prosody teraz zaopatrza użytkownika jigasi JIGASI_XMPP_PASSWORD. Admin UI dostępny przez Traefik na pbx.kluster.kamorrm.com / pbx.kluster.kamorm.pl Rozsiewany przez autocert STATIC_DOMAINS.

  4. · kamo-internal

    Widok platformy-admin, pagination, wyszukiwanie na żywo, filtry, logo org

    Komedy internetowe platformy (właściciel org najwyższego poziomu) widzą teraz każdy org w systemie za pośrednictwem Nowy /api/security/org/all-networks punkt końcowy zamiast tylko własnego członkostwa. Tytuł nagłówka i aktualizacja napisów, aby odzwierciedlić kontekst administratora. Inne ulepszenia: - Paginacja: po stronie klienta, domyślna 25/page, konfigurowalna (10/25/50/100) - Wyszukiwanie na żywo: filtry według tytułu, krótkiego tytułu lub domeny w czasie rzeczywistym - Układy filtracyjne: "All", "Orgs I Own", "DNS jeszcze nie skonfigurowany" - Liczbę wyniku pokazaną obok sekcjonera wielkości strony - Przyciski numery strony z zawaleniem się elipsy dla dużych liczby stron - komponent OrgLogo konsoliduje renderowanie logo (krótki logo za pośrednictwem getOrgLogoUrl) Zarówno dla karty bieżącego uorg, jak i wszystkich kart org na liście - Przycisk ENTER prawidłowo strzeżony przez org.memberId (shared user+member record) - ENTER AS SYSTEM MEMBER dostępny dla wszystkich org, gdy może wejść na system systemowy

  5. · SecurityService

    Dodaj GET /api/security/org/all-networks dla administratorów platformy

    Najwyższej klasy posiadacze org mogą teraz pomnać wszystkie organizacje w systemie Informacje o członkostwie w stosunku do rozmówcy. Orgi, gdzie dzwoniciel ma członka Rekord jestOwner / członekId Populated; inni dostają memberId: null, isOwner: false. Endpoint egzekwuje, że dzwoniciel jest zarówno na najwyższym poziomie, jak i jest właścicielem.

  6. · kamo-internal

    Sub-tabs w edytorze modeli zabezpieczeń + sprzątania

    - Security-model editor on - jest teraz podzielony do czterech podtab: Ogólne (Podstawowe informacje, widoczność, Kto może tworzyć, Ustawienia platformy, Domain Config, rynki Commerce), Cenzura (alkohol/ Tytoń / broń + członek + zakresy wiekowe członków zespołu), dozwolone aplikacje i Domyślne role bezpieczeństwa. - Nowy - pozwól administratorowi edytować modela Pozwól flamgezmie RootSubdomains i alias macierzystym obok reszty tego - Ustawienia modelu. Wcześniej żyło to wewnątrz Subdomena o szerokości org Rozgałęzienia wyskakujące. - Wyskakujące rozgałęzienie Subdomainche jest uproszczone tylko do bitów na poziomie orgłu - Poświadczenia GoDaddy + master umożliwiają przełączanie. Per-modelowe aliasy przeniosły się Zarówno o oknie dialogowym, jak i jego powierzchni rekwizytu; SecurityRoleManager upuszcza Teraz też nieużywane rekwizyty. - Usuwa każde odniesienie do teamMemberPayFeesSetting / PayFeesSetting / TriStateFeeOption — "Opłaty za self-Pay Kamo" wybierają na stronie Edytor modelu i jego chip w tabeli modeli zniknęły wraz z Wpis aliasów w useAppliedModel. - /settings/platform/events i /settings/platform/plany strony Usunięto (były one zastępcami z przestarzałej powierzchni rozliczeniowej). Strona docelowa, SettingsStatusWindow sub-topic list i trasa/ikona Wszystkie mapy upuszczają pasujące wpisy. - Zarządzaj sub-tabem grupy na ? teraz Wyświetla tytuł Default Group jako niepełnosprawne pole tylko do odczytu (było Wcześniej ukryty całkowicie za alertem informacyjnym), więc administratorzy mogą zobaczyć Nazwa grupy, choć nie można go zmienić.

  7. · kamo-internal

    Alias Widoczność UI + Subdomain Przycisk Oddziałów na stronie typu branchs

    SubdomenBranchesDialog: - Alias editor zastąpił listę chipów z listą wiersza w stylu tabeli Poszczelikfie czekowe członków i członków zespołu pod względem aliasu — kontrole administratorów, które Typy twórców widzą każdy alias rodzica w /network/create - onUpdateModelSubdomainKonfig podpis zaktualizowany, aby przekazać pełne alias obiekty (alias, widzialneToMemberzy, widzialneToTeamMberzyści) zamiast zwykłych strun BezpieczeństwoRoleManager: - fullSecurityModels stan + loadFullScurityModels map aliases with with - flagi - persistModelSubdomainConfig przekazuje pełne alias przedmioty do zaplecza OddziałSetupManager - Dodano przycisk Subdomain Branches (strona zabezpieczeń wzorców) z Te same SubdomainBranchesDialog, status-fetch na montażu i przeładowanie modelu Kiedy zaczyna się okno dialogowe

  8. · SecurityService

    Filtrowanie widoczności Alias + automatycznej weryfikacji własności subdomeny

    Administrator organizacji: - Tworzenie web-alias org teraz własność Auto-marksVerified-true i isDnsVerified-true na stworzonej OrgDomain – nie potrzeba rekordu TXT od czasu Zaopatrzyliśmy DNS w GoDaddy w ich imieniu - CUSTOM parentAliasType ścieżka teraz wymusza widoczność typu per-alias creator (luki / filtr do prostopadania, więc zaplecza nie można ominąć) BranchTypeController /odwłaściwość: - Lista parentAliases jest teraz filtrowana przez twórcę dzwoniącegoType: Członkowie widzą tylko widoczneToMembers-true aliases, TEAM_MEMBERS widzą tylko Widoczne aliasyTeamMembers, OWNERS widzą wszystko - Każdy alias DTO zawiera teraz widoczneToMembers + widoczneToTeambers flagi BezpieczeństwoModelController: - processSubdomainBranchConfig teraz czyta :-) Z aliasów mapowania obiektów i wywołań zastępzaAllFull, aby je utrzymać

  9. · kamo-shared-library

    Dodaj flagi widoczności peralias creator

    Dodaj widoczneToMemberyści / widzialneKolumny booleanoweTeamamTeambers do ChildOrgSecurityModelAlias więc administratorzy mogą ograniczyć aliasy macierzyste Wydaje się, że Członkowie vs Członkowie zespołu podczas tworzenia orgs dzieci. - Jedność: dwa kolumny bujarowe.Default true z BOOL DEFAULT TRUE SubdomainAliasDTO: odsłonić obie flagi w stosunku doEntity - - nowy rekord AliasEntry + zastępzaAllFull Przeciążenie, które utrzymuje widoczność; zastępuj do niego delegatów

  10. · kamo-internal

    Okno dialogowe Ustawienia, ścieżka kreatora internetowego i panel dostarczania DNS

    Dodaje UI Subdomain Branches na trzech powierzchniach: - nowy przycisk "Subdomain Branches" Otwiera okno dialogowe dla poziomu org-uwaluuj toggle + GoDaddy creds, z a Edytor modelu na zabezpieczenia dla allowedRootSubdomains + aliases aliases (reusy Pomocnicy czarodzieja isValidAlias/toSafeAlias) - /network/create: BasicsStep teraz gałęzie między przynieś-jej-wows-domenie ścieżka i ścieżka kali i Kamo (gated na flagi wału wizjnego orgi, Status GoDaddy i aliasów wybranego typu oddziału). Rodzic Alias Listy rozwijające ROOT (jeśli jest to dozwolone) plus aliasy na model; pomoc na żywo Podgląd aktualizacji, gdy użytkownik zmienia się w obu pola - /setup/dns: nowy DnsProvisioningPanel ankietuje dziennika rezerwowania org i Powierzchnia na rekordowy status GoDaddy z akcją niepowodzeniem w ponownym użyciu Wspierane przez Next.js BFF trasy proxy w obszarze .

  11. · SecurityService

    Konfiskata na poziomie org, klient GoDaddy i web-alias org tworzą ścieżkę

    Przewody nowe Oddziały Subdomain są wyposażone w end-to-end na zapleczu: - SubdomenBranches Kontroler dla poziomu org-level enable + GoDaddy creds (live-verified) - GoDaddyDnsClient wykonuje weryfikacje idempotentowe CNAME i kontrole poświadczające - DnsProvisioningService async-queus standardowy podzbiór KnownAliases i Pisze na rekordowe wiersze do OrgDnsProvisionLog - SecurityModelController przenośny umożliwiają RootSubdomens + aliases[] on Utwórz / aktualizować - Akceptuje ścieżkę web-alias (useWebAlias + rodzicAliasType + rodzicAliasId + webAlias), oblicza Powstałe FQDN w strefie głównej rodzica i rozpoczyna dostarczanie DNS Po zakończeniu orgi transakcyjnej - BranchTypeController's /krealny punkt końcowy ujawnia pseudonimy na model I status podgaszkowych macierzystych, aby czarodziej mógł ogarnąć interfejs użytkownika

  12. · kamo-shared-library

    Dodaj jednostki, szyfr i alias/DNS log rusztowanie

    Dodaje per-org GoDaddy crededs (AES-GCM zaszyfrowane), flaga allowRootSubdomains I zbiór aliasu dziecięcego na wzór bezpieczeństwa, rezerwa DNS Dziennik audytu i wspólny pomocnik SecretCipher używany przez SecurityService do podróży Przechowywane klucze API bez zwracania ich na frontend.

  13. · kamo-internal

    Profiks/suffix dropdowns, brama domeny skrzynek pocztowych, stan jawny

    - Prefiks i przyrostek nazwy są teraz rozwijane z rozciągłości NamePrefixType / NameSuffix Katalogi dostarczane przez org-config Punkt końcowy. Wyświetla skrót + pełna nazwa na opcję. - "Poczta e-mailowa organizacji usług" jest teraz wyłączona, chyba że Domena e-maila organizacji pasuje do jednej ze zweryfikowanej skrzynki pocztowej orgi Domnieje (wyciągnięte z GET /api/email/domens). Przejrzyste wiadomości inline Wyjaśnienie, czy jest niepełnosprawny z powodu braku wiadomości e-mail, bez weryfikacji Konfigurowane domeny lub niedopasowanie domeny — i nazywa faktyczną Ukonfigurowane domeny, aby administrator wiedział, czego użyć. - Status członkostwa w zespole nie jest już domyślny dla PROSPECT; administratorzy muszą Wybierz stan cyklu życia wyraźnie lub przesłanie jest zablokowane. Podsumowanie Panel pokazuje "nieustawiony", dopóki nie zostanie wybrany status.

  14. · SecurityService

    Wyraźny status zespołu + nazwa prefix/katalogów

    - GET - teraz zwracają nazwyPrefixes i nameSuffixes, pozyskiwane z NamePrefixType i NameSuffType Dodaj Member / Dodaj formularze członkowskie Team nie musisz ich kodować. - POST /create-team-członek teraz odrzuca prośbę, która pomija ZespółMemityStatus (400). Poprzedni cichy PROSPEKT jest Odszedł — dzwoniąc musi wybrać stan cyklu życia wyraźnie, więc zespół Członkowie nigdy nie są domyślnie źle osiądzni.

  15. · kamo-internal

    Pełna szerokość, trzyszybki Dodaj układ formularza użytkownika

    Przerabia formularz tworzenia, aby korzystać z całego obszaru zawartości zamiast Kolumna wyśrodkowana o szerokości 1100px. - 3-kolumnowa responsywna układ: lepka lewa sekcja nav (md+), pełna szerokość Forma (zawsze), panel podsumowujący na żywo po prawej stronie (xl+). - rzędy pola teraz skalują się do dostępnej szerokości: sekcja nazwy jest 5-up w md+, Wioślacze styku + w górę do 4-up przy punktach przełamania xl. - Sticky bottom pasek akcji obejmuje pełną szerokość z podpunktem statusu i gradient podstawowy CTA. - Sekcja nav używa przewijania-szpiegów, aby wyróżnić sekcję, w której znajduje się użytkownik Obsługuje click-to-scroll. - polerowany styl kart — miękkie obramowania, subtelny podnośnik, gradient Sekcji ikon nagłówków. - Nowa karta podsumowania prawej ramki odzwierciedla formularz danych na żywo (avatar inicjały, imię i nazwisko, nazwa użytkownika, e-mail, rola, chip statusowy) i pokazuje Gotowy do tworzenia wskaźnik po przejściu walidacji.

  16. · kamo-register

    Połącz alias/email/nazwisko/telefon w pojedynczy krok "Mój profil"

    Połącz wcześniej oddzielony "My e-mail & Alias", "Moje imię", i "Licz numer telefonu" wkracza w jeden krok "Mój profil" dla 13+ rejestrujących, Z aliasem + e-mail + wymagana nazwa prawna i numer telefonu opcjonalnie (sprawdzony za pomocą SMS po wpisaniu). Rejestrujący poniżej 13 roku życia widzą teraz Pojedynczy, przemianowany krok "My User Alias" - bez e-maila, nazwiska prawnego lub telefonu. - RegisterFlow: uproszczony list krokowy, ujednolicony uchwytWalić walidację, Nowe przypadki renderStepContent. Krok profilowy jest wewnętrznie Przewijane, więc trzy sekcje mieszczą się w widoku. - RegisterStatus zyskuje wartość "JESTOWAJOWA" dla zakończeń w wieku poniżej 13 lat Tam, gdzie nie ma e-maila do zweryfikowania - są one kierowane prosto do Strona logowana z numerem 1 zamiast strony z wweryfikowanym pocztą elektroniczną.

  17. · SecurityService

    Zrób e-mail + nazwę prawną opcjonalnie dla rejestracji poniżej 13 roku życia

    Punkt końcowy /api/zagregowanie/zapis wcześniej odrzucił wszelkie wnioski Brakujące e-mail, imię lub nazwisko. To uczyniło ścieżkę poniżej 13 roku życia (KIDS_ONLY orgs lub ALL_AGES z rejestratorem poniżej 13) niemożliwe — Konta te mają legalnie tylko alias + hasło + fraza nasienia. Walidacja wymaga teraz alias + hasła na każdej ścieżce i traktuje e-mail + imię + nazwisko jako wszystko lub nic potrójnie: dostarczanie Każdy z nich wymaga wszystkich trzech. Weryfikacja-e-mail wysyła i Pole e-mail odpowiedzi teraz pilnuje, czy e-mail był rzeczywiście Pod warunkiem, a status odpowiedzi jest "UprawnieJE" (w porównaniu z istniejącym "EMAIL_VERIFICATION_REQUIRED"), gdy nie ma poczty e-mail do weryfikacji.

  18. · kamo-shared-library

    Dodać ? do kontroli wejścia w powstania

  19. · kamo-internal

    System Strona konfiguracji użytkownika + sieć ENTER AS SYSTEM MEMBER

    Dodaje Administrację Platformy - Konfiguracja, rodzic-do-rzemisier-on-do. Strona, która udziela lub cofa zgodę na podszywanie się pod platformę Użytkownik systemu według działu, stanowiska pracy lub indywidualnego członka zespołu. Zarejestrowany we wszystkich trzech lokalizacjach nav (wystawy strony z płytami, SettingsStatusWindow routes + sub-topics i sama strona). Aktualizacje / sieć do korzystania z nowego /api/security/enter-as-as punktu końcowego dla Istniejący przycisk ENTER, więc domena docelowa otrzymuje sesję Zbudowany od członka docelowego orgi (naprawianie błędu, w którym źródło Członek org/orgID wyciekł do nowej sesji). Dodaje ENTER AS Przycisk SYSTEM MBER obok ENTER, który tylko po renderowaniu potwierdza, że dzwoniąc kwalifikuje się.

  20. · SecurityService

    Zapełnienie, enter-as flow, osłony mutacji, config API

    Zaopatrzenie w samoleczenie: SystemUserBackfillService działa na każdym Rozruch SecurityService (z DataLoader) do dodania kolumny is_system_user Jeśli brakuje tabeli system_user_access, upewnij się, że system singleton Rekord użytkownika istnieje i tworzy kreację administratora-roli TeamMember w każdym Niedoskopoziomowy org, do którego nie należy. Również biegnie na Czas budowaniaOrganizacji, więc nowe orgi otrzymują członkostwo użytkownika systemu Od razu, zamiast czekać na następny restart. Cross-org enter flow: zastępuje stare /api/generate-otk hand-off (który Wyciekła sesja źródło-org dzwoniący do domeny docelowej) z /api/security/enter-as. Nowy punkt końcowy buduje nowy - przewodowy do Rzeczywisty członek orgi docelowej, więc członek ID / jabłko / prawa zawsze pasują Wpisana org. Dodaje pole SUDO_MEMBER_ID do sesji JSON, więc Podszywanie się pod użytkownika systemu przenosi członka podmiotu ludzkiegoId Do atrybucji audytu. Straże: SystemUserGuard odrzuca wszelkie mutacje oparte na API do Systemu rekordy użytkownika lub któregokolwiek z jego członków (wprowadzany do MemberController, MemberSecurityController, - Ukrywa Użytkownik systemu od GetMembersAndSubs.Subskrybenci, getTeamMembersAndContractors, I getMembersByDepartment punkty końcowe, więc najemcy nigdy nie widzą go na listach. Powierzchnia Config: SystemUserConfigController ujawnia CRUD nad dotacją Tabela dla właścicieli najwyższego poziomu zorg i SystemUserCapabilityController Zwraca boolean, którego używa strona /network, aby zdecydować, czy renderować W TERAKCZNY MEMBER.

  21. · kamo-shared-library

    Dodaj flagę użytkownika systemu + podmiot dostępu-grant

    Przedstawia ogólnopodobny model systemu User: User.isSystemUser flaga (unikalny indeks częściowy wymusza singleton), plus tabelę systemuUserAccess To rejestruje, które działy najwyższego poziomu-org, tytuły zawodowe lub członkowie zespołu Użytkownik Systemu może podszyty pod użytkownika, aby wprowadzić orgi dziecięce. Rządy dostępu są Platforma-wewnętrzne (wpisy RoleRightType), więc pozostają poza domem Powierzchnia prawa osób najemców.

  22. · kamo-register

    Dodaj weryfikację telefonu + kroki pytań bezpieczeństwa

    Wstaw dwa nowe kroki między odzyskiwaniem haseł i konta 13+ Rejestrujący: krok numeru telefonu (opcjonalnie, poślizg, z kodem SMS Weryfikacja) i krok w sprawie bezpieczeństwa (wymagane, 3 odrębne Pytania z odpowiedziami). Rejestrujący poniżej 13 lat nadal pomijają oba Polegaj na swojej frazie zalążkową do wyzdrowienia. - FormPhoneNumber: jadle -> wprowadzający kod -> zweryfikowana maszyna stanu, Widget Capcha Kating SMS wysyła, zmienia numer i pomija ścieżki. - FormSecurityQuestions: 3 rozwijane + odpowiedzi, wyjątkowość egzekwowana, Katalog wyrwany z nowego publicznego punktu końcowego backend. - RegisterFlow: nowe formyDane pola, etapy warunkowe, uchwytNastępny Walidacja, telefon + bezpieczeństwoPytania podłączone do ciała. - /api/ proxy bezpieczeństwa teraz do przodu X-Forwarded-Host, aby backend mógł Rozstrzygnij wybór dostawcy SMS do wyboru dostawcy SMS.

  23. · SecurityService

    Zbieraj telefon + pytania bezpieczeństwa podczas rejestracji

    Przenieś numer telefonu i kolekcję pytań bezpieczeństwa do samoobsługi Przepływ rejestracyjny (gdzie były pierwotnie przeznaczone) a nie Wymagająca strona ustawień post-signup. - Nowa RejestracjaPhoneService: generuje/weryfikuje 6-cyfrowe kody SMS poprzez BulkTextSmsClient, 10-minutowy TTL, 5-godzinny limit stawki na numer. - RejestracjaUS akceptuje teraz rejestrowanie PDF z opcjonalnym SprawdzonyPhone i lista pytań bezpieczeństwa wjazdu; pytania dotyczące bezpieczeństwa Są bcrypt-hashed z istniejącą regułą normalizacji odpowiedzi. - /api/bezpieczeństwo/zarejestruje się ? i Roszczenie zweryfikowanego telefonu z kodem przed upormowaniem Użytkownika. - Nowe publiczne punkty końcowe POST /rejestr/phone/inicjated (Capcha-gated), POST /register/phone/verify, i GET

  24. · kamo-shared-library

    Dodaj RejestracjaTętowyDoko-Kodon + repozytorium

    Nowa tabela "registration_phone_codes" przechowuje kody weryfikacyjne SMS z jednym strzałem Wydane podczas rejestracji samoobsługowej, zanim stanie się podmiot Użytkownika. Trzydno od AccountVerificationCode, aby uniknąć przenoszenia użytkownika NULL Na tym stole.

  25. · kamo-internal

    Dodaj Member / Dodaj strony członków zespołu

    - /kon: zamień pojedynczy niejednoznaczny przycisk z przyciskami z kartą Dodaj na karcie Członkowie, Dodaj ?członek członka grupy w zakładce Członkowie zespołu. Każdy przycisk kieruje się do dedykowanej strony tworzenia zamiast starej zepsutej Przejście do widoku szczegółów członka. - Nowe /setcje/członkinia/nowy i /settings/team-member/new pages, oba Poparł wspólny MemberCreateForm z "wariantowym" rekwizytem. - Formularz jest jednostronicowym, zorientowanym na sekcję layoutem (nazwa, tożsamość, kontakt, skrzynka pocztowa org, role/lokalizacja / lokalizacja, przegląd). Użytkownik na żywo-lookup na e-mail i nazwa użytkownika ostrzegają, gdy użytkownik już istnieje lub jest już połączony Jak członek tego orgi. - Honors the org's AgeReqType: jeśli wymaganie pozwala użytkownikom poniżej 13 roku życia, Pola e-mail osobistej i organizacyjnej są ukryte, a nazwa użytkownika staje się Identyfikator podstawowy. - Opcjonalne pole wyboru "Provision organizacja poczty e-mail" tworzy pole wyboru Skrzynka pocztowa za pośrednictwem usługi e-mailService i przypisuje ją jako główną skrzynkę pocztową członka. - Zakładka profili na /settings/member/[id] zawiera teraz lokalizację pracy, zespół Status członkostwa i oficjalny tytuł pracy dla rekordów TeamMember, przewod do istniejącego PUT /api/security/members/-a-alpoint.

  26. · SecurityService

    Dodaj Member / Dodaj przepływ tworzenia członków zespołu

    - Nowy MemberCreateNasłuchiwanie Kontroler: GET — wiek-rek, strefa czasowa, działy, stanowiska GET - omijona kontrola istnienia przez e-mail lub nazwę użytkownika POST /api/security/members/create — utwórz Członka w org caller's org POST — utwórz TeamMember z Dział / tytuł pracy / lokalizacja pracy / status członkostwa / poziom bezpieczeństwa - Ponowne wykorzystanie istniejącego Użytkownika, gdy e-mail lub nazwa użytkownika już się dopasowuje; w przeciwnym razie Tworzy nowy użytkownik i wysyła szablon EMAIL_VERIFICATION. Witamy Wzór jest zawsze wysyłany na tworzenie. - Dla orgs, których AgeReqType pozwala użytkownikom poniżej 13 roku życia, pobieranie poczty e-mail jest Pomijane i nazwa użytkownika stają się głównym identyfikatorem. - Rozszerza GET / członków/-id-a-inną do lokalizacji powrotnej + teamMembershipStatus + jestOrganizationOwner dla TeamMembers i PUT, aby utrzymać lokalizację, ZespółMembershipStatus i pracaTitleOficjalne, gdy rekord jest TeamMember. - Domyślne przypisanie roli + zrealizowanie praw delegowanych do MemberService Tak więc każdy nowy członek ląduje z ich skutecznymi prawami już stosowanymi. - Fix EntitlementService: boolean getter został napisany getIsOrganizationOwner (Lombok generuje organizationOwner dla prymitywnych pól boolańskich).

  27. · kamo-shared-library

    Dodaj AgeReqType.allowsUnder13() helper

    Używany przez Add Member / Add Team Member flow to pomiń odbiór wiadomości e-mail dla orgs, których wymóg wiekowy pozwala użytkownikom poniżej 13 roku życia (ALL_AGES, KIDS_ONLY, ALL_COPPA_GRADS).

  28. · kamo-internal

    Odbuduj plany i rozliczenia wokół grup rozliczeniowych

    - Strona użytkownika Plany i karta rozliczeniowa jest teraz wyrównana z pulsującym blaskiem Ikona StarRate na pasku. Widoczny, gdy patrzymy na członka Zalogowany użytkownik LUB zalogowany użytkownik jest właścicielem orgu. Spis treści podzielone Do czterech sub-tab: Subskrypcje, faktury, informacje o płatnościach, Zarządzaj grupą. Spisownik listy Billing-group + przycisk "Dodaj grupę rozliczeniową" na żywo Po prawej stronie pod-tab; wybór grupy napędza każdy panel. - Panel subskrypcji pokazuje jedną kartę na aktywny rynek (FREE_DEFAULT KamoCRM zawsze jest obecny), z projektem zmiany / anulowaniem / reaktywacją i a) Siatka uprawnień licencyjnych na siedzącą. Priorytetowe automatyczne uruchamianie Po stronie serwera przy redukcji miejsc. - Panel informacyjny do płatności owija Stripe Elements via StripeProvider + a Refaktoryzowany PaymentMethodForm, który wiąże się z grupą rozliczeniową (a nie Stary klient na poziomie org). - Zarządzanie edycjami przez panel grupy tytuł / kontakt rozliczeniowy / uprawnienia użytkownika (Licendopodnie rzeczoznawca, kierownik planu grupowego, może zarządzaćSubskrypcja, canManageBilling) Dodaje/usuje członków. Domyślna Grupa jest tylko dozwolona - jej skład Jest to domniemane (wszyscy niewłaściwe w grupie jawnej), a nie mają tytułu lub Edycje uprawnień są dozwolone. - /settings/account?tab-billing usunięty bezwarunkowo. BillingManager + PlanCalculator usunięty. Linki wszędzie aktualizowane do nowego członka Plany i zakładka rozliczeniowa. - SettingsStatusWioski + /setting lądowanie nav obu przycinanych (trzecho strony Syncjowanie według reguły nav-sync). - BranchSetupManager otrzymuje nową sekcję "Rakiety handlowe" wewnątrz Edytor modelu bezpieczeństwa, wykorzystujący nowy SecurityModelMarketController do Załączanie/detowy rynki SUBSCRIPTION z przeszklernowaniem Public/Mem członkowskiego/ Drużyna-członek przełącza się. - Przepisany, aby pokazać per-org Billing Grupy + subskrypcje na grupy + MRR. /setcje/platformy/wydarzenia oraz /settings/platforma/plany stają się strony zastępcze (ich stare treści Zniknęły z czystym krojem). - Nowe serwery API: /api/security/uprawnienia i Nowe wykorzystanieEntitlements hook Korzysta z SecurityService EntitlementService dla fabularnego w branży I (i) Dziedziczne pliki konsumenckie (StatsManager, FeaturesManager, BranchSetupManager) przewozi ’ts-nocheck aż do ich subskrypcji Gating code jest przerabiany na użycie Uprawnienia.

  29. · SecurityService

    Dodaj EntitlementService + SecurityModel commerce markets

    - Uprawnienia Usługi obliczeni na członków dotacje na cele przez związki aktywne BillingGroupLicense Plan funkcji + KamoCRM Free-tier bazowa. Kawy 15-minutowe projekcje w Redis na MemberId. - UprawnieniaNiewłaściwośćListener subskrybuje kamo.entitlements.invalidate Kanał Redis (MEMBER:/GROUP:/ORG: ładowności) więc mutacje BillingService Propaguj natychmiast. - EntitlementController at /api/security/uprawnienia eksponuje /me, - i walidacja pamięci podręcznej POST. - SecurityModelMarketController at . Załącza / detapi CommerceMarkets do ChildOrgSecurityTIdel i odwraca Publiczny / Członek / Team-Camialne luterzy.

  30. · BillingService

    Przepisać BillingService wokół BillingGroups

    Usuwa poziom org-) Kontrolerzy, usługi i DTO. Wprowadza: - BillingGroupController grupy montażowe, członkowie, subskrypcje, licencje, Metody płatności oraz faktury w /api/billing/grupach. - BillingGroupService (cykl życia + Domyślna grupa + Wolna podstawa), BillingGroupMemberService (jednogrupa na członków egzekucja), BillingGroupSubscriptionService (Stripe Sync z odwrotnością do FREE_DEFAULT W sprawie anulowania/uniknienia), - BillingGroupInvoiceService, LicenseService (priorytet auto-dezaktywacja + odwrotna reaktywacja priorytetowa). - PlanCatalogService + PlanCatalogController na . - StripeWebhookService konsumując subskrypcję / fakturę / wydarzenia z cyklu płatności. - UprawnienieNieważne publikowanie sygnałów unieważnienia Redis. - PlatformAdminService + PlatformAdminController powracający na a-org roll-ups.

Twój wszechświat czeka.

Rozpocznij bezpłatnie w kilka minut.Dodaj produkty, kiedy tylko będziesz gotowy — bez migracji, bez nowych logowań.

Bezpłatne na zawsze — nie wymaga karty kredytowej