यह टूल आपके SQL डेटाबेस को तुरंत बैकएंड में बदल देता है (Directus)

BBetter Stack
Computing/SoftwareSmall Business/StartupsInternet Technology

Transcript

00:00:00ठीक है, तो आपने कितनी बार बिल्कुल वैसा ही बैकएंड फिर से बनाया है?
00:00:04CRUD, ऑथ (auth), एडमिन पैनल, फ़ाइल अपलोड।
00:00:07अक्सर, जिसे हम बनाना समझते हैं, वह असल में बस फिर से बनाना ही होता है।
00:00:10क्या हो अगर आप अपने मौजूदा SQL डेटाबेस पर एक टूल का इस्तेमाल करें और आपको पूरा बैकएंड मिल जाए?
00:00:15वह है Directus, SQL डेटाबेस कंटेंट को मैनेज करने के लिए एक रियल-टाइम API और ऐप डैशबोर्ड।
00:00:21बहुत से डेवलपर्स अब महसूस कर रहे हैं कि वे इतने समय से इसे कठिन तरीके से कर रहे थे।
00:00:25चलिए मैं आपको दिखाता हूँ कि यह सब कुछ ही मिनटों में कैसे काम करता है।
00:00:30[संगीत]
00:00:33हम में से अधिकांश के लिए बैकएंड की सबसे बड़ी समस्या जटिलता नहीं, बल्कि दोहराव है।
00:00:38हम नई समस्याओं को हल नहीं कर रहे हैं, हम बार-बार वही कोड लिख रहे हैं,
00:00:42और यह वाकई में हमारे समय की बर्बादी है।
00:00:44Directus उस सब को खत्म कर देता है।
00:00:46यह सीधे आपके Postgres, MySQL, या Oracle डेटाबेस से जुड़ जाता है।
00:00:50कोई माइग्रेशन नहीं, कहीं और अपना पूरा स्कीमा फिर से बनाने की ज़रूरत नहीं।
00:00:53हमें तुरंत REST और GraphQL APIs मिल जाते हैं,
00:00:57फील्ड-लेवल अनुमतियाँ (permissions), रियल-टाइम सब्सक्रिप्शन,
00:01:01फ्लो और ऑटोमेशन, फ़ाइल हैंडलिंग, और एक साफ-सुथरा एडमिन UI।
00:01:05अब, यहाँ दिलचस्प बात यह है कि आपका डेटाबेस वैसा ही रहता है।
00:01:08यह कोई डुप्लीकेट लेयर नहीं है।
00:01:10यह बात सुनने से कहीं ज़्यादा मायने रखती है।
00:01:12अब मैं आपको दिखाता हूँ।
00:01:13अगर आप अपने वर्कफ़्लो को तेज़ करने के लिए ओपन-सोर्स टूल और कोडिंग टिप्स का आनंद लेते हैं,
00:01:17तो सब्सक्राइब ज़रूर करें।
00:01:18हमारे पास हर समय वीडियो आते रहते हैं।
00:01:20ठीक है, अब बिल्कुल शून्य से एक फ्रेश Directus इंस्टॉल के साथ शुरू करते हैं,
00:01:24कोई डेटाबेस टेबल नहीं, कुछ भी पहले से लोडेड नहीं।
00:01:27यहाँ अकाउंट बनाने के बाद यह बस एक पूरी तरह से खाली कैनवस है।
00:01:32और पहले से मौजूद किसी चीज़ से जुड़ने के बजाय,
00:01:34मैं बस एक मिनट या उससे कम समय में एक पूरा ऑर्डर मैनेजमेंट ऐप बनाऊँगा।
00:01:39सबसे पहले, मैं एक कलेक्शन बनाता हूँ और उसे 'Orders' नाम दूँगा, बिल्कुल ऐसे।
00:01:45बस इतना ही।
00:01:45अब ऐप के पास डेटा स्टोर करने की जगह है, और अब हम इसमें और विवरण जोड़ सकते हैं।
00:01:51मैं उन चीजों को चुनने और ओवरराइड करने जा रहा हूँ जिनकी हमें ज़रूरत है,
00:01:54जैसे कस्टमर, तारीख, और ऐसी ही सारी चीज़ें।
00:01:58फिर मैं मैन्युअली कोई भी अन्य फ़ील्ड जोड़ सकता हूँ
00:02:00जिसकी हमें लगता है कि इस तरह की चीज़ के लिए ज़रूरत होगी।
00:02:03तो मैं कस्टमर का नाम, ईमेल, प्रोडक्ट को ड्रॉपडाउन के रूप में रख सकता हूँ,
00:02:08जहाँ मैं एक की (key) और एक वैल्यू जोड़ सकता हूँ।
00:02:10मैं राशि और स्टेटस के लिए भी ऐसा कर सकता हूँ।
00:02:13प्रत्येक फ़ील्ड उस डेटा के बारे में अधिक विवरण जोड़ता है जिसे हम स्टोर करने जा रहे हैं।
00:02:16और गौर करें कि यहाँ क्या गायब है।
00:02:18जी हाँ, वह है SQL।
00:02:19कोई SQL नहीं है।
00:02:20कोई माइग्रेशन नहीं है।
00:02:22स्कीमा फ़ाइल लिखने के लिए बार-बार टैब बदलने की ज़रूरत नहीं है।
00:02:25यह तुरंत Directus में यहीं सेव हो जाता है।
00:02:28अब मैं सीधे कंटेंट व्यू में जाकर ऑर्डर जोड़ना शुरू कर सकता हूँ।
00:02:32तो मैं यहाँ पहला ऑर्डर जोड़ सकता हूँ, बस एक डमी अकाउंट।
00:02:35मैं एक और जोड़ूँगा।
00:02:36और फिर हम तीसरा भी जोड़ सकते हैं, है न?
00:02:39सिस्टम में हमारे पास यहाँ तीन अलग-अलग ऑर्डर हैं।
00:02:42अब मेरे पास यहाँ कुछ वास्तविक डेटा है जिसके साथ हम काम शुरू कर सकते हैं।
00:02:45लेकिन अभी यह सबके लिए खुला है, जिसका मतलब है कि कोई भी कुछ भी कर सकता है।
00:02:49तो चलिए इसे ठीक करते हैं।
00:02:50हम इसे कैसे ठीक करेंगे?
00:02:51परमिशन (Permissions) के साथ।
00:02:53तो मैं 'public role' पर जाता हूँ।
00:02:55मैं उस कलेक्शन को ढूंढूँगा जिसे हमने बनाया था, 'orders'।
00:02:58हम रीड (read) को ऑन कर सकते हैं।
00:03:00और मैं यह सुनिश्चित करने जा रहा हूँ कि यहाँ बाकी सब कुछ बंद है।
00:03:03जैसे क्रिएट, अपडेट, डिलीट।
00:03:05वे सब हटा दिए गए हैं।
00:03:06अब यह हमारी ज़रूरत के हिसाब से ज़्यादा नियंत्रित और सुरक्षित है।
00:03:10ठीक है, अब यहाँ से चीज़ें वाकई दिलचस्प होने लगती हैं
00:03:12क्योंकि हम कुछ ऑटोमेशन कर सकते हैं और इसके इर्द-गिर्द फ्लो बना सकते हैं।
00:03:16मैं यहाँ जाने वाला हूँ और एक नया फ्लो बनाने वाला हूँ।
00:03:19मैं इसे बस एक बहुत ही सरल नाम दूँगा, यह क्या है?
00:03:22तो मैं 'नए ऑर्डर पर सूचित करें' (notify on a new order) रखूँगा।
00:03:24सरल नाम, मेरा काम हो गया।
00:03:26और मैं 'orders' नाम के कलेक्शन में मौजूद सभी आइटम्स को चुनूँगा।
00:03:31अब मैं एक ट्रिगर बना सकता हूँ।
00:03:33और ट्रिगर के लिए, मैं तब सक्रिय होने के लिए सेट करूँगा जब कोई नया आइटम बनाया जाए,
00:03:37खासकर उस 'orders' कलेक्शन में।
00:03:39तो अब हर बार जब कोई नया ऑर्डर आएगा, तो कुछ न कुछ होगा।
00:03:43मैं एक ऑपरेशन जोड़ने जा रहा हूँ।
00:03:44हम एक ईमेल भेजेंगे।
00:03:46यह एक विषय (subject) लिखेगा।
00:03:47मैं इसमें अपना ईमेल जोड़ूँगा।
00:03:49और फिर बॉडी में, मैं ऑर्डर का डेटा खींचूँगा।
00:03:52तो जब भी कोई नया ऑर्डर आएगा, वह डेटा सीधे ईमेल में चला जाएगा।
00:03:56अब मैं इस ऑपरेशन को सेव कर सकता हूँ और हम फ्लो को सेव करेंगे और काम पूरा हो गया।
00:04:00ठीक है, अब इसे देखें।
00:04:02मैं वापस जाने वाला हूँ।
00:04:03और अपनी शुरुआती Docker-compose फ़ाइल में, मैंने इसे टेस्ट करने के लिए Mailpit जोड़ा था।
00:04:07यह ईमेल भेजने के फ़ंक्शन को टेस्ट करने का एक बहुत ही सरल तरीका है।
00:04:11जब मैं एक और ऑर्डर बनाता हूँ, पहले की तरह ही, कुछ भी खास नहीं,
00:04:14लेकिन इस बार कुछ अलग है।
00:04:16यह अब फ्लो को ऑटोमैटिकली ट्रिगर करता है और विवरण के साथ एक ईमेल बाहर जाता है।
00:04:20यहाँ कोई बैकएंड लॉजिक नहीं है।
00:04:22चीजों को आपस में जोड़ने (wiring) की कोई ज़रूरत नहीं है।
00:04:25यह बिना किसी टेबल, बिना बैकएंड, बिना किसी वास्तविक ढांचे के शुरू हुआ था।
00:04:30और कुछ ही मिनटों में, यह डेटा परमिशन और हाँ,
00:04:33ऑटोमेशन वाला एक वर्किंग ऐप है, जो कि सबसे अच्छी बात थी।
00:04:35और यही बात Directus को बहुत कूल बनाती है।
00:04:38यह लगभग विजुअल डेटाबेस लॉजिक और n8n या Zapier के कॉम्बिनेशन जैसा महसूस होता है,
00:04:43लेकिन वास्तव में यह उनके साथ मुकाबला नहीं करता।
00:04:45तो Directus असल में क्या है?
00:04:47यह एक ओपन सोर्स डेटा प्लेटफॉर्म है जो आपके SQL डेटाबेस के ऊपर बैठता है।
00:04:52यह उसके बगल में नहीं बैठता।
00:04:53यह उसके ठीक ऊपर बैठता है।
00:04:55वह 'डेटाबेस फर्स्ट मॉडल' ही इसकी मुख्य बात है, है ना?
00:04:58तो इसका असल में क्या मतलब है?
00:04:59इसका हमारे लिए कुछ मतलब है।
00:05:01इसका मतलब है कि इसमें कोई लॉक-इन (lock-in) नहीं है।
00:05:03पूरा SQL अभी भी वहीं है और यह पुराने सिस्टम के साथ काम करता है।
00:05:07इसीलिए लोग इसका इस्तेमाल SaaS बैकएंड, इंटरनल टूल्स, हेडलेस CMS सेटअप,
00:05:13और कंट्रोल्ड डेटा वाले AI एजेंट्स के लिए करते हैं।
00:05:15आप सब कुछ दोबारा लिखे बिना किसी पुराने सिस्टम को मॉडर्नाइज करने की कोशिश कर रहे हैं।
00:05:19आपका डेटाबेस ही यहाँ वास्तविक इंजन है।
00:05:21Directus बस इसे एक डैशबोर्ड और कंट्रोल देता है।
00:05:24अब, पहली नज़र में, अगर आपने Strapi, Payload, Hasura जैसे अन्य टूल इस्तेमाल किए हैं,
00:05:28तो Directus भी वैसा ही दिखेगा, लेकिन वे असल में अलग समस्याओं को हल करते हैं।
00:05:33Strapi और Payload 'कोड फर्स्ट' हैं।
00:05:36आप कोड में स्कीमा को परिभाषित करते हैं, फिर वहां अपना स्ट्रक्चर फिर से बनाते हैं।
00:05:40हाँ, वह काम तो करता है, लेकिन वह अतिरिक्त काम है।
00:05:42Directus कुछ बदलावों के साथ चीज़ें बदल देता है।
00:05:45आपका स्कीमा पहले से मौजूद है, इसलिए इसे फिर से बनाने के बजाय, आप बस इसे कनेक्ट करते हैं।
00:05:50यह पूरी तरह से अलग वर्कफ़्लो है।
00:05:52Hasura तेज़ GraphQL के लिए बढ़िया है, लेकिन Directus उससे कहीं आगे जाता है।
00:05:58आपको API मिल रहे हैं।
00:05:59हाँ, हमें वह मिलता है, लेकिन हमें एडमिन वर्कस्पेस, परमिशन, फाइलें और ऑटोमेशन भी मिल रहे हैं।
00:06:05और यह वह हिस्सा है जिसकी अधिकांश डेवलपर्स को इसे आज़माने के बाद परवाह होती है, परमिशन।
00:06:10मैं यहाँ केवल सामान्य नियमों की बात नहीं कर रहा हूँ।
00:06:12हम बिना किसी प्लगइन के वास्तविक कंट्रोल की बात कर रहे हैं।
00:06:15तो अगर आपकी समस्या यह है कि मुझे बैकएंड की ज़रूरत है, तो आपके पास विकल्प हैं।
00:06:18लेकिन अगर आपकी समस्या यह है कि मैं अपना बैकएंड फिर से नहीं बनाना चाहता, तो यह अलग है।
00:06:23अब, ज़ाहिर है, कोई भी टूल परफेक्ट नहीं होता, लेकिन यह काफी बेहतरीन है।
00:06:26मुझे क्या लगा कि बहुत कूल था?
00:06:28खैर, परमिशन बस बेहतरीन काम करती हैं।
00:06:29वह शानदार है।
00:06:30फ्लो हमारे बहुत सारे फालतू काम को खत्म कर देते हैं।
00:06:32UI बहुत साफ और तेज़ था, और इसे Docker के साथ डिप्लॉय करना आसान है।
00:06:37इन सबके अलावा, यह बहुत अच्छी तरह से स्केल करता है।
00:06:39लेकिन इन सब अच्छी चीजों के साथ, ज़ाहिर है, हमेशा कुछ कमियाँ भी होती हैं।
00:06:43तो कमियाँ कुछ ऐसी होंगी जैसे एडवांस फ्लो में समय लग सकता है, ठीक है?
00:06:46अगर आपने कभी n8n या किसी और टूल के साथ काम किया है, तो आप समझ सकते हैं।
00:06:49डॉक्यूमेंटेशन (Docs) हमेशा पर्याप्त नहीं होते।
00:06:51और अगर आप खुद होस्ट (self-host) करते हैं, तो आपको इन्फ्रा को खुद मैनेज करना होगा।
00:06:54साथ ही, कॉम्प्लेक्स सेटअप लोकली थोड़ा उलझा हुआ हो सकता है।
00:06:57Directus बस एक विशिष्ट प्रकार के दोहराव वाले बैकएंड काम को हटा देता है।
00:07:00तो क्या Directus लायक है?
00:07:02हम में से बहुतों के लिए, संभवतः हाँ।
00:07:03यह इस पर निर्भर करता है कि हम क्या कर रहे हैं, खासकर यदि आपके पास पहले से ही SQL डेटा है, या यदि आप
00:07:07इन बुनियादी बैकएंड्स को बार-बार बनाने से थक चुके हैं, तो हाँ,
00:07:11यह वाकई काम की चीज़ है।
00:07:13यह समय बचाता है, मेंटेनेंस कम करता है, और आप डेटा पर कंट्रोल रखते हैं।
00:07:17एक बार फिर, यह ओपन सोर्स है।
00:07:19हम उसे कंट्रोल करते हैं।
00:07:20आप इसका उपयोग कब नहीं करेंगे?
00:07:22खैर, अगर आप एक सख्त Typescript वाले बड़े मोनोरेपो (monorepo) में हैं, तो शायद नहीं, है ना?
00:07:26अगर आपके पास कोई मौजूदा डेटाबेस नहीं है, तो शायद नहीं।
00:07:29और अगर आप शुरू से ही सब कुछ कोड में परिभाषित करना चाहते हैं, तो Payload जैसी कोई चीज़
00:07:33वहाँ ज़्यादा समझदारी भरा विकल्प होगी।
00:07:34लेकिन अगर आप अभी सोच रहे हैं कि, क्या यह बस मेरे डेटाबेस के ऊपर बैठ सकता है?
00:07:38हाँ, यह बैठ सकता है।
00:07:39तो इसे आज़माना सही हो सकता है।
00:07:41अगर आप इस तरह के ओपन सोर्स टूल्स और कोडिंग टिप्स का आनंद लेते हैं, तो
00:07:45Better Stack चैनल को सब्सक्राइब करना न भूलें।
00:07:46हम आपसे दूसरे वीडियो में मिलेंगे।

Key Takeaway

Directus आपके मौजूदा SQL डेटाबेस के ऊपर एक लेयर के रूप में बैठकर बिना कोड लिखे मिनटों में रियल-टाइम API, एडमिन डैशबोर्ड और ऑटोमेशन फ्लो तैयार कर देता है।

Highlights

Directus सीधे Postgres, MySQL, या Oracle डेटाबेस से जुड़कर बिना किसी माइग्रेशन के तुरंत REST और GraphQL APIs प्रदान करता है।

इसमें CRUD ऑपरेशंस, ऑथेंटिकेशन, एडमिन पैनल और फ़ाइल अपलोड जैसे दोहराव वाले बैकएंड कार्यों को कोड करने की आवश्यकता नहीं होती है।

यूजर इंटरफेस के माध्यम से 'Orders' जैसा कलेक्शन बनाने में 1 मिनट से भी कम समय लगता है, जिसमें कस्टमर नाम और ड्रॉपडाउन जैसे फ़ील्ड शामिल हैं।

पब्लिक रोल सेटिंग्स के माध्यम से केवल 'Read' अनुमति देकर और क्रिएट, अपडेट, डिलीट को बंद करके डेटा को सुरक्षित किया जा सकता है।

फ्लो ट्रिगर्स का उपयोग करके नए ऑर्डर आने पर ऑटोमैटिक ईमेल नोटिफिकेशन भेजने के लिए बैकएंड लॉजिक लिखने की ज़रूरत नहीं पड़ती है।

डेटाबेस-फर्स्ट मॉडल होने के कारण इसमें कोई वेंडर लॉक-इन नहीं है और मौजूदा SQL स्कीमा को दोबारा बनाने की आवश्यकता नहीं होती है।

Timeline

बैकएंड विकास में दोहराव की समस्या

  • डेवलपर्स अक्सर CRUD, ऑथेंटिकेशन और एडमिन पैनल जैसे बुनियादी फीचर्स को बार-बार बनाने में समय बर्बाद करते हैं।
  • Directus मौजूदा Postgres, MySQL या Oracle डेटाबेस के साथ सीधे जुड़कर माइग्रेशन की ज़रूरत को खत्म करता है।
  • यह टूल डेटाबेस के ऊपर एक पारदर्शी लेयर के रूप में काम करता है जिससे डेटा का मूल स्वरूप नहीं बदलता है।

अधिकांश बैकएंड विकास में जटिलता से ज़्यादा दोहराव की समस्या होती है। नया कोड लिखने के बजाय मौजूदा डेटाबेस स्कीमा का उपयोग करके तुरंत REST और GraphQL APIs प्राप्त किए जा सकते हैं। इसमें फील्ड-लेवल अनुमतियाँ और रियल-टाइम सब्सक्रिप्शन जैसे फीचर्स पहले से शामिल होते हैं। डेटाबेस ही वास्तविक इंजन बना रहता है और Directus केवल उसे एक आधुनिक कंट्रोल इंटरफेस देता है।

बिना कोड के ऑर्डर मैनेजमेंट ऐप का निर्माण

  • एक खाली कैनवस से शुरू करके एक मिनट के भीतर 'Orders' कलेक्शन तैयार किया जा सकता है।
  • ड्रॉपडाउन, की-वैल्यू पेयर्स और स्टेटस फ़ील्ड्स को बिना SQL लिखे इंटरफेस से जोड़ा जाता है।
  • कंटेंट व्यू के माध्यम से तुरंत डेटा प्रविष्टियाँ करना और डमी अकाउंट बनाना संभव है।

ऐप बनाने की प्रक्रिया पूरी तरह विजुअल है जहाँ स्कीमा फ़ाइल लिखने या टैब बदलने की आवश्यकता नहीं होती है। कस्टमर का नाम, ईमेल और प्रोडक्ट जैसे विवरणों को मैन्युअली जोड़ा जा सकता है। यह सिस्टम SQL और माइग्रेशन की जटिलता को पूरी तरह हटा देता है। डेटा सीधे Directus में सेव होता है और तुरंत उपयोग के लिए उपलब्ध हो जाता है।

सुरक्षा और ऑटोमेशन फ्लो का सेटअप

  • पब्लिक एक्सेस को नियंत्रित करने के लिए 'Public Role' के तहत कलेक्शन-वाइज परमिशन सेट की जाती हैं।
  • ट्रिगर आधारित ऑटोमेशन के ज़रिए नए आइटम बनने पर ईमेल भेजने जैसे कार्य किए जा सकते हैं।
  • Mailpit जैसे टूल्स का उपयोग करके बिना बैकएंड लॉजिक लिखे ईमेल नोटिफिकेशन को टेस्ट किया जा सकता है।

सुरक्षा के लिए डेटा को केवल पढ़ने (Read) तक सीमित किया जा सकता है और अन्य क्रियाओं को ब्लॉक किया जा सकता है। 'Notify on a new order' जैसे फ्लो बनाकर डेटाबेस की गतिविधियों पर नज़र रखी जा सकती है। यह प्रक्रिया विजुअल डेटाबेस लॉजिक और n8n या Zapier के संयोजन जैसी महसूस होती है। बिना किसी टेबल या वास्तविक ढांचे के शुरू होकर कुछ ही मिनटों में एक सुरक्षित और काम करने वाला ऐप तैयार हो जाता है।

Directus बनाम अन्य हेडलेस CMS और डेटा प्लेटफॉर्म

  • Strapi और Payload जैसे 'कोड-फर्स्ट' टूल्स के विपरीत Directus 'डेटाबेस-फर्स्ट' मॉडल पर काम करता है।
  • Hasura केवल तेज़ GraphQL प्रदान करता है, जबकि Directus एडमिन वर्कस्पेस और ऑटोमेशन भी देता है।
  • यह पुराने सिस्टम्स को बिना दोबारा लिखे मॉडर्नाइज करने के लिए एक बेहतरीन विकल्प है।

डेटाबेस-फर्स्ट मॉडल का मतलब है कि कोई लॉक-इन नहीं है और पूरा SQL डेटाबेस पुराने सिस्टम के साथ भी काम करता रहता है। इसीलिए इसे SaaS बैकएंड, इंटरनल टूल्स और AI एजेंट्स के लिए इस्तेमाल किया जाता है। जहाँ अन्य टूल्स में स्कीमा को कोड में परिभाषित करना पड़ता है, वहाँ Directus केवल कनेक्शन मांगता है। यह वर्कफ़्लो को बहुत तेज़ और सरल बना देता है।

उपयोगिता, कमियां और चयन के मानदंड

  • साफ UI और Docker के साथ आसान डिप्लॉयमेंट इसकी सबसे बड़ी खूबियाँ हैं।
  • डॉक्यूमेंटेशन की कमी और कॉम्प्लेक्स लोकली सेटअप इसके कुछ नकारात्मक पहलू हो सकते हैं।
  • मौजूदा SQL डेटा होने पर यह समय बचाने और मेंटेनेंस कम करने के लिए सबसे उपयुक्त है।

Directus की परमिशन सेटिंग्स और ऑटोमेशन फ्लो बहुत प्रभावी ढंग से काम करते हैं। हालांकि, बहुत उन्नत फ्लो सेट करने में समय लग सकता है और सेल्फ-होस्टिंग के लिए इंफ्रास्ट्रक्चर खुद मैनेज करना पड़ता है। यदि कोई प्रोजेक्ट सख्त Typescript मोनोरेपो पर आधारित है या जिसमें कोई मौजूदा डेटाबेस नहीं है, तो अन्य विकल्प बेहतर हो सकते हैं। लेकिन उन लोगों के लिए जो बार-बार वही बैकएंड बनाने से थक गए हैं, यह एक शक्तिशाली समाधान है।

Community Posts

View all posts