Changelog
Ada kabar baru.
Setiap perbaikan pada platform, sebagai kapal.
· AIService
Point at Yugabita teDB and use PostgreSQLDialect
CockroachDB telah digantikan oleh Yugabita DB. String koneksi berpindah dari Publik: 26257 kepada layanan yb-tserver-: 5433, dan dialek Hibernate dari * * * * * * * * * * * * * ke PostgreSQLdialect.
· KlusterServices
Unique _ rowid () shim dan bukan-publik skema di Yugabita-teDB
Shim adalah urutan yang menyebar pada produksi maksimum ditambah margin. The benih membawa dua persyaratan, bukan satu: itu harus melebihi setiap id yang ada atau insert pertama setelah tabrakan kutover, dan itu harus melebihi 2 ^ 53 karena id di atas yang serialisasi sebagai string dan kontrak API sudah menganggap itu. Diverifikasi: kembali > 2 ^ 53 dan > produksi max, 1000 panggilan semua berbeda, dan 'INT8 DEFAULT unique _ rowid ()' works verbatim as a kolom baku - yang titik, karena memungkinkan semua 520 string kolumnDefinition dalam donotmodified shared library stay byte- for-byte tidak berubah. Juga sebelum menciptakan lima skema non-publik. Hibernasi tidak membuat skema kecuali hbm2ddl.create _ namespace = true, yang KamoInitializerService tidak diatur, jadi tanpa ini 34 tabel yang sama akan hilang lagi.
· KlusterServices
Unique _ rowid () shim dan bukan-publik skema di Yugabita-teDB
Shim adalah urutan yang menyebar pada produksi maksimum ditambah margin. The benih membawa dua persyaratan, bukan satu: itu harus melebihi setiap id yang ada atau insert pertama setelah tabrakan kutover, dan itu harus melebihi 2 ^ 53 karena id di atas yang serialisasi sebagai string dan kontrak API sudah menganggap itu. Diverifikasi: kembali > 2 ^ 53 dan > produksi max, 1000 panggilan semua berbeda, dan 'INT8 DEFAULT unique _ rowid ()' works verbatim as a kolom baku - yang titik, karena memungkinkan semua 520 string kolumnDefinition dalam donotmodified shared library stay byte- for-byte tidak berubah. Juga sebelum menciptakan lima skema non-publik. Hibernasi tidak membuat skema kecuali hbm2ddl.create _ namespace = true, yang KamoInitializerService tidak diatur, jadi tanpa ini 34 tabel yang sama akan hilang lagi.
· KlusterServices
Menyebarkan single-node Yugabita DB 2026.1.0.1 bersama CockroachDB
Kedua mesin sekarang berjalan berdampingan di K1M1; CockroachDB tidak tersentuh dan sisa jalur rollback. Tiga hal yang tidak jelas: - Versi bagan Helm bukanlah tag Docker. Bagan 2026.1.0 peta ke aplikasi versi 2026.1.0.0-b118, jadi 'image: yugabyte tetb / yugabita: 2026.1.0' adalah AkumembuatPullBackOff. Dipasang di 2026.1,0.1-b1, baru dari stabil 2026.1. - Jaringan host menempatkan pod pada antarmuka nyata K1m1, di mana dua Yugabyte baku telah diambil: 9000 oleh MinIO dan 9100 dengan node _ exporter. The tserver webserver bergerak ke 9010 dan RPC nya ke 9110. Kedua layanan host Diverifikasi tidak terpengaruh setelah itu. - TLS tidak opsional. Semua 31 koneksi konsumen membawa sslmode = dibutuhkan, sehingga YSQL tanpa enkripsi akan menolak setiap klien di Cutover. Serts diciptakan dari band, dengan alias public Alachdb nama dalam daftar SAN karena konsumen terus menggunakannya melalui cutover. Secara paksa tidak kabel ke CI: menambahkan sebuah langkah menyebarkan edits .forgejo /, yang memicu sebuah kalibrasi penuh yang membalikkan drift hidup.
· KlusterServices
Menyebarkan single-node Yugabita DB 2026.1.0.1 bersama CockroachDB
Kedua mesin sekarang berjalan berdampingan di K1M1; CockroachDB tidak tersentuh dan sisa jalur rollback. Tiga hal yang tidak jelas: - Versi bagan Helm bukanlah tag Docker. Bagan 2026.1.0 peta ke aplikasi versi 2026.1.0.0-b118, jadi 'image: yugabyte tetb / yugabita: 2026.1.0' adalah AkumembuatPullBackOff. Dipasang di 2026.1,0.1-b1, baru dari stabil 2026.1. - Jaringan host menempatkan pod pada antarmuka nyata K1m1, di mana dua Yugabyte baku telah diambil: 9000 oleh MinIO dan 9100 dengan node _ exporter. The tserver webserver bergerak ke 9010 dan RPC nya ke 9110. Kedua layanan host Diverifikasi tidak terpengaruh setelah itu. - TLS tidak opsional. Semua 31 koneksi konsumen membawa sslmode = dibutuhkan, sehingga YSQL tanpa enkripsi akan menolak setiap klien di Cutover. Serts diciptakan dari band, dengan alias public Alachdb nama dalam daftar SAN karena konsumen terus menggunakannya melalui cutover. Secara paksa tidak kabel ke CI: menambahkan sebuah langkah menyebarkan edits .forgejo /, yang memicu sebuah kalibrasi penuh yang membalikkan drift hidup.
· kamo-internal
Pecah log akses dan aturan deteksi ke dalam sub- tab
Aturan yang memutuskan apa yang akan ditandai adalah akordion di bawah grid - runtuh secara default, sehingga konfigurasi adalah sesuatu yang Anda harus tahu adalah di sana, dan memperluas itu berjuang grid untuk panel yang sama. Mereka adalah dua pemandangan dari satu subjek, dan masing-masing ingin seluruh ketinggian. Sub- tab sekarang switch antara mereka, pencocokan pola Tab tab OAut2 selanjutnya pintu sudah digunakan. Tab aturan hanya ada untuk anggota yang memegang Kelola _ DETEKSI _ RULES, dan tampilan aktif diturunkan daripada dikoreksi oleh efek: jawaban checkRight salah sampai use UserInfo mengendap, yang akan jika tidak meninggalkan anggota berdiri di atas tab yang kemudian menghilang. Aturan adalah diambil saat memasuki tab, karena mereka pada memperluas akordion, dan panel tidak membawa kepala sendiri sekarang bahwa nama tab itu. Juga tukar ikon tombol penyuntingan: itu Plus, di bawah tooltip "Edit".
· kamo-internal
Panah pulang ke rumah pada tajuk ruang kerja utama
Membawa panah settings- halaman di seluruh aplikasi: Account, Leads, Commerce, Marketing (semua empat tab, melalui tata letak bersama), Pengetahuan Base, HR, Jaringan, Manajer Dokumen, Kalender, Kontak dan Catatan. Tombol ini bergerak keluar dari komponen / pengaturan ke komponen / BackToHomeButton sekarang itu adalah app- wide krom daripada pengaturan krom. Pemasaran dan HR memiliki satu gradien pahlawan untuk setiap tab di bawah mereka, sehingga panah mendarat di mereka tata letak dan setiap tab mewarisi itu. Iklan dan Catatan membuat header mereka dari single-use komponen (PipelineView, NotesHeader), yang merupakan tempat dimana panah berjalan untuk keduanya.
· kamo-internal
Panel ekspor pada setiap link bar administrator
Seseorang yang menciptakan organisasi mereka sepuluh menit yang lalu bertemu sembilan link mereka tidak ada cara untuk membaca. Menutupi atau memfokuskan satu sekarang membuka panel yang menjawab, in order: what this screen is, three things you can do there, and where to find itu lagi melalui Pengaturan sekali bar tidak lagi baru. Panel memperluas keluar dari band daripada mengambang di dekatnya - ia tumbuh ke bawah dari tepi band dengan karet dilas ke entri, dan entri tetap menyala sementara itu keluar, sehingga dua membaca sebagai satu objek. Content mengendap dalam Terhuyung pendek di belakangnya. Mengurangi gerakan membuat crossfade dan tetes travel; transparansi berkurang menurunkan blur. Dua rincian mendapatkan tempat mereka. Blocks and Logs run short on the bar but the panel memimpin mereka dengan nama asli mereka, Akses Blok dan Akses Sistem Logs, karena itulah yang seseorang akan berburu untuk dalam Pengaturan nanti. Dan setiap panel tutup dengan jejak kembali ke layar, jadi pelajari sekali membuat jalan pintas opsional daripada load- bantalan. Buka pada hover setelah mengalahkan, langsung sekali setiap panel sudah keluar, dan langsung pada fokus keyboard; Escape menutupnya. Sebuah pointer sentuh tidak pernah membuka satu - keran hanya link, tanpa panel tertinggal di belakangnya.
· kamo-internal
Kencangkan bar administrator - org label, nama audit pendek, tidak ada jeda
Tiga perubahan bagaimana bar dibaca pada sembilan link: Anggota tim sekarang memakai label plural org dari Perilaku & Labeling, jadi org yang menyebut mereka Loan Officer mendapat Petugas Loan di sini. Hal ini entri satu tanpa label kunci - nama adalah org, bukan terjemahan. Akses Blok dan Akses Sistem Logs pendek ke Blok dan Log di bawah mereka sendiri kunci daripada menu pengaturan. Mengubah nama kunci yang dipakai bersama mengubah nama tab tersebut di mana-mana mereka muncul; dalam grup ini, di sebelah ikon tersebut, 'akses' setengah dari setiap nama tidak melakukan pekerjaan. Jarak antara entri pergi sehingga setiap taut sendiri padding adalah pemisahan dan hover bidang memenuhi tepi ke tepi - strip daripada baris chip.
· kamo-internal
Panah pulang-belakang dari setiap judul halaman pengaturan
Halaman pengaturan tidak punya jalan kembali ke launchpad pendek dari rel navigasi. Pengaturan Tampilan opsional backHref sekarang default ke rumah dan menghasilkan secara kondisional, sehingga 20 halaman dibangun di atasnya memilih panah up secara gratis; enam halaman yang menarik header mereka sendiri mendapatkan kontrol yang sama inline. Penyunting sarang (pasar, produk, rencana, penyedia email, webhooks, templat kondisi, agen studio) sudah membawa breadcrumb kembali ke orang tua mereka dan ditinggal sendiri, seperti pengaturan Leads, panah yang sengaja kembali ke / memimpin.
· kamo-internal
Sisa pengaturan esensial pada bar administrator
Peraturan Keamanan, Departemen dan Judul Tugas bergabung dengan grup konfigurasi, kiri sepasang audit. Mereka adalah tiga tab Setup Estimate bar hilang - Perilaku & Labeling membawa topik itu saja, sehingga satu layar Administrator mencapai dari sini adalah salah satu yang kebetulan tab pertama. Setiap memakai ulang ikon dan label kunci pengaturan telah diberikan, dan ketiganya ditutupi oleh bar yang ada di gerbang CONFIGURE _ SISTEM.
· kamo-internal
Blok akses di bar administrator, mengaudit link ke ujung trailing
Log Akses Blok dan Akses Sistem adalah dua layar pada bar yang menjawab 'Yang masuk dan yang tidak' Daripada mengatur sesuatu, sehingga mereka kelompok bersama-sama dan naik trailing tepi band, jauh dari konfigurasi link. Marjin inline- start otomatis melakukannya - tidak ada elemen ruang angkasa, dan pasangan hanya mengikuti sisanya setelah baris membungkus pada viewport sempit. Keduanya sudah ditutupi oleh bar Manvage _ ACCESS _ RULES gerbang, dan Akses Blok memakai kembali ikon dan kunci label pengaturan telah memberikannya.
· kamo-internal
Nama dan sunting buku alamat, dan bangun kembali halaman di sekitar mereka
Menambahkan sebuah buku posted nama placeholder hard- kode tanpa prompt, dan apa-apa dimana saja bisa mengubah nama satu - jadi setiap buku org telah disebut hal yang sama, permanen. Buku dan kelompok sekarang dibuat dan diedit melalui dialog dengan nama, deskripsi dan aksen, dapat diubah-ubah dan dilepas dari sebuah menu baris. Kelompok tidak pernah diambil sama sekali: batang sisi yang diberikan dari daftar yang hanya tumbuh ketika Anda menciptakan satu, sehingga kelompok lenyap pada reload. Kontak cached per Buku dan bergabung dalam browser, jadi "Semua Kontak" hanya menunjukkan buku yang Anda miliki mengunjungi dan memilah berjuang cache. Keduanya sekarang berasal dari layanan, dengan scope (buku, grup, query, order) driving satu memerintahkan, dihitung permintaan. Sisa halaman mengikuti konsol yang aplikasi gunakan: - Batang sisi: buku dengan jumlah kontak mereka, kelompok bersarang dengan jumlah anggota, aksi baris untuk mengganti nama / tambahkan grup / ekspor / delete - Daftar: pencarian sisi server- dan pemesanan, pilihan - semua dan pemilihan jarak jauh, Gulungan tak terbatas, kerangka, rel A-Z, dan negara-negara kosong yang berbeda "tidak ada kontak" dan "tidak ada yang cocok" - Pilihan bar: pindah, tambahkan ke grup, ekspor, hapus. Checkbox baris per memiliki sudah ada semua bersama dengan apa-apa untuk memanggil - Detail panel: semuanya pada file, setiap fakta bisa disalin dan ditindaklanjuti, dan satu penyunting bersama dengan dialog pembuatan sehingga kedua tidak dapat mengalungkan - Impor melaporkan apa yang dilewati, sehingga impor parsial tidak terlihat seperti kehilangan Proksi kontak berubah setiap 204 menjadi 500 - sebuah penghapusan sukses dilaporkan kegagalan - karena parsed tubuh kosong sebagai JSON. Tidak ada opsi tingkat org-pada sebuah buku baru: listBooks mengembalikan setiap buku di org Terlepas dari pemilik, sehingga menawarkan pilihan akan menjanjikan jalur baca privasi tidak terimplementasi.
· EmailService
Persist dan melayani seluruh kontak, bukan hanya namanya
Lapisan REST menserialkan entitas JPA secara langsung. Sebuah Kontak tidak memiliki pemetaan ke email, telepon, alamat, organisasi, URL, PI, atau hubungan - mereka adalah tabel terpisah - sehingga tidak ada yang pernah dalam sebuah respon, dan Jackson diam-diam menjatuhkan semuanya dalam perjalanan masuk Dialog pembuatan dikumpulkan tujuh bagian dan tidak bertahan. Buku dan kelompok kembali dengan asosiasi malas mereka diberikan sebagai null, yang mengapa batang samping tidak dapat atribut sebuah grup ke sebuah buku. Di balik itu, membuat kontak tidak dapat sukses sama sekali: AKSET OWNER _ ID adalah TIDAK KOSONG dan tidak mengatur, dari UI, dari impor vCard, atau dari CardDAV PUT. Impor hanya disimpan kartu mentah dan kiri FORMATTED _ NAME null, yang kolom menolak; ekspor membaca bahwa kartu mentah yang sama kembali, sehingga apa pun yang dibuat dalam UI diekspor kosong. - * * * * * * * * * * * * * * bentuk kawat, dengan menghitung kebutuhan batang sisi dan total kebutuhan pager - ContactDetail Store: batch-loads dan menggantikan tujuh tabel satelit dan anggota kelompok; menghapus kontak tidak lagi anak yatim mereka - ContactQueryStore: jumlah, terurut / disaring / paged org- lebar, dan pencarian yang juga cocok dengan nama suku cadang, nomor telepon dan organisasi - ContactVCardMapper: impor dan ekspor melalui satu pemetaan field, jadi kontak bertahan perjalanan round. BDAY ditulis sebagai PartialDate - menyelesaikan itu untuk satu hari bergeser hari untuk pembaca di zona waktu lain - updateBook hanya berlaku bidang yang dikirim: mengganti nama sebuah buku yang digunakan untuk menghapus nya deskripsi dan warna, dan membuang pada TIDAK KOSONG Tampak - deleteBook cascades; org default ditolak daripada melanggar batasan pemeriksaan setiap buku tingkat org- tergantung pada - big delete / move / group titik akhir - daftar checkbox memiliki apa-apa untuk memanggil Pembuatan buku selalu menetapkan pemilik dan mengabaikan suatu klien-disediakan adalah Organ Standar: sebuah buku ownerless hanya legal sebagai org default, dan default kedua akan meninggalkan findOrdo Default memilih secara paksa.
· kamo-internal
Bilah Administrator di atas kartu launchpad
Lima layar administrator org terbuka terus-menerus - anggota tim, perilaku & label, statistik & biaya, aplikasi & fitur, log akses sistem - setiap dua atau tiga klik jauh melalui menu pengaturan hari ini. Mereka mendapatkan satu baris di bagian atas Launchpad, di bawah kepala surat dan di atas kartu. Setiap entri memakai kembali ikon dan kunci label tujuannya telah dibawa dalam setting mendarat, sehingga layar yang sama membaca sama di mana pun ditawarkan. Band ini adalah gradien NavTop / NavPri org dengan link putih, yang membuat itu dibaca sebagai krom daripada kartu keenam. Visibilitas adalah peran Administrator (Akses Penuh), mengungkapkan satu-satunya cara sesi mengekspos itu: tiga hak yang memegang peran dan tidak ada peran saham di bawahnya tidak. Ketiga dibutuhkan, dan mereka persis apa tujuan lima Gerbang menyala, sehingga bar tidak pernah menawarkan link yang akan menolak anggota.
· BillingService
Membaca penggunaan pencitraan dari satu tahap deduplikasi
Mengikuti perubahan pustaka shared- ke satu muatan per berkas yang berbeda organisasi. Baik ringkasan dan penulis snapshot harian mengambil satu gambar lulus dan membaca setiap domain dari itu, daripada re- berjalan sama pengelompokan sekali per domain - delapan belas domains berarti sama query delapan belas kali untuk satu halaman beban.
· kamo-shared-library
Hitung setiap berkas sekali per organisasi, tidak sekali per upload
Billing adalah catatan per imgs, jadi sebuah organisasi yang mengunggah file lima yang sama waktu dibebankan lima kali. Aturan pemilik adalah satu biaya per file yang berbeda per organisasi: Kamo masih menyimpan file sekali sistem- lebar, setiap organisasi memegangnya masih dihitung, dan meng-upload ulang sesuatu yang sudah Anda miliki tidak biaya baru. Gambar tokoh sekarang datang dari satu lulus per organisasi yang runtuh catatan ke berkas berbeda. Diukur pada produksi untuk KamoCRM: 52 catatan hidup menjadi 28 file yang bisa diisi, 6,86,309.250 bytes menjadi 5,444.174.177. Sebuah file yang diselenggarakan di bawah dua asosiasi dihitung persis satu - lowest- ordinal Asosiasi itu muncul di bawah - karena menghitung dalam keduanya akan tagihan dua kali. Dua berkas produksi berada dalam posisi itu, dan dengan aturan ini kategori partisi file organisasi dan jumlah persis ke total. Titik angka kunci ketika organisasi pertama memegang berkas, jadi upload kembali sesuatu itu sudah tidak biaya baru dalam periode berikutnya. Dihasilkan previews yang tajam oleh berkas untuk alasan yang sama, dan trashing satu salinan dari sebuah berkas Diadakan lima kali membebaskan apa-apa. imaginingPenggunaan () melayani saat ini, seumur hidup dan ditambahkan dari satu tahap, karena setiap domain pencitraan membutuhkan pengelompokan yang sama dan komputasi itu setiap domain berlari query selusin kali untuk satu ringkasan.
· kamo-internal
Lewati unggah ketika platform sudah memiliki berkas
Mengirim video yang sama ke tiga orang berarti tiga upload penuh. Dedup runtuh mereka ke dalam satu objek yang tersimpan, tetapi hanya sekali setiap transfer telah selesai - sehingga tabungan itu penyimpanan, tidak pernah waktu anggota atau bandwidth. Komposer sekarang meminta sebelum mengirimkan. Sebuah probe ukuran pertama, karena isi identik harus memiliki jumlah byte identik: itu mengesampingkan pertandingan untuk hampir setiap benar-benar baru berkas dengan biaya satu permintaan kecil, sehingga hashing hanya dibayar ketika dapat membayar off. Hanya kemudian BLAKE3 dan SHA3- 256 dihitung dan ditawarkan ke server, yang melampirkan isi yang tersimpan secara langsung. Sebuah miss falls melalui ke upload normal. Sungai Hashing. Para pembantu yang ada memanggil file.arryBuffer () sekali per hash, jadi file adalah penduduk dalam memori dua kali lebih - baik untuk dokumen, fatal untuk video 3 GiB. The yang baru berjalan file dalam 4 MiB iris makan keduanya hashers, jadi puncak memori adalah satu chunk pada ukuran apapun, dan hasil antara potongan karena SHA3- 256 adalah JavaScript murni dan jika tidak akan membekukan komposer selama beberapa menit. Dedup adalah optimasi dan tidak pernah gerbang: kegagalan dalam probe, hashing atau link jatuh kembali ke upload, yang selalu benar. Nama panel jeda sehingga tidak dibaca sebagai kios.
· MediaService
Lampirkan berkas yang sudah disimpan tanpa mengunggahnya lagi
Meneruskan video 2 GB ke tiga rekan biaya upload tiga penuh. Penyimpanan deduplikasi mereka menjadi satu objek, tetapi hanya setelah setiap transfer telah selesai dan telah dibuang - anggota dibayar untuk setiap byte, tiga kali, untuk menghasilkan salinan platform sudah punya. Dua titik akhir menyelesaikannya sebelum setiap byte bergerak. / lampiran / jawaban probe apakah sebuah berkas sebesar ini bisa ada sama sekali, yang murah dan memungkinkan klien melewatkan hashing untuk hampir setiap file benar-benar baru. / lampiran / link mengambil hashes klien dihitung sendiri dan, ketika mereka menyelesaikan untuk menyimpan isi, menciptakan lampiran Langsung; sebuah 404 berarti 'belum pernah dilihat, upload' dan adalah jawaban biasa daripada kegagalan. Hashes adalah klaim, bukan otorisasi: mereka hanya pernah menyelesaikan terhadap konten telah disimpan dalam lingkup dedup sendiri penelepon, dan kedua titik akhir memerlukan sesi keanggotaan seperti setiap rute lampiran lainnya. Upload dan link berbagi satu row- building path pada tujuan - apakah byte bepergian atau dikenali, lampiran yang tanah dalam percakapan harus dibedakan.
· kamo-internal
Tampilkan penyimpanan pratinjau yang dihasilkan sebagai baris sendiri
Gambar mini dan pratinjau sekarang dihitung ke total organisasi, sehingga klien harus dapat melihat apa yang mereka biaya daripada menemukan mereka dilipat ke nomor lain. tooltip A mengatakan apa yang mereka dan bahwa sebuah dokumen multi- halaman menghasilkan satu pratilik per halaman, sehingga angka dapat dijelaskan daripada misterius.
· SecurityService
Mengukur thumbnail dan trek yang dihasilkan dari setiap berkas
Kunci objek adalah content-clased sebagai * * * * * * * * * * * * * segmen sebelum garis bawah pertama mengidentifikasi berkas turunan datang dari. Ukuran dirangkum per ImgDat - satu set fisik per berkas deduplikasi - dan Tagihan atribut mereka melalui setiap catatan imgs menunjuk pada hal itu. Ini adalah satu-satunya cara untuk menjawab pertanyaan. img _ dats.THUMB _ FILE _ SIZE holds a nilai tunggal untuk apa yang mungkin puluhan halaman thumbnail, dihuni untuk 5 84 baris dalam produksi, dan tidak pernah menutupi objek trek sama sekali - bersama-sama mendasari penyimpanan turunan nyata sekitar 37%. Obyek Legacy dikucilkan oleh pengalamatan konten numerik id sebelum tanggal, tidak cocok dengan berkas, dan tidak dihitung untuk siapa pun, menghitung log masuk daripada melewati di Diam.
· InitializerService
Skema untuk ukuran thumbnail dan penyimpanan trek
catatan img _ dat _ derivatives, per berkas tersimpan, ukuran byte nyata dari segala sesuatu Kamo dihasilkan dari itu. Ini menggantikan img _ dats. THUMB _ FILE _ SIZE sebagai sumber untuk sosok: kolom yang memegang satu nilai untuk apa yang dapat menjadi puluhan halaman thumbnail dan penduduk selama 5 dari 84 baris dalam produksi. Jalankan terhadap produksi 2026-08-09; tabel dan indeks diverifikasi.
· kamo-shared-library
Bill menciptakan thumbnails kepada organisasi
Jejak paku dan saluran pembuangan adalah penyimpanan penyebab upload organisasi, sehingga pada perintah pemilik mereka sekarang menghitung ke arah total organisasi yang daripada diserap oleh Kamo. UJI _ PREVIEWS adalah domain yang ditagih. Diukur dari toko objek, bukan dari img _ dats. THUMB _ FILE _ SIZE. Kolom itu memegang nilai tunggal untuk apa yang dapat menjadi puluhan dari thumbnail halaman ({imgDatId} _ thumb _ p0.. pN) dan dalam produksi penduduk selama 5 dari 84 baris - mendasari penyimpanan turunan nyata sekitar 37% dan mengabaikan objek trek Sepenuhnya. img _ dat _ derivatif mencatat apa yang menyapu benar-benar membaca kembali. Atribut adalah setiap catatan yang dipegang, aturan yang sama dengan berkas itu sendiri: penagihan join imgs ke img _ dat _ derivatif, jadi dua organisasi memegang satu berkas masing-masing ditagih untuk preview dan deduplikasi tetap menyimpan Kamo daripada pelanggan. Periode angka pratilik tanggal oleh upload yang menyebabkan mereka, jadi pratinjau jatuh dalam periode yang sama sebagai file daripada setiap kali menyapu berlari. Laporan platform 's derivativeBytes sekarang membaca sumber diukur yang sama, sehingga berhenti meremehkan biaya pemrosesan gambar apa. Skema diverifikasi dalam produksi sebelum ini mendarat: img _ dat _ derivatif ada setelah berlari KI.
· kamo-internal
Biarkan anggota menjaga lampiran video atau audio, tidak hanya memainkannya
Pemain menjawab satu tujuan. Ingin berkas pada disk adalah salah satu yang berbeda, dan video dan audio adalah dua jenis lampiran tanpa cara untuk melakukannya - sebuah dokumen memiliki memiliki tombol download sepanjang, dan gambar memiliki satu di lightbox nya. Chrome buries unduh dalam menu overflow elemen video; Firefox dan Safari tidak menawarkan satu Sama sekali, jadi keuntungan harus menjadi milik kita untuk dapat diandalkan. Keduanya sekarang membawa garis judul yang menyebutkan berkas dengan ukuran dan tombol unduh, menggunakan kesamaan-asal href + download atribut chip dokumen telah menggunakan. Juga menjatuhkan ukuran-KB pada chip dokumen. Yang berhenti skala saat lampiran dapat berupa gigabyte: sebuah berkas 2 GB dibaca '2130125 KB'. Sekarang menggunakan hal yang sama format Bytes komposer menunjukkan untuk berkas itu sebelum dikirim.
· kamo-internal
Tampilkan penyimpanan dokumen branding dan Doktif
Keduanya ditulis langsung ke toko objek tanpa ukuran yang dicatat di database, sehingga mereka membaca sebagai nol sampai menyapu mengukur mereka. Mereka sekarang memiliki mereka garis sendiri.
· SecurityService
Penyimpanan dokumen bermerk dan Dokter
Ini adalah satu-satunya dua hal toko organisasi yang tidak memiliki ukuran dimana saja dalam database - merek aset langsung ke ember publik di bawah prefiks domain organisasi, area kerja docs di bawah id - jadi keduanya dibaca sebagai nol sampai sesuatu membaca toko objek kembali. Atribut berjalan mundur, awalan organisasi. Menyusun setiap organisasi prefix dan scanning mereka akan diam-diam kehilangan apa pun yang disimpan di bawah awalan tidak ada yang berpikir untuk memperoleh; melainkan setiap prefiks tingkat atas dipetakan kembali melalui widget, share, default, plus anything loose at the bucket root) lands in no Totalnya pelanggan. Anggota / subtree tidak sengaja. Avatar tinggal di bawah tetap, organisasi - prefiks independen dengan desain, dan menghitung warisan per- domain salinan akan menagih satu organisasi untuk file pengguna organisasi lain memiliki. Titik akhir pemicu mengikuti LosInternalApplyController: secara konstan-waktu membandingkan terhadap rahasia cluster, gagal ditutup ketika belum dikonfigurasi.
· InitializerService
Skema untuk tujuan - toko - hanya pengukuran penyimpanan
object _ storage _ days catatan apa menyapu membaca kembali dari MinIO untuk dua hal-hal yang tidak membawa ukuran dalam database: merek aset dan docs ruang kerja. Bucketed by last-modified day so a billing window sums exactly. Jalankan terhadap produksi 2026-08-08; tabel dan indeks diverifikasi.
· kamo-shared-library
Penyimpanan dokumen bermerk dan Dokter
Hampir semua toko organisasi mencatat ukuran sendiri di suatu tempat - sebuah Imgs row, a kb _ media row, a mailbox measurement. Dua hal tidak. Branding aset (logo, favicons, gambar latar belakang, CSS dan konfigurasi) tema ditulis Langsung ke ember publik di bawah awalan domain organisasi, dan Docs area kerja ditulis di bawah ID-nya. Tidak meninggalkan apa pun dalam database Mengatakan seberapa besar itu, sehingga keduanya membaca sebagai nol. objek _ storage _ days memegang apa yang menyapu membaca kembali dari toko objek, Bucketed by last-modified day so an sewenang-wenang penagihan jumlah jendela tepatnya daripada dibulatkan ke seluruh bulan. * * * * * * * * * * * * * * ukuran persediaan dan last- dimodifikasi, deduped oleh kunci di node. Replikasi tempat menempatkan objek yang sama pada beberapa node, dan menghitung sekali per node akan mengalikan sebuah organisasi tagihan dengan ukuran cluster. BRANDING dikecualikan anggota / subtree sengaja. Anggota avatar hidup di bawah tetap, organisasi - bebas prefiks oleh desain - pengguna dapat dimiliki oleh beberapa organisasi, sehingga avatar bukan milik salah satu dari mereka - dan salinan peridomain adalah warisan. Menghitung mereka akan menagih satu organisasi untuk file pengguna organisasi lain yang memiliki. Skema diverifikasi dalam produksi sebelum ini mendarat: objek _ storage _ days ada dengan keterbatasan keunikan setelah berlari KI.
· kamo-internal
Tampilkan penyimpanan lampiran pesan teks
MMS lampiran hidup dalam baris dalam dalam database sebagai data: URI daripada sebagai berkas, Jadi mereka tidak punya catatan ukuran dan tidak pernah dihitung. Mereka sekarang memiliki garis mereka sendiri.
· kamo-shared-library
Cacah lampiran pesan teks
MMS lampiran disimpan, dan tidak dihitung. Mereka juga tidak apa yang mereka terlihat seperti: VoipMessageService mengkodekan lampiran sebagai data: URI dan tulis inline ke VOIP _ MESSAGES.ATTACHMENT _ URL, sehingga mereka tidak pernah menjadi objek MiniO dan tidak ada berkas untuk statistik - pengukuran adalah panjang karakter disimpan, melalui percakapan org. Base64 berjalan sekitar sepertiga lebih besar dari byte itu encodes, dan yang meningkat formulir adalah benar-benar apa yang menempati database, jadi itulah yang akan dihitung.

Alam semestamu menunggu.
Mulai gratis dalam beberapa menit. Tambahkan produk kapanpun Anda siap — tidak ada migrasi, tidak ada login baru.
Gratis selamanya — tidak diperlukan kartu kredit