Jump to content
KAMOUniverse

Changelog

Ada kabar baru.

Setiap perbaikan pada platform, sebagai kapal.

  1. · InitializerService

    Tambahkan DEPSPARENT _ DEPT _ ID untuk departemen nested

    Bernomor tanpa mengisi kembali -- null berarti tingkat atas, yang merupakan apa yang setiap ada Departemen dan sebagian besar akan tinggal. Mendekripsi UUID polos dengan eksplisit DROP DEFAULT. Kunci departemen mati UUID DEFAULT gen _ random _ uuid (), dan kolom FK yang mewarisi nilai baku yang diperoleh dicap dengan orang tua acak pada setiap baris yang ada, menggalang mereka semua dan gagal kendala yang berikut.

  2. · SecurityService

    Thread the parent departemen through create and update

    Layanan departemen sekarang menerima permintaan DTO daripada delapan argumen posisi, sehingga orang tua bergabung muatan daripada menjadi sembilan berturut-turut same- diketik string. Org scoping on the mutating endpoint is unchanged; the parent 's own tenancy Memeriksa kehidupan dalam pelayanan di samping cycle guard.

  3. · kamo-internal

    Gambar departemen sebagai sebuah grafik org dengan picker induk

    Tab departemen adalah daftar datar, sehingga org dengan Operasi > Customer Sukses > Onboarding tidak punya cara untuk mengatakannya dan tidak ada cara untuk melihatnya. Tambah / edit mendapat suatu pilihan departemen Induk, ditempatkan dengan nama karena tanda kurung struktural daripada operasional. Ini menawarkan pohon dalam urutan render dan mematikan departemen itu sendiri ditambah segala sesuatu di bawahnya - mereka persis pilihan server ditolak, dan menawarkan pilihan yang selalu gagal lebih buruk daripada tidak menawarkannya. Daftarnya menjadi tulang belakang grafik. Satu kolom rel per tingkat, masing-masing persis satu ikon chip lebar, sehingga siku baris tanah di pusat chip induknya bukan dekat itu; rel anak terakhir berhenti di sudut daripada berjalan pada, yang adalah apa membuat akhir dari sebuah cabang terlihat tanpa menghitung inden. Sel tidak membawa vertikal padding - rel harus mencapai kedua tepi atau garis istirahat di setiap baris. Kedalaman membaca melalui warna dan tipe berat badan, tidak ukuran chip, karena chip seragam adalah apa membuat geometri rel tepat. Tajuk kolom menjadi Operator Label pada sebuah bar beku, mengganti hardcode blue- 50 / indigo - 50 / abu-900 yang mengabaikan merek token. Bangunan pohon tinggal di departemen Tree.ts sehingga kasus canggung memiliki tempat untuk diuji: orangtua dihapus dari bawah anak yang dirender di tingkat atas daripada menghilang, dan siklus yang mencapai tabel render bukannya menggantung halaman. Gagal menyimpan laporan sekarang penjelasan server sendiri. Tubuh 4xx sedang dijatuhkan dalam mendukung baris status, yang akan berbalik "departemen tidak dapat sendiri orang tua "menjadi" Permintaan buruk ".

  4. · kamo-shared-library

    Biarkan departemen duduk di bawah departemen induk

    Departemen adalah daftar datar, jadi sebuah grafik org dengan Operasi > Customer Sukses > Onboarding tidak punya cara untuk mengatakannya. Departemen memperoleh sebuah pilihan-referensi sendiri orangtua; null masih berarti tingkat atas, yang adalah apa yang setiap baris yang ada tetap. FK plumnDefinition kolom = "UUID". Tinggalkan, Hibernasi menyalin direferensikan definisi kunci primer -- UUID DEFAULT gen _ random _ uuid () -- ke FK, jadi sebuah ddl- auto berjalan di atas sebuah cap DEPTS penduduk setiap baris dengan orangtua acak pencocokan tidak ada departemen dan ADD CONSTRAINT yang berikut gagal. Penugasan orang tua divalidasi dalam layanan, bukan hanya picker: self-parent, siklus (berjalan dari orang tua diusulkan tidak boleh mencapai departemen sedang pindah), orang tua dalam organisasi lain, dan id yang tidak diketahui semua ditolak. Menghapus departemen mempromosikan anak-anaknya untuk induknya sendiri daripada Menghasut mereka di belakang pointer menggantung. * * * * * * * * * * * * * sekarang mengambil permintaan mereka DTO daripada delapan argumen posisi, yang membuat penambahan kesembilan layak dihindari.

  5. · kamo-internal

    Layers-action

    Ruas penerima pada jendela perkakas compose adalah baris nowrap tunggal yang mesti ada diseret menyamping untuk dibaca, dan jendela 360px lebar dan tidak dapat diubah ukurannya, sehingga ketiga alamat sudah tidak terlihat. Mereka sekarang membungkus: bidang tumbuh satu baris pada satu waktu sebagai chip Mengisi lebar, berhenti pada tiga baris, dan gulungan vertikal masa lalu yang dengan ramping scrollbar. Menambahkan chip mengikuti input jadi karet tetap terlihat. Puncak baris adalah piksel maksimum-tinggi, dihitung dari tinggi chip diukur sehingga selalu potong pada batas baris - sebuah komposer maksimal dan fonta peramban skala keduanya memindahkannya. Label dan pin tombol kontak ke baris pertama daripada mengambang di tengah dari blok tiga baris. Menjatuhkan 'mode' prop 'yang tidak berarti sekarang dan penggambaran horizontal gulungan itu ada.

  6. · kamo-internal

    Membuat pembuatan org dapat bertahan, dan menawarkan setiap pilihan branding di depan

    Penyihir bisa gagal pelanggan dengan cara apa pun di layar menjelaskan, dan meminta untuk fraksi dari apa Pengaturan Perilaku & Labeling exposes. Hak Ciptaan: - Logo dan upload latar belakang pergi ke / api / pencitraan / upload dengan assole Tipe "ORG _ LOGO" - bukan Konstan ImageAstical Type, pada titik akhir yang asterson Tipe numerik adalah ordinal. Parser menelan kegagalan dan mengajukan mereka sebagai MY _ DOCS, sehingga branding diam-diam tidak pernah ada. Mereka sekarang gunakan org asli percabangan titik akhir, satu panggilan per slot logo. - The pencipta telepon / email PUT hanya bisa pernah 403: titik akhir membutuhkan sesion- org untuk sama anggota org, dan sesi masih pada induk. Pindah ke muatan penciptaan. - Post- buat peringatan dikumpulkan, dilewatkan ke / setup / dns sebagai param query, dan dibaca oleh Tidak ada. / setup / dns sekarang membuat mereka. - Kirim tidak pernah re-validasi, sehingga membersihkan nama setelah mencapai Review menciptakan org dengan judul NULL dan alias. - deriveConfigType membaca tipe cabang Jangkauan usia ALLOWED daripada yang dipilih, stamping KIDS _ CLUB pada bisnis dewasa - yang menonaktifkan email dan pemulihan akun telepon. - Warna varian tidak pernah diturunkan, masukan telepon tidak terikat terhadap VARCHAR (20), basi usia 403d pada mengirimkan, dan domain diambil muncul sebagai telanjang 500. Perilaku & Labeling parity - semuanya kecuali dua identifikasi hipotek: website, perusahaan menghubungi email, identitas white- label, semua tujuh profil sosial, delapan label gubahan dengan inherit- dari -parent flag, bahasa baku dan mata uang, private -org visibility, background watermark, the three brand- source selector, and all four logo slot. Dua langkah baru (Label, Preferensi); zona waktu bergerak ke Preferensi di samping saudara-saudaranya. Semua itu naik pada muatan pembuatan, tidak mengikuti panggilan: PATCH / org / {id} / branch-title telah pemeriksaan sesi -org yang sama yang memecahkan update anggota, dan satu transaksi berarti jawabannya baik semua tanah atau tidak sama sekali. Bimbingan dan kelemahan: Setiap masukan memiliki teks bantuan membumi dalam apa nilai sebenarnya. Hanya Tipe dan Membawa Basics bidang yang diperlukan, dan yang sekarang dinyatakan pada header langkah, di stepper, pada bar navigasi, dan di samping - dengan "Skip untuk sekarang" pada setiap langkah opsional. Juga: pengaturan tidak lagi merusak ekstensi telepon org pada save, / api / generasi- latar belakang tidak ada lagi sebuah proksi yang tidak terotentikasi, dan proksi org-by- id berhenti merusak id int64.

  7. · kamo-internal

    Kirim tombol belakang penyunting dari mana anggota berasal

    Editor wallpaper adalah jalan buntu - tidak ada jalan keluar kecuali rel navigasi. Kedua entri poin (chip home top-bar dan anggota profil header shortcut) sekarang stempel asal mereka pada wasit, dan editor menyelesaikan bahwa menjadi pil Kembali dalam baris alis: rumah kembali ke dasbor, profil kembali ke anggota yang halaman itu, menggunakan id dicap daripada mengasumsikan itu adalah Pemilik wallpaper. Sebuah URL kosong tanpa cap kembali ke profil anggota ini. fromId diperiksa terhadap bentuk opaqueid sehingga sebuah URL buatan tidak dapat mengubah tombol ke redirect sewenang-wenang. Membaca itu membutuhkan useSearchParams, sehingga halaman memperoleh batas Suspense yang app Router membutuhkan.

  8. · kamo-internal

    Tampilkan kotak surat utama di bawah nama profil anggotanya

    Sebuah kotak surat diadakan sebagai primer seseorang adalah alamat orang itu, jadi menyarankan Sebagai "Sales Desk" - apa pun yang terjadi akan dilabeli ketika itu ditetapkan - names kotak surat bukan orang. Baris lengkap otomatis dan penerima kartu keduanya membaca bidang yang sama, sehingga keduanya salah bersama-sama. Direktori sekarang mengambil PrimaryAnggota Nama depan dari displayName kotak surat, dan assignedMemberName untuk kotak surat pribadi, yang assignnee tunggal adalah pemilik. Alias dan kotak surat bersama milik tidak ada orang tertentu dan menjaga nama mereka sendiri. preferensi adalah daftar per- source, jadi sebuah backend yang belum namun dikirim lapangan hanya jatuh kembali ke displayName.

  9. · EmailService

    Nama kotak surat utama setelah anggota yang memegangnya

    Sebuah kotak surat seseorang memegang sebagai utama mereka adalah alamat orang itu, jadi menyajikan itu di bawah apapun kotak surat itu berlabel pada waktu provisioning - "Sales Desk" untuk sebuah kotak yang hanya milik Jane Doe - salah nama orang di compose autocomplete dan pada kartu penerima. listMailbox kini memuat Untuk anggota dengan penempatan primer, yang lebih disukai direktori alamat org daripada Nama kotak surat sendiri. Hanya jumlah pemegang utama: kotak surat seseorang hanya memiliki akses ke tidak mereka dan terus nama sendiri, dan pengaturan tabel masih membuat displaName baik cara. Resolusi nama pindah dari Layanan Mailbox Aksesiblemenjadi pembantu bersama sehingga dua permukaan tidak bisa tidak setuju tentang apa anggota disebut.

  10. · kamo-internal

    Daftar halaman komisi dalam pengaturan nav dan halaman pendaratan

    Tabletnya ada tapi tak ada yang berhubungan dengan mereka. * * * * * * * * * * * * * * * adalah contoh peringatan sudah dalam repo ini: halaman nyata tanpa kartu, tidak ada tab dan tidak ada masukan nav, hanya dapat dicapai dengan mengetik URL. Accounting & Finance adalah bagian sendiri dan topik nav nya sendiri daripada dua lebih Sedangkan orang yang diberikan kitab dari sebelah kirinya, dengan penuh rasa penyesalan, berkata, "Alangkah baiknya sekiranya aku tidak diberi kitab dan tidak mengetahui perhitungan terhadap diriku! Sub- pilihan tidak membawa gerbang mereka sendiri, jadi lipat ini dalam akan memaksa gerbang rekening terbuka untuk finansial - hanya pemegang dan menunjukkan mereka empat link yang tidak dapat mereka gunakan - sama penalaran yang menjaga kepatuhan dari topik keamanan. Dengan tab keuangan di bagian mereka sendiri, Akun saya Gerbang kembali ke CONFIGURE _ SYSTEM saja. Kartu komisi pribadi dikondisikan pada penampil menjadi anggota tim, mencerminkan gerbang tab sendiri. Kartu yang membuka tab yang tidak akan dirender Lebih buruk daripada tidak ada kartu.

  11. · kamo-internal

    Tab komisi anggota dan dua tab rekening keuangan

    Tab anggota (self-only, hanya anggota tim): balance + books, ditugaskan kesempatan, pembayaran setup, dan penarikan. Pengaturan akun memperoleh Organisasi Stripe and Commission Prosesor. tab anggota digated pada isSelf dan anggota TIPE, tidak pernah di sebelah kanan. checkRight kembali benar untuk segala sesuatu di bawah mode dewa aktif, dan halaman canViewOtherAnggota Akun Ors dalam hak-hak yang tidak berhubungan termasuk * * * * * * * * * * * * * * - sehingga gerbang rightt- berbasis di sini akan menunjukkan satu balance anggota dan rincian bank kepada siapa pun yang memegang salah satu dari mereka. 'Bayaranku', bukan 'Bank-ku'. Anggota hampir tidak pernah memiliki akun Stripe dan tidak dapat pasang satu bila mereka melakukannya: OAuth read _ write menolak akun yang dikendalikan oleh yang lain platform. Platform majikan mereka menciptakan pembayaran - hanya penerima akun dan mereka memverifikasi identitas mereka. Panel menyatakan apa yang mengumpulkan Stripe, bahwa Stripe memiliki tidak ada dukungan hubungan dengan mereka, dan uang yang membutuhkan sekitar 6- 8 hari kalender untuk tiba - tidak ada yang mereka harus menemukan sesudahnya. Organisasi Stripe adalah daftar panduan, bukan formulir, karena Stripe tidak memiliki API untuk menjadi platform sambungan. Langkah 6 membawa peringatan penuh daripada petunjuk: sebuah org yang saldo Stripe membayar keluar otomatis kehilangan float komisi sebelum pekerjaan rilis berjalan, dan setiap transfer kemudian gagal untuk dana yang tidak mencukupi tanpa peristiwa Stripe untuk menjelaskannya. Uang adalah akhir STRING desimal ke akhir dan tidak pernah Nomor () ed kecuali untuk memilih warna. Jumlah negatif adalah nyata - komisi voided menjadi menarik - dan codebase tidak memiliki konvensi untuk menampilkan satu, sehingga mereka membuat dalam nada galat dengan sebuah eksplisit minus dan chip Draw. Sub-tab sync ke? sub =; SettingsView memiliki? tab = dan menulis ulang di setiap perubahan tab. Rute BFF ada karena CommissionService adalah ClusterIP-saja - tanpa itu seluruh fitur 404 sementara setiap layanan sehat dan setiap bangunan hijau.

  12. · kamo-internal

    Folder yang dapat Anda lakukan, surel yang dapat Anda pilih

    Silakan klik semua folder untuk aksi tersebut. Tajuk menu bukan krom - ini nama folder dan menunjukkan secara langsung tidak terbaca / total, jadi Tandai semua baca dan Folder kosong dapat dinilai sebelum mereka diklik daripada sesudah. Aksi yang tidak dapat diterapkan ditampilkan dinonaktifkan dengan alasan (tidak ada unread, folder kosong, built-in folder menjaga nama mereka) daripada menjadi Kosong dan Hapus rute melalui konfirmasi dibangun untuk krom surat. PAP- Wide MUI Dialogin menuntut tantangan kata setiap waktu; tantangan pada aksi recoverable hanya melatih orang untuk mengetik (Sebagai ancaman) berkedudukan menjadi Haal dari lafal Ihdaa, disebutkan karena mengingat di dalamnya terkandung makna azab. Jadi pintu gerbang disediakan untuk dua yang menghancurkan surat Langsung - menghapus folder dan mengosongkan Tempat Sampah - dan kedua nama tepatnya: segala sesuatu yang lain pindah ke Tempat Sampah dan mengatakan demikian. Folders reorder oleh drag, per anggota, disimpan dalam shared ui- preferensi tabel sehingga pengaturan mengikuti mereka di perangkat. Perintah adalah satu daftar nama folder rata: saudara hanya dibandingkan satu sama lain, sehingga satu daftar perintah setiap tingkat, dan folder yang akan diganti nama atau dipindahkan jatuh kembali ke posisi alami bukannya merusak pohon. Drops tingkat di atas diabaikan - yang akan menjadi reparent pada server surat, bukan semacam itu. Memilih surat sekarang bekerja cara pemilihan bekerja di tempat lain: Shift- klik untuk jangkauan dari jangkar, cmd / ctrl- klik untuk memilih satu keluar, dan avatar berubah menjadi sebuah kotak cek pada hover daripada mengatur setiap baris dengan kolom checkbox permanen. Aksi naik di bar yang mengapung melalui daftar dan daun dengan pilihan, bukan strip wedged ke krom yang mendorong daftar pada setiap kutu. Juga: Folder Manage footer hilang - tombol di samping Folders heading sudah menciptakan folder - dan tombol penyegaran akhirnya persegi. CSS tidak dapat melakukannya sendiri: dalam baris flex ukuran utama menyelesaikan sebelum align- diri: stretch memberikan item nya tinggi, sehingga terlihat-persegi telah tidak ada tinggi untuk memperoleh lebar dari. Ini mengukur baris sebagai gantinya.

  13. · EmailService

    Bertindak pada seluruh folder, bukan hanya halaman yang digulung

    Tandai semua folder yang dibaca dan Kosong adalah operasi folderwide klien tidak dapat mengekspresikan dengan batching uids: itu hanya pernah memegang halaman yang ia miliki scrolled, sehingga folder dengan 4.000 unread akan mengambil 80 putaran perjalanan dan masih merindukan segala sesuatu yang tidak pernah dimuat. FolderManager memperoleh setFolderSeen dan emptyFolder. Jalur IMAP berputar tanda dalam satu server-side panggilan dan hanya menyentuh pesan yang sebenarnya tidak setuju dengan keadaan target - sebuah setFlags selimut menulis ulang tanda server sudah dan membuat setiap resync klien yang terhubung untuk apa-apa. Grafik tidak memiliki jumlah yang sama, sehingga ia berjalan dalam folder dan PATCHes; filter menyusut seperti pergi, sehingga re- membaca halaman pertama bukan paging dengan $skip, yang akan langkah atas butir sebelumnya hanya batch membalik keluar dari set hasil. Langit-langit sapuan yang login, tidak pernah diam. Mengosongkan menyimpan Tempat Sampah khusus: Sampah dihapus untuk nyata, setiap lainnya folder memindahkan isinya ke Tempat Sampah dan tetap dapat dipulihkan. DELETE Grafik sudah berperilaku seperti itu, jadi tidak ada folder- nama khusus - casing di sana. Keduanya titik akhir mengembalikan berapa banyak pesan yang dipindahkan, sehingga UI dapat mengatakan "ditandai 240 read "from" nothing to do ", and only publish a change event when Sesuatu benar-benar berubah.

  14. · SecurityService

    Browser- menghadap relay untuk fitur komisi

    Selesaikan sesi, otorisasi, dan relay ke CommissionService dengan org dan anggota dicap dari sesi itu - tidak pernah dari apa pun penelepon dikirim. Ini adalah satu-satunya hak tempat yang diperiksa: SecurityService menjalankan anyRequest () .permitAll () dengan tangan tergulung per-handler auth, sehingga titik akhir yang lupa nya cek gagal OPEN dan dapat dicapai melalui relay API publik. Tiga hak daripada satu, sehingga pemisahan tugas diungkapkan: dengan satu Hibah, siapa pun masalah komisi juga bisa melepaskan pembayaran dan membatalkan Tahan yang ada untuk menangkap mereka. Money- bergerak dan membayar - tujuan tindakan keras - menolak di bawah peniruan. Peniruan menampilkan sesi penuh sebagai anggota sewenang-wenang, jadi tanpa penolakan itu Admin dewa bisa masuk sebagai seseorang, menunjuk payout di bank mereka sendiri, menarik, dan Batalkan palka. Pemilik organisasi adalah pemegang implisit. Sebuah brand- baru hak diberikan kepada Tidak ada pada hari itu menyebar - termasuk kepada siapa pun yang bisa mengaktifkan fitur di - jadi tanpa cabang pemilik kapal fitur aktif dan tidak terjangkau. / me / kesempatan disajikan di sini daripada relayed, karena SecurityService memiliki model peluang; mendaftarkan mereka repositori dalam CommissionService juga akan memberikan satu shared- perpustakaan model dua penulis. Ini serikat baris split anggota dengan pemesanan di mana mereka adalah agen utama, karena agen sendiri komisi tidak menghasilkan baris split dan pemeriksaan query hanya satu sisi diam-diam menyembunyikan setengah penghasilan anggota.

  15. · kamo-shared-library

    Cari anggota komisi split untuk pandangan komisi mereka sendiri

    Organik-scoped daripada keyed pada anggota saja: ORG _ ID diduplikasi ke ini tabel sehingga baris tidak pernah dapat membaca cross-penyewa oleh id, dan finder yang mengabaikannya akan diam-diam membatalkan itu. Hanya setengah dari "kesempatan saya peroleh pada" - tingkat pelayanan komisi milik ke agen primer dan menghasilkan tidak ada baris split sama sekali, sehingga penelepon harus serikat ini dengan pemesanan agen sendiri. Dokumentasi pada metode sehingga penelepon berikutnya tidak kapal pemandangan bahwa diam-diam menyembunyikan setengah pendapatan anggota.

  16. · kamo-internal

    Membuat permukaan anggota sebuah grid data kamo nyata

    Paket anggota adalah daftar kartu tanpa mosi, yang bukan bagaimana sisanya Kemo terlihat. Ini sekarang adalah rumah Grid AG: Mendarat dan tab sub- Selesai sync to? sub =, server-side paging end ke end (halaman / size / status mencapai DocsService daripada mengiris tutup 200-row), mengisi panel bukan ukuran ke barisnya, dan tidak ada judul - tab pengaturan sudah nama itu. Status dibaca sekilas daripada sebagai chip abu-abu: tanggal jatuh tempo membawa sendiri urgensi, dan menunggu -satu-lain dan konsent- berubah adalah keadaan yang dapat dibaca bukan yang tersembunyi. Motion is contaled and gated on useReducedMotion.

  17. · kamo-internal

    Tampilkan nama anggota tanpa awalan "Hai"

  18. · DocsService

    Server- sisi paging untuk daftar penempatan anggota

    Permukaan anggota meminta MAX _ SIZE tanpa syarat dan diiris hasilnya peramban, sehingga kisi yang menunjukkan sebuah halaman telah mengunduh seluruh sejarah kerja untuk membangunnya. Kedua anggota pembaca sekarang mengambil halaman / ukuran dan daftar halaman dalam basis data. Spec.status (satu enum) menjadi Spec.statuses (a Set) dan parameter kawat tetap 'Status', sekarang menerima CSV. Itulah titik: grid anggota meminta untuk Bucket - tiga BUKA _ STATES yang masih berutang pekerjaan, atau empat terminal yang - dan filter single- dihargai tidak dapat mengekspresikan baik tanpa tiga putaran perjalanan per halaman. Satu parse token ke satu elemen set, sehingga grid HR ada status = EXECUTED adalah byte- identik pada kawat dan tidak diperlukan perubahan klien. An tanda tidak diketahui dalam daftar adalah 400 penamaan token, tidak pernah menjatuhkan diam-diam filter: sebuah kisi compliance yang mengaku telah disaring ketika menampilkan semuanya adalah hasil terburuk yang tersedia. clampPage / clampSize akan diekspos sehingga anggota pembaca menjepit melalui aturan SAME sebagai grid HR daripada melewati MAX _ SIZE harfiah, yang bagaimana "paged" titik akhir diam-diam menjadi satu tak terbatas. listMine kedepan paging tanpa Merendang itu, sehingga penjepit ada sekali. Otorisasi tidak tersentuh dan pin tes itu: anggota titik akhir tetap pada keanggotaan () + LegalAssignments Kepemilikan, HR titik akhir tetap dijaga () + Akses LegalPackageAccess, dan tiga Params @ RequestParams baru dinyatakan berdasarkan nama yang akan menjadi persis status / halaman / ukuran - seluruh alasan permukaan ini aman adalah bahwa apa-apa di atasnya nama seseorang. Tidak ada perubahan skema. Tidak ada wujud baru. mvn -o tes: 391 tes, 0 kegagalan, 0 error (was 379).

  19. · kamo-internal

    Kartu Notifikasi Email Pribadi menggantikan tab Pemberitahuan

    Kedua tombol berpindah ke Profil Saya dalam bentuk yang sama dengan kartu sandi: satu kartu, ubin ikon dan membantu teks per baris, dan inset berwarna yang muncul hanya ketika jam tenang berada. Tidak ada penyunting header tombol - switch menyimpan sendiri, debounce, persis seperti tab lakukan. Kartu mengarah ke mana surat pergi, karena itu adalah bagian anggota salah: pemberitahuan dikirim ke alamat pada akun USER mereka, yang nama kartu, dan tidak pernah ke kotak surat ini organisasi yang menugaskan mereka - kotak surat mereka harus mendaftar untuk membaca, yang sangat hal pemberitahuan adalah memberitahu mereka untuk melakukan. SecurityService mengembalikan alamat itu hanya ke anggota itu milik, sehingga catatan jatuh kembali ke bentuk yang tidak disebutkan namanya jika tidak ada. Hanya anggota tim: notifier melayani percakapan internal dan tiket dukungan, yang merupakan Anggota polos tidak bekerja masuk Self - hanya di samping, karena rute preferensi adalah me- scoped dan pada orang lain profil switch ini akan menyunting jam sendiri admin tenang.

  20. · SecurityService

    Ungkapkan surel akun akun pada profil anggota Anda sendiri

    Kartu Notifikasi Personal Email harus menyebutkan alamat yang salah alamat pemberitahuan pesan sebenarnya mencapai, dan alamat yang adalah akun pengguna - bukan daerah 'email' di sampingnya, yang kotak surat organisasi ini ditugaskan anggota. Hanya dikembalikan ketika sesi membaca sendiri anggota baris. Alamat pribadi bukanlah sesuatu admin harus mengumpulkan dari profil rekan, dan tidak ada penelepon lain memiliki alasan untuk menginginkannya.

  21. · kamo-internal

    Accounting & Finance permission group dan finage-right access to account settings

    Kelompok Keamanan Akses dan Administrasi hanya ada di SecurityRoleManager sebagai daftar nama inline, jadi JobTitleManager, DepartmentManager dan RolesPermiisTab {\ cH5EFFFF}... setiap servis Type- kurang tepat ke Jenderal. Daripada menambahkan salinan keempat, definisi grup pindah ke permissionGroups.ts dan keempat editor membacanya. Ijin umum adalah alasan yang penting: penyaringan pada! serviceType saja akan membuat carved- keluar kanan dua kali, sekali di Umum dan sekali di sendiri bagian, memberikan satu pengaturan dua toggles independen. Anggota PermisionsTab sengaja tidak tersentuh - daftar Izin Umum adalah hardcode baca / tulis / delete / admin mock, bukan data riil. / setting / account dan bagian pendaratan sekarang juga mengakui hak keuangan. Sebuah controller holding only Manvage _ ORG _ FINANCES would otherbe directed langsung kembali ke / pengaturan; hanya satu dari dua akan meninggalkan halaman dicapai oleh URL tetapi tidak terlihat dalam nav tersebut.

  22. · InitializerService

    Migrasi untuk buku besar komisi dan Stripe membayar tabel

    Cermin com.kamo.z.shared.commision. ddl- auto akan membuat ini dari anotasi pula; eksplisit DDL adalah konvensi rumah dan apa yang membuat bentuk dapat dilihat kembali di satu tempat daripada di seluruh kelas entitas selusin. PERINTAH _ STRIPE _ WEBHOOK _ EVENT adalah keyed pada (ORG _ ID, STRIPE _ EVENT _ ID), bukan pada The event id alone. Setiap organisasi menjalankan sendiri Stripe Connect platform, jadi id acara hanya harus unik dalam satu akun - LOAN _ STRIPE _ WEBHOOK _ EVENTS kunci pada id telanjang dan aman hanya karena itu Fitur memiliki akun Stripe tunggal. Terapan terhadap prod; semua sembilan tabel dan setiap penjaga unik diverifikasi hadir.

  23. · SecurityService

    Bagikan hak keuangan ke setiap template model cabang ADMINISTATOR

    Tiga komisi gerbang hak yang fitur yang tidak sebelumnya ada, jadi NEW _ KANAN _ SEEDS sengaja mengatakan apa-apa tentang mereka - bahwa mekanisme membawa Ada hibah ke depan sehingga menyebarkan tidak pernah diam-diam REMOES akses, dan menggunakannya di sini akan tangan uang-menggerakkan daya untuk orang-orang yang tidak pernah memilikinya. Apa yang mereka butuhkan sebagai gantinya adalah sebuah baku ROLE-type, yang tidak ada. Dua bagian: - template SeedSeedSetting Untuk keuntungan sebuah DefaultRoleType overload memberikan keuangan Hak-hak pada ADMINISTATOR hanya templates. GRANTED, bukan FORCE _ GRANTED: sebuah org harus tetap dapat mencabut uang langsung dari satu administrator pada anggota mereka profil, dan FORCE _ GRANTED menimpa setiap lapisan kemudian air terjun. ... memastikan RoleTypeTemplates menciptakan deretan ADMINISTRATOR untuk model yang kurang satu. Baris peran malas, dibuat hanya ketika seseorang menyimpan default model, dan syncSecurityModelRoleRights iterates tabel yang - jadi tanpa ini baku akan berlaku untuk setiap model cabang kecuali yang pernah disesuaikan, diam-diam, dan mereka adalah orang-orang yang paling mungkin bergantung pada as- adalah.

  24. · kamo-shared-library

    Bagian-tim komisi buku besar dan ranking domain

    Tambahkan com.kamo.z.shared.commission: sebuah tambahan - hanya ditandatangani buku besar, sebuah per- anggota baris balance yang ada murni untuk serialize penarikan yang berlaku, Prosesor Komisi batch / line- item model, dan per-org Hubungkan Upah entitas. Tiga keputusan yang layak disimpan: - Buku besar ini menambahkan -only dan membuatnya dalam Java (@ PreUpdate / @ Prereme melempar). @ Kolom (updatable = false) hanya membuat Hibernasi menghilangkan kolom dari UPDATE, itu tidak membuat menulis gagal, sehingga koreksi basi akan terlihat seperti berhasil. Koreksi terbalik baris. - Tersedia vs tertunda adalah permintaan atas EFFECTIVE _ AT, bukan mesin negara. A Komisi dikeluarkan hari ini dengan kedewasaan bulan depan bergerak untuk tersedia pada nya sendiri, sehingga tidak ada menyapu ada yang bisa gagal dan untai uang sebagai tertunda. - PERINTAH _ MEMBER _ BALANCE adalah berlebihan dengan buku besar dengan konstruksi. Ini ada karena keseimbangan adalah kumpulan dan SELECT UNTUK UPDATE tidak dapat mengunci kumpulan; tanpa satu baris untuk mengambil pessimistik _ WRITE pada, dua concurt Penarikan kedua lulus pemeriksaan kesehatan mereka sendiri. Uang adalah NUMERIC (19.4) seluruh, org id polos kolom INT8 daripada asosiasi sehingga catatan keuangan outlive anggota churn, dan ORG _ ID digandakan ke baris anak sehingga tidak ada single- baris fetch dapat membaca cross- penyewa. Juga menambahkan tiga hak (187-189) untuk permukaan keuangan. Mereka dibagi jadi pemisahan tugas diungkapkan: dengan satu hak orang yang mengeluarkan Komisi juga bisa melepaskan pembayaran dan membatalkan pegangan yang ada untuk Tangkap mereka. ServiceType secara null sengaja - sebuah ServiceType baru akan grup mereka secara otomatis tetapi membuat mereka dalam tidak ada penyunting sama sekali, karena daerah aplikasi saja muncul ketika org mengaktifkan aplikasi itu. Skema diterapkan via KamoInitializer; semua sembilan tabel diverifikasi hadir dalam prod dengan SEMUA hak untuk pengguna aplikasi kamo.

  25. · kamo-internal

    Fold MFA ke dalam kartu sandi dan drop Sinyal-in tab keamanan

    Dua tempat mengajukan satu pertanyaan - bagaimana saya masuk ke rekening ini - jadi faktor kedua sekarang hidup di samping kata sandi pada Profil saya, dalam sebuah kartu berjudul "Sandi & Multi Factor Otentikasi". Aliran pendaftaran bergerak keluar dari tab ke * * * * * * * * * * * * * * * * * * * krom-bebas sehingga dirender sebagai baris daripada sebuah halaman: pil status, bernomor QR / rahasia dan langkah kode dalam satu inset, dan dialog kode recovery- yang sama tak terduga. Tajuk kartu kini tak membawa tombol Sunting memiliki dua aksi independen - baris sandi memiliki sendiri "Ubah sandi", baris MFA sendiri "Nyalakan". MFA tetap sendiri-hanya untuk alasan tab adalah: Layanan SecurityService MFA menyelesaikan pengguna dari sesi penelepon dan tidak mengambil parameter pengguna, sehingga admin pada profil orang lain akan akan mendaftarkan keaslian mereka sendiri. Password change is broader (manage _ MEMBER _ SECURITY, god), so baris itu saja membuat ada. Password state moves to Password SecurityCard, which fixes a dead branch on the way: the old card membandingkan * diterjemahkan * passwordError terhadap literals Inggris, jadi "Sandi saat ini salah" tidak pernah mencapai lapangan itu milik. Kesalahan sekarang membawa bidangnya.

  26. · kamo-internal

    Sarankan kotak surat org sendiri, alias dan kotak surat bersama

    Penerima otomatis hanya tahu kontak dan alamat scraped keluar dari Terkirim folder, sehingga organisasi alamat sendiri - semuanya dikelola pada Harus diketik dari ingatan. New GET / api / email / direktori fans keluar ke empat sumber EmailService di belakang halaman itu dan kembali satu deduped daftar alamat. Agregated server-side karena setiap panggilan tersebut mengkonsumsi sendiri satu-waktu kunci; dari peramban itu akan empat perjalanan putaran OTK setiap kali komposer dibuka. Setiap degradasi sumber pada memiliki, sehingga org yang penyedia tidak memiliki provisioning masih mendapat alias. Daftar tersebut cached dalam memori dan cocok lokal - orgs memiliki puluhan ini, bukan ribuan, dan parameter query per keystroke akan menempatkan jaringan round trip di di depan saran peramban sudah dapat menjawab. Org cocok dengan cat Segera ketika pencarian kontak dan Folder Sent- masih dalam penerbangan, dan mereka memimpin dropdown: itu adalah satu set tepat kecil, dan alamat internal yang juga duduk di sebuah buku kontak harus dibaca sebagai kotak surat, bukan kartu kontak. Menyunting kotak surat dalam Pengaturan Drop cache, sehingga alamat baru adalah disprestable tanpa reload. URL basis EmailService dan pembantu maju keluar dari catch-semua rute sehingga rute baru mints OTK nya dengan cara yang sama bukannya menjaga salinan kedua.

  27. · kamo-internal

    Satu tilikan kotak surat, dan kolom yang semua daftar

    Toggle Percakapan / Klasik hilang dan setiap anggota mendapat Daftar klasik. Tampilan percakapan membawa daftar sendiri, benang sendiri panel dan permukaan API sendiri untuk cara kedua membaca sama surel - semuanya dihapus, bersama dengan mode localStorage ingat setiap browser. Tajuk kolom daftar pergi dengan itu. Nama folder, ikon, deskripsi di bawahnya dan tombol penyegaran adalah enam rem dari krom di atas daftar yang ingin tinggi, dan pohon folder sudah mengatakan folder mana yang dibuka. Cari dan pindahkan panel filter ke folder bilah sisi, di atas label Folders, sehingga kolom daftar adalah apa-apa tapi daftar. Tombol penyegaran kembali di samping switcher kotak-surat sebagai persegi: items- peregangan pada baris dan aspect- persegi pada tombol membuat tingginya melacak switcher dan lebar trek tingginya. Duduk selain kartu tunggal-kotak surat juga, sehingga anggota tanpa dropdown tidak kehilangan penyegaran. Filter drop ke satu kolom - dua memilih sisi demi sisi tidak cocok 320px samping. Sebuah penyedia SMTP-only tidak memiliki batang sisi folder, jadi ada panel pencarian tetap berada di atas daftar daripada menghilang. String untuk permukaan dihapus digosok dari semua 22 locales di kamo- terjemahan - kamus (61fdfcf, didorong pertama). threadDetail dari / ke / cc / noContent tinggal - tab komunikasi memimpin membuat mereka.

  28. · SecurityService

    Tampilkan surel kontak dalam daftar oleh-departemen

    Pusat Interaksi memerlukan alamat anggota untuk memuat komposer, dan satu-satunya titik akhir yang membawa satu adalah detail tunggal - anggota fetch - satu permintaan per baris terlihat. EmbEmail tertanam pada baris anggota daftar sudah dimuat, sehingga melayani di sini biaya apa-apa dan menghapus N + 1.

  29. · kamo-internal

    Email anggota langsung dari baris mereka

    Dok aksi baris bisa chatting, bertemu, dial dan membuka profil - yang hal yang tidak bisa dilakukan adalah memulai email, sehingga mencapai seorang rekan melalui surat berarti meninggalkan panel, membuka komposer dan mengetik ulang alamat mereka. Tambahkan tombol surat bersama yang lain yang membuka jendela alat komposer dengan anggota sudah di bidang To. Alamat naik sepanjang di Oleh-departemen muatan (EmbrEmail berada di baris anggota, sehingga biaya tidak ekstra query) daripada sebuah per-row detail fetch, dan modul / gerbang kanan adalah diselesaikan sekali di NavToPPanel bukan per baris.

  30. · DaemonService

    Pesan peringatan harian paket

    DaemonService memiliki kutu karena DocsService tidak bisa. DaemonService adalah strategy: reconate - pod lama hilang sebelum yang baru dimulai, sehingga menyebarkan jendela tidak dapat double-fire. DocsService is RollingUpdate maxSurge: 1, so a @ Scheduled there provably can: for the length of every rollout there are two pod dan keduanya percaya itu adalah 13: 00. Untuk pekerjaan yang mengeluarkan adalah surat untuk setiap terlambat karyawan di platform, "biasanya sekali" bukan properti. Ini juga memberi kita @ Bencana Concreating Eksekusi, pemicu manual JobTriggerController dan cron tunable tanpa memindahkan DocsService. Diprogram pada LeadEmailSweepJob, termasuk bagian yang sedang berjalan. daripada stylistik: sebuah resttemplate default menunggu FORever, sehingga DocsService terjepit akan pin thread ini dan - di bawah @ Bencana Concreaces Eksekusi - menghentikan menyapu sampai pod dimulai kembali, diam-diam dan tanpa batas, tampak persis seperti "tidak Pengingat yang jatuh tempo ". Waktu habis sangat jelas. Stamps proseal.writes.secret (public-chat), the value DocsInternall AutFilter validasi - NOT rahasia internal MLOS, yang merupakan nilai berbeda dan 403 s setiap panggilan, Pramugari koreksi dan VoipGlobalSyncJob keduanya dibutuhkan. Harian, tidak per jam: ember adalah fungsi hari, sehingga centang per jam 24x Scan silang-org untuk paling banyak satu tambahan kirim dan 24x radius ledakan. Tidak konfigurasi berubah - basis URL docs dan cron keduanya membawa default yang bekerja.

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