<पी> envshare.dev एक ओपन सोर्स प्रोजेक्ट है जो डेवलपर्स को पर्यावरण चर को किसी के साथ सुरक्षित रूप से साझा करने की अनुमति देता है। आप अपना .env अपलोड कर सकते हैं अपने पर्यावरण चर को फ़ाइल करें या टाइप करें और डेटाबेस में संग्रहीत होने से पहले उन्हें एन्क्रिप्ट किया जाएगा। फिर आप किसी के साथ लिंक साझा कर सकते हैं और वे पर्यावरण चर को डिक्रिप्ट करने में सक्षम होंगे। <पी> EnvShare उपयोग करने और स्रोत खोलने के लिए मुफ़्त है। आप GitHub पर कोड पा सकते हैं। विशेषताएं
- साझा करने योग्य लिंक: एक लिंक भेजकर अपने पर्यावरण चर को सुरक्षित रूप से साझा करें
- एंड-टू-एंड एन्क्रिप्शन: एईएस एन्क्रिप्शन का उपयोग आपके डेटा को संग्रहीत करने से पहले एन्क्रिप्ट करने के लिए किया जाता है
- पढ़ने की संख्या सीमित करें: किसी लिंक को पढ़ने और एन्क्रिप्ट करने की संख्या सीमित करें
- स्वत:समाप्ति: एक निश्चित समय के बाद लिंक स्वचालित रूप से समाप्त हो जाते हैं और डेटा हटा दिया जाता है
यह कैसे काम करता है
<पी> हर बार जब आप अपने पर्यावरण चर साझा करना चाहते हैं, तो ब्राउज़र में एक नई यादृच्छिक एन्क्रिप्शन कुंजी उत्पन्न होती है। आपका संवेदनशील डेटा एईएस का उपयोग करके एन्क्रिप्ट किया जाता है और फिर रेडिस में संग्रहीत किया जाता है। <पी> बाद में, एक साझा करने योग्य लिंक बनाने के लिए एक अद्वितीय दस्तावेज़ आईडी को एन्क्रिप्शन कुंजी के साथ जोड़ा जाता है, जिसका उपयोग आप अपने डेटा तक पहुंचने और डिक्रिप्ट करने के लिए कर सकते हैं। <पी>
डेटा
<पी> EnvShare एन्क्रिप्टेड पर्यावरण चर को संग्रहीत करने के लिए Redis का उपयोग करता है। रेडिस बहुत अच्छा है क्योंकि इसे तेज़ कुंजी-मूल्य स्टोर के रूप में उपयोग किया जा सकता है, लेकिन यह सूचियां, सेट और हैश जैसी अधिक जटिल डेटा संरचनाएं भी प्रदान करता है। यह स्वचालित रूप से समाप्त हो चुकी कुंजियों को भी हटा देता है, जो हमारे उपयोग के मामले के लिए बिल्कुल सही है। <पी> डेटा को निम्नलिखित संरचना के साथ रेडिस हैश में संग्रहीत किया जाता है: {
"remainingReads": 20, // Optional, the number of times the link can be read
"encrypted": "...", // The encrypted environment variables
"iv": "..." // The initialization vector for AES-CBC
}
<पी> हैश का उपयोग करने से हमें एन्क्रिप्टेड डेटा के साथ कुछ मेटाडेटा संग्रहीत करने की अनुमति मिलती है और शेष रीडिंग को HINCRBY के साथ परमाणु रूप से कम करने की भी अनुमति मिलती है। .रेडिस अविश्वसनीय रूप से लचीला है और तेजी से पुनरावृत्ति और नए विचारों के कार्यान्वयन की अनुमति देता है। उदाहरण के लिए भविष्य में हम एक्सेस लॉग जैसा कुछ जोड़ना चाह सकते हैं। एक क्रमबद्ध सेट इसके लिए बहुत उपयुक्त होगा। <पी> एकमात्र समस्या यह है कि रेडिस आमतौर पर केवल टीसीपी पर उपलब्ध है, जो हमारे एज-फ़ंक्शंस में काम नहीं करता है। सौभाग्य से, अपस्टैश एक रेडिस एपीआई प्रदान करता है जिसका उपयोग HTTP पर रेडिस तक पहुंचने के लिए किया जा सकता है। यह वही है जो हमें EnvShare के लिए चाहिए। अपस्टैश प्रति दिन 10,000 अनुरोधों के साथ एक मुफ्त रेडिस डेटाबेस प्रदान करता है। यह हमारे लिए पर्याप्त से अधिक है, और यदि आप स्वयं EnvShare होस्ट करना चाहते हैं, तो आप यहां एक निःशुल्क खाता प्राप्त कर सकते हैं। सेल्फहोस्टिंग गाइड यहां देखें <पी> हमारे एज-फ़ंक्शंस में रेडिस को स्थापित करना आसान है। हमें बस एक डेटाबेस बनाने और @upstash/redis इंस्टॉल करने की आवश्यकता है . <पी> फिर हम अपने एज-फ़ंक्शन में डेटा संग्रहीत कर सकते हैं: /api/share.tsimport { Redis } from "@upstash/redis";
const redis = new Redis({
url: "..." // UPSTASH_REDIS_REST_URL
token: "..." // UPSTASH_REDIS_REST_TOKEN
});
await redis.hset(key, {
remainingReads: 20,
encrypted: "...",
iv: "...",
});
समापन
<पी> पढ़ने के लिए धन्यवाद! EnvShare एक मजेदार प्रोजेक्ट है जिसे मैंने यह दिखाने के लिए बनाया है कि नेक्स्ट.जेएस और अपस्टैश रेडिस के साथ शुरुआत करना कितना आसान है। मुझे आशा है कि आपको यह पसंद आएगा और यह उपयोगी लगेगा। यदि आपका कोई प्रश्न या प्रतिक्रिया है, तो बेझिझक ट्विटर पर मुझसे संपर्क करें। <पी> प्रासंगिक लिंक: - EnvShare
- गिटहब
- परिनियोजन मार्गदर्शिका