Memahami eksport ruang kerja Slack
Eksport Slack bukan satu fail. Ia pokok direktori: satu folder bagi setiap saluran, satu fail JSON bagi setiap hari di dalamnya, serta beberapa fail metadata ruang kerja di akarnya. Buka mana-mana fail harian dan anda jumpa tatasusunan objek mesej yang penulisnya ialah kod seperti U04J8K2L9, teksnya dijalin dengan penanda dalam kurungan sudut, dan cap masanya epok Unix berserta mikrosaat, disimpan sebagai rentetan.
Halaman ini memasang semula semua itu menjadi transkrip yang boleh dibaca, satu bagi setiap saluran, mengikut tarikh, dengan nama sebenar. Lepaskan keseluruhan fail .zip — ia dibaca dalam tab pelayar ini dan tidak pernah dimuat naik.
Namanya berada dalam fail yang lain
Inilah satu-satunya perkara yang menjadikan eksport Slack tidak boleh dibaca tanpa perkakas. Mesej mengenal pasti penulisnya dengan id pengguna dan tiada apa-apa lagi. Pemetaan daripada id itu kepada nama manusia tinggal dalam users.json di akar arkib, terpisah daripada setiap mesej yang memerlukannya.
Jadi users.json dibaca dahulu, sebelum mana-mana fail saluran, dan peta yang terhasil dibawa sepanjang penghuraian. Setiap pengguna menawarkan beberapa nama yang mungkin — nama sebenar, nama paparan, pemegang akaun — dan ketiga-tiganya dicuba mengikut susunan itu, kerana nama sebenar yang dikenali pembaca dan nama paparan pula yang Slack tunjukkan apabila ia ditetapkan. Sesetengah eksport turut membenamkan objek user_profile terus pada mesej; apabila ada, ia diutamakan, kerana ia merekodkan nama sebagaimana ia pada masa itu dan bukan sebagaimana ia sekarang.
Mesej bot langsung tiada id pengguna, sebaliknya membawa pengecam bot dan kadangkala nama pengguna. Kes ini dikendalikan berasingan supaya output sesuatu integrasi diberi nama dan bukan muncul kosong.
Penanda milik Slack sendiri
Teks mesej bukan teks biasa. Slack membalut beberapa jenis rujukan dalam kurungan sudut, dan jika dibiarkan ia menyukarkan pembacaan transkrip:
- Sebutan pengguna muncul sebagai
<@U04J8K2L9>. Ini dileraikan terhadap peta pengguna yang sama dan menjadi@namayang boleh dibaca. - Rujukan saluran muncul sebagai
<#C01234ABC|general>, kadangkala dengan nama selepas paip dan kadangkala tanpanya. - Pautan berbentuk
<https://example.com|teks paparan>. Teksnya dikekalkan dengan URL dalam kurungan selepasnya, jadi tiada yang hilang sama ada perkataannya atau destinasinya. - Sebutan siaran seperti
<!here>dan<!channel>menjadi bentuk biasanya. - Entiti HTML. Tanda dan, kurungan sudut dan tanda petik dilarikan dalam sumber dan dinyahkod semula.
Hingar yang berbaloi dibuang
Slack merekodkan peristiwa sebagai mesej bersubjenis. Orang masuk dan keluar saluran, perubahan tujuan dan topik, notis pengarkiban — semuanya duduk dalam tatasusunan yang sama dengan perbualan sebenar. Dalam ruang kerja bersaiz apa pun, ini boleh melebihi jumlah mesej sebenar, terutamanya dalam saluran umum yang semua orang ditambah secara automatik. Ia dikelaskan sebagai mesej sistem dan digugurkan secara lalai.
Ada juga kes mesej yang langsung tiada teks: muat naik fail, atau siaran bot yang kandungannya berada sepenuhnya dalam blok lampiran. Lampiran diperiksa untuk teks sebelum mesej itu dibuang, jadi integrasi yang menyiarkan outputnya sebagai lampiran tetap menyumbang kandungannya dan bukan lenyap begitu sahaja.
Memasang semula hari demi hari
Oleh sebab setiap saluran dipecah kepada satu fail bagi setiap hari, sejarah sesebuah saluran perlu dikumpul semula. Fail diproses mengikut susunan terisih, yang bagi fail bernama tarikh bermakna mengikut kronologi, dan mesej dilampirkan ke dalam satu transkrip bagi setiap saluran. Hasilnya satu perbualan berterusan di bawah tajuk yang menamakan salurannya, dan bukan beberapa ratus serpihan.
Fail yang bukan data saluran — senarai saluran, log integrasi, pelbagai indeks mesej terus — dilangkau. Apa sahaja yang gagal dihurai dilangkau dan bukan menggagalkan arkib, jadi satu hari yang rosak tidak merugikan anda seluruh ruang kerja.
Untuk apa ini digunakan
Memelihara sejarah sebelum ruang kerja percuma mencecah had mesejnya dan perbualan lama tidak lagi boleh dicapai. Berpindah ke alat lain sambil meninggalkan sesuatu yang boleh dibaca. Menjawab permintaan pematuhan atau permintaan undang-undang dengan transkrip dan bukan direktori JSON. Memulihkan perbincangan di sekitar keputusan yang tidak pernah dicatat di mana-mana. Menyuap saluran projek kepada model untuk membina semula apa yang berlaku sepanjang enam bulan.
Mendapatkan eksport
Pemilik atau pentadbir ruang kerja boleh menghasilkannya daripada tetapan ruang kerja, di bawah Import/Eksport Data, kemudian Eksport. Eksport standard meliputi saluran awam. Saluran peribadi dan mesej terus memerlukan tahap eksport yang berbeza dan, di kebanyakan bidang kuasa, sebab yang berdokumen.
Dibaca secara setempat
Eksport ruang kerja antara fail paling sensitif yang dihasilkan sesebuah organisasi. Ia mengandungi perbincangan dalaman, nama pelanggan, bukti kelayakan yang orang tampal ke saluran yang sepatutnya tidak, dan pendapat berterus terang semua orang yang terlibat. Bagi kebanyakan syarikat, memuat naiknya ke penukar pihak ketiga ialah insiden yang perlu dilaporkan.
Tiada apa di sini dihantar. Arkib dibuka dan dihurai oleh JavaScript dalam tab pelayar ini, dan hanya output yang boleh dibaca dipaparkan. Tiada pelayan menerima fail itu, jadi tiada soal penyimpanan untuk dijawab dan tiada apa untuk diminta pemadamannya.
Platform lain dikendalikan pada halaman eksport perbualan umum.