Έλεγχος διαφορών ENV
Συγκρίνετε δύο αρχεία .env (σταδιοποίηση έναντι παραγωγής, πριν έναντι μετά την ανάπτυξη) και δείτε ακριβώς ποια κλειδιά προστέθηκαν, αφαιρέθηκαν ή άλλαξαν, με τις τιμές που μοιάζουν μυστικές να καλύπτονται αυτόματα.
Αποτέλεσμα
Συγκρίνοντας ένα αρχείο σταδίου .env με την παραγωγή ή τη σημερινή ρύθμιση παραμέτρων ανάπτυξης με αυτό της προηγούμενης εβδομάδας, είναι ο τρόπος με τον οποίο ξεκινούν οι πραγματικές διακοπές: μια DATABASE_URL που λείπει, μια θύρα που άλλαξε αθόρυβα, ένα κλειδί API που περιστράφηκε σε ένα περιβάλλον αλλά όχι στο άλλο. Η επικόλληση και των δύο αρχείων σε μια γενική διαφορά κειμένου δεν βοηθάει πολύ — σας δείχνει ποιες γραμμές διαφέρουν, όχι ποιες μεταβλητές περιβάλλοντος άλλαξαν στην πραγματικότητα και εκτυπώνει ευχάριστα κάθε μυστική τιμή σε κοινή θέα τη στιγμή που μοιράζεστε το αποτέλεσμα με έναν συμπαίκτη.
Αυτό το εργαλείο αναλύει και τα δύο αρχεία με τον τρόπο που το dotenv τα διαβάζει στην πραγματικότητα — ένα KEY=value pair ανά γραμμή, # σχόλια και κενές γραμμές αγνοούνται, τιμές μονής ή διπλής εισαγωγικής χωρίς εισαγωγικά (με \n χωρίς διαφυγή μόνο μέσα σε διπλά εισαγωγικά, ακριβώς όπως ορίζει η σύμβαση dotenv) και μια προαιρετική εξαγωγή KEY=value ensource files use it shell to. Κάθε αρχείο γίνεται καθαρός χάρτης κλειδιού σε τιμή και οι δύο χάρτες διαφέρουν στη συνέχεια κατά κλειδί: το παρόν μόνο στο αρχείο Α είναι "αφαιρέθηκε", το παρόν μόνο στο αρχείο Β "προστέθηκε", το παρόν και στα δύο με διαφορετική τιμή "αλλάχθηκε" και οι ίδιες τιμές είναι "αμετάβλητες" και κρύβονται από προεπιλογή, ώστε ο πίνακας να παραμένει εστιασμένος σε αυτό που πραγματικά διαφέρει.
Το χαρακτηριστικό που το καθιστά ασφαλές στην πραγματική χρήση με πραγματικά μυστικά είναι η αυτόματη κάλυψη. Κάθε τιμή που εμφανίζεται στον πίνακα διαφορών ελέγχεται σε σχέση με δύο ανεξάρτητα σήματα: το όνομα του κλειδιού του μοιάζει με μυστικό (αντίστοιχη χωρίς διάκριση πεζών-κεφαλαίων με KEY, SECRET, TOKEN, PASSWORD, PRIVATE ή CREDENTIAL) ή η ίδια η τιμή έχει υψηλή εντροπία Shannon — το ίδιο θεωρητικό μέτρο πληροφοριών (-Σ p(p(p(p(p)) κλειδιά, διακριτικά και τυχαίους κωδικούς πρόσβασης ως στατιστικά διαφορετικοί από τις συνηθισμένες λέξεις, ακόμη και όταν το όνομα του κλειδιού δεν δίνει καμία υπόδειξη. Οποιοδήποτε από τα δύο σήματα είναι αρκετό για να κρύψει μια τιμή στους πρώτους και τελευταίους δύο χαρακτήρες, που υπολογίζονται ανεξάρτητα για την παλιά και τη νέα πλευρά κάθε αλλαγμένης σειράς.
Τα πάντα — ανάλυση, διαφοροποίηση, βαθμολογία εντροπίας και κάλυψη — εκτελούνται εξ ολοκλήρου στο πρόγραμμα περιήγησής σας. ούτε αρχείο, ούτε οποιαδήποτε τιμή που εξάγεται από αυτά, δεν αποστέλλεται ποτέ οπουδήποτε. Αυτή είναι η σωστή εγγύηση για ένα εργαλείο του οποίου όλη η δουλειά είναι να εξετάζει δύο αρχεία που είναι πιθανό να περιέχουν πραγματικά διαπιστευτήρια βάσης δεδομένων, κλειδιά API και κωδικούς πρόσβασης δίπλα-δίπλα.