Jump to content
KAMOUniverse

Changelog

Ada kabar baru.

Setiap perbaikan pada platform, sebagai kapal.

  1. · SecurityService

    Katakanlah lokasi setiap entri benar-benar diterjemahkan ke

    Situs pemasaran sitmap sekarang daftar setiap versi bahasa dari setiap entri, dan setiap entri halaman nama yang lain sebagai nya hinrang alternatif. A baris terjemahan bukan bukti dari satu: Jawaban layanan terjemahan arah itu tidak memiliki penyedia untuk dengan sumber Inggris, sehingga setiap baris ta, dan sw dan baris ke-3 dari entri lama, ulangi kata judul Bahasa Inggris untuk kata. Nama Mereka akan menunjuk mesin pencari di halaman yang kanonikal kembali ke Inggris. - * * * * * * * * * * * * * * kembali, per entri, locales yang judul atau deskripsi berbeda dari Inggris, dibandingkan di Database dalam batch dari 1.000 id. - / public / siemap membawa 'locales' per entri dan mengambil urutan = tertua, sehingga berkas changelog peta ini mengisi dan kemudian tidak pernah berubah. - / public / entry / {slug} membawa 'locales', dan 'diterjemahkan' sekarang berarti nyata terjemahan daripada baris.

  2. · kamo-internal

    Void sebuah organisasi dari Platform - > Konfigurasi - > Organisasi

    Tab Organisasi memperoleh sub- tab Aktif dan Void, dan setiap organisasi Laci cara untuk membatalkannya atau, pada tab Void, untuk mengembalikannya. - Sub- tab aktif / Void di atas direktori, dihitung dari server activeOrgs / voidedOrgs (yang mengikuti pencarian, tab mana yang terbuka). Tab hidup di URL sebagai orgstatus = void, seperti sisa konsol tampilan; itu adalah tempat, bukan filter, jadi Clear menyimpannya. - Bagian Void laci (tidak pernah pada platform org) membuka konfirmasi yang mengeja apa yang voiding tidak: setiap orang di dalam ditandatangani keluar, ia daun / jaringan, sign- in dan setiap daftar, penciptanya diperlakukan seperti tidak pernah memiliki menciptakannya, dan tidak ada yang dihapus. - Sebuah voided org 's laci lead dengan "Voided < date > oleh < operator >" dan Restore; uji coba dan platform- kontrol produk dimatikan. - Pengosongan server - platform org, org yang anda tandatangani, langsung sub- orgs, masih sedang diisi - ditampilkan dalam dialog, dalam kata-kata. - POST melalui rute relay font color = "# 00FFFF" (Layanan Securitymemberangkatkan Manvage _ ORGANIZATIONS). Backend: kamo- shared-library d2c09630, secuityservice 6c8d789, billingservice 072ca5f, mediaservice db90b81; Inggris dalam kamo- terjemahan - kamus deba6215.

  3. · MediaService

    Daftar tidak lagi nama organisasi voided

    Sebuah organisasi voided dari Platform - > Konfigurasi - > Organisasi (orgs.is _ active = FALSE) tidak ada dimanapun kecuali tab Void konsol. findOwnedOrgans ByOwnerIds - daftar sendiri salinan "yang orgs tidak masing-masing eksekutif sendiri, "disimpan untuk org id di samping setiap judul - sekarang membawa sama live-org filter shared findnedTitlesByOwnerIds dan FindDistinctOwnerUserIds diperoleh di kamo- berbagi - perpustakaan d2c09630. Terjepit di Exec2ExecQueryParseTest, yang juga memisahkan itu terhadap model entitas.

  4. · BillingService

    Tab aktif dan Void dalam direktori org platform

    Tab Organisasi konsol sekarang terbagi menjadi tab aktif dan Void sub-. A organisasi voided adalah orgs.is _ active = FALSE (set by SecurityService 's void titik akhir); direktori adalah satu tempat masih daftar satu - pada tab Void, sehingga operator dapat menemukannya untuk mengembalikan. - GET / API / billing / platform / orgs mengambil status = void; hal lain, termasuk tidak ada status, hanya daftar organ hidup. Setiap pemanggil tua - penyihir perdagangan cari di antara mereka - menanyakan tanpa status, sehingga tidak satupun dari mereka dapat menunjukkan sebuah organisasi yang tidak ada lagi. - Baris membawa voided, voidedAt, voidedByUserId dan sebuah voiddByName yang dehidrasi (satu pencarian usang, hanya ketika halaman telah voided baris). - Aggregates mengikuti tab, dan tambahkan activeOrgs / voidedOrgs, yang mengabaikan tab (kedua tab perlu kedua nomor) ketika menghormati setiap filter lainnya. - Sub-org jumlah tidak meninggalkan anak-anak voided. - The snapshot penyimpanan malam dan laporan penyimpanan platform skip voided orgs; sejarah disimpan dan penanganan kesenjangan penulis menangkap org dipulihkan. Verifikasi pernyataan yang dihasilkan baca-saja terhadap basis data hidup: Aktif 40 baris / jumlah 40 + 0, Void 0 baris.

  5. · SecurityService

    Void sebuah organisasi, dan tidak membiarkan cara untuk mencapai yang voided

    Platform - > Konfigurasi - > Organisasi sekarang dapat membatalkan sebuah organisasi. Kehampaan adalah orgs.is _ active = FALSE; commit ini menambah aksi dan membuat setiap cara INTO sebuah organisasi menolak yang voided. Aksi - POST * * * * * * * * * * * * * * * dan / restore, Kelola _ ORGANIZATIONS (Tab itu sendiri): - Layanan Organik menolak, mengubah apa-apa: platform org, org operator ditandatangani ke dalam, sebuah org dengan sub- orgs hidup, dan org masih sedang dikenakan biaya (a hidup PAID berlangganan dengan harga, menargetkan atau dibayar oleh nya rekening). Jika tidak, itu akan menetapkan bendera, catatan voided _ at / voided _ by _ user _ id, dan mencabut setiap sesi anggotanya. Pemulihan membersihkan ketiganya. Tidak ada yang dihapus; anggota dan data kembali seperti semula. - 200 dengan negara baru, 404 tidak diketahui, 409 dengan alasan konsol menerjemahkan. Cara-cara dalam: - KSesionService.createSesi - pinggang setiap * * * adalah minted melalui - menolak a voided org via VoidedOrganable Guard (tidak tercached PK read, fail open), next ke gerbang synthetic account. - Jaringan saya meninggalkan organ voided OUT: layar rumah menghitung baris pemiliknya untuk memutuskan apakah anggota telah membuat sebuah org, jadi anggota yang hanya dibuat org telah voided ditawarkan create- your-first -org aliran lagi. semua jaringan berikut melalui berbagi getAllOrganization (). - Masuk sebagai dan cross-org peniruan menjawab 404, untuk org yang hilang. - Jajak pendapat sesi berakhir sebuah sesi didalam sebuah voided org (backstop untuk satu minted sebelum bendera mendarat). - Pertukaran perangkat mobile, post-verification auto- login, network-directory pencarian dan unscoped kotak surat / kerja-email sinyal-dalam pencarian lewati organ voided. - Peron overview jumlah, menyapu penyimpanan dan kegagalan-open dampak laporan baca dan (malaikat-malaikat) yang mengatur urusan (dunia). * * * * * * * * * * * * sudah diterapkan ke database langsung.

  6. · kamo-shared-library

    Sebuah organisasi voided ditinggalkan dari setiap daftar dan pencarian host

    Operator Platform sekarang dapat membatalkan sebuah organisasi dari Platform - > Konfigurasi - > Organisasi. Kehampaan adalah orgs. is _ active = FALSE - the flag sign-in and host resolusi telah memeriksa - sehingga perubahan pustaka ini membuat daftar yang tidak pernah diperiksa setuju: - findAllLive (): yang org enumerasi minus sintetik dimiliki DAN voided orgs. * * * * * * * * * * * * * * * * titik tersedak di belakang org daftar, semua jaringan dan jumlah diagnostik, sekarang membacanya. FindAllExcludingFake Owned () tetap jadi layanan dibangun sebelum ini masih kompilasi. - FindAllByVerifiedDomain: domain yang voided org tidak lagi memecahkan, jadi berhenti menerima sinyal dan registrasi. - FindOwnedTitlesByOwnerIds / find DistinkOwnerUserids: Exec2Exec daftar no nama lagi voided organisasi sebagai siapa pun. - Organisasi. voidedAt / voidedByUserId: yang voided dan kapan, untuk konsol tab Void. Tidak pernah serialisasi. Kolom yang diterapkan ke basis data aktif sebelum commit ini * * * * * * * * * * * * * * dalam layanan security). - Organisasi. Adalah Voided (): membaca keadaan rekaman, tidak pernah disimpan dua kali. - Umum org PATCH tidak lagi menerima recordState: void dan restore adalah hanya penulis dari _ aktif, sehingga pengaturan menyimpan yang gema baris belakang tidak dapat diam-diam mengembalikan sebuah org voided.

  7. · kamo-internal

    Judul Topik di drop-down bar duduk di piring gelap merek

    Nama sendiri menu di atas dan setiap bagian yang menuju (Dukungan "Dukungan Daring", "Bugs & Perbaikan, "Training"; Docs '"Create new") sekarang duduk di sepiring bulat organisasi primer, gelap, dalam putih penuh - sehingga judul dibaca sebagai label atas baris daripada satu lebih baris untuk klik. Sorot hover pergi lebih ringan, judul pergi gelap; dua tidak pernah terlihat sama. Plat ini transparan hitam (TOPIC _ PLATE), yang di atas tanah adalah tanah yang dicampur ke arah Hitam: hue sama, apa pun merek. Sebuah tetap "primer di N%" akan keluar lebih ringan dari tanah di bawah menu di ujung kiri bar, di mana seam jalan mulai dari bar 60% campuran. Diukur dalam browser yang nyata lebih dari 11 merek di kedua ujung bar: setiap plat 0.73- 0.80 dari tanah di sampingnya pada setiap saluran (tidak ada pergeseran), putih di atasnya adalah 7.4: 1 atau lebih baik, dan meluncur tidak pernah mendarat di pos. Seorang penjaga dalam navTomenu IsWhite.testts pin keduanya judul ke piring.

  8. · kamo-internal

    Wajah pada pesan hanya dalam percakapan tiga atau lebih

    Wajah di samping setiap pesan mengatakan orang terpisah, dan antara dua orang side a message is drawn on already does that - so the corner face now appear Hanya ketika tiga atau lebih orang berada dalam percakapan (showsFaces), dan tidak pernah sementara menghitung tidak diketahui, sehingga wajah tidak pernah ditampilkan dan kemudian dibawa pergi. - Chat: dihitung dari daftar jendela sudah dipegang, yang mengikuti orang bergabung dan meninggalkan hidup; obrolan dua orang bahkan tidak meminta wajah. - Dukungan, Sosial, Exec2Exec: jumlah server, sekarang pada jawaban wajah (MediaService e722c90) - Setiap orang sekalipun banyak kursi mereka pegang, Termasuk kontak sosial. Nama / atchelinset dan ruang kepala baris yang Membuat ruang untuk wajah berlaku hanya ketika itu ada. - SMS dan Al Chat selalu dua pihak (nomor satu anggota dan satu lainnya; anggota dan asisten), sehingga kode wajah mereka dihapus sepenuhnya - kembali untuk persis apa yang mereka - bersama dengan useOwnPhoto dan Ilyph MessageAvatar, yang mereka gunakan hanya untuk itu.

  9. · MediaService

    Wajah menjawab mengatakan berapa banyak orang dalam percakapan

    GET * * * * * * * * * * * * * * sekarang membawa 'partisipants': konsol menempatkan wajah di samping setiap pesan hanya ketika tiga atau lebih orang berada dalam percakapan, sejak antara dua, sisi pesan ditarik pada sudah mengatakan yang menulisnya. Dihitung dari kursi, bukan penulis - seseorang yang menulis dan meninggalkan terus wajah pada apa yang mereka tulis tanpa berada di percakapan, kurang siapa tidak lagi memenuhi syarat untuk percakapan langsung (daftar obrolan sendiri aturan, yang always keeping the viewer); once per PERSON, because one person can hold few kursi (sebuah Exec2Exec pelanggan duduk dari setiap organisasi yang mereka tulis dari); ditambah kontak percakapan sosial, yang tidak memiliki anggota baris sama sekali. Sebuah web- chat kursi pengunjung adalah anggota SYSTEM org, sehingga dihitung sekali, sebagai mereka.

  10. · kamo-marketing

    Hasilkan sitemaps per permintaan, dan berikan setiap perubahan halamannya sendiri

    / sitemap.xml adalah berkas metadata yang dipraendered pada waktu pembuatan, dalam sebuah wadah yang tidak dapat mencapai KBService atau SecurityService, sehingga setiap menyebarkan dikirim sitmap tanpa bantuan-tengah artikel di dalamnya sampai ISR pertama menyegarkan. Dan / api / siemap menyimpan salinan kedua dari daftar halaman yang telah hanyut dari itu. - / sitemap.xml adalah indeks peta detik yang dihasilkan setiap permintaan. Ini daftar / sitemaps / pages.xml (halaman tulisan tangan, halaman koleksi, posting blog dan setiap artikel dasar knowledge-, dengan hrefleang) dan / sitemaps / changelog / < n > .xml (5.000 entri changelog masing-masing). / api / sitemap dan / api / syemap / changelog / < n > adalah rendering JSON dari modul yang sama, aplikasi / lib / sitemap- source.ts. - Daftar halaman ditulis tangan hidup sekali, dalam aplikasi / lib / sitemap.pages.ts, dan penjaga: saitmap gagal membangun ketika rute statis tidak terdaftar maupun dikeluarkan dengan alasan. - / changelog page pada server:? page = N, with? project = and? type = menjawab oleh SecurityService, dimana penyaring lama hanya menyembunyikan masukan diantara 50 di layar. Setiap halaman adalah kanonikal sendiri; tampilan disaring adalah Noindex, ikuti. - Setiap entri memiliki halaman sendiri di / changelog / < siput >, terhubung ke entri kedua sisi itu. Hal ini kanonikal untuk bahasa Inggris di mana lokal tidak memiliki terjemahan belum, dan ejaan lebih tua dari alamat 308 ke saat ini satu. Strip homepage link ke halaman ini. - Stats dan filter dibaca di server. Rute statistik / api / changelog / statistik mereka datang dari telah melayani membangun kontainer apos; s total 0.

  11. · SecurityService

    Berikan setiap entri publik suatu alamat, dan page daftar pada server

    Changelog publik melayani entri tanpa identifier, sehingga situs pemasaran tidak dapat menghubungkan ke satu atau daftar mereka dalam sebuah saitmap. Setiap entri sekarang membawa siput - judul bahasa Inggris dalam bentuk URL, kemudian dua belas karakter komit hash - dan: - GET * * * * * * * * * * * * * * * * mengembalikan satu entri dengan masukan kedua sisi itu. Ini ditemukan oleh awalan hash saja, sehingga entri yang judul telah berubah masih menyelesaikan di alamat lama, dan penelepon alihkan ke yang sekarang. - GET / api / changelog / public / siemap mengembalikan setiap masukan 's slug, title and date dalam potongan hingga 5.000, membaca tiga kolom per baris. - GET / api / changelog / public menerima 'projek' dan 'type' filter, yang dapat hanya mempersempit daftar publik, dan perintah pada (dateCompleted, id): Lakukan berbagi timestamp tidak lagi swap halaman antara dua permintaan. Sebuah halaman adalah tertutup pada 100 entri. Kueri hidup di PublicChangelogService daripada Commitment LogRepositori, jadi Semua ini tidak perlu dilepas perpustakaan.

  12. · kamo-internal

    Setiap pesan memakai wajah penulisnya, di sudut gelembung

    Dalam setiap jendela popup percakapan - Chat, Dukung, Exec2Exec, Sosial, SMS, AI Chat - setiap pesan sekarang membawa 16x16 foto yang tumpang tindih atas gelembung atas - kiri sudut untuk pesan di sebelah kiri dan atas sudut kanan untuk satu di sebelah kanan. Setiap pesan, tidak hanya yang pertama dari run: wajah lama jendela Chat di baris header hilang, dan nama / atclastlines inset sehingga wajah tidak pernah duduk pada surat pertama mereka. Inisial hanya ketika orang tidak memiliki foto. Wajah tiga - nilai (MessageAvatar): URL adalah foto, dicoba sebagai varian _ sm dan kemudian sebagai full- size file (varians kecil adalah server- side opsional; lebih tua kekurangan uploads (Mereka) kosong adalah inisial; tidak terdefinisi - belum diketahui - adalah cakram kosong, jadi seseorang dengan foto tidak pernah berkedip sebagai inisial sementara itu mendongak. Dari mana foto-foto itu berasal. Jendela yang digunakan untuk membaca hanya milik penampil anggota direktori (anggota tim AKTIF dari signed-in org), begitu plain anggota, seluruh sisi lain dari tiket dukungan atau percakapan Exec2Exec, dan siapa saja yang telah meninggalkan kelompok ditarik sebagai inisial dengan foto pada mereka profil. Sekarang satu toko per percakapan (app / lib / chat / sessionFaces.ts) baca MedidiaService 's new GET * * * * * * * * * * * * * * * - Semua orang di percakapan DAN setiap orang yang pernah menulis di dalamnya, dari profil mereka sendiri, pada host konsol dapat dimuat - melalui berkas rute sendiri (/ api / media bukan prefiks proxied). Pesan pendatang baru menanyakan sekali lagi; seseorang server masih tidak menutupi, atau semua orang sementara MediaService yang lebih tua tidak bisa menjawab, kembali ke direktori pencarian jendela yang digunakan sebelumnya. Baris yang tidak boleh memakai wajah anggota mereka disimpan di bawah: - pengunjung web- chat (disimpan di bawah anggota SYSTEM org, pemilik) mendapat initial pengunjung; - kontak sosial (disimpan di bawah pemilik koneksi) mendapatkan foto mereka penyedia yang diberikan, melalui proksi gambar. SMS: SMS dikirim adalah milik penampil (percakapan milik satu anggota nomor); diterima yang memakai foto kontak dari direktori header membaca, inisial mereka, atau tanda telepon untuk nomor tidak ada disimpan di bawah. Al Chat: foto anggota pada apa yang mereka tanyakan; asisten, yang tidak memiliki profil, memakai sinar AI. Baris dalam daftar 4px-packed tanpa garis nama di atas mendapatkan 4px headroom: diukur dalam Chrome nyata, wajah jika tidak duduk 1-2px dari timestamp dari pesan sebelumnya.

  13. · kamo-internal

    Tab Permintaan Tanda Tangan, dan simpan kolega di penyunting template

    Permintaan Tanda Tangan, antara Templat dan Umum di manajer Dok: setiap dokumen template koleksi yang dikirim untuk tanda tangan, dalam kisi paged di server dan dibagi menjadi tiga ember (Tidak Dieksekusi, Sebagian Dieksekusi, Sepenuhnya Dieksekusi), masing-masing menunjukkan berapa banyak yang baru untuk anggota ini. Tab menunjukkan total yang baru. Melihat ember membersihkan hitungan untuk anggota ini Hanya, dan tab terbuka pada ember pertama memegang sesuatu yang baru. Kolom: dokumen dan siapa mengirimnya, penanda (cincin per penandatangan di warna dimana mereka berdiri), x dari y ditandatangani, status, dikirim, aktivitas terakhir dan Dieksekusi sepenuhnya. Setiap baris dapat mendorong semua orang masih menunggu, download dijalankan dokumen, sertifikat pelengkapan atau keduanya sebagai ZIP, dan buka permintaan. Laci permintaan menambahkan sentuhan per signer, apa yang terjadi ketika, dan menarik permintaan dengan alasan. Penyunting template kini mencatat bahwa ia membuka templat (detak jantung untuk menyelamatkan rekan atau mengembalikan bahwa file mencapai itu, dan dikatakan yang membuat perubahan. Topiknya adalah dibangun dari anggota id sebagai nomor JS, yang putaran ID melewati 2 ^ 53, sehingga kecuali pemberitahuan tidak pernah tiba. Sekarang menggunakan string id.

  14. · ESigService

    Permintaan tanda tangan bagi manajer Dok, dengan jumlah baru per anggota

    Manajer Dok mendapat tab Tandatangan: setiap dokumen yang dikoleksi template dikirim keluar untuk tanda tangan, dalam tiga ember dengan tanda tangan (tidak ada, beberapa, atau semua orang telah menandatangani), masing-masing dengan berapa banyak yang baru untuk anggota ini. / api / esig / request daftar sebuah bucket satu halaman pada suatu waktu, diurutkan dan dicari dalam database. / jumlah memberikan total setiap ember dan jumlah baru, dan / terlihat catatan bahwa anggota melihat ember. Apa yang setiap anggota telah melihat tinggal di esign _ request _ views * * * * * * * * * * * * * yang diterapkan oleh tangan), keyed oleh anggota, koleksi dan ember. Sebuah permintaan baru dalam ember ketika Masuk ke ember itu setelah anggota terakhir melihat ke sana. Setiap permintaan: mengambilnya, menyenggol sinyal masih menunggu (a re-invite with a baris pengingat, paling lama satu jam per sinyal), tarik, dan unduh dokumen yang dieksekusi, sertifikat pelengkapan, atau keduanya sebagai ZIP. Membaca membutuhkan VIEW _ DOCUMENTS; menyenggol dan menarik perlu EDIT _ DOCUMENTS. A permintaan hanya dapat dicapai melalui template dalam koleksi anggota dapat Lihat, di izin mereka.

  15. · DocsService

    Simpan mencapai setiap rekan dengan template terbuka

    Simpan berkas template hanya memberitahu anggota yang menyimpannya, jadi seorang kolega dengan template yang sama yang dibuka terus menempatkan daerah di atas halaman berkas telah dipindahkan pada dari. Penyunting template kini mengatakan ketika memiliki template terbuka: POST * * * * * * * * * * * * * * * setiap 30 detik sementara itu, DELETE ketika Tutup. OpenEditorRegistry menyimpannya di Redis sebagai satu set terurut per dokumen (anggota - > selang waktu, 95 s), sehingga editor yang lenyap tanpa tetes menutup keluar dengan sendirinya. Sebuah menyimpan menerbitkan satu frame per anggota dengan template terbuka, masing-masing pada yang anggota sendiri topik, dan mengatakan siapa yang membuat perubahan. Jam tangan memeriksa bahwa anggota dapat membaca dokumen, cara setiap membaca tidak. Sebuah pemulihan sekarang memberitahu rekan-rekan juga, dengan versi desain itu dibawa kembali, sehingga editor mereka mengisi ulang bidang serta halaman.

  16. · MediaService

    Wajah untuk setiap pesan di setiap jendela obrolan

    GET * * * * * * * * * * * * * * jawaban, untuk satu percakapan, foto untuk menggambar di samping setiap pesan: semua orang di atasnya sekarang Dan semua orang yang pernah menulis (Pada hari itu) menjadi Badal dari lafal Idzaa berikut Jawabnya (ada orang-orang yang keluar dari kubur) yakni orang-orang kafir. keanggotaan apakah mereka memiliki foto, sehingga konsol dapat memberitahu "tidak ada foto: inisial "dari" belum ditanya tentang belum ". Foto adalah Exec2ExecFace.memberPhoto - foto profil anggota, lain orang sendiri - dibangun pada hidup penampil 's theme host, yang konsol 's img-src memungkinkan. Sebuah percakapan sosial juga nama kontaknya (bukan anggota sama sekali) sebagai 'counterpart', dengan penyedia foto. Mengapa server: sumber hanya konsol adalah anggota penampil sendiri direktori - anggota tim ACTIVE dari signed-in org - begitu polos Anggota, seluruh sisi lain dari tiket dukungan atau percakapan Exec2Exec, dan siapa pun yang telah meninggalkan kelompok semua digambar sebagai inisial dengan foto di profil mereka. Para per- pencarian anggota itu bisa jatuh kembali pada menolak orgs lain. Siapa yang mungkin bertanya adalah siapa yang mungkin membaca transkrip (sebuah sinyal-dalam anggota, sebuah sesi yang ada): sebuah wajah mengatakan kurang dari pesan di sampingnya. Juga: riwayat yang dibaca kini tag apa yang ditulis kontak sosial sebagai SOCIAL _ VISITOR Di bawah nama kontak, seperti frame hidup selalu memiliki. Baris tersebut disimpan di bawah anggota pemilik koneksi, sehingga percakapan dimuat ulang mengajukan kata-kata kontak di bawah nama pemilik, di sisi pemilik ketika pemilik adalah membaca - dan akan menempatkan foto pemilik di samping mereka.

  17. · MediaService

    Sebuah pertemuan link dalam percakapan, selalu pada platform Kamo Meet

    POST * * * * * * * * * * * * * * * * memungkinkan kedua sisi dari percakapan Exec2Exec tambahkan link pertemuan, dibelakang gerbang yang sama dengan mengirim pesan. Pertemuan dibuat sebagai Organisasi PLATFORM, di Kamo Meet, di platform live domain (meet.kamocrm.com / < room >), siapapun yang bertanya - klien sendiri white- label bertemu tuan rumah atau Zoom akan menempatkan pertemuan dengan KamoCRM Eksekutif perusahaan KamoCRM hanya berbicara dengan penelepon sebagai penciptanya. Hal ini lalu diposting sebagai pesan penelepon melalui Exec2ExecService. posting, sehingga mencapai kedua belah pihak live, raised, badged and push; a pascode, when the platform 's room need one, goes beside it. * * * * * * * * * * * * * * * memecahkan Kamo Meet untuk org penyedia apapun yang dimilikinya dipilih (pengaturan pertemuannya masih berlaku, kredensial penyedia lain tidak), dan * * * * * * * * * * * * * * * menciptakan melaluinya; jalan penciptaan yang ada tidak berubah. Tidak ada SART _ MEETING hak diminta dari penelepon: yang benar adalah tentang organisasi mereka sendiri pertemuan, dan yang satu ini bukan milik mereka.

  18. · kamo-internal

    Tambahkan link pertemuan ke percakapan - selalu platform Kamo Meet

    Kedua sisi jendela Exec2Exec kini membawa kamera jendela obrolan lain memiliki: Tambahkan pertemuan link. Pertemuan ini dibuat oleh MediaService sebagai organisasi PLATFORM, di platform Kamo Meet alamat (meet.kamocrm.com /...), sisi mana menekan itu - tidak pernah klien sendiri white- label memenuhi host atau penyedia - dan diposting sebagai pesan presser, sehingga tiba di kedua jendela hidup, dibesarkan dan rusak seperti pesan apapun. Sambungan dalam transkrip Exec2Exec kini dapat diklik, melalui linkifyPlainText yang sama setiap jendela obrolan lain menggunakan (diekspor dari MessageList daripada disalin).

  19. · kamo-internal

    Filter meja, wajah dan keberadaan; sebuah lencana Exec2Exec yang membakar

    Pusat Interaksi > Percakapan > Exec2Exec mendapat dua filter di bawah subtab: Pemilik organ (Semua 124; Organisme kurang 124; Org Pemilik) dan Order By (Pesan Terakhir 124; Tanda Masuk Terakhir) dengan ASC / DESC switch. Ingat untuk sesi peramban seperti setiap tempat di panel, dan segar sesi dibuka di All Alu14; Laterest Sign In £124; Desc. Seseorang yang tidak punya teman kencan. Setiap baris sekarang menunjukkan foto klien sendiri (inisial saja ketika mereka tidak memiliki), apakah mereka online, ketika mereka terakhir kali masuk dan ketika percakapan terakhir diucapkan di - di zona waktu anggota sendiri - di samping jumlah yang belum terbaca. Meja membaca sendiri sekali menit sementara itu terlihat, sehingga kehadiran tidak pergi basi. Jendela Exec2Exec menarik setiap foto eksekutif KamoCRM dari profil anggota KamoCRM mereka dalam strip peserta, dan foto klien dalam header meja, dibawa dari Baris daftar atau dari bingkai yang mengangkat jendela. NavTop 's Exec2Exec kontrol, untuk klien dan untuk meja sama, luka bakar sementara apa pun adalah unread: komet emas, cahaya putih dan langit balap putaran baut, gelombang kejut emas, bolt menendang setiap beberapa detik dan menghitung pemukulan. Under reduce motion it holds masih dan tetap menyala, dan jumlah diucapkan dalam nama tombol itu. Hitung-hitungan sudah live over the unread WebSocket.

  20. · kamo-internal

    Berkas dan Templat, riwayat versi, dan pengaturan versi

    Anggota meminta dokumen yang menjaga sejarah mereka seperti organisasi memilih, dan untuk contoh yang berdiri pada mereka sendiri bukannya dari Original / Diubah split. Layanan sudah memegangnya (satu record per dokumen, img _ version, sebuah mode per org dan per kategori); Ini adalah aplikasi web di atasnya. Manajer dokumen - Berkas dan Templat tab menggantikan Asli dan Diubah. Templat adalah dokumen dengan lapisan template, dibuat dari berkas (atau yang lain template) oleh "Tambah Lapis Template" dan terpisah dari itu dari kemudian. - Aksi mendayung, dalam urutan yang diminta. Berkas: Unduh, Sunting berkas, Tambah lapis template, Tambahkan ke binder, Share, Kirim ke tempat sampah. Tambah Templat Sunting template setelah Sunting berkas. Sebuah tindakan anggota tidak memiliki hak untuk tidak ditampilkan; satu dokumen tidak dapat mendukung (a PDF dalam classic penyunting, halaman yang sedang disiapkan) ditampilkan dinonaktifkan dengan alasannya. - Kolom Versi: pil membaca v4, dengan titik amber ketika Manual salinan kerja telah pindah melewati snapshot terakhir, membuka sejarah. - Berbagi ditawarkan dalam setiap koleksi, tidak hanya My Docs. Baris Tempat Sampah dapat dipulihkan. Kaki menghitung adalah tab terbuka. Laci riwayat versi - Halaman versi yang dipilih di atas panggung (sebuah dek dari versi di bawah ini, halaman per halaman, sebuah template 's fields drawn over them) dan Versi pada rel, pertama terbaru, dengan apa yang dihasilkan masing-masing dan siapa. - Bandingkan keadaan saat ini di versi sebelumnya. - Ambil snapshot (Manual), Kembalikan (dikonfirmasi dalam kata-kata mode kategori: apa yang menjadi pemulihan, dan apa yang akan dibuang), Nama suatu versi, Unduh versi apapun, Unggah versi baru dengan kemajuan. Penyunting template - Sunting berkas yang mendasari membuka berkas template sendiri dalam classic Editor di tab lain. Setiap menyimpan ada tiba di atas topik penyelamatan; Halaman-halaman yang diambil kembali dan ditarik kembali di bawah ladang-ladang, dengan tidak ada reload layar penuh dan tidak ada yang hilang, dan pil versi pindah ke nomor baru. Sebuah chip mengatakan file terbuka di tempat lain dan membawa anggota kembali ke sana. - Pil versi dan sejarah laci mengganti menunjuk-hanya panel versi: versi template adalah file dan bidangnya bersama-sama, dan mengembalikan keduanya. - Pratilik halaman berada pada id isi, sehingga cache peramban dapat tidak pernah menampilkan halaman dokumen telah pindah dari; sebuah PDF masih sedang dirender ditunggu untuk daripada dilaporkan sebagai kesalahan. Pengaturan - Manajemen Dokumen > Umum: standar organisasi versi (Otomatis, Gambar Manual, Mati), ditarik sebagai apa yang masing-masing tidak ke sejarah, dan kategori yang mengatur mereka sendiri. - Konfigurasi Kategori: ikuti standar atau pilih sendiri; kategori kunci platform ke Otomatis mengatakan begitu. - Tabel kategori memperoleh kolom berversi. Dictionary string mendarat pertama dalam kamo- terjemahan - kamus 9b83d282.

  21. · MediaService

    Wajah di meja - foto klien, tanda terakhir di dan kehadiran

    Daftar meja sekarang membawa, untuk setiap klien, foto mereka sendiri (anses.avatar-id, dibangun di atas host tema hidup operator - satu-satunya konsol mereka beban gambar dari), ketika mereka terakhir ditandatangani di mana saja di platform (users.last _ login, parsed sekali dan dikirim dalam bentuk dari lastActivityAt), dan apakah salah satu anggota baris mereka memegang soket hidup. Strip peserta mendapatkan setiap foto eksekutif KamoCRM dari profil anggota KamoCRM mereka (avatar anggota, lain orang itu), dibangun untuk konsol penampil, dan frame yang mengangkat jendela meja membawa foto klien di samping nama mereka. Semua itu hidup dalam satu komponen Exec2ExecFaces kecil: dimuat oleh id daripada dari yang malas Asosiasi JOINED (yang proxy tidak memiliki lokasi foto), satu avatar dibaca dan satu pencarian kehadiran per halaman, dan setiap kegagalan degrade ke inisial / offline daripada gagal dalam daftar.

  22. · DocsService

    Baca lapis template dengan versi desain

    Sejarah versi ini menggambarkan sebuah bidang template di setiap halaman versi. Ini meminta mereka melalui versi dokumen (/ {imgId} / {n} / design), dan salinan kerja template tidak memiliki: bidangnya disimpan setelah terakhir snapshot, pada versi desain belum ada nama versi dokumen, jadi keadaan saat ini tidak dapat ditarik di bawah Manual versioning. GET * * * * * * * * * * * * * * membaca lapis dengan versi desain, di belakang gerbang yang sama dengan yang lain sejarah. Berkas tak memiliki lapis dan jawaban tanpa apapun.

  23. · ConversionService

    Unggah versi baru dari suatu dokumen

    Satu-satunya cara untuk mengubah berkas editor dokumen tidak dapat membuka - sebuah PDF di atas semua, yang adalah apa yang paling Templat yang. POST * * * * * * * * * * * * * * * * mengambil file baru, scan untuk malware dan content- alamat itu persis sebagai upload pertama, dan tangan perubahan ke * * * * * * * * * * * * * * * (kamo- shared-library 6d0523e8): dokumen menyimpan nya id, name, share, binders, and template layer, and its catector 's versioning mode memutuskan apa yang menyimpan dari apa yang diadakan - versi baru di bawah Otomatis, salinan kerja bergerak di bawah Manual, sebuah overwrite di bawah Dinonaktifkan. Perubahan PDF dan thumbnail halaman dibuat untuk bita baru oleh pipa yang sama untuk upload. EDIT _ DOCUMENTS, bukan CREATE _ DOCUMENTS: tidak ada yang baru dibuat. Kebijakan ekstensi kategori berlaku * * * * * * * * * * * * * publik untuk ini), dan jenis dibaca dari bytes - sebuah versi baru mungkin sebuah format yang berbeda, dan ekstensi nama mengikutinya. Menolak untuk sebuah paket hukum ESECUTED - catatan yang ditandatangani HR mengeluarkan ke anggota, yang tidak ada yang memberikan versi baru, bahkan bukan subjeknya - melalui IssuedArtifactLookup, sebuah read-hanya lokal repositori melalui entitas penempatan bersama; dan untuk koleksi hipotek partai yang terlalu umum gambar titik akhir tidak pernah menyentuh. esign.repos sekarang dipindai di sini, karena versi dari sebuah template Mencatat versi desainnya.

  24. · ESigService

    Menyimpan ruas template adalah versi dari template

    Templat adalah dokumen dengan lapisan ruas di atasnya, dan versi dari keduanya adalah bagian: byte dan lapisan itu. Telah mencapai riwayat versi (kami- shared-library 6d0523e8, docsservice 3ef26d1); ini adalah setengah lainnya. SaveDesign dan revertDesign hand the change to * * * * * * * * * * * * * * * * * in the same transaksi sebagai tulisan desain, sehingga versi tidak pernah nama desain yang digulung kembali. Apa yang ditulis adalah mode versi kategori: di bawah Otomatis versi baru dari template (satu anggota menyimpan dalam waktu sepuluh menit tumbuh satu versi, sehingga menekan Simpan setelah setiap bidang adalah masih satu versi dari pekerjaan), di bawah Manual salinan kerja bergerak, di bawah Dinonaktifkan apa-apa. A layer keyed pada sesuatu yang bukan sebuah dokumen id tidak memiliki sejarah untuk menulis, dan menyimpan seperti sebelumnya.

  25. · DocsService

    Berkas dan templat, yang disunting, dengan versi yang disimpan setiap kategori

    Sebuah dokumen adalah dua catatan: upload, yang tidak ada yang diedit, dan satu salinan yang dimodifikasi diturunkan pertama kali ada yang membukanya di kedua editor. Manajer dokumen menunjukkan pasangan sebagai "Originals" dan "Diubah", dan anggota menganggapnya membingungkan. Sebuah dokumen adalah salah satu catatan sekarang, dan apa setiap perubahan menjaga dari isi yang menggantikan adalah mode versioning kategori (kamo- shared-library 6d052e8): Dinonaktifkan, Otomatis, atau Manual. Menyunting - / buka edits dokumen itu sendiri - sebuah berkas, atau sebuah template sendiri bytes ("Edit Underlying File"). / baru membuka dokumen yang dibuatnya. Tidak mendapat salinan lagi. - A classic save goes through * * * * * * * * * * * * * * * versi baru di bawah Otomatis (token WOPI sekarang membawa sebuah id sesi, jadi salah satu yang duduk yang otomatis adalah salah satu versi), salinan kerja bergerak di bawah Manual, sebuah overwrite di bawah Dinonaktifkan. - Pemberitahuan simpan sekarang kebakaran untuk setiap dokumen yang byte benar-benar berubah - bukan untuk sebuah re- dikirim berkas - dan membawa versi yang ditulis; pengubah template membuka pada dokumen menggambar ulang. - Simpan Seperti membuat sebuah FILE baru dan editor membawa di dalamnya. - Simpan masih tiba untuk salinan klasik ditinggalkan oleh model lama (tab dibuka sebelum menyebarkan) tanah pada asli bukannya baris daftar tidak ada. Templat - POST * * * * * * * * * * * * * * * * ("Tambah Lapis Template"): template baru berbagi sumber byte dan tidak ada yang lain dari saat itu, dalam koleksi yang sama, folder dan tingkat akses. Ditandai dari templat yang dapat memuat ruas template tersebut: penanda disalin dan setiap SignerUid dalam desain ditulis ulang ke salinan. Lapisan yang bernama setelah itu, dan pertama catatan versi apa itu dibuat dari. Mengambil _ DOCUMENTS - itu membuat dokumen. - / form- filable membuka sebuah template saja; sebuah berkas menjawab 409 NOT _ A _ TEMPLATE. Versions - * * * * * * * * * * * * * * * * * * * - sejarah; snapshot (dengan nama opsional); ganti nama; kembalikan; dan setiap versi download, PDF, page thumbnail and template- layer design. Gerbang yang sama dengan path byte pencitraan: VIEW / EDIT dokumen, organisasi dan izin, HR-diterbitkan paket gerbang, hipotek per- partai koleksi, dan akses PHI audit pada setiap byte dibaca. Versi bytes tidak dapat diubah, jadi mereka are cache as such, and a download old version is named "Name (v3) .ext." Daftar dan pengaturan - Daftar adalah satu query (Dokumentment ListQuery, melalui suatu repositori spesifikasi lokal): yang lama filter memori in- setelah paging bisa menjatuhkan jenis langka - sebuah template di antara 300 berkas - dari halaman. hanya pilih dua tab; baris-baris membawa bendera template, id isi dan ringkasan versi. Klasik salinan model tua kiri tidak pernah terdaftar. - Pengaturan: MENDAPATKAN 124; PUT / imaging / settings / versioning untuk standar organisasi; assole-config dan kategori membawa setiap kategori menimpa, apa yang menyelesaikan, dan apakah itu terkunci. Menulis take manage _ DOCS _ SETTINGS, which the settings page always needed and these endpoints never cek. - Klasik menyimpan sekarang thumbnail halaman kunci pada dat dokumen sendiri, seperti uploads selalu lakukan; Pembaca kuku terlihat di kedua tempat, jadi dokumen disimpan sebelum hari ini masih menunjukkan halaman mereka. Skema: * * * * * * * * * * * * * * * (Terapan). Data: * * * * * * * * * * * * * * - run sekali ini membangun dikerahkan: 5 baris turunan dengan lapisan template menjadi templates, 2 versi klasik lipatan ke mereka Asli sebagai v2, dan setiap salinan klasik pensiun.

  26. · kamo-shared-library

    Versi dokumen, dan mode versi yang dipilih organisasi

    Dokumen adalah dua catatan: upload, yang tidak ada yang diedit, dan satu salinan yang dimodifikasi diturunkan pertama kali seseorang membukanya untuk mengedit. Anggota menemukan pasangan membingungkan, dan cocok tidak ada yang aturan aktual - satu organisasi ingin setiap editing terus, lain ingin satu salinan dan tidak ada sejarah, Ketiga ingin membekukan sebuah negara dengan sengaja dan terus bekerja di atasnya. Sebuah dokumen adalah salah satu catatan sekarang, dan apa yang terjadi pada konten sebelumnya ketika perubahan adalah mode versioning dipilih per organisasi (img _ org _ asle.versioning _ mode) dan setiap kategori dokumen * * * * * * * * * * * * * yang menang): - DISABLED: perubahan overwrites. Satu salinan, tidak ada sejarah. - AUTO: setiap perubahan adalah versi berikutnya dan yang lama disimpan. Satu sesi classic- penyunting adalah satu versi bagaimanapun sering otomatis; satu bagian templat disimpan dalam waktu sepuluh menit adalah satu versi juga. - MANUAL: perubahan overwrite salinan kerja di atas snapshot terakhir; sebuah snapshot anggota untuk menjaga sebuah negara secara permanen dan membawa pada editing di atasnya. Upload adalah snapshot pertama. Unset di mana-mana, kategori adalah AUTO - satu-satunya mode yang kehilangan apa-apa, sebagai model yang menggantikan tidak pernah kehilangan upload. Kategori yang dokumen adalah catatan (overwrite off dan tidak dapat diselesaikan, misalnya Pasien Charts) terkunci AUTO. - Impgversion / img _ versions: sebuah versi adalah sebuah PENUNJUK ke kontent- yang dialamatkan img _ dats baris dokumen diadakan, plus template-layer versi design pada template. Menjaga satu biaya apa-apa sampai byte bergerak tanpa itu. - Dokumenter Versioning Layanan: satu jalur tulis untuk "isi dokumen ini berubah" - applyContentChange, recordTemplateLayerChange, snapshot, restore, recordBranch - sehingga mode berarti sama apakah perubahan berasal dari menyimpan klasik (DocsService), upload baru atas dokumen (Layanan Percakapan) atau suatu lapis template save (ESigService). Versions ditulis lazily: sebuah dokumen yang tidak pernah berubah tidak memiliki apapun, dan yang pertama terus-menerus perubahan menulis v1 dari negara sebelum itu, sehingga sebuah organisasi dapat mengubah versioning pada setiap saat tanpa backfill. Pemulihan sendiri adalah versi baru di bawah AUTO; sejarah tidak pernah ditulis ulang. E-sign repositori adalah Objectprovider, karena tidak setiap layanan scan mereka (SharedLibBeanSafetyTest). - Img.isTemplate () atas yang ada memiliki _ form _ layer flag, dan isRetiredDerivecopy () untuk Klasik menyalin model lama ditinggalkan, yang tidak ada daftar menunjukkan lagi. - * * * * * * * * * * * * * * untuk pil versi pada halaman templates dalam satu query. - * * * * * * * * * * * * adalah publik, sehingga versi baru memenuhi pertama upload aturan. Skema adalah * * * * * * * * * * * * * * dalam layanan dokter, diterapkan ke cluster sebelum commit ini: img _ org _ assoc dibaca pada setiap upload, sehingga kolom harus ada terlebih dahulu.

  27. · kamo-internal

    A Nav Logo Overlay and a Careers Logo Overlay

    Perilaku & Labeling memperoleh dua logo lebih overlay dalam kosakata enam lainnya menggunakan - token, diselesaikan terhadap palet org sendiri: - "Nav Logo Overlay", langsung di bawah "Home Page Logo Overlay". Lukisan logo sederhana di puncak nav rail primer (NavPri) - mana tandai rail show, perusahaan atau perangkat lunak - runtuh dan diperluas. In- app seperti home page nya, sehingga rides org record through Organ Context: Skema rute org, Organisasi. Dari JSON (yang berjalan dua kali dalam perjalanan ke browser) dan Provider organizer 's props semua membawanya, dan mengambil efek pada menyimpan. - "Careers Logo Overlay", langsung di bawah "Register Logo Overlay". Dicat oleh kamo- karir dari keamanan warna bakes ke theme config.json (10d49e), seperti sign- in, sign- up dan apps ones. Situs itu kembali membaca file per jam, dan petunjuk mengatakan begitu. Juga perbaiki path simpan untuk tiga overlay yang ada: sign-in, sign-up dan aplikasi disimpan tetapi tidak pernah disalin kembali ke negara tersimpan, jadi baris baca-saja menunjukkan pilihan sebelumnya sampai reload, dan edit berikutnya dimulai dari itu. logoOverlayWiring.testts berjalan semua delapan overlay melalui tujuh tempat masing-masing harus muncul (state, load, edit buffer, dirty check, PUT body, post- save sync, both views), check both views list them in perintah yang sama, pemeriksaan en.json memiliki setiap nama dan petunjuk - penjaga i18n tidak dapat melihat kunci halaman membangun dari variabel - dan memeriksa keduanya ThemLogos NavPri mengambil warna. Terhadap LabelManager sebelumnya gagal untuk nav, karir, dan tiga pos- menyimpan syncs. Diverifikasi di Chrome dengan nyata NavPri bundled atas kontexts keras: kotak logo tidak berubah dan siluet mengambil Putih, Hitam dan Kedua org yang paling ringan, runtuh dan diperluas. Kebutuhan kamo- shared-perpustakaan 7d80fa7b dan layanan keamanan 10d4a9e untuk dua kolom untuk disimpan; kamus membawa empat string Inggris.

  28. · SecurityService

    Bake situs karir logo overlay ke konfigurasi. json

    kamo- karir melukis logo org dalam header nya dan tidak memiliki Organ Context; itu membaca tema konfigurasi .json di server, file login yang sama, register dan aplikasi mengambil overlay mereka dari. Jadi overlay karir berjalan ada juga, sebagai careersLogoOvercolor: yang TOKEN diselesaikan terhadap palet org di sini, absen ketika org tidak memilih satupun - yaitu bagaimana setiap klien membaca "no overlay". Kebutuhan kamo- shared-library 7d80fa7b * * * * * * * * * * * * * * * yang membangun klon dari utama. Overlay rel navigasi itu, ditambahkan di komit pustaka yang sama, adalah in-app dan mencapai peramban pada catatan org sendiri; tidak ada di sini bakes itu. Verifikasi: main dan seluruh sumber tes set kompile terhadap itu perpustakaan; * * * * * * * * * * * * * * * * * * 14 / 14 (dua baru: kuncinya adalah dilakukan, dan org yang overlay hanya situs sign- up yang tidak mendapatkan kunci karir), Organ ProvisionServiceTest 20 / 20.

  29. · kamo-shared-library

    Logo overlay untuk nav rel dan satu untuk situs karir

    Dua kolom lagi dalam kosakata home _ logo _ overlay didirikan: a token, not a hex, so an org that rebrand keeps an overlay that match warna barunya. Kedua null tanpa backfill - null adalah NONE, yang apa setiap org terlihat seperti hari ini. nav _ logo _ overlay menggambarkan logo sederhana di atas kamo- internal nav utama rel. Kolom sendiri karena rel adalah bayangan gelap warna primer; home page 's white masthead jarang menginginkan hal yang sama teduh. Dikirim melalui Organ Context seperti halaman rumahnya saudara. karir _ logo _ overlay menggambarkan logo header pada kamo- karir. Situs itu tidak memiliki Organ Context, sehingga keamanan bakes warna diselesaikan ke konfigurasi theme .json, login rute, register, dan aplikasi telah mengambil. patchOrganization is an ALLOW-LIST, so both names go there too, and a new tes berjalan setiap overlay halaman pengaturan mengirimkan - tidak hanya kedua - karena sebuah kolom metode tidak disebutkan namanya diterima dengan 200 dan tidak pernah disimpan. Terbukti dengan menghapus dua baris baru: 3 dari 4 kasus gagal. Kolom ditambahkan ke tabel hidup orgs dengan tangan sebelum push ini (ddl- auto bukan apa-apa dan Layanan Inisialisasi tidak digunakan): ALTER TABLE orgs ADD COLUMN JIKA TIDAK EXISTS nav _ logo _ overlay VARCHAR (24); ALTER TABLE orgs ADD COLUMN JIKA TIDAK TERLEKAT karir _ logo _ overlay VARCHAR (24);

  30. · kamo-internal

    Sebuah kepala Exec2Exec diminimalkan menjalankan arus putaran cahaya Riganya

    Sebuah garis untuk eksekutif KamoCRM tidak boleh duduk di dermaga tampak seperti satu obrolan lagi. Its Terminimalkan kepala sekarang membawa energi lingkaran: emas ke putih-bintang busur putaran balap heksagon, counter tipis-saat mengejar cara lain, dan aura emas berdenyut di belakang mereka. Di bawah prefer-reduced- gerakan itu memegang masih sebagai cincin emas cerah. Efeknya adalah properti tingkat tool- (efek hexHeadEffect pada entri platform Exec2Exec), re- disuntikkan dengan ikon pada setiap spawn, sehingga setiap Exec2Exec kepala mendapatkannya dan tidak lain kepala bisa.

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