Salta al contenuto
KAMOUniverse

Changelog

Cosa c'è di nuovo.

Ogni miglioramento alla piattaforma, come si spedisce.

  1. · AIService

    Punta a YugabyteDB e usa PostgreSQLDialect

    CockroachDB è stato sostituito da YugabyteDB. Le stringhe di connessione si muovono da scarroachdb-public:26257 a yb-tserver-service:5433, e il dialetto Hibernate Per PostgreSQLDialect.

  2. · KlusterServices

    Unique rowid() schemi shim e non pubblici in YugabyteDB

    Lo shim è una sequenza seme al massimo di produzione più un margine. The il seme ha due requisiti, non uno: deve superare ogni id esistente o il primo inserto dopo il taglio collide, e deve superare il 2^53 perché ids sopra che serializzare come stringhe e i contratti API già lo assumono. Verificato: restituisce > 2^53 e > produzione max, 1000 chiamate tutte distinte e `INT8 DEFAULT Unique rowid()` works verbatim as a colonna default -- che è il punto, dal momento che consente a tutte le 520 colonneArgole di finitura nella donotmodifica biblioteca condivisa rimanere byte-for-byte invariato. Inoltre pre-crea i cinque schemi non pubblici. Hibernate non crea schemi a meno che hbm2ddl.create namespaces=true, che KamoInitializerService non imposta, quindi senza questi gli stessi 34 tavoli sarebbero spariti di nuovo.

  3. · KlusterServices

    Unique rowid() schemi shim e non pubblici in YugabyteDB

    Lo shim è una sequenza seme al massimo di produzione più un margine. The il seme ha due requisiti, non uno: deve superare ogni id esistente o il primo inserto dopo il taglio collide, e deve superare il 2^53 perché ids sopra che serializzare come stringhe e i contratti API già lo assumono. Verificato: restituisce > 2^53 e > produzione max, 1000 chiamate tutte distinte e `INT8 DEFAULT Unique rowid()` works verbatim as a colonna default -- che è il punto, dal momento che consente a tutte le 520 colonneArgole di finitura nella donotmodifica biblioteca condivisa rimanere byte-for-byte invariato. Inoltre pre-crea i cinque schemi non pubblici. Hibernate non crea schemi a meno che hbm2ddl.create namespaces=true, che KamoInitializerService non imposta, quindi senza questi gli stessi 34 tavoli sarebbero spariti di nuovo.

  4. · KlusterServices

    Deploy mononodo YugabyteDB 2026.1.0.1 accanto a CockroachDB

    Entrambi i motori ora funzionano fianco a fianco su k1m1; CockroachDB è intoccato e rimane il percorso di rollback. Tre cose che non erano ovvie: - La versione del grafico Helm non è il tag Docker. Grafico 2026.1.0 mappe per app versione 2026.1.0.0-b118, quindi `image: yugabytedb/yugabyte:2026.1.0` is ImagePullBackOff. Pinned a 2026.1.0.1-b1, nuova patch di stabile 2026.1. - hostNetwork mette i baccelli sulle interfacce reali di k1m1, dove due Yugabyte i default sono già presi: 9000 da MinIO e 9100 da node exporter. The tserver webserver si sposta a 9010 e il suo RPC a 9110. Entrambi i servizi host verificato in seguito non colpito. - TLS non e' facoltativo. Tutte le 31 stringhe di connessione al consumatore portano sslmode=require, così YSQL senza crittografia rifiutierebbe ogni client a Tagliare. Certs sono creati fuori dalla band, con l'alias scarafaggio-pubblico nome nella lista SAN perché i consumatori continuano a usarlo attraverso cutover. Deliberatamente non collegato in CI: l'aggiunta di un passo di distribuzione modifiche .forgejo/, che innesca una piena riconciliazione che ritorna alla deriva dal vivo.

  5. · KlusterServices

    Deploy mononodo YugabyteDB 2026.1.0.1 accanto a CockroachDB

    Entrambi i motori ora funzionano fianco a fianco su k1m1; CockroachDB è intoccato e rimane il percorso di rollback. Tre cose che non erano ovvie: - La versione del grafico Helm non è il tag Docker. Grafico 2026.1.0 mappe per app versione 2026.1.0.0-b118, quindi `image: yugabytedb/yugabyte:2026.1.0` is ImagePullBackOff. Pinned a 2026.1.0.1-b1, nuova patch di stabile 2026.1. - hostNetwork mette i baccelli sulle interfacce reali di k1m1, dove due Yugabyte i default sono già presi: 9000 da MinIO e 9100 da node exporter. The tserver webserver si sposta a 9010 e il suo RPC a 9110. Entrambi i servizi host verificato in seguito non colpito. - TLS non e' facoltativo. Tutte le 31 stringhe di connessione al consumatore portano sslmode=require, così YSQL senza crittografia rifiutierebbe ogni client a Tagliare. Certs sono creati fuori dalla band, con l'alias scarafaggio-pubblico nome nella lista SAN perché i consumatori continuano a usarlo attraverso cutover. Deliberatamente non collegato in CI: l'aggiunta di un passo di distribuzione modifiche .forgejo/, che innesca una piena riconciliazione che ritorna alla deriva dal vivo.

  6. · kamo-internal

    Dividere il registro di accesso e le sue regole di rilevamento in sotto-tappe

    Le regole che decidono cosa viene segnalato sono una fisarmonica sotto la griglia — collasso per impostazione predefinita, quindi la configurazione era qualcosa che doveva sapere era là, e l'espansione ha combattuto la griglia per lo stesso pannello. Sono due punti di vista. di un soggetto, e ognuno vuole l'altezza intera. Sub-tabs ora passare tra loro, corrispondente il modello Tabs la scheda OAuth2 successivo porta già usa. La scheda delle regole esiste solo per un membro in possesso MANAGE DETECTION RULES, e la vista attiva è derivata piuttosto che corretta da un effetto: checkRight risponde falso fino a quando l'usoUserInfo si stabilisce, che sarebbe altrimenti lasciare un membro in piedi su una scheda che poi scompare. Le regole sono presero ad entrare nella scheda, mentre stavano espandendo la fisarmonica, e la pannello non porta alcuna voce del proprio ora che la scheda lo nomina. Scambia anche l'icona del pulsante di modifica: era un Plus, sotto un tooltip "Edit rule".

  7. · kamo-internal

    Freccia Back-to-home sulle intestazioni principali dello spazio di lavoro

    Porta la freccia delle impostazioni-pagina sul resto dell'app: Account, Lead, Commercio, Marketing (tutte le quattro schede, tramite il layout condiviso), Knowledge Base, HR, Network, Document Manager, Calendar, Contatti e Note. Il pulsante esce dai componenti/impostazioni ai componenti/BackToHomeButton ora che è l'app-wide cromo piuttosto che le impostazioni cromo. Marketing e HR possiedono un eroe gradiente per ogni scheda sotto di loro, quindi la freccia atterra nella loro layout e ogni scheda lo eredita. Il commercio e le note rendono l'intestazione da un uso unico componente (PipelineView, NotesHeader), che è dove la freccia va per quei due.

  8. · kamo-internal

    Pannelli esplicativi su ogni link della barra di amministratore

    Qualcuno che ha creato la loro organizzazione dieci minuti fa incontra nove link non hanno modo di leggere. Hovering o focus uno ora sforna un pannello che risponde, in ordine: che cosa è questo schermo, tre cose si può fare lì, e dove trovare di nuovo attraverso Impostazioni una volta che la barra non è più nuova. Il pannello si estende dalla band piuttosto che galleggiare vicino a esso — cresce verso il basso dal bordo della band con un accendino saldato al suo ingresso, e l'ingresso rimane acceso mentre è fuori, così i due leggono come un oggetto. I contenuti si stabiliscono in un breve pugnale dietro di esso. Il movimento ridotto mantiene il crossfade e scende il viaggio; ridotta trasparenza cala il blur. Due dettagli guadagnano il loro posto. Blocchi e registri funzionano a breve sulla barra ma il pannello li testa con i loro nomi reali, blocchi di accesso e registri di accesso di sistema, perché questo è ciò che qualcuno cercherà in Impostazioni più tardi. E ogni pannello si chiude con il sentiero che torna allo schermo, quindi impararlo una volta fa la scorciatoia opzionali piuttosto che portanti. Si apre su hover dopo un battito, istantaneamente una volta che qualsiasi pannello è già fuori, e istantaneamente sulla messa a fuoco della tastiera; Escape lo chiude. Un puntatore di contatto non apre mai uno — un rubinetto è solo il collegamento, senza pannello lasciato infilato dietro di esso.

  9. · kamo-internal

    Serrare la barra degli amministratori — etichetta org, nomi di audit brevi, nessun gap

    Tre modifiche a come la barra legge a nove link: La voce dei membri della squadra ora indossa l'etichetta plurale dell'org di Behavior & Etichettatura, quindi un org che li chiama Agenti Prestiti porta qui gli Agenti Prestiti. È l'unica voce senza chiave di etichetta — il nome è l'org, non una traduzione. Blocchi di accesso e Accesso di sistema I registri abbreviano i blocchi e i registri sotto i propri chiavi piuttosto che il menu delle impostazioni. Rinominare le chiavi condivise avrebbe rinominato quelle schede ovunque appaiono; in questo gruppo, accanto a quelle icone, la metà di ogni nome "access" non funzionava. Il divario tra le voci va via in modo che l'imbottitura di ogni link sia la separazione e i campi hover incontrano bordo a bordo — una striscia piuttosto che una fila di chip.

  10. · kamo-internal

    Freccia Back-to-home sinistra di ogni pagina delle impostazioni

    Le pagine delle impostazioni non avevano modo di tornare alla scheda di lancio a corto della rotaia nav. Impostazioni impostazioni Vista opzionale backHref ora predefinito a casa e rende incondizionatamente, in modo che le 20 pagine costruite su di esso scelgano il freccia su per libero; le sei pagine che disegnano la propria intestazione ottenere lo stesso controllo in linea. Editor Nested (mercati, prodotti, piani, e-mail provider, webhooks, modelli di condizioni, l'agente studio) già portare un pangrattato di nuovo al loro genitore e sono lasciati soli, così come sono le impostazioni di piombo, la cui freccia ritorna deliberatamente a /leads.

  11. · kamo-internal

    Il resto della configurazione essenziale nella barra degli amministratori

    Sicurezza ruoli, dipartimenti e titoli di lavoro si uniscono al gruppo di configurazione, a sinistra di la coppia di audit. Sono le tre schede di configurazione essenziale che la barra mancava — Behavior & Labeling portava da solo quell'argomento, così l'unico schermo L'amministratore arriva da qui è quello che sembra essere la sua prima scheda. Ogni riutilizzo dell'icona e chiave dell'etichetta le impostazioni che l'atterraggio già dà, e tutti e tre sono coperti dalla porta CONFIGURE SYSTEM esistente.

  12. · kamo-internal

    Blocchi di accesso nella barra dell'amministratore, link di audit al bordo del percorso

    Blocchi di accesso e Log di accesso di sistema sono i due schermi sulla barra che rispondono Chi è entrato e chi non l'ha fatto piuttosto che configurare nulla, quindi raggruppano insieme e cavalcare il bordo trainante della band, lontano dalla configurazione collegamenti. Un margine auto inline-start lo fa — nessun elemento distanziatore, e la coppia segue semplicemente il resto una volta che la riga si avvolge su una vista stretta. Entrambi sono già coperti dalla porta MANAGE ACCESS RULES del bar e Accesso Blocchi riutilizza l'icona ed etichetta chiave le impostazioni di atterraggio già dà.

  13. · kamo-internal

    Nome e modificare i libri degli indirizzi e ricostruire la pagina intorno a loro

    Aggiungendo un libro POSTed un nome segnaposto hard-coded senza prompt, e niente ovunque potrebbe rinominare uno — così ogni libro un org era chiamato la stessa cosa, permanentemente. Libri e gruppi sono ora creati e modificati attraverso una finestra di dialogo con un nome, descrizione e accento, rinominabile e rimovibile da un menu di fila. I gruppi non sono mai stati catturati: la barra laterale resa da una lista che è cresciuta solo quando ne hai creato uno, quindi un gruppo è scomparso su ricarica. I contatti sono stati memorizzati per libro e fuso nel browser, così "Tutti i contatti" ha mostrato solo i libri che avevi visitato e smistamento ha combattuto la cache. Entrambi vengono ora dal servizio, con il scopo (libro, gruppo, query, ordine) guida uno ordinato, contato richiesta. Il resto della pagina segue la console idioma il resto dell'app utilizza: - Sidebar: libri con i loro contatti, gruppi nidificato con i conti dei membri, azioni di riga per rinominare / aggiungere gruppo / export / eliminare - Elenco: ricerca e ordinazione lato server, selezione e selezione a turni, scorrimento infinito, scheletri, una ferrovia A-Z e stati vuoti che differiscono per "nessun contatto" e "niente partite" - Barra di selezione: spostare, aggiungere al gruppo, esportare, eliminare. Le caselle di controllo per-row hanno c'è stato tutto con niente da chiamare - Pannello dettagli: tutto su file, ogni fatto copiabile e fattibile, e uno editor condiviso con la finestra di dialogo creare in modo che i due non possano derivare - Importa segnala cosa ha saltato, quindi un'importazione parziale non sembra perdita Il proxy contatti ha trasformato ogni 204 in un 500 — una cancellazione di successo segnalato fallimento — perché ha parso un corpo vuoto come JSON. No org-level opzione su un nuovo libro: listBooks restituisce ogni libro nel org indipendentemente dal proprietario, quindi offrire la scelta prometterebbe privacy il percorso di lettura non implementa.

  14. · EmailService

    Persistere e servire l'intero contatto, non solo il suo nome

    Lo strato REST ha serializzato direttamente le entità JPA. Un contatto non ha mappatura a le sue email, telefoni, indirizzi, organizzazioni, URL, IM o relazioni — quelli sono tabelle separate — così nessuno di esso è mai stato in una risposta, e Jackson silenziosamente L'ha buttata via. La finestra di dialogo creare ha raccolto sette sezioni e perseverato nessuno. Libri e gruppi tornarono con le loro pigre associazioni resed come null, motivo per cui la barra laterale non poteva attribuire un gruppo a un libro. Sotto questo, la creazione di un contatto non potrebbe avere successo affatto: CONTACT.OWNER ID è NON NULL e nulla l'ha impostata, dall'UI, da un'importazione di vCard, o da un CardDAV PUT. Importazione memorizzata solo la carta grezza e lasciato FORMATTED NAME null, che la la colonna rifiuta; l'esportazione legga la stessa carta grezza di nuovo, quindi qualsiasi cosa creata nel Ho esportato vuoto. - No, no. le forme di filo, con conta le esigenze della barra laterale e i totali di un pager - ContattoDettagliStore: carichi batch e sostituisce le sette tabelle satellitari e membri del gruppo; la cancellazione di un contatto non più orfani loro - ContattoQueryStore: conteggi, un elenco ordinato / filtrato / paginato org-wide, e un ricerca che abbina anche parti di nome, numeri di telefono e organizzazioni - ContattoVCardMapper: importazione ed esportazione passare attraverso una mappatura del campo, quindi un il contatto sopravvive a un giro. BDAY è scritto come PartialDate - risolvendolo a un istante spostato il giorno per i lettori in un altro fuso orario - updateBook applica solo i campi inviati: rinominare un libro usato per pulirlo descrizione e colore, e gettare sul NON NULL è visibile - deleteBook cascades; il default org viene rifiutato piuttosto che rompere il controllo costrizione ogni libro di livello org dipende da - cancella/move/ endpoint di gruppo - le caselle di controllo dell'elenco non hanno nulla da chiamare La creazione del libro imposta sempre un proprietario e ignora un client fornito èOrgDefault: un libro senza proprietario è solo legale come il default org, e un secondo default sarebbe lasciare trovareOrgDefault scegliendo arbitrariamente.

  15. · kamo-internal

    Barra di amministratore sopra le schede di lancio

    Cinque schermi un amministratore org si apre costantemente — membri del team, comportamento & etichettatura, statistiche e costi, applicazioni e funzionalità, log di accesso di sistema — ciascuno due o tre clicca in profondità attraverso il menu delle impostazioni di oggi. Hanno una fila dall'altra parte della cima il launchpad, sotto la masthead e sopra le carte. Ogni voce riutilizza l'icona e la chiave dell'etichetta la sua destinazione porta già in le impostazioni di atterraggio, così lo stesso schermo legge lo stesso ovunque sia offerto. La band è il gradiente NavTop/NavPri org con collegamenti bianchi, che è ciò che rende legge come cromo piuttosto che una sesta carta. Visibilità è il ruolo Amministratore (Full Access), espresso l'unico modo la sessione lo espone: i tre diritti che ricoprono il ruolo e nessun ruolo azionario qui sotto Si'. Tutti e tre sono necessari, e sono esattamente ciò che le cinque destinazioni gate on, quindi il bar non offre mai un link che rifiuti il membro.

  16. · BillingService

    Leggi l'utilizzo di immagini da un pass deduplicato

    Segue la modifica della biblioteca condivisa a una carica per file distinti per organizzazione. Sia il riassunto che lo scrittore di snapshot giornaliero prendono un singolo passare immagini e leggere ogni dominio da esso, piuttosto che ri-running lo stesso raggruppamento una volta per dominio — diciotto domini significavano la stessa query diciotto volte per un carico di pagina.

  17. · kamo-shared-library

    Contare ogni file una volta per organizzazione, non una volta per carica

    Billing era per record, quindi un'organizzazione che ha caricato lo stesso file cinque i tempi sono stati caricati cinque volte. La regola del proprietario è una carica per file distinti per organizzazione: Kamo memorizza ancora il file una volta sistema-wide, ogni organizzazione tenere è ancora contato, e ricaricare qualcosa che hai già non è una nuova carica. I dati di imaging ora provengono da un passaggio per organizzazione che crolla i record a file distinti. Misurato sulla produzione per KamoCRM: 52 record live diventano 28 file caricabili, 6,886,309,250 byte diventano 5,441,174,177. Un file tenuto sotto due associazioni è contato in esattamente uno — il più basso-ordinale l'associazione appare sotto — perché il conteggio in entrambi lo fattura due volte. Due file di produzione sono in quella posizione, e con questa regola le categorie partizionare i file dell'organizzazione e sommare esattamente al suo totale. Le cifre del periodo chiave su quando l'organizzazione FIRST ha tenuto un file, in modo da ricaricare qualcosa che già aveva non è una nuova carica in un periodo successivo. Generazione le anteprime sono chiave da file per lo stesso motivo, e la copia di una copia di un file ha tenuto cinque volte non libera nulla. imagingUsage() serve corrente, vita e aggiunto da un singolo passaggio, perché ogni dominio di imaging ha bisogno dello stesso raggruppamento e l'elaborazione per dominio ha eseguito query una dozzina di volte per un riassunto.

  18. · kamo-internal

    Salta il caricamento quando la piattaforma ha già il file

    Inviare lo stesso video a tre persone significava tre upload completi. Dedup li ha collassati in un oggetto memorizzato, ma solo una volta che ogni trasferimento aveva finito — quindi il salvataggio era storage, mai tempo del membro o larghezza di banda. Il compositore ora chiede prima di inviare. Una sonda di dimensioni prima, perché contenuto identico deve avere un conteggio byte identico: regola una partita per quasi ogni genuina novità file al costo di una piccola richiesta, così hashing è pagato solo quando può pagare Fuori. Solo allora sono BLAKE3 e SHA3-256 calcolati e offerti al server, che collega direttamente il contenuto memorizzato. Una miss passa a un normale upload. Ruscelli di Hashing. Gli helper esistenti chiamano file.arrayBuffer() una volta per hash, quindi un file è residente in memoria due volte più — fine per un documento, fatale per un video 3 GiB. The nuovo uno cammina il file in 4 fette MiB che alimentano entrambi i hashers, quindi la memoria di picco è uno chunk a qualsiasi dimensione, e rese tra pezzi perché SHA3-256 è puro JavaScript e altrimenti congelare il compositore per minuti. Dedup è un'ottimizzazione e mai un cancello: qualsiasi guasto nella sonda, la fresatura o il link torna a caricare, che è sempre corretto. Il pannello nomina la pausa così non legge come uno stallone.

  19. · MediaService

    Attaccare un file già restaurato senza caricarlo di nuovo

    Inoltrare un video da 2 GB a tre colleghi costa tre carichi completi. Stoccaggio li deduplicava in un oggetto, ma solo dopo che ogni trasferimento era stato completato e stato gettato via — il membro pagato per ogni byte, tre volte, per produrre una copia piattaforma già aveva. Due endpoint lo stabiliscono prima che i byte si muovano. /attachments/probe risponde se file di questa dimensione potrebbe esistere a tutti, che è economico e lascia un cliente saltare hashing per quasi ogni file veramente nuovo. /attachments/link hashes the client si calcola e, quando si risolvono al contenuto memorizzato, crea l'allegato outright; a 404 significa 'mai visto, caricarlo' ed è una risposta ordinaria piuttosto che una fallimento. Le ciglia sono un reclamo, non un'autorizzazione: si risolvono solo contro il contenuto già memorizzato all'interno del campo dedup del chiamante, e entrambi gli endpoint richiedono sessione appartenenza come ogni altro percorso di attaccamento. Carica e link condividono una riga percorso di proposito — se i byte viaggiano o sono stati riconosciuti, l'allegato che le terre nella conversazione devono essere indistinguibili.

  20. · kamo-internal

    Mostra lo storage di anteprima generato come propria linea

    Le miniature e le immagini di anteprima ora contano verso il totale dell'organizzazione, così il cliente dovrebbe essere in grado di vedere che cosa costano piuttosto che trovarli piegati in un altro numero. Un tooltip dice cosa sono e che un documento multi-pagina produce un'anteprima per pagina, quindi la figura è spiegabile piuttosto che misterioso.

  21. · SecurityService

    Misurare le miniature e le tracce generate da ogni file

    Le chiavi dell'oggetto sono indirizzate ai contenuti come... il segmento prima del primo underscore identifica il file un derivato da. Le dimensioni sono sommate per ImgDat — un insieme fisico per file deduplicato — e fatturazione li attribuisce attraverso ogni record di registrazione indicando a esso. Questo è l'unico modo per rispondere alla domanda. Img dats.THUMB FILE SIZE detiene un valore singolo per quello che può essere dozzine di miniature di pagina, è stato popolato per 5 di 84 righe in produzione, e mai coperti oggetti di traccia — insieme sottostare lo storage derivato reale di circa il 37%. Oggetti legacy chiave da un id numerico predate di contenuto indirizzo, non corrispondono a file, e sono contati per nessuno; il conteggio è registrato piuttosto che passato silenzio.

  22. · InitializerService

    Schema per la miniatura misurata e la memorizzazione delle tracce

    img dat derivatives record, per file memorizzati, la dimensione reale byte di tutto Kamo generato da esso. Sostituisce img dats. THUMB FILE SIZE come fonte per quella cifra: quella colonna detiene un valore per quello che può essere dozzine di pagina miniature ed è stato popolato per 5 di 84 file in produzione. Correre contro la produzione 2026-08-09; tabella e indice verificato.

  23. · kamo-shared-library

    Bill ha generato miniature all'organizzazione

    Le miniature e le tracce per canale sono l'archiviazione di una causa di upload di un'organizzazione, così sulle istruzioni del proprietario ora contano verso il totale di quell'organizzazione piuttosto che essere assorbito da Kamo. GENERATED PREVIEWS è un dominio fatturato. Misurato dal negozio di oggetti, non da img dats. THUMB FILE SIZE. Quella colonna detiene un unico valore per quello che può essere dozzine di miniature di pagina ({imgDatId} thumb p0.pN) e in produzione è stato popolato per 5 di 84 file — sottostare lo storage derivato reale di circa il 37% e omettere oggetti traccia interamente. img dat derivatives registra ciò che una spazzata effettivamente legge indietro. L'attribuzione è per registrazione, la stessa regola del file stesso: fatturazione entra in img dat derivatives, quindi due organizzazioni che tengono un file sono ogni fatturato per le sue anteprime e la deduplica rimane il risparmio di Kamo piuttosto che del cliente. La data delle cifre periodiche prevede il caricamento che li ha causati, quindi un'anteprima cade nello stesso periodo del suo file piuttosto che ogni volta che la spazzata è corsa. Il derivato del report della piattaformaBytes ora legge la stessa fonte misurata, quindi smette di sottolineare i costi di elaborazione delle immagini. Schema verificato nella produzione prima di questo atterrato: img dat derivatives esiste dopo una KI.

  24. · kamo-internal

    Lasciare un membro tenere un video o un allegato audio, non solo riprodurre

    Il giocatore risponde a un'intenzione. Volare il file sul disco è diverso, e video e audio sono stati i due tipi di allegato senza alcun modo di farlo — un documento ha ha avuto un pulsante di download per tutto il tempo, e un'immagine ha uno nella sua lightbox. Bucce di cromo un download nel menu overflow dell'elemento video; Firefox e Safari non offrono uno Per niente, quindi l'offerta deve essere nostra per essere affidabile. Entrambi ora portano una linea didascalia che nomina il file con la sua dimensione e un pulsante di download, utilizzando lo stesso-origine href + attributo download il chip di documento già utilizza. Anche cadere la dimensione sempre-KB sul chip del documento. Che ha smesso di spaventare il momento Gli allegati potrebbero essere gigabyte: un file da 2 GB letto '2130125 KB'. Ora usa lo stesso formatBytes il compositore mostra per quel file prima che venga inviato.

  25. · kamo-internal

    Mostra il branding e l'archiviazione documentale Docstive

    Entrambi sono scritti direttamente al negozio di oggetti senza dimensioni registrate nel database, così leggono come zero fino a quando una spazzata li misura. Ora hanno il loro linee proprie.

  26. · SecurityService

    Misurare il branding e l'archiviazione documentale Docstive

    Queste sono le uniche due cose che un'organizzazione negozi che non portano dimensioni ovunque nel database — i beni di marca vanno direttamente nel secchio pubblico sotto il prefisso di dominio dell'organizzazione, lo spazio di lavoro dei documenti sotto il suo id — così entrambi leggono come zero fino a quando qualcosa legge il negozio di oggetti indietro. L'attribuzione corre all'indietro, prefisso all'organizzazione. Deriving di ogni organizzazione prefissi e la scansione di coloro che silenziosamente mancherebbero nulla conservato sotto un prefisso nessuno ha pensato di derivare; invece ogni prefisso di livello superiore è mappato indietro attraverso widget, condivisione, default, più qualsiasi cosa sciolta alla radice del secchio) atterra in no il cliente è totale. I membri/sottoti sono esclusi deliberatamente. Gli avatar vivono sotto un fisso, prefisso indipendente dall'organizzazione per design, e contare l'eredità per-dominio copie addebiterebbe un'organizzazione per un file l'utente di un'altra organizzazione possiede. L'endpoint del trigger segue LosInternalApplyController: confronto costante contro il segreto del cluster, non chiuso quando non è configurato.

  27. · InitializerService

    Schema per la misura di archiviazione solo per oggetti

    object storage days registra ciò che una spazzata legge da MinIO per i due cose che non portano dimensioni nel database: branding beni e documenti spazio di lavoro. Fibbiato da ultimo giorno modificato in modo che una finestra di fatturazione riassume esattamente. Correre contro la produzione 2026-08-08; tabella e indici verificati.

  28. · kamo-shared-library

    Conteggio di marca e stoccaggio documentale Docstive

    Quasi tutto un'organizzazione memorizza le proprie dimensioni da qualche parte — un file imgs, una riga kb media, una misurazione della casella di posta. Due cose no. Marcatura beni (logos, faviconi, immagini di sfondo, tema CSS e configurazione) sono scritti direttamente nel secchio pubblico sotto il prefisso di dominio dell'organizzazione, e docs workspace è scritto sotto il suo id. Né lascia nulla nel database dicendo quanto è grande, così entrambi leggono come zero. object storage days detiene ciò che una spazzata legge dal negozio di oggetti, secchiato da ultimo giorno modificato così una finestra di fatturazione arbitraria riassume esattamente piuttosto che arrotondare a mesi interi. ****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************** da chiave tra i nodi. La replicazione del sito mette lo stesso oggetto su diversi nodi, e contarlo una volta per nodo moltiplicare il disegno di legge di un'organizzazione per le dimensioni il cluster. BRANDING esclude deliberatamente i membri/sottoti. Gli avatar membri vivono sotto un prefisso fisso, indipendente dall'organizzazione per disegno — un utente può appartenere a diversi organizzazioni, quindi un avatar non è la proprietà di nessuno di loro — e copie per-domain sono legacy. Contarli sarebbe addebitare una organizzazione per un file l'utente di un'altra organizzazione possiede. Schema verificato nella produzione prima di atterrare: Object storage days esiste con il suo vincolo di unicità dopo una corsa KI.

  29. · kamo-internal

    Mostra l'archivio messaggi di testo

    Gli allegati MMS sono in linea nel database come dati: URI piuttosto che come file, così non avevano alcun record di dimensioni e non sono mai stati contati. Ora hanno la loro linea.

  30. · kamo-shared-library

    Contare gli allegati dei messaggi di testo

    Gli allegati MMS sono memorizzati e non sono stati contati. Non sono anche quelli che sono sembra: VoipMessageService codifica l'allegato come dati: URI e scrive inline in VOIP MESSAGES.ATTACHMENT URL, quindi non diventano mai oggetti MinIO e non c'è alcun file da macchiare — la misura è la lunghezza del carattere memorizzato, tramite la conversazione. Base64 corre circa un terzo più grande dei byte che codifica, e che gonfiato la forma è veramente ciò che occupa il database, quindi questo è ciò che viene contato.

Il tuo universo ti sta aspettando.

Aggiungi i prodotti quando sei pronto: nessuna migrazione, nessun nuovo login, nessuna richiesta di pagamento.

Gratis per sempre — nessuna carta di credito richiesta