Verweigern Sie einen Alias, der mehr als eine Organisation benennt
vonAlias hat LIMIT 1 über orgs.alias genommen, die keine Einzigartigkeitsbeschränkung hat: der erstellen Pfad überprüft es pro Sicherheitsanbieter und PUT /org/...
Der geplante Moderator Picker bot niemandem
Die Moderatoren Tab Dropdown war leer für jede Organisation, und hatte immer gewesen. GET ************ antwortet mit { teamMitglieder, total .; der Reiter lesen...
Servieren Sie den App-Baum, und beheben Sie die unbewachte auto-enable
FeatureController sendet jetzt Eltern/Kinder/isParent auf jede serialisierte app, damit der Kunde Kinder unter ihrem Elternteil verschachtelt machen kann. Servi...
Spiegeln Sie die sechs Commerce-Kinder-Apps, und stoppen Sie die Spiegel driften
Beide TS-Spiegel sind jetzt GENERATED von ServiceType.java statt Handgespeichert. Sie waren von Java und voneinander schlecht abgedriftet: Abgestandene "RAG-Int...
Aufgabe 7 benötigte keine neue Migration, und Top-Level-Auferhalte- Orgs müssen einbezogen werden
Die App-Tree Backfill stellte sich heraus, dass bereits als vorhanden ************ eingeschränkt zu isGated() verticals. Diese Beschränkung fallen zu lassen, is...
Ein Scroll, dreimal so breit, jedes Gespräch runter
Die Bar neben den Nachrichten war 8px im Mitgliederchat und SMS, 6px in Support-Tickets und sozial, und in der KI-Chat war es nichts überhaupt: diese Liste erkl...
Lösen Sie die Domain auf /org/current server-seitig
internal.kamocrm.com hat es versäumt, mit "Invalid Organisationsdaten zu machen: fehlt 'id' oder 'domain'". Organisation hat kein "Domain"-Feld -- es hat eine "...
Geben Sie /api/org/current die Domain, die der Client benötigt
internal.kamocrm.com hat es versäumt, mit "Invalid Organisationsdaten zu machen: fehlt 'id' oder 'domain'". Organization.fromJSON lehnt eine Aufzeichnung ohne e...
Bewegen Sie Sprung-zu-neuen Westen mit den anderen Aktionen der Toolbar
Suchen Sie jetzt die ganze linke Spur der Toolbar, weil der leere Teil dieser Spur ist genau den Raum, in den sich das Feld öffnet. Die Scroll-to-Bottom-Steueru...
Aktualisieren Sie das Favicon und lassen Sie die ungenutzten blueleven Logos
public/favicon.ico führt jetzt 48x48 und 32x32 Ebenen statt 32x32/16x16. Die fünf Logo-blu*/Logo-blueleven* PNGs werden aus dem Nichts in der App verwiesen, so ...
Ausweitung des Markt-Grandat in die App-Baum-Verfüllung
grandfatherExistingGatedMarkets bewanderte bereits die aktiven Märkte jedes org, behoben getRequiredService() und aktiviert die fehlende App auf isGated() verti...
Anspruch-überprüfen jede vertikale, nicht nur die gated two
Jeder CommerceType benennt jetzt seine eigene Kinder-App unter POS, also isGated() Kurzschluss, der Einzelhandel, Vermietungen, Service, Abonnements winkte und ...
Geben Sie dem Workspace-Pfad die gleiche Post-Login-Arbeit wie der Host-Pfad
Zwei Lücken, die durch das erneute Lesen des ursprünglichen Login-Schwedens gegen den neuen gefunden werden, bevor der Picker aktiviert wird. Der formkodierte ...
Die Suche der Toolbar ist eine Glyphe, die sich in ein Feld öffnet
Der Mitglieder-Chat trug eine permanente Suchbox über die Oberseite des Fensters - die Breite der ganze Toolbar, die für eine Steuerung ausgegeben wird, die fas...
Eine gesendete Nachricht animiert einmal, nicht zweimal
Die Nachrichtenliste schlüsselte jede Zeile auf der Nachrichten-ID, und die ID einer gesendeten Nachricht ändert sich genau einmal - die optimistische Zeile wir...
Jede Vertikale nennt eigene Kinder-App
erforderlicheService wird jetzt, da jede vertikale hat eine Kind-App unter ServiceType.POS, die die "Null bedeutet POS allein ist genug" löscht Sonderfall und i...
Namensräume nach der org-ID, nicht dem Hostnamen
getOrgToken() nahm das erste Label des aktuellen Hosts und einen eigenen Kommentar sagte, warum: "so identisch benannte Räume können nicht über Orgs kollidieren...
Lassen Sie die öffentliche Konfiguration von org id angesprochen werden, nicht nur von Host
Der Sidecar sucht eine org's meet Konfiguration, um zu entscheiden, ob ein Gast benötigt ein Kennwort für die Besprechung. Es fragte nach Hostname, die auf dem ...
Scope-Räume zu ihrer Organisation auf dem gemeinsamen Meeting-Host
Die Raumisolierung war das HOST. Ein Mitglied von org B konnte keinen *** Cookie auf meet.org-A-domain", so wissen org A's Zimmername hat sie nirgends. Diensten...
Cascade-Funktion aktivieren/deaktiv über den App-Baum
Die Ermöglichung eines Kindes ermöglicht es seinem Elternteil; die Behinderung eines Elternteils verhindert jeden Kind; das letzte Kind zu deaktivieren, schalte...
PhiCapabilityGuard für Call-Time-Fähigkeitsprüfungen hinzufügen
PhiTenantGuard läuft zur funktionsfähigen Zeit und nirgendwo sonst. Websites, alle in FeatureService. Jetzt, da PhiModule fähigkeitskönnte ist, App, deren Kern ...
Split PhiModul von app-grained zu fähigkeitskönnten
POS-Maskottierung auf ECOMMERCE_SYNC (BLOCKED_NO_BAA) und den gesamten Handel Oberfläche hängt am POS, so dass ein Org mit GriffenPhi=true nicht wechseln konnte...
Landen Sie in einem neu erstellten org statt bei DNS Setup
Erstellen einer Org routed der Schöpfer zu /setup/dns, und der Grund war real: Eingabe bedeutete eine OTK-Umleitung auf interne.<new-domain" und eine brandneue ...
Geben Sie ServiceType einen zweistufigen Eltern-/Kindbaum
Sechs Commerce-Kinder in neuen IDs 26-31, verdrahtet mit POS in einem statischen Block auf das RoleRightType-Muster (eine Enum-Konstante kann keine andere von s...
Umsetzungsplan für SP1, den App-Katalog Eltern/Kinderbaum
12 Aufgaben in der Kabo-Shared-Bibliothek, KamoInitializerService, SecurityService, MediaService, VOIPService, kamo-intern und das Übersetzungslexikon. Die Bes...
Machen Sie die Auto-Login-Cross-Verhaltenswache tatsächlich laufen
Der Wächter liest die ID des Hosts org mit /"id"\s*:\s*(\d+)/ -- einer nackten Ziffer Direkt nach dem Doppelpunkt. SecurityService JsSafeLongSerializer schreibt...
Hören Sie auf, einen Alias-Streit als Domain der Org-Domain zu übergeben
************ walked org.getDomains() Filterung nur auf ist aktiv. Diese Sammlung enthält die Wurzeldomäne der Org UND ihre Alias-Zersätze -- api, Login, Thema u...
Korrigieren Sie den sign.pink Befund
Das Inventar namens SignLinkBuilder sign.sign.pink Fallback ein "Feign apex" und ich nahm es als eins. Es ist nicht: sign.pink ist ein Kamo-Besessen Organisatio...
Gestaltung des EHR/EMR Vertikal- und des Eltern-/Kinder-App-Katalogs
Zwei Spezifikationen aus der Vorbau-Analyse von 30 Repos und der 2026 ambulant EHR-Markt. Das Programmdesign zeichnet die sechs Entscheidungen auf, die jedes T...
Machen Sie ein Org ohne Domain be- enterable
Eingabe eines Orgs bedeutete navigieren zu **************** Ohne Domain, die URL als wörtlich gemacht ************ so Enter war behindert und Besitzer wurden st...
Lassen Sie die Schale ihre Org von der Sitzung holen, nicht der Host
kamo-internals Wurzellayout lautet der Host-Header, Streifen "internal". und fetches /org/domain/<that? Auf einen Host, der einen Mieter bedient, der derselbe i...
Schreiben Sie eine geplante Support-Beschreibung als reichhaltiger Text
Die Beschreibung auf ************ war ein Drei-reihige Textfläche. Es ist jetzt die /kb/neue Schreibfläche, minus Bilder und die Medienbibliothek - jene, die in...
Fügen Sie den Workspace Picker hinzu
Ein Anmelden, das keine Organisation benennt, kommt jetzt mit einer Liste zurück, anstatt eine Sitzung. Dies ist die Client-Hälfte: /api/Logo geht diese Nutzlas...
Tragen Sie die Typbeschreibung in beiden Formen
Die Beschreibung ist jetzt ein sächliches Dokument, so dass der Service den Klartext speichert Spiegel der Client sendet neben ihm und reicht Lesern, welche For...
Rich-Text Beschreibung Spalten auf webinar_type
Spiegelt die Shared-lib Entität Änderung. Zwei Dinge, die der Tisch vorher braucht MediaService bildet sie ab. Die Beschreibungsspalte muss grenzenlos sein: Si...
Speichern Sie die Typbeschreibung als reichhaltigen Text
Die Beschreibung auf ************ ist ein Lexical Editor Zustand jetzt anstatt eine Linie der Prosa, so dass die Spalte sein muss ein ungebundener TEXT gebunden...
Lassen Sie sich ein Mitglied anmelden, ohne dass ein Host seine org benennt
Fügt die zweite Hälfte der Spaltung hinzu: ein Anmelde-in, das keine Organisation benennt authentifiziert den Benutzer, fragt dann, welcher Arbeitsbereich. POST...
Nehmen Sie den Chat-Cor, der eine gesendete Nachricht mit zweimal zeigt stoppt
@kamo/chat-core 0.1.6. Der Gesprächsreduzer übernimmt nun den anstehenden optimistischen Streit, wenn die eigene Nachricht des Mitglieds kommt über STOMP zurück...
Erinnern Sie sich an den letzten Arbeitsplatz, in den sich ein Mitglied angemeldet hat
users.last_org_id unterstützt den Workspace Picker. Eine Organisation ist nein länger nach dem Hostnamen benannt, so dass ein Mitglied, das zu mehreren gehört, ...
Trennen Sie die Anmeldeprüfung von Org Autorisierung
Die Anmeldung war zwei Fragen in einer Anfrage verschmolzen. "Sind diese Referenzen gut" wird von der Benutzerreihe beantwortet -- das Passwort lebt dort, also ...
Stoppen Sie die DNS-Verifikation, um sich anzumelden
OrgHostResolver.resolveByDomain gefiltert auf od.is_dns_verified = TRUE, also eine Domain-Reihe, die existierte, aber noch nicht fertig war Überprüfung gelöst, ...
Eine Datei kann überall auf einem Chat-Fenster abgesetzt werden, nicht nur auf dem Eingabestreifen
Das Drop-Ziel war die Komponist-Oberfläche allein - ein paar Dutzend Pixel am unteren Rand eines Fensters das ist sonst alle Nachrichten. Ein Screenshot, der üb...
Planen Sie den gastunabhängigen Miet-Rollout
Sechs Phasen, jede unabhängig schiffbar, weil Pushing-Einsätze: die Host-Pfas arbeitet weiter, bis Phase 6 ihn entfernt. Phase 1 ist die Crux und additiv -- Or...
Entwerfen Sie host-unabhängige Mietverhältnisse
Org Identität kommt heute vom Hostnamen: OrgHostResolver.resolveByFqdn verwandelt <alias> in (orgId, providerId), und sein SQL erfordert od.is_dns_verified =...
Stop RingCentral OAuth Unterzeichnung White-Label-Mieter aus
Zwei Fehler, beide auf dem gleichen Hop, und jeder versteckt den anderen. RingCentral lehnt jeden Umfangswert ab, den diese App verlangen kann "invalid_request...
Zeige Cents auf eine Add-on-Rate, die sie hat
Zusätzliche Speicher ist $2.50 pro 10 GB-Block, und der Katalog speichert, dass als ein Nummer - also 2.50 kommt als 2.5 an und wird direkt in die Karte eingege...
Settle Zusätzlicher Speicher bei $2.50 pro 10 GB Block
Bestätigt die Blockgröße und -rate als $2.50 pro 10 GB statt der $4 pro 25 GB Der Produktionsstreit war ins Truhnen gedriftet. Der Sicker, die Katalogreihe, der...
Preis Zusätzlicher Speicher als $4 pro 25 GB-Einheit, FLAT nicht dotiert
Zusätzliche Lagerung wird von der Einheit gekauft, gehört zu keinem Plan auf jeder Ebene, und ist nicht sitzbezogen. Der Sicker beschrieb es immer noch als $2.5...
Stack-Traspuren an ihre Log-Line, und beheben Ebenen habe ich falsch
printStackTrace() schreibt direkt an stderr, so dass 186 von ihnen überlebten println fegen unberührt - noch bedingungslos, noch nicht zugeordnet, und jetzt los...
Wie, was Sie sehen Versand?
Jedes dieser Updates landet automatisch in Ihrem Arbeitsbereich. Starten Sie frei und beobachten Sie es Woche für Woche wachsen.