0

ตัวตรวจสอบความแตกต่าง ENV

เปรียบเทียบไฟล์ .env สองไฟล์ (การจัดเตรียมเทียบกับการใช้งานจริง ก่อนและหลังการปรับใช้) และดูว่าคีย์ใดถูกเพิ่ม ลบออก หรือเปลี่ยนแปลง โดยมีค่าที่ดูเป็นความลับจะถูกปิดบังโดยอัตโนมัติ

Buy Me a Coffee at ko-fi.com
กำลังประมวลผล... 0%
กำลังแยกวิเคราะห์ทั้งสองไฟล์
ความแตกต่างของคอมพิวเตอร์
ปกปิดความลับ
เสร็จแล้ว

ผลลัพธ์

เมื่อเปรียบเทียบไฟล์ .env แบบ staging กับการใช้งานจริง หรือการกำหนดค่าปรับใช้ในปัจจุบันกับของสัปดาห์ที่แล้ว มาดูกันว่าเหตุขัดข้องที่แท้จริงเริ่มต้นขึ้นได้อย่างไร: DATABASE_URL ที่หายไป, PORT ที่เปลี่ยนแปลงอย่างเงียบๆ, คีย์ API ที่ถูกหมุนเวียนในสภาพแวดล้อมหนึ่งแต่ไม่ได้หมุนเวียนในสภาพแวดล้อมอื่น การวางทั้งสองไฟล์ลงในข้อความ diff ทั่วไปไม่ได้ช่วยอะไรมากนัก โดยจะแสดงให้คุณเห็นว่าบรรทัดใดที่แตกต่างกัน ไม่ใช่ตัวแปรสภาพแวดล้อมที่เปลี่ยนแปลงจริง ๆ และจะพิมพ์ค่าลับทุกค่าอย่างมีความสุขทันทีที่คุณแบ่งปันผลลัพธ์กับเพื่อนร่วมทีม

เครื่องมือนี้แยกวิเคราะห์ทั้งสองไฟล์ตามที่ dotenv อ่านจริง — หนึ่งคู่ KEY=value ต่อบรรทัด, # ความคิดเห็น และบรรทัดว่างที่ถูกละเว้น, ค่าที่มีเครื่องหมายคำพูดเดี่ยวหรือคู่ไม่มีเครื่องหมายคำพูด (โดยที่ \n ไม่ได้ Escape อยู่ภายในเครื่องหมายคำพูดคู่เท่านั้น ทุกประการตามแบบแผน dotenv ระบุ) และคำนำหน้าการส่งออก KEY=value ที่เป็นตัวเลือก ยอมรับวิธีที่ไฟล์ env ที่มาจากเชลล์ใช้งาน แต่ละไฟล์จะกลายเป็นแมปคีย์-ทู-ค่าที่สะอาดตา และแมปทั้งสองจะแตกต่างกันตามคีย์: มีเฉพาะในไฟล์ A เท่านั้นที่ถูก 'ลบ', ปรากฏเฉพาะในไฟล์ B เท่านั้นที่ถูก 'เพิ่ม', ปรากฏในทั้งสองค่าที่แตกต่างกันคือ 'เปลี่ยนแปลง' และค่าที่เหมือนกันคือ 'ไม่เปลี่ยนแปลง' และซ่อนไว้ตามค่าเริ่มต้น เพื่อให้ตารางยังคงเน้นไปที่สิ่งที่แตกต่างจริง ๆ

คุณสมบัติที่ทำให้สิ่งนี้ปลอดภัยในการใช้งานจริงกับความลับที่แท้จริงคือการปิดบังอัตโนมัติ ทุกค่าที่แสดงในตาราง diff จะถูกตรวจสอบโดยเทียบกับสัญญาณอิสระสองตัว: ชื่อคีย์ของมันดูเหมือนเป็นความลับหรือไม่ (ไม่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ที่ตรงกับ KEY, SECRET, TOKEN, PASSWORD, PRIVATE หรือ CREDENTIAL) หรือตัวค่านั้นมีเอนโทรปีของแชนนอนสูงหรือไม่ — เป็นการวัดข้อมูลทางทฤษฎีเดียวกัน (-Σ p(c)·log2(p(c)) เหนืออักขระของค่า) ที่ทำเครื่องหมายคีย์ API, โทเค็น และรหัสผ่านแบบสุ่มเป็น แตกต่างจากคำธรรมดาในทางสถิติแม้ว่าชื่อคีย์จะไม่บอกเป็นนัยก็ตาม สัญญาณใดสัญญาณหนึ่งเพียงพอที่จะปกปิดค่าจนถึงอักขระสองตัวแรกและอักขระสุดท้าย โดยคำนวณอย่างแยกจากกันสำหรับด้านเก่าและใหม่ของทุกแถวที่เปลี่ยนแปลง

ทุกอย่าง — การแยกวิเคราะห์ การแยกความแตกต่าง การให้คะแนนเอนโทรปี และการมาสก์ — ทำงานทั้งหมดในเบราว์เซอร์ของคุณ ไม่มีการส่งไฟล์หรือค่าใด ๆ ที่ดึงมาจากไฟล์เหล่านั้นไปทุกที่ นั่นคือการรับประกันที่เหมาะสมสำหรับเครื่องมือที่มีหน้าที่ทั้งหมดในการดูไฟล์สองไฟล์ที่มีแนวโน้มว่าจะมีข้อมูลรับรองฐานข้อมูลจริง คีย์ API และรหัสผ่านเคียงข้างกัน