Direkt zum Inhalt
KAMOUniverse

Changelog

Was ist neu?

Jede Verbesserung an der Plattform, wie sie geliefert wird.

  1. · AIService

    Punkt bei YugabyteDB und verwenden Sie PostgreSQLDialect

    CockroachDB wurde durch YugabyteDB ersetzt. Verbindungsstränge bewegen sich von Kakerlakedb-öffentliche:26257 zu yb-tserver-service:5433, und der Hibernate Dialekt von ************ bis PostgreSQLDialect.

  2. · KlusterServices

    Unique_rowid() Shim und nicht-öffentliche Schemas in YugabyteDB

    Der Shim ist eine Sequenz, die am Produktionsmaximum plus einer Marge ausgesät ist. Die Samen trägt zwei Anforderungen, nicht eine: es muss jede bestehende ID oder der erste Einsatz nach Cutover-Kosätzungen, und es muss überschreiten 2x53, weil ids oben serialize als Strings und die API-Verträge gehen bereits davon aus. Geprüft: Rücksendungen 2,53 und -Produktion max, 1000 Anrufe alle unterschiedlich, und "INT8 DEFAULT unique_rowid()" arbeitet wörtlich als Spalteneinstellung -- was ist der Punkt, da er alle 520 SpalteDefinition Strings in der donotmodify lässt Die gemeinsame Bibliothek bleibt Byte fürbyte unverändert. Auch erstellt die fünf nicht-öffentlichen Schemas vor. Hibernate schafft nicht sofern nicht hbm2ddl.create_namespaces=true, welche KamoInitializerService wird nicht eingestellt, so dass ohne diese die gleichen 34 Tabellen würden wieder verloren gehen.

  3. · KlusterServices

    Unique_rowid() Shim und nicht-öffentliche Schemas in YugabyteDB

    Der Shim ist eine Sequenz, die am Produktionsmaximum plus einer Marge ausgesät ist. Die Samen trägt zwei Anforderungen, nicht eine: es muss jede bestehende ID oder der erste Einsatz nach Cutover-Kosätzungen, und es muss überschreiten 2x53, weil ids oben serialize als Strings und die API-Verträge gehen bereits davon aus. Geprüft: Rücksendungen 2,53 und -Produktion max, 1000 Anrufe alle unterschiedlich, und "INT8 DEFAULT unique_rowid()" arbeitet wörtlich als Spalteneinstellung -- was ist der Punkt, da er alle 520 SpalteDefinition Strings in der donotmodify lässt Die gemeinsame Bibliothek bleibt Byte fürbyte unverändert. Auch erstellt die fünf nicht-öffentlichen Schemas vor. Hibernate schafft nicht sofern nicht hbm2ddl.create_namespaces=true, welche KamoInitializerService wird nicht eingestellt, so dass ohne diese die gleichen 34 Tabellen würden wieder verloren gehen.

  4. · KlusterServices

    Einsatz von Single-Node YugabyteDB 2026.1.0.1 neben CockroachDB

    Beide Motoren laufen jetzt nebeneinander auf k1m1; CockroachDB ist unberührt und bleibt der Rollback-Pfad. Drei Dinge, die nicht offensichtlich waren: - Die Helm-Chart-Version ist nicht das Docker-Tag. Chart 2026.1.0 Karten zu App Version 2026.1.0.0-b118, so Bild: yugabytedb/yugabyte:2026.1.0 ist ImagePullBackOff. Pinned to 2026.1.0.1-b1, neueste Patch von stabilen 2026.1. - hostNetwork stellt die Hülsen auf k1m1 die realen Schnittstellen, wo zwei Yugabyte Die Voreinstellung wird bereits getroffen: 9000 von MinIO und 9100 von node_exporter. Die tserver webserver wird auf 9010 und sein RPC auf 9110. Beide Host-Dienste nachhin unbeeinflusst verifiziert. - TLS ist nicht optional. Alle 31 Consumer-Verbindungsstrings tragen sslmode=ernötig, so dass YSQL ohne Verschlüsselung würde jeden Client bei cutover. Certs sind aus Band erstellt, mit dem Kakerroachdb-öffentlichen Alias Name in der SAN-Liste, weil die Verbraucher halten mit ihm durch Cutover. Bewusst nicht in CI verdrahtet: Hinzufügen eines Einsatzschrittes bearbeitet .forgejo/, das löst eine volle Versöhnung aus, die Live-Drift umkehrt.

  5. · KlusterServices

    Einsatz von Single-Node YugabyteDB 2026.1.0.1 neben CockroachDB

    Beide Motoren laufen jetzt nebeneinander auf k1m1; CockroachDB ist unberührt und bleibt der Rollback-Pfad. Drei Dinge, die nicht offensichtlich waren: - Die Helm-Chart-Version ist nicht das Docker-Tag. Chart 2026.1.0 Karten zu App Version 2026.1.0.0-b118, so Bild: yugabytedb/yugabyte:2026.1.0 ist ImagePullBackOff. Pinned to 2026.1.0.1-b1, neueste Patch von stabilen 2026.1. - hostNetwork stellt die Hülsen auf k1m1 die realen Schnittstellen, wo zwei Yugabyte Die Voreinstellung wird bereits getroffen: 9000 von MinIO und 9100 von node_exporter. Die tserver webserver wird auf 9010 und sein RPC auf 9110. Beide Host-Dienste nachhin unbeeinflusst verifiziert. - TLS ist nicht optional. Alle 31 Consumer-Verbindungsstrings tragen sslmode=ernötig, so dass YSQL ohne Verschlüsselung würde jeden Client bei cutover. Certs sind aus Band erstellt, mit dem Kakerroachdb-öffentlichen Alias Name in der SAN-Liste, weil die Verbraucher halten mit ihm durch Cutover. Bewusst nicht in CI verdrahtet: Hinzufügen eines Einsatzschrittes bearbeitet .forgejo/, das löst eine volle Versöhnung aus, die Live-Drift umkehrt.

  6. · kamo-internal

    Teilen Sie das Zugangsprotokoll und seine Erkennungsregeln in Sub-Tabs

    Die Regeln, die entscheiden, was markiert wird, waren ein Akkordeon unter dem Gitter brach standardmäßig zusammen, so dass die Konfiguration war etwas, das Sie wissen mussten, war gibt, und erweitern sie kämpfte das Netz für die gleiche Scheite. Es sind zwei Ansichten von einem Thema, und jeder will die ganze Höhe. Sub-Tabs wechseln jetzt zwischen ihnen, passend zum Tab-Muster der OAuth2-Tab nächstes Tür bereits verwendet. Die Registerkarte Regeln existiert nur für ein Mitglied MANAGE_DETECTION_RULES, und die aktive Ansicht wird abgeleitet, anstatt korrigiert durch ein Effekt: checkRight antwortet falsch, bis useUserInfo abrechnet, was würde sonst lassen Sie ein Mitglied auf einem Tab stehen, der dann verschwindet. Regeln sind geholt beim Betreten der Registerkarte, wie sie auf die Erweiterung des Akkordeons waren, und die Panel trägt keine Überschrift der eigenen jetzt, dass die Registerkarte benennt es. tauscht auch das Symbol des Bearbeitens Buttons aus: Es war ein Plus, unter einem "Bearbeiten"-Tooltip.

  7. · kamo-internal

    Back-to-home Pfeil auf den Hauptarbeitsplatz-Headern

    Tragt die Einstellungs-Seite Pfeil über den Rest der App: Konten, Leads, Handel, Marketing (alle vier Registerkarten, über das gemeinsame Layout), Knowledge Base, HR, Netzwerk, Dokumentenmanager, Kalender, Kontakte und Hinweise. Die Taste bewegt sich aus Komponenten/Einstellungen zu Komponenten/BackToHomeButton jetzt, dass es App-weite Chrom statt Einstellungen Chrom ist . Marketing und HR besitzen einen Gradienten Held für jeden Tab unter ihnen, so dass der Pfeil landet in ihrem Layout und jeder Tab erbt es. Commerce und Notizen machen ihre Header aus einer Ein-Use Komponente (PipelineView, NotesHeader), das ist, wo der Pfeil geht für diese beiden.

  8. · kamo-internal

    Erläuterungen zu jedem Administrator-Bar-Link

    Jemand, der ihre Organisation vor zehn Minuten erstellt trifft neun Links sie haben keine Möglichkeit zu lesen. Schweben oder fokussieren ein jetzt entfaltet ein Panel, das antwortet, in Ordnung: was dieser Bildschirm ist, drei Dinge, die Sie dort tun können, und wo zu finden es wieder durch Einstellungen, sobald die Bar nicht mehr neu ist. Das Panel erstreckt sich aus dem Band, anstatt in der Nähe zu schwimmen - es wächst abwärts von der Kante des Bandes mit einem Caret, der an seinen Eingang geschweißt ist, und der Eingang bleibt beleuchtet, während es draußen ist, so dass die beiden als ein Objekt lesen. Inhalt beruhigt sich in einem kurzes Taumel dahinter. Reduzierte Bewegung hält die Überfade und lässt die Reisen; reduzierte Transparenz lässt die Unschärfe fallen. Zwei Details verdienen ihren Platz. Blöcke und Logs laufen kurz auf der Bar, aber die Platte leitet sie mit ihren echten Namen, Access-Blöden und System-Access-Logs, weil das ist es, was jemand später in den Einstellungen suchen wird. Und jede Tafel schließt mit dem Weg zurück zum Bildschirm, so lernen es einmal macht die Abkürzung optional statt tragender. Öffnet auf Schwebe nach einem Beat, sofort, sobald eine Platte bereits aus ist, und sofort auf Tastatur-Fokus; Escape schließt es. Ein Touch-Zeiger öffnet nie einen ein Tipp ist nur der Link, ohne dass ein Panel hinter ihm gestrandet ist.

  9. · kamo-internal

    Die Administratorleiste an- oder org-Etikett, kurze Audit-Namen, keine Lücke

    Drei Änderungen, wie die Bar liest sich auf neun Links: Der Team-Mitglieder-Eintrag trägt nun das eigene Plural-Label von Behavior & Kennzeichnung, so eine Org, die sie nennt Loan Officers bekommt Loan Officers hier. Es ist der eine Eintrag ohne Label-Schlüssel - der Name ist der org, nicht eine Übersetzung. Access Blocks und System Access Logs kürzen auf Blocks und Logs Schlüsseln und nicht die Einstellungen Menüs. Die Umbenennung der gemeinsamen Schlüssel hätte umbenannt diese Tabs überall erscheinen; in dieser Gruppe, neben diesen Symbolen, die Hälfte jedes einzelnen Namens "zugriffs", was nicht funktionierte. Die Lücke zwischen den Einträgen verschwindet, so dass jede Verbindung die eigene Polsterung ist die Trennung und die Hover-Felder treffen Kante zu Rand - ein Streifen statt einer Reihe von Chips.

  10. · kamo-internal

    Back-to-home Pfeil links von jeder Einstellung Seite Titel

    Die Einstellungen Seiten hatten keinen Weg zurück zur Startrampe kurz vor der Navigung. EinstellungenView ist optional backHref ist nun standardmäßig nach Hause und macht bedingungslos, so dass die 20 Seiten auf sie gebaut wählen Pfeil nach oben kostenlos; die sechs Seiten, die ihre eigenen Header zeichnen erhalten die gleiche Kontrolle inline. Verschachtelte Redakteure (Märkte, Produkte, Pläne, E-Mail-Anbieter, Webhooks, Condition-Vorlagen, der Agent Studio) tragen bereits eine Semmelbrösel zurück zu ihren Eltern und werden allein gelassen, ebenso wie Leads Einstellungen, wessen Pfeil absichtlich zu /leads zurückkehrt.

  11. · kamo-internal

    Der Rest der wesentlichen Einrichtung in der Administratorleiste

    Sicherheitsrollen, Abteilungen und Job-Titel treten in die Konfigurationsgruppe ein, links von das Audit-Paar. Sie sind die drei Essential Setup-Tabs der Leiste fehlte Behavior & Labeling trug dieses Thema allein, so dass der eine Bildschirm ein Administrator erreicht von hier war derjenige, der zufällig seine erste Registerkarte sein. Jeder wiederverwendet das Symbol und die Beschriftungstaste die Einstellungen Landung bereits gibt es, und Alle drei sind durch das bestehende CONFIGURE_SYSTEM Gate der Bar abgedeckt.

  12. · kamo-internal

    Zugangssperren in der Administratorleiste, Audit-Links zur Hinterkante

    Access Blocks und System Access Logs sind die beiden Bildschirme auf der Bar, die antworten 'Wer reinkam und wer nicht' anstatt irgendetwas zu konfigurieren, also gruppieren sie sich zusammen und fahren Sie die Hinterkante der Band, weg von der Konfiguration Links. Eine Auto-inline-Start-Marge tut es - kein Abstandselement, und das Paar folgt einfach dem Rest, sobald die Zeile auf einem schmalen Aussichtsplatz eingewickelt wird. Beide sind bereits durch das MANAGE_ACCESS_RULES Gate der Bar und Access abgedeckt. Blocks verwende die Icon- und Label-Taste, die die Einstellung der Einstellungen bereits angibt.

  13. · kamo-internal

    Benennen und bearbeiten Sie Adressbücher und bauen Sie die Seite um sie herum um

    Hinzufügen eines Buches POSTed ein fest codierte Platzhalter-Namen ohne Aufforderung, und nichts überall könnte man umbenennen - so dass jedes Buch, das ein Org hatte, dasselbe hieß, dauerhaft. Bücher und Gruppen werden nun erstellt und durch einen Dialog mit einem Name, Beschreibung und Akzent, umbenenbar und abnehmbar von einem Zeilenmenü. Gruppen wurden nie geholt: die Sidebar aus einer Liste, die nur wuchs gemacht wenn Sie eine erstellt haben, so dass eine Gruppe auf Nachladen verschwunden ist. Kontakte wurden pro zwischengespeichert Buch und im Browser zusammengeführt, so "Alle Kontakte" zeigte nur die Bücher, die Sie hatten besucht und Sortieren kämpfte den Cache. Beide kommen nun aus dem Dienst, mit der Umfang (Buch, Gruppe, Abfrage, Bestellung) fahren ein bestellt, gezählte Anfrage. Der Rest der Seite folgt dem Konsolen-Idiom, den der Rest der App verwendet: - Sidebar: Bücher mit ihren Kontakt zählt, Gruppen mit Mitgliedszählungen verschachtelt, row actions for rename / add group / export / löschen - Liste: serverseitige Suche und Bestellung, Auswahl-all- und Shift-Bereichsauswahl, unendliche Schriftrolle, Skelette, eine A-Z-Schiene und leere Zustände, die sich für "keine Kontakte" und "Nichts passt" - Auswahlleiste: verschieben, zur Gruppe hinzufügen, exportieren, löschen. Die pro-Reihe Checkboxen haben die ganze Zeit da gewesen mit nichts zu rufen - Detail-Panel: alles auf Datei, jede Tatsache abschreibbar und umsetzbar, und eine geteilter Editor mit dem Erstellen Dialog, so dass die beiden nicht driften können - Import berichtet, was es übersprungen, so dass ein Teilimport sieht nicht wie Verlust Der Kontakt-Proxy verwandelte alle 204 in einen 500 - ein erfolgreich ausgelöscht Ausfall - weil es einen leeren Körper als JSON parsiert. Keine Org-Level-Option auf ein neues Buch: listBooks gibt jedes Buch in der Org unabhängig von Eigentümer, so bietet die Wahl würde Privatsphäre versprechen, die Lese-Pfad nicht umgesetzt.

  14. · EmailService

    Beharr und dienen dem ganzen Kontakt, nicht nur seinen Namen

    Die REST-Schicht seriell seriell seriell reihenweise die JPA-Einheiten direkt auf. Ein Kontakt hat keine Mapping zu seine E-Mails, Telefone, Adressen, Organisationen, URLs, IMs oder Beziehungen sind separate Tabellen - so war nichts davon jemals in einer Antwort, und Jackson leise ließ alles auf dem Weg in. Der erstellen Dialog sammelte sieben Abschnitte und beharrte keine. Bücher und Gruppen kamen mit ihren faulen Assoziationen zurück als Null, weshalb die Sidebar einer Gruppe nicht zuschreiben konnte. Darunter konnte die Schaffung eines Kontakts überhaupt nicht gelingen: CONTACT.OWNER_ID ist NOT NULL und nichts setzen es, von der Benutzeroberfläche, von einem vCard-Import, oder von einem CardDAV PUT. Import gespeichert nur die Rohkarte und links FORMATTED_NAME null, die die Spalte lehnt ab; Export lesen Sie die gleiche Rohkarte zurück, so dass alles in der UI exportiert leer. - ************ die Drahtformen, mit der zählt die Sidebar-Bedürfnisse und die Summen, die ein Pager braucht - ContactDetailStore: Batch-Ladungen und ersetzt die sieben Satelliten-Tische und Gruppenmitgliedschaft; Streichen eines Kontakts nicht mehr verwaist sie - ContactQueryStore: zählt, eine bestellte/gefilterte/seitige org-weite Liste, und ein Suche, die auch Namensteile, Telefonnummern und Organisationen zusammenpasst - ContactVCardMapper: Import und Export gehen durch ein Feld Mapping, so ein Kontakt überlebt eine Rundreise. BDAY wird als PartialDate geschrieben - Lösung zu einem Moment verschoben den Tag für die Leser in einer anderen Zeitzone - updateBook gilt nur für die gesendeten Felder: Umbenennung eines Buches, mit dem es wischen kann Beschreibung und Farbe, und werfen auf die NOT NULL isVisible - Löschen Buchkaskaden; die org-Standard wird abgelehnt, anstatt die Check Einschränkung jedes Org-Level-Buch hängt von - massenhaft löschen/bewegt/gruppen-Endpunkte - die Checkboxen der Liste hatten nichts zu aufrufen Bucherstellung setzt immer einen Besitzer und ignoriert einen vom Kunden bereitgestellten isOrgDefault: ein inhaberloses Buch ist nur legal wie die Org-Verzug, und ein zweiter Verzug wäre lassen Sie finden OrgDefault willkürlich wählen.

  15. · kamo-internal

    Administrator-Bar über den Launchpad-Karten

    Fünf Bildschirme öffnet ein Org-Administrator ständig - Teammitglieder, Verhalten & Labeling, Statistiken & Kosten, Apps & Features, Systemzugriffsprotokolle - jeweils zwei oder drei Klickt heute tief durch das Einstellungsmenü. Sie bekommen eine Reihe über die Spitze die Startrampe, unter dem Mastkopf und über den Karten. Jeder Eintrag nutzt das Symbol und den Label-Schlüssel, den sein Ziel bereits mit sich führt die Einstellungen Landung, so dass der gleiche Bildschirm liest das gleiche, wo immer es angeboten wird. Die Band ist der NavTop/NavPri org Gradient mit weißen Links, was macht es las als Chrom statt einer sechsten Karte. Sichtbarkeit ist die Rolle des Administrators (Full Access), ausgedrückt die einzige Möglichkeit, die Sitzung entlarvt es: die drei Rechte, die Rolle hält und keine Lagerrolle darunter tut. Alle drei sind erforderlich, und sie sind genau das, was die fünf Destinationen Gate auf, so dass die Bar bietet nie eine Verbindung, die das Mitglied ablehnen würde.

  16. · BillingService

    Lesen Sie bildgebende Verwendung von einem deduplicated Pass

    Folgt der Änderung der Shared-Bibliothek zu einer Gebühr pro gesonderte Datei pro Datei Organisation. Sowohl die Zusammenfassung und die tägliche Schnappschuss-Autor nehmen eine einzige Bildgebung passieren und lesen Sie jede Domain von ihm, anstatt die gleiche Wiederauflage Gruppierung einmal pro Domain - achtzehn Domains bedeutete die gleiche Abfrage 18-mal für eine Seite laden.

  17. · kamo-shared-library

    Zählen Sie jede Datei einmal pro Organisation, nicht einmal pro Upload

    Billing war pro imgs Aufzeichnung, so eine Organisation, die die gleiche Datei hochgeladen fünf Die Zeiten wurden fünfmal berechnet. Die Regel des Besitzers ist eine Gebühr pro gesonderte Datei pro Organisation: Kamo speichert die Datei immer noch einmal systemweit, jede Organisation Halten es ist immer noch gezählt, und Re-Uploading etwas, das Sie bereits haben, ist nicht eine neue Gebühr. Bildgebende Zahlen kommen jetzt von einem Pass pro Organisation, die Daten bricht Rekorde zu einzelnen Dateien. Maß an der Produktion für KamoCRM: Aus 52 Live-Platten werden 28 Gebührenpflichtige Dateien, 6.886.309.250 Bytes werden zu 5.441.174,177. Eine Datei, die unter zwei Verbänden gehalten wird, wird in genau einem gezählt - dem niedrigsten - dem niedrigsten Assoziation scheint es unter - weil es in beiden zählen würde es zweimal in Rechnung stellen. Zwei Produktionsdateien sind in dieser Position, und mit dieser Regel die Kategorien Partitionieren Sie die Dateien der Organisation und summieren sich genau auf ihre Gesamtsumme. Periode Zahlen Schlüssel auf, wenn die Organisation FIRST hielt eine Datei, so Re-Uploading etwas, das es bereits hatte, ist nicht eine neue Ladung in einer späteren Periode. Erzeugt Vorschauen werden aus dem gleichen Grund durch Datei eingegeben und eine Kopie einer Datei abgebrochen Fünfmal gehalten befreit nichts. ImagingUsage() dient Strom, Lebensdauer und von einem einzigen Durchgang hinzugefügt, weil jede Imaging-Domain braucht die gleiche Gruppierung und Berechnung es pro Domain lief die Abfrage ein Dutzend Mal für eine Zusammenfassung.

  18. · kamo-internal

    Überspringen Sie den Upload, wenn die Plattform bereits die Datei hat

    Das gleiche Video an drei Personen zu senden, bedeutete drei volle Uploads. Dedup stürzte sie in ein gespeichertes Objekt, aber nur, wenn jede Übertragung beendet war - so war die Ersparnis Speicher, nie die Zeit oder Bandbreite des Mitglieds. Der Komponist fragt nun, bevor er sendet. Eine Größe Sonde zuerst, weil identischer Inhalt muss eine identische edige Anzahl haben: Es schließt ein Spiel für fast jeden wirklich neuen Datei auf Kosten eines kleinen Antrags, so Hash wird nur bezahlt, wenn es zahlen kann Aus. Nur dann werden BLAKE3 und SHA3-256 berechnet und dem Server angeboten, der heftet die gespeicherten Inhalte direkt an. Ein Fehlschuss fällt auf einen normalen Upload durch. Hashing Ströme. Die vorhandenen Helfer rufen file.arrayBuffer() einmal pro Hash, also eine Datei ist in Erinnerung zweimal über . Geldstrafe für ein Dokument, tödlich für ein 3 GiB Video. Die neu man geht die Datei in 4 MiB Scheiben Fütterung beide Hasher, so Peak Memory ist eine Stück in jeder Größe, und Renditen zwischen Stücken, weil SHA3-256 ist reine JavaScript und sonst würde der Komponist für Minuten einfrieren. Dedup ist eine Optimierung und nie ein Tor: ein Ausfall in der Sonde, das Hashing oder der Link fällt zurück zum Hochladen, was immer korrekt ist. Das Panel benennt die Pause so liest es sich nicht als Stand.

  19. · MediaService

    Ein bereits gespeichertes Datei anbringen, ohne sie wieder hochzuladen

    Die Weitergabe eines 2 GB Videos an drei Kollegen kostete drei volle Uploads. Lagerung dedupliziert sie in ein Objekt, aber erst nachdem jede Übertragung abgeschlossen war und weggeworfen - das Mitglied bezahlte für jedes haus, dreimal, um eine Kopie zu produzieren Plattform hatte bereits. Zwei Endpunkte begleichen es vor jedem Bytes bewegen. /attachments/probe antwortet, ob ein Datei dieser Größe könnte überhaupt existieren, was billig ist und lässt einen Client hashing überspringen für fast jede wirklich neue Datei. /attachments/link takeshes der Client berechnet sich selbst und, wenn sie zu gespeicherten Inhalten zu lösen, schafft die Anlage ein 404 bedeutet 'nie gesehen, hochladen' und ist eine gewöhnliche Antwort und nicht Versagen. Die Überhessen sind ein Anspruch, keine Genehmigung: Sie lösen sich immer nur gegen Inhalte bereits im eigenen Dedup-Anwendungsbereich des Anrufers gespeichert, und beide Endpunkte erfordern Sitzung Mitgliedschaft wie jede andere Anlageroute. Upload und Link teilen Sie eine Reihe-Gebäude Weg mit Absicht - ob die Bytes reisten oder erkannt wurden, die Anlage, Länder im Gespräch müssen ununterscheidbar sein.

  20. · kamo-internal

    Seriengenerierte Vorschau-Speicher als eigene Linie anzeigen

    Thumbnails und Vorschaubilder zählen jetzt zur Gesamtzahl der Organisation, also Client sollte in der Lage sein zu sehen, was sie kosten, anstatt sie in gefaltet finden eine weitere Zahl. Ein Tooltip sagt, was sie sind und dass ein mehrseitiges Dokument erzeugt eine Vorschau pro Seite, so dass die Zahl eher erklärbar ist als geheimnisvoll.

  21. · SecurityService

    Messen Sie die Miniaturansichten und Spuren, die von jeder Datei generiert werden

    Objekttasten sind inhaltsbeantwortet als ************ das Segment vor dem ersten Unterstrich identifiziert die Datei ein Derivat kam von. Die Größen werden per ImgDat - ein physischer Satz pro deduplicated file - zusammengefasst und Billing Attribute sie durch jede imgs Aufzeichnung zeigt auf sie. Dies ist der einzige Weg, um die Frage zu beantworten. img_dats.THUMB_FILE_SIZE hält eine Einzelwert für das, was Dutzende von Seitenbumnchen sein kann, wurde für 5 von bevölkert 84 Reihen in der Produktion, und nie abgedeckt Track-Objekte überhaupt - zusammen Untertriebene reale Derivatelagerungen um etwa 37%. Legacy-Objekte, die durch eine numerische ID vor dem datierten Inhalt adressiert, passen Sie keine Datei, und werden für niemanden gezählt; der Graf wird protokolliert, anstatt übergangen in Stille.

  22. · InitializerService

    Schema für gemessene Miniaturansicht und Spurspeicher

    img_dat_derivatives Datensätze, pro gespeicherter Datei, die reale ättige Größe von allem Kamo erzeugte daraus. Es ersetzt img_dats.THUMB_FILE_SIZE als Quelle für diese Abbildung: diese Spalte enthält einen Wert für das, was Dutzende von Seiten sein kann Thumbnails und wurde für 5 von 84 Zeilen in Produktion besiedelt. Führen Sie gegen Produktion 2026-08-09; Tabelle und Index überprüft.

  23. · kamo-shared-library

    Bill generiert Miniaturansichten für die Organisation

    Thumbnails und pro-Kanal-Tracks sind Speicherplatz einer Organisation Uploads Ursache, so auf Anweisung des Besitzers zählen sie jetzt zu dieser Organisation insgesamt anstatt von Kamo absorbiert zu werden. GENERATED_PREVIEWS ist eine in Rechnung gestellte Domäne. Gemessen aus dem Objektspeicher, nicht von img_dats.THUMB_FILE_SIZE. Diese Kolumne hält einen einzigen Wert für das, was Dutzende von Seiten-Thumbnails sein kann ({imgDatId-_thumb_p0..pN) und in Produktion war für 5 von 84 Zeilen bestückt Unterschhalt realer Derivettspeicherung um ca. 37% und Track-Objekte auslassen vollständig. img_dat_derivatives zeichnet auf, was ein Sweep tatsächlich zurückliest. Attribution ist pro Holding-Rekord, die gleiche Regel wie die Datei selbst: Abrechnung verbindet imgs zu img_dat_derivatives, so dass zwei Organisationen, die eine Datei halten, jeder für seine Vorschauen und Deduplizierung in Rechnung gestellt bleibt Kamo Einsparungen statt die Kunden. Periode Zahlen Datum Vorschauen durch den Upload, der sie verursacht, so eine Vorschau fällt in den gleichen Zeitraum wie seine Datei und nicht immer, wenn der Sweep lief. Die Derivatebytes des Plattformberichts liest nun die gleiche gemessene Quelle, also ist es stopt unterzubeen, was Bildverarbeitung kostet. Schema in der Produktion verifiziert, bevor diese gelandet: img_dat_derivatives existiert nach einem KI-Lauf.

  24. · kamo-internal

    Lassen Sie ein Mitglied einen Video- oder Audioanhang behalten und nicht nur abspielen

    Der Spieler antwortet auf eine Absicht. Wollen Sie die Datei auf der Festplatte ist eine andere, und Video und Audio waren die beiden Anbauarten ohne Möglichkeit, es zu tun. hatte einen Download-Button die ganze Zeit, und ein Bild hat eine in seiner Leuchtbox. Chrome beerdigt ein Download im Überlauf-Menü des Videoelements; Firefox und Safari bieten keine überhaupt, also muss die Erschwinglichkeit bei uns sein, um zuverlässig zu sein. Beide tragen nun eine Beschriftungszeile, die die Datei mit ihrer Größe und einem Download-Button benennt, mit dem gleichen Ursprung href + download-Attribut, das der Dokumentchip bereits verwendet. Drops auch die immer-KB-Größe auf dem Dokumenten-Chip. Das hörte auf, den Moment zu skalieren Anhänge können Gigabyte sein: eine 2 GB Datei mit der Aufschrift '2130125 KB'. Es verwendet jetzt die gleiche formatBytes, die der Komponist für diese Datei vor dem Versenden zeigt.

  25. · kamo-internal

    Branding und Docstive Dokumentenspeicherung anzeigen

    Beide sind direkt in den Objektspeicher geschrieben, ohne dass eine Größe in der Datenbank, so lesen sie als Null, bis ein Sweep sie misst. Sie haben jetzt ihre eigene Linien.

  26. · SecurityService

    Branding und Docstive Dokumentenspeicherung messen

    Dies sind die einzigen beiden Dinge, die eine Organisation speichert, die keine Größe tragen überall in der Datenbank - Branding Assets gehen direkt in die Öffentlichkeit unter der Domain-Präfix der Organisation, der docs Arbeitsbereich unter seiner ID beide lesen sich als Null, bis etwas den Objektspeicher zurückliest. Attribution läuft rückwärts, Präfix zur Organisation. Ableitung jeder Organisation Präfixe und das Scannen dieser würden lautlos alles verpassen, was unter einem Präfix gespeichert ist Niemand dachte daran, abzuleiten; stattdessen wird jedes Top-Level-Präfix zurückgezeichnet durch Widget, Aktien, Standard, plus alles lose an der Bucket Root) landet in Kundenzahl. Die Mitglieder/Unterbaum wird absichtlich ausgeschlossen. Avatare leben unter einem fixen, Organisation-unabhängige Präfix nach Design, und Zählen des Vermächtnisses pro-Domain Kopien würden eine Organisation für eine Datei des Benutzers einer anderen Organisation belasten besitzt. Der Trigger-Endpunkt folgt LosInternalApplyController: konstanter Vergleich gegen das Cluster-Geheimnis, Versagen geschlossen, wenn es nicht konfiguriert ist.

  27. · InitializerService

    Schema für Objekt-Store-only-Speichermessung

    object_storage_days zeichnet auf, was ein Sweep von MinIO für die beiden zurückliest Dinge, die keine Größe in der Datenbank tragen: Branding Assets und die docs Arbeitsbereich. Bucketed by last-modifizierten Tag, so dass ein Abrechnungsfenster genau sumtiert. Run gegen Produktion 2026-08-08; Tabelle und Indizes überprüft.

  28. · kamo-shared-library

    Count Branding und Docstive Dokumentenspeicherung

    Fast alles, was eine Organisation speichert, zeichnet irgendwo seine eigene Größe auf. imgs row, a kb_media row, a mailbox measurement. Zwei Dinge nicht. Branding Assets (Logos, Favicons, Hintergrundbilder, Thema CSS und Konfiguration) sind geschrieben direkt in den öffentlichen Schauer unter der Domain-Präfix der Organisation, und die docs workspace wird unter seiner ID geschrieben. Keiner hinterlässt etwas in der Datenbank sagen, wie groß es ist, so lesen beide als Null. object_storage_days hält, was ein Sweep aus dem Objektspeicher zurückliest, Bucketed von Last-Moded-Tag, so dass eine beliebige Abrechnung Fenster summiert genau eher als Rundung auf ganze Monate. ************ liefert Größe und last-modifiziert, entduped durch Schlüssel über Knoten. Site Replikation setzt das gleiche Objekt auf mehrere Knoten, und Zählen es einmal pro Knoten würde die Rechnung einer Organisation mit der Größe multiplizieren der Cluster. BRANDING schließt die Mitglieder/Unterbaum absichtlich aus. Mitglieder Avatare leben unter einem fixes, organisationsunabhängiges Präfix nach Design - ein Benutzer kann zu mehreren gehören Organisationen, so dass ein Avatar ist nicht das Eigentum von einem von ihnen - und die pro-Domain-Kopien sind Vermächtnis. Zählen sie würde eine Organisation für eine Datei einer anderen Organisation Benutzer eigenen. Schema in der Produktion verifiziert, bevor diese gelandet: object_storage_days existiert mit seiner Einzigartigkeit Einschränkung nach einem KI-Lauf.

  29. · kamo-internal

    Anzeige von Textnachrichten-Anhängespeicher anzeigen

    MMS-Anhänge live in der Datenbank als Daten: URIs statt als Dateien, so hatten sie keine Größe Rekord und wurden nie gezählt. Sie haben jetzt ihre eigene Linie.

  30. · kamo-shared-library

    Textnachrichten-Anhänge anzählen

    MMS-Anhänge werden gespeichert und nicht gezählt. Sie sind auch nicht das, was sie sehen wie: VoipMessageService kodiert den Anhang als Daten: URI und schreibt es inline in VOIP_MESSAGES.ATTACHMENT_URL, so dass sie nie MinIO Objekte werden und es gibt keine Datei zu stat - die Messung ist die gespeicherte Zeichenlänge, über die Org des Gesprächs. Base64 läuft etwa ein Drittel größer als die Bytes, die es kodiert, und das aufgeblasen form ist wirklich das, was die Datenbank besetzt, so dass das ist, was gezählt wird.

Euer Universum wartet.

Fügen Sie Produkte hinzu, wann immer Sie möchten – keine Migration, keine neuen Anmeldungen.

Für immer kostenlos – keine Kreditkarte erforderlich