Changelog
Ada kabar baru.
Setiap perbaikan pada platform, sebagai kapal.
· InitializerService
Hapus laporan dan baris dashboard, dan berhenti menabur VIEW _ DASHBOARD
VIEW _ DASHBOARD (0), VIEW _ REPORTS (1) dan EXPORT _ REPORTS (2) dihapus dari RoleRightType hari ini, bersama dengan dua halaman yang mereka namakan. Ini menghapus apa yang mereka tertinggal, di kedua kode. * * * * * * * * * * * * * * * terdaftar VIEW _ DASHBOARD di antara hak-hak diberikan kepada setiap organisasi baru, sehingga keluar juga. Itu satu-satunya referensi diluar sebuah definisi situs, dan kompiler adalah apa yang menemukannya - pengingat bahwa Grepping untuk nama yang tepat dan membaca enum tidak pencarian yang sama. VIEW _ TASKS sengaja absen dari pembersihan: aplikasi / tugas tampak identik dengan halaman yang dihapus dalam sumber tapi dijadwalkan akan diselesaikan. Id 0 adalah id real - daftar predikat secara eksplisit, dan apa pun dalam path ini yang bersandar pada kejujuran akan diam-diam melewati baris VIEW _ DASHBOARD.
· kamo-shared-library
Hapus VIEW _ DASHBOARD, VIEW _ REPORTS dan EXPORT _ REPORTS
Ketiga halaman bernama yang ada di disk dan tidak didukung oleh apa-apa: app / dashboard tampilkan contoh posting langsung dari i18n, aplikasi / laporan diimpor framer-motion dan next-intl dan tidak ada data sama sekali, dan tidak ada laporan jalur mesin atau ekspor di mana saja di platform. Tak ada halaman yang dihubungkan dari navRegistry dan tak ada AppType yang diklaim mereka - tes yang menjaga referenl- kode hak hidup, sejak iklan marketing mereka sebagai COMPLETED. VIEW _ TASKS (120) adalah triaged bersama ini dan sengaja disimpan. aplikasi / tugas adalah Tidak dapat dibedakan dari dua lainnya di sumber - tidak dapat dicapai, didukung, murni USEN, I18n diterjemahkan ke dalam 22 bahasa - dan dijadwalkan untuk diselesaikan. Satu ditinggalkan dan satu yang berikutnya di peta jalan, dan hanya pemilik produk yang tahu mana. Taxonomy 193 / 130 / 33 / 30 menjadi 190 / 129 / 32 / 29, 61 akar. Semua empat angka bergerak: satu berdiri saja, satu akar yang kehilangan anak satu-satunya, dan anak itu. Ids 0, 1 dan 2 dibakar. Perhatikan bahwa 0 adalah id real - VIEW _ DASHBOARD adalah yang pertama kanan pernah dideklarasikan - sehingga setiap predikat yang menyentuh ini harus termasuk nol bukan daripada bersandar pada kebenaran.
· kamo-internal
Ikon app pada apps & Features wizard
Pendeta Create- jaringan menarik setiap aplikasi sebagai huruf pertama namanya, sehingga aplikasi yang sama adalah toko di Pengaturan - > Fitur dan "S" di sini. Ikon sudah ada -- mereka terkunci di dalam peta lokal FeaturesManager. Pindah ke meja itu untuk... keyed by ServiceType, dan menunjuk kedua permukaan itu sehingga mereka tidak bisa melayang. Ditambahkan dua apps the Features screen never had entry for (CALCULATOR takes the nav rail 's Kalkulasikan, FEED mengambil DynamicFeed), nama awal alias, dan app- grid fallback - sama bentuk sebagai nav / settingsTopiIcons.ts. Setiap glyph adalah rata var (--color-primary) apakah aplikasi hidup atau mati: dua puluh produk masing-masing tiba dengan warna sendiri akan membaca sebagai catatan tebusan. On / off tetap dengan warna ubin dan saklar. Tes penjaga gagal membangun jika sebuah ServiceType hidup tidak memiliki ikon -- jika tidak aplikasi kapal katalog baru sebagai persegi abu-abu anonim dan tidak ada keluhan.
· kamo-internal
Lapisan warna padat untuk logo layar pemuatan juga
Tambahkan "Memuat Logo Layar Overlay" langsung di bawah halaman rumah satu pada Dengan 13 pilihan yang sama, menerapkan ke logo pada layar yang ditampilkan antara navigasi halaman. Baku Tidak Overlay, jadi tidak ada perubahan untuk org yang tidak pernah membuka lapangan. Pengaturan sendiri daripada satu bersama dengan halaman rumah, karena dua permukaan memiliki latar belakang yang berlawanan: kepala sekolah putih dan gradien gelap. Bayangan yang dibaca pada satu jarang bayangan yang membaca di sisi lain, dan pengaturan tunggal akan memaksa pilihan yang salah di suatu tempat. The petunjuk di bawah masing-masing mengatakan begitu. Jenis sekarang LogoOverlay, tidak HomeLooverlay - itu mengatur dua permukaan, dan sebuah nama untuk salah satu dari mereka akan salah menggambarkan keduanya dalam waktu seminggu. The kosakata, resolver dan daftar opsi dibagi; hanya kolom Setiap permukaan dibaca berbeda, sehingga warna tidak bisa terpisah. loading.tsx secara langsung membaca Organ Context daripada melalui lemparan hook: itu mount selama navigasi dan tidak boleh menjadi hal yang istirahat halaman transisi. A hilang org berarti tidak ada overlay, yang merupakan baku Lagipula. Dua baris baca-saja secara identik, sehingga sekarang mereka berbagi satu Bantuan bukannya membawa salinan masing-masing. Membutuhkan kolom loading _ logo _ overlay (KamoInitializer, diterapkan) dan SecurityService dibangun kembali melawan entitas shared- lib.
· InitializerService
Tambahkan kolom _ loading _ logo _ overlay
Permukaan kedua untuk fitur overlay logo: layar pemuatan ditampilkan antara halaman navigasi, bersama halaman utama. Kedua ALTERs hidup di satu pelari karena mereka adalah salah satu fitur dengan satu kosakata, dan seseorang mencari keduanya harus menemukan keduanya. Bentuk yang sama seperti saudara - bernyali, tidak ada backfill, tidak ada DEFAULT, karena nilai absen dan NONE berarti hal yang sama untuk setiap klien. drift guard sekarang menggambarkan bidang overlay entitas daripada penamaan satu, sehingga permukaan ketiga tidak dapat ditambahkan ke entitas tanpa ALTER. Ini juga pin satu pernyataan per kolom: sebuah ALTER terbagi tunggal akan tenang meninggalkan kolom lain uncreated.
· kamo-shared-library
Membawa logo layar pemuatan pada Organisasi
Kosakata yang sama sebagai homeLoOverlay, diterapkan sebagai ganti logo pada layar pemuatan yang ditampilkan antara navigasi halaman, ditambah cabang dalam path patch generik. Kolom sendiri daripada satu pengaturan bersama, karena dua permukaan memiliki latar belakang yang berlawanan: halaman rumah kepala sekolah putih dan layar loading adalah gradien gelap, sehingga bayangan yang membaca pada satu jarang dan naungan yang terbentang di sisi lain. Sebuah org yang ingin keduanya ingin dua jawaban. Nall memecahkan ke NONE pada klien, sehingga setiap org yang ada dimulai dengan tidak ada overlay dan tidak perlu backfill. Kolom _ logog _ overlay telah dimuat applicated (KamoInitializer, OrganizaHomeLogoOverlaymigration).
· kamo-internal
Pilih agen yang ditugaskan dari direktori, bukan dropdown
Bagian Agen Penugasan sekarang kontrol yang sama sebagai Manajer pada anggota profil: field baca-saja yang membuka picker anggota yang dapat dicari. Sebuah dropdown hanya bisa memegang satu halaman, dan daftar di belakang yang satu ini dimuat seluruhnya pada setiap tilikan lead apakah ada atau tidak membuka kartu - dua karakter direktori per halaman beban, salah satunya telah mati sejak lapangan terakhir berganti tangan. Eligibilitas tidak berubah dalam substansi dan berlaku lebih baik: picker meminta direktori untuk pemegang view _ leads, yang merupakan hak yang sama dengan titik akhir yang lama diselesaikan, dan tetap pada anggota tim karena itu adalah lingkup baku. The Kasus khusus pembantu saat ini hilang dengan dropdown - peniti peniti saat ini di atas hasil, sehingga bertahan pencarian daripada membutuhkan pilihan buatan tangan. Unassigning bekerja sekarang. Pilihan kosong selalu ada tapi patch runtuh ke undefined, yang buildUpdateLeadRequest skips, jadi memilihnya mengirim patch kosong dan memimpin terus pemiliknya. Picker 's Hapus mengirim id kosong server sekarang dibaca sebagai unassign eksplisit.
· SecurityService
Persempit pencarian anggota ke pemegang hak
Tugas utama picker membutuhkan direktori untuk kembali hanya orang yang bisa sebenarnya bekerja memimpin, jadi / tim-anggota / pencarian mengambil hak tinggi. An nama tidak dikenal adalah sebuah 400 daripada parameter yang diabaikan: menjatuhkan diam-diam filter memperluas batas izin, yang merupakan cara yang salah untuk gagal. Kanan tidak ada memegang kembali sebuah halaman kosong tanpa kueri, karena alternatif daftar IN kosong yang tidak akan diurai. Siapa yang memegang gerakan kanan ke RightHolderResolver, yang warisan Anggota Endpoint sekarang juga digunakan. Berjalan sudah disalin di lima situs panggilan dan dua lead- tugas yang harus setuju tentang yang mungkin menerima memimpin - lebih baik bahwa mereka setuju dengan mengajukan pertanyaan yang sama daripada oleh terjadi untuk memegang kode yang sama hari ini. Tiga yang tersisa tidak tersentuh.
· kamo-shared-library
Biarkan filter direktori dengan benar, dan biarkan memimpin tidak ditugaskan
Dua hal yang dibutuhkan pemetik tugas. Pencarian direktori mengambil set alloud- id sehingga penelepon dapat mempersempit pencarian untuk orang-orang hal yang benar-benar dapat diberikan untuk - menugaskan memimpin kepada seseorang tanpa VIEW _ LEADS taman di mana mereka tidak dapat membukanya. Set dihitung di Java daripada bergabung di sini karena hak dipegang baik oleh baris hak cipta atau dan yang kedua tidak memiliki baris untuk menemukan. Ini perjalanan dengan tanda tidak terbatas dan tidak pernah kosong: IN () adalah sebuah kesalahan sintaks pada Postgres kawat, sehingga whole-direktori kasus melewati placeholder bukan apa-apa. Dan updateLead sekarang membaca id tidak ada pembantu dan yang kosong sebagai berbeda permintaan, cara yang sudah dilakukan untuk negara dan bahasa. Sebuah patch membawa hanya bidang itu berarti untuk berubah, jadi tanpa perbedaan yang tidak ada cara untuk mengatakan "tidak ada yang memiliki memimpin ini" - string kosong jatuh melalui sama cabang sebagai bidang yang hilang dan unassign diam-diam tidak melakukan apa-apa. Terbuka baris penempatan ditutup daripada diganti, karena penempatan daun selalu nama anggota dan tidak ada lagi satu untuk nama.
· kamo-internal
Para editor mengatakan "Dipaksa sebagai Manvage _ TIMECARDS" daripada "Not enforced"
Satu chip membawa dua kebenaran yang berbeda dan menyesatkan ke arah yang berlawanan. Unbuilt berarti tidak ada yang memeriksa hak dan memberikan itu tidak melakukan apa-apa. Superseded berarti kemampuan adalah nyata dan gated, di bawah nama kanan lain - pemberian ini satu masih tidak melakukan apa-apa, tetapi menghapus itu akan salah dan administrator kebutuhan untuk mengetahui hak untuk memberikan sebaliknya. Keempat catatan adalah yang audit didirikan: VIEW _ SCHEDULES dan Manage _ SCHEDULES di bawah Manage _ TIMECARDS, karena tab Attendance digunakan untuk membuka VIEW _ SCHEDULES dan setiap tab HR kemudian diberikan satu hak sendiri; CREATE _ EMPLOYEES dan DELETE _ EMPLOYEES di bawah Manage _ MEMBERS, karena karyawan adalah anggota dengan catatan pekerjaan dan tidak ada karyawan CRUD titik akhir. Daftar ini kurator tangan, tidak seperti yang dihasilkan itu mengganggu, dan sengaja begitu: tidak ada analyzer dapat mengatakan "superseded" dari "tidak ada yang membangunnya belum". Keanggotaan tidak menghapus hak dari UNENFORCED _ RIGHTS - tidak ada yang melewati ke cek baik cara - jadi tes paritas dengan audit berkomitmen tidak tersentuh. Dua penjaga menjaga kejengkelan dari membusuk menjadi komentar basi. Sebuah hak yang Benar-benar dipaksa tidak pernah dapat dilabeli superseded, yang akan menempatkan dua Keripik bertentangan pada satu saklar. Dan penutup yang benar tidak harus sendiri dekoratif: pesannya adalah "hibah X", jadi mati X akan mengirim administrator satu langkah lebih jauh dari izin kerja. Ini layak dilakukan sebelum HR berikutnya tanah kanan. Dua dari empat adalah satu periksa jauh dari yang dihapus selama audit justru karena editor mengatakan Mereka sudah mati.
· kamo-shared-library
Membawa logo halaman rumah pada Organisasi
Warna padat org dapat melukis di atas logo kepala sekolah pada laman rumah internal kamo-, ditambah branch dalam jalur patch generik sehingga keberadaan PUT / org / {id} tetap ada di samping bgWatermark. Toko token - PRIMARY _ DARKER, tidak 004ba0 - diselesaikan terhadap org ini warna sendiri pada waktu render, sehingga org yang kemudian merek ulang terus overlay yang masih cocok bukan mantra beku ketika seseorang memilihnya. Plain String daripada sebuah enum, sehingga token masa depan tidak membutuhkan batasan CHEK-@@ Sapu. Nulll menjawab NONE pada klien, itulah sebabnya setiap ada org dimulai dengan tidak ada overlay dan tidak perlu mengisi kembali. Kolom home _ logo _ overlay telah diterapkan (KamoInitializer, Organisme HomeLogoOvermigration) - field ini memetakan kolom yang ada, bukan satu layanan akan SELECT menjadi query error.
· InitializerService
Tambahkan kolom _ logo _ rumah
Backs the Home Page Logo Overlay setting: the solid colour an org can cat di atas logo kepala surat di halaman rumah kamo- internal. Holds a token rather than a hex, so the overlay resolve against palet org sendiri pada waktu render dan bertahan dari rebrand. Plain VARCHAR bukan sebuah enum, jadi token kemudian tidak membutuhkan pemeriksaan kendala KEK. Numble, no backfill, no DEFAULT: setiap klien menyelesaikan sebuah nilai absen ke NONE, yang persis apa org setiap tampak seperti sebelum kolom ada, sehingga backfill akan menulis baris untuk tidak ada perubahan dalam perilaku. @ Order (0) setiap konvensi kolumn- add - saat shared- lib peta entitas kolom ini, setiap pelari kemudian yang memuat Organisasi melalui JPA emits dalam SELECT nya, sehingga migrasinya terlampir akan melangkah oleh pelari sekarat pertama. Tes ini adalah drift guard, bukan unit test: layanan menjalankan ddl- auto: tidak ada, sehingga bidang entitas tanpa pencocokan ALTER mulai sehat dan mati di waktu query - dan untuk Organisasi yang berarti resolusi org, login dan Menandai seluruh platform. Hal ini menjadikan suatu kegagalan membangun sebagai gantinya.
· kamo-internal
Biarkan org mengecat logo halaman rumah dengan warna padat
Tambahkan "Home Page Logo Overlay" ke Branding pada langsung di atas Latar Belakang Watermark: No Overlay, White, Black, and every step of the org 's own landai primer dan sekunder. Set it and the masthead logo at the top left Dari halaman rumah dibuat sebagai siluet padat dalam warna itu. Baku adalah Tidak Overlay, jadi tidak ada perubahan untuk org yang tidak pernah membuka lapangan. Apa yang disimpan adalah TOKEN, bukan hex - PRIMARY _ DARKER, tidak pernah # 004ba0 - diselesaikan terhadap palet org pada waktu render. org yang mereparasi menjaga lapisan yang masih cocok warnanya, bukan hex beku pada saat ini seseorang memilih keluar dari dropdown. logoOverlay.ts memiliki bahwa kosakata dan resolusi, cara yang sama mark.ts memiliki watermark. Tiga rincian layak diketahui: - Bayangan gelap sudah ada di kawat. Backend telah mengirim semua lima langkah dari setiap jalan selama Palet EmbColette memiliki, tetapi Organisasi. Dari JSON hanya pernah memetakan tiga, jadi warna gelap / warna Darker Jatuh di lantai di sini. Mereka dibawa sekarang, yang memberikan token gelap warna untuk menyelesaikan. - Theme Logo melakukan ini dengan topeng CSS, bukan filter. Sebuah filter hanya dapat mendorong warna yang ada di sekitar dan tidak dapat mencapai target sewenang-wenang, sehingga alpha logo sendiri menjadi topeng dan warna dicat di belakangnya. < img > tetap terpasang dan hanya terlihat: itu adalah satu-satunya sumber naturalSize blok ukuran tergantung pada, dan terus menempati kotak normal yang tepat sehingga lapisan bertopeng dapat mengisinya. Panggilan yang lulus tidak overlayColor render byte- identik dengan sebelumnya. - Sebuah tanda tanda yang bayangan org tidak pernah set menyelesaikan tanpa overlay daripada kembali ke tempat teduh tetangga. Melihat logo Anda sudah mengalahkan melihat warna tidak ada yang memilih. Membutuhkan kolom home _ logo _ overlay (KamoInivalizer, diterapkan) dan SecurityService dibangun kembali terhadap entitas shared- lib; sampai tanah yang field membaca dan menyimpan sebagai No Overlay daripada menyesatkan.
· InitializerService
Hapus baris VIEW _ EMAIL _ LOGS, dan hentikan tes membusuk ketika pergeseran ordinals
VIEW _ EMAIL _ LOGS (64) dihapus dari RoleRightType hari ini untuk penamaan fitur yang tidak pernah dibangun. Ini menghapus apa yang tertinggal - diukur pada 42 baris peran, 33 baris terapan dan 8 baris template - di kedua pengkodean, karena tabel template menyimpan NAMA enum sementara sisanya menyimpan id integer. * * * * * * * * * * * * * * * * dibutuhkan memperbaiki dalam perubahan yang sama, dan alasan layak dijaga. Ini menegaskan contoh yang benar memiliki id! = ordinal, dijaga oleh "Tes hanya berarti sementara" yang memegang. Menghapus id 64 bergeser setiap kemudian ordinal, * * * * * * * * * * * * * id menjadi sama dengan ordinal, dan penjaga dipecat. Seandainya penjaga tidak ada di sana tes akan terus berlalu sementara membuktikan apa-apa, yang hasil yang lebih buruk. Sekarang memilih saksi di waktu-waktu-setiap hak yang memiliki nenek moyang dan id yang berbeda dari koordinat - sehingga tidak ada penghapusan masa depan dapat diam-diam berongga keluar. Menghapus Hak sekarang cukup rutin bahwa contoh hardcode adalah kewajiban.
· kamo-shared-library
Hapus VIEW _ EMAIL _ LOGS, yang nama sebuah fitur tidak ada yang dibangun
Tak ada log surel di mana pun dalam platform: tak ada tabel dalam skema, tak ada titik akhir di antara 21 pengontrol EmailService, tanpa UI, dan tidak ada referensi di depan - tidak bahkan checkRight yang menghuni akun setidaknya. Platform melakukan model log mana yang memiliki mereka, dengan telepon _ call _ log, img _ log _ download, phi _ access _ log dan kontak _ sync _ log semua ada; email tidak setara. Itu adalah kasus CREATE _ CHANNELS - kata benda tidak ada - daripada Koper _ MEETINGS dimana kata benda dimodelkan dan hanya kata kerja yang tak terekspos. Taxonomy 194 / 131 / 33 / 30 menjadi 193 / 130 / 33 / 30. Hanya anak menghitung bergerak: AKSES _ MAIL menyimpan empat anak lainnya, sehingga tetap tongkat-dengan-anak. Id 64 dibakar. Baris tersimpan yang dihapus oleh EmailLogsRightPurgeMigrasi.
· kamo-internal
Letakkan komposer catatan di bagian atas All Communications
Komposer hanya ada pada sub- tab Catatan, jadi menulis catatan tentang apa yang Anda baca berarti meninggalkan tab Anda membacanya. Semua Sekarang membawa PostComposer yang sama - sama memimpin, org- sama terlihat catatan - dan garis waktu di bawah ini refetches halaman terbaru di tempat ketika satu tanah, menjaga baris di layar bukannya berkedip kembali ke spinner a.
· kamo-internal
Pilih aplikasi org baru saat membuatnya
Tambahkan langkah Apps & Features antara Tipe dan Basics. Ini daftar aplikasi Model keamanan jenis cabang yang dipilih sebenarnya menawarkan -- yang dipaksa sebagai "Selalu termasuk" tanpa ada switch untuk berdebat dengan, yang opsional sebagai switch pre-set ke default model sendiri - dan mengirimkan jawaban dengan penciptaan. Tipe adalah apa yang menentukan aplikasi mana yang ada untuk dipilih, sehingga langkah duduk kanan Setelah itu. Bertanya "apa yang akan bisnis ini benar-benar lakukan" sementara yang masih subjek biaya pelanggan apa-apa; memintanya setelah delapan layar branding akan dibaca sebagai setup kedua, tidak berhubungan. Ditulis untuk seseorang yang belum pernah menggunakan platform: header menjelaskan Apa aplikasi adalah dan yang beralih satu off hanya menyembunyikannya, setiap baris membawa app sendiri deskripsi bahasa bersalah, "Biasanya pada" / "Biasanya off" kata Dari mana pilihan datang, dan ada jalan kembali ke Sudah diatur. Tidak ada di sini yang diperlukan dan Review daftar aplikasi org akan dibuka dengan nama - jumlah adalah nomor tidak ada yang dapat memeriksa, dan ini adalah layar terakhir sebelum pembuatan ireversibel. Pemilihan dibuat oleh nama ServiceType dan sebuah kunci tidak ada artinya "apa pun model merekomendasikan, "di kedua sisi kawat. Memilih ulang SAME tipe cabang menyimpan jawaban daripada membangun kembali baku: BranchTypeStep memancarkan kembali pilihan setiap kali langkah yang kembali dikunjungi, sehingga naif versi akan diam-diam membatalkan seluruh langkah dari satu klik pada langkah sebelum itu. Memilih tipe lain tidak membangun kembali, karena daftar aplikasi diganti grosir. Juga menjepit deskripsi aplikasi pada Pengaturan - > Akun - > Branch Tipe ke dua Garis. Deskripsi baris tersebut menunjukkan sekarang dijalankan ke beberapa kalimat sehingga pembaca bukan teknis dapat bertindak pada mereka, dan unclamped mereka menghidupkan setiap runtuh baris ke dalam blok tiga baris.
· SecurityService
Biarkan pencipta memilih aplikasi org baru
Jaringan menciptakan wizard memperoleh langkah Apps & Features, dan ini adalah Setengah yang membuatnya nyata. / branch-types / creatable sekarang mendeskripsikan aplikasi setiap tipe cabang keamanan tawaran model - yang dipaksa sebagai 'dibutuhkan', yang OPTIONAL _ * dengan model baku sendiri - sehingga wizard dapat membuat langkah sebelum org ada. Ini harus datang dari sini: titik akhir yang menggambarkan aplikasi yang scoped ke org yang ada dan digated pada CONFIGURE _ SYSTEM, hak orang yang menciptakan cabang sering tidak tahan dalam induk org. Aplikasi tidak dapat _ dibantah diabaikan sepenuhnya daripada ditampilkan hijau keluar. Membuat payload memperoleh 'appSelection' ({ServiceType: boolean}), dan org baru diberikan dari itu dalam membuat transaksi, di sebelah role- template seeding: jenis yang sama, dan baik itu semua tanah atau org tidak dibuat. Bagian yang layak dibaca dua kali adalah bahwa aplikasi yang sedang dimatikan masih mendapat Baris Organ. Sampai sekarang org baru tidak punya baris fitur sama sekali dan mereka diisi dalam lazily pertama kalinya orang membuka Pengaturan - > Apps - sebuah loop yang memungkinkan segala sesuatu model tidak blok langsung. Jadi OPSIONAL _ DEFAULT _ DISABLED, sebuah admin secara eksplisit mengatakan "menawarkan ini, tapi mulai it off ", itu diam-diam dipromosikan ke ON untuk setiap anak org pernah dibuat. Menulis sebuah baris tidak aktif adalah apa yang membuat pilihan menempel, karena loop itu hanya membuat baris untuk tipe yang tidak ditemukan. Hal ini juga mengapa ini tidak dapat sebuah langkah terbaik setelah Commit: fallback tidak akan meninggalkan aplikasi unset, itu akan meninggalkan mereka mengatur untuk kebalikan dari apa yang pencipta minta. Sengaja sempit di tiga tempat. Sebuah org tanpa model terapan dibiarkan hidup jalur malas - computeibilitibesMap menjawab OPTIONAL _ DEFAULT _ DISABLED untuk segala sesuatu di sana, dan terwujud yang akan tangan seseorang ruang kerja di mana tidak ada yang di dan tidak mengatakan mengapa. Sebuah penamaan pilihan sebuah aplikasi Model tidak menawarkan diabaikan, tidak ditolak: penyihir terus draft dalam penyimpanan sesi, sehingga sebuah admin mempersempit model mid- sesi tidak harus biaya sebuah pelanggan ciptaan mereka. Dan pemilihan kosong bukanlah "tanpa aplikasi" -- ini adalah klien yang lebih tua, dan setiap aplikasi kembali ke standar model.
· kamo-shared-library
Tulis ulang salinan katalog aplikasi bagi orang yang membacanya
Nama dan deskripsi tampilan di ServiceType adalah satu-satunya deskripsi aplikasi yang kebanyakan orang pernah lihat: sebuah alamat org pada Pengaturan - > Aplikasi & Fitur, parent-org admin memutuskan apa org anaknya dapat digunakan pada tipe branch -type layar, dan sekarang siapa pun yang menciptakan sebuah organisasi dalam jaringan penyihir - seseorang yang biasanya tidak pernah menggunakan platform sebelumnya. Dua hal yang salah dengan salinan itu, dan kedua pelanggan biaya. Ini menggambarkan implementasi. "Asisten bertenaga samping dengan percakapan, RAG integrasi ", Voice Over IP PBX Phone System", "Self-hosted video "Penyimpanan dokumen pribadi dengan penyuntingan dokumen Docs", "Falls", kembali ke organisasi induk SMTP ketika dinonaktifkan "-- akurat untuk seorang insinyur, dan tidak membantu sama sekali untuk pemilik bisnis memutuskan apakah mereka ingin hal itu. Lebih buruk lagi, ia menghadirkan implementasi Kamo sendiri sebagai seluruh aplikasi. E- Mail, Telepon dan rapat adalah setiap penyedia abstraksi -- EmailProviderType, VoipProviderType dan MeetingProviderType setiap kapal penyedia Kamo bersama Google Workspace / Microsoft 365 / Zoho / Exchange / IMAP, RingCentral dan Telepon tim, Zoom dan Tim. "E-Mail - E-Mail Hosting" dibaca sebagai "centang ini jika Anda ingin Kamo untuk host surat Anda, "jadi setiap org sudah di Area Kerja atau 365 punya alasan untuk membuat kode aplikasi yang dibuat untuk mereka. Juga mengisi dua kesenjangan asli salinan tidak pernah disebutkan: HR memiliki hukum dan staf dokumen pengungkapan harus membaca dan menandatangani, dan Pemasaran mengirimkan massal dan mengkampanyekan email. ServiceTypeCustomer Copy Uji pin kedua kesalahan sehingga mereka tidak bisa kembali. Nama konstan tidak tersentuh - * * * * * * * * * * * * * * * mempertahankan nama sebagai string, sehingga nama akan mengubah nama diam-diam mengatur ulang setiap Hibah model keamanan.
· kamo-internal
Perpendek label nav ke Kesempatan dan Kredit
· SecurityService
Lindungi akun dewa pada daftar administrator platform
Hak-hak platform akun dewa dapat diubah hanya oleh dewa lain, dan dewa account tidak pernah dapat dihapus dari daftar - oleh siapa pun, termasuk dewa lain. Allah adalah platform 's breakheglass identitas: pemegang adalah apa yang tersisa ketika segala sesuatu yang lain telah salah konfigurasi. Sebuah administrator memegang Manage _ PLATFORM _ ADMINS Tetapi Allah tidak akan lupa dengan janji-Nya kepada hamba-hamba-Nya yang bertakwa. mengambil hak-haknya pergi, yang justru edit yang akan melucuti orang-orang mampu membatalkannya. Removal absolut karena baris akan pergi strip setiap benar sekaligus; perubahan hak tetap mungkin, tetapi hanya antara rekan. Tes peerage adalah User.isGod pada penelepon, bukan sebuah jendela mode-terbuka: sedang Tuhan adalah apa yang membuat Anda target sama di sini, sementara jendela adalah tentang Dengan sengaja menggunakan kekuatan itu di tempat lain. Allah (Anggota) gagal menutup dalam arah protektif - anggota yang pengguna catatan tidak dapat dibaca diperlakukan sebagai dewa, sehingga sebuah baris tidak dapat dibaca ditinggalkan sendirian daripada diedit pada kekuatan lookup yang tidak bekerja. Penelepon bendera sendiri gagal cara lain, karena hanya pernah memungkinkan kontrol. layers-action Hak pada penambahan ulang dan sebaliknya akan menjadi cara di sekitar aturan.
· kamo-internal
Rekening Tuhan dilindungi pada platform daftar admins
Dua aturan server memaksa dan ini hanya cermin: platform akun dewa Hak dapat diubah oleh dewa lain dan tidak ada orang lain, dan akun dewa dapat tidak pernah dihapus dari daftar - tidak oleh dewa lain, tidak dengan sendirinya. Tuhan adalah identitas kaca, sehingga pemegang adalah cara terakhir kembali ketika segala sesuatu yang lain telah salah konfigurasi. Sebuah administrator memegang Manage _ PLATFORM _ ADMINS Tetapi Allah tidak akan lupa dengan janji-Nya kepada hamba-hamba-Nya yang bertakwa. Strip itu, yang merupakan satu edit yang melucuti orang-orang yang akan membatalkannya. Kedua kontrol dinonaktifkan dengan alasan terpasang daripada tersembunyi - sebuah kontrol yang hilang dibaca sebagai fitur yang hilang, salah satu yang menjelaskan sendiri membaca sebagai aturan. Chip "+ N lebih" membawa kunci yang sama, karena membuka kunci yang sama dialog.
· SecurityService
Bakar urutan latar belakang org kedalam konfigurasi. json
kamo- login, kamo-register, situs pemasaran dan KamoMeet semua membaca remember tema konfigurasi. json untuk backgroundlmageCount; backgroundOrder sekarang rides along it, so the org- wide sequently / shuffle choice reaches all empat pada tema berikutnya ketentuan. Hanya dua nilai yang diketahui dikeluarkan - hal lain yang diabaikan sehingga klien jatuh kembali ke sekuensial daripada membaca nilai itu tidak Kenal. PUT org menolak nilai langsung yang tidak dikenal.
· kamo-shared-library
Kolom pengurutan latar untuk urutan gambar publik
NULAble VARCHAR; null resoling to sequential on every client, which is apa yang setiap org telah sebelum kolom ada. String Plain daripada sebuah enum sehingga mode kemudian tidak perlu menyapu CHECK-batasan. The mirror ALTER telah dijalankan melalui KamoInisializer dan kolom dikonfirmasi hadir di Yugabyte, jadi ini tidak bersenjata.
· InitializerService
Bersihkan baris-baris yang disimpan untuk dua surat pensiun hak
SHARE _ NOTES (72) dan Manage _ NOTES _ SETTTINGS (73) dihapus dari RoleRightType hari ini karena tidak memiliki fitur ke gerbang. Ini menghapus apa yang mereka tinggalkan, dihitung dan log in run yang sama daripada kiri untuk RoleRightsSyncService untuk menyapu Diam-diam pada beberapa kemudian SecurityService boot. Diukur sebelum menuliskannya: 84 baris di seluruh tabel peran, 16 baris template, 94 baris terapan, dan tidak ada di departemen, job-title atau tingkat anggota. Kedua enkripsi lagi. Tabel hak cipta dan toko snapshot terapan integer id; * * * * * * * * * * * * * * * toko-toko NAMA enum. Satu id- keyed DELETE akan cocok apa-apa pada tabel template dan laporan sukses, Meninggalkan 16 baris untuk hak-hak yang tidak lagi menyelesaikan untuk dibaca ke dalam aturan-gaya peta pada setiap perhitungan - yang tidak hipotetis, itu adalah apa yang terjadi dengan 24 150 baris pembersihan saluran saluran dimaksudkan untuk menghapus. Tidak ada pembibitan dan tidak ada gerbang verifikasi, tidak seperti benih bertemu: menghapus hak tidak dapat menghapus menghapus akses siapa pun, karena tidak pernah membaca ini. Itulah yang membuat mereka dihapus di tempat pertama.
· kamo-shared-library
Hapus SHARE _ NOTES dan Manage _ NOTES _ SETTINGS, yang nama apa-apa
Catatan yang nyata, dan seperti hari ini penuh gated - VIEW, KREATE, EDIT dan DELETE adalah dipaksa pada setiap akhir KBService 's NotesController. Mereka berdua tak punya apa-apa. untuk nama. Tidak ada pembagian yang dimodelled dimanapun dalam platform: tidak ada kolom di Catatan, tidak ada ruas di NoteDTO, tidak ada tabel note _ share - tabel catatan adalah catatan, catatan _ tag, catatan _ versi dan catatan _ embedding _ record - tidak ada titik akhir antara sepuluh, dan tidak ada UI. Tiga "berbagi" hits di FloatingNote. tsx adalah prosa dan yang dalam layanan adalah nama paket com.kamo.z.shared. Arsitektur menunjuk dengan cara yang sama: a kunci isi catatan berasal dari pemiliknya, jadi berbagi satu adalah re- keying masalah daripada titik akhir yang hilang. manage _ NOTES _ SETTINGS tidak memiliki konfigurasi permukaan baik - tidak ada tab di bawah konfigurasi / fitur, tidak ada rute di bawah aplikasi / pengaturan, tidak ada tabel konfigurasi, tidak ada entitas konfigurasi, tidak ada referensi di mana saja di front. Ini adalah kasus CREATE _ CHANNELS, dimana kata benda tidak ada, dan sengaja bukan kasus Mangage _ MEETINGS disimpan minggu lalu, di mana kata benda dimodifikasi - MeetingStatus sudah memiliki CANCELLED dan ENDED, dan WebinarService drive baik - dan hanya kata kerja yang tak terekspos. Tes yang pin taksonomi membawa penalaran. Taxonomy 196 / 132 / 33 / 31 menjadi 194 / 131 / 33 / 30, 63 akar. Dua angka bergerak agak daripada tiga: SHARE _ NOTES adalah salah satu dari empat anak VIEW _ NOTES ', jadi VIEW _ NOTES tetap root- dengan- anak-anak bukannya runtuh seperti ACCESS _ CHAT lakukan. Ids 72- 73 dibakar. RoleRightTypedConverter tetap id, jadi masa depan yang tepat menggunakan kembali seseorang akan mewarisi apa pun baris-baris berarti di orgs yang memiliki mereka diaktifkan. Baris yang tersimpan telah dihapus oleh NetesRightsPurgeMigrasi.
· InitializerService
Tambah orgs.background _ order
NULAble VARCHAR (20), tidak ada backfill dan tidak ada DEFAULT - setiap klien menyelesaikan sebuah nilai tidak ada untuk sekuensial, yang adalah perilaku setiap org memiliki sebelum kolom ada. @ Order (0) setiap konvensi kolumn- add: sekali peta entitas shared-lib itu, pelari kemudian memuat Organisasi memancarkan dalam SELECT nya.
· kamo-marketing
Baca jumlah latar asli org dan urutan main
Pahlawan diperiksa untuk bg / 1.webp dan kemudian hardcode tiga frame, jadi org dengan lebih tidak pernah menunjukkan mereka dan modulo rotasi 'd oleh LOKAL _ BGS.length Terlepas dari berapa banyak gambar yang benar-benar up. Sekarang membaca konfigurasi. json Seperti setiap permukaan Kamo lainnya, dan menghormati pengaturan mengocok org.
· kamo-register
Hormati urutan slide sekuensial / shuffle org
Kontraksi sama dengan kamo- login: backgroundOrder drive semua tiga latar belakang pendaftaran, kunci tetap berurutan.
· kamo-login
Hormati urutan slide sekuensial / shuffle org
konfigurasi .json sekarang membawa backgroundOrder bersama backgroundImageCount. Kocok ulang acak pada setiap muka dan tidak pernah mengulangi frame pada layar; sebuah kunci absen tetap berurutan, yang adalah apa yang setiap org miliki. Dua layar Swiper menjaga crossfade mereka tetapi drive timer mereka sendiri ketika shueled - Swiper autoplay hanya pernah melangkah maju satu slide.

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