बैकएंड और अकाउंट
Supabase बैकएंड (एक बार कनेक्ट करें)
अपना मुफ़्त Supabase प्रोजेक्ट कनेक्ट करें - AI से बने ऐप्स के लिए क्लाउड डेटाबेस, यूज़र अकाउंट और स्टोरेज
1Supabase कनेक्ट करने से आपको क्या मिलता है#
डिफ़ॉल्ट रूप से AI से बना ऐप अपना डेटा उसी एक फ़ोन पर रखता है जिस पर वह इंस्टॉल है - 'Offline' मोड। Supabase कनेक्ट करने पर वही ऐप एक असली क्लाउड डेटाबेस (Postgres), यूज़र अकाउंट और फ़ाइल स्टोरेज पा जाता है, जिससे डेटा सभी डिवाइस और यूज़र्स के बीच साझा होता है।
यह BRING-YOUR-OWN है: ऐप आपके अपने मुफ़्त Supabase प्रोजेक्ट से बात करता है। AppMint आपके लिए कुछ होस्ट नहीं करता और इसके लिए कुछ अतिरिक्त चार्ज भी नहीं लेता।
आपको टेबल डिज़ाइन करने या SQL लिखने की ज़रूरत नहीं। AppMint आपके ऐप के विवरण से स्कीमा खुद तैयार करता है, उसे लागू करता है, और हर बिल्ड पर उसे सिंक में रखता है।
2सबसे पहले आपको क्या चाहिए#
एक मुफ़्त Supabase अकाउंट - बस इतना ही। आपको पहले से कोई प्रोजेक्ट बनाने की ज़रूरत नहीं है; साइन इन के दौरान AppMint आपके लिए एक बना सकता है।
मुफ़्त प्लान के बारे में जानने लायक बातें:
- हर ऑर्गनाइज़ेशन में 2 प्रोजेक्ट।
- एक हफ़्ते तक कोई ट्रैफ़िक न आए तो प्रोजेक्ट रुक जाते हैं और अगली रिक्वेस्ट पर फिर चालू हो जाते हैं।
अगर आपके पास पहले से कोई प्रोजेक्ट है जिसे आप दोबारा इस्तेमाल करना चाहते हैं, तो वह भी चलेगा - AppMint हर ऐप को उसके अंदर उसकी अपनी स्कीमा में रखता है, इसलिए कई ऐप एक ही प्रोजेक्ट साझा कर सकते हैं।
3इसे कनेक्ट करें (एक टैप, सुझाया गया तरीका)#
AI Studio में 'WHERE YOUR APP'S DATA LIVES' के नीचे 'Supabase' कार्ड पर टैप करें (उस पर 'Tap to connect' लिखा होता है)। 'Sign in with OAuth' चुनें।
आपका ब्राउज़र Supabase खोलता है, आप साइन इन करके AppMint को मंज़ूरी देते हैं, और अपने-आप ऐप में वापस आ जाते हैं - कोई टोकन कॉपी नहीं करना पड़ता।
यही चीज़ ⚙ Settings गियर → 'BACKEND - SUPABASE' → '🔗 Connect Supabase (OAuth)' से भी मिलती है।
4प्रोजेक्ट चुनें या बनाएँ#
मंज़ूरी देते ही AppMint 'Pick a Supabase project' दिखाता है:
- कोई मौजूदा प्रोजेक्ट चुनें, या
- '➕ Create new project…' पर टैप करें → ऑर्गनाइज़ेशन चुनें → नाम दें (जैसे appmint-prod) → अपने यूज़र्स के पास का रीजन चुनें (इसे बाद में बदला नहीं जा सकता) → 'Create'। तैयार होने में 1-2 मिनट लगते हैं।
जब AppMint प्रोजेक्ट बनाता है तो डेटाबेस पासवर्ड सिर्फ़ एक बार दिखाता है, क्योंकि Supabase उसका सिर्फ़ हैश रखता है। उस डायलॉग को बंद करने से पहले उसे कहीं सुरक्षित कॉपी कर लें - AppMint के लिए इसकी ज़रूरत नहीं, पर किसी और टूल को कनेक्ट करने के लिए पड़ेगी।
मुफ़्त टियर की सीमा पर पहुँच गए ('Free tier allows 2 projects per organization')? इसके बजाय कोई मौजूदा प्रोजेक्ट चुनें, या Supabase डैशबोर्ड में अपग्रेड करें।
5या मैन्युअली कनेक्ट करें (सेल्फ़-होस्टेड / बिना OAuth)#
Settings → 'BACKEND - SUPABASE' → 'MANUAL / SELF-HOSTED':
- Project URL - आपके Supabase डैशबोर्ड में Project Settings → API से। यह कुछ ऐसा दिखता है: https://YOUR-PROJECT-REF.supabase.co
- anon key - उसी पेज की पब्लिशेबल कुंजी; यह 'eyJ' से शुरू होती है। यह कुंजी सार्वजनिक होने के लिए ही बनी है: आपके डेटा को Row-Level Security बचाती है, कुंजी को छिपाना नहीं।
- 'Enable Supabase backend for generated apps' चालू करें और 'Save Supabase config' पर टैप करें।
अगर आप Supabase खुद चलाते हैं तो 'Self-hosted instance' पर टिक करें। मैन्युअल मोड Cloud पर स्कीमा अपने-आप डिप्लॉय नहीं कर सकता - वह चाहिए तो Personal Access Token जोड़ें (अगला चरण)।
Project URL https://abcdefghijkl.supabase.co
anon key eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...6हर बिल्ड पर AppMint क्या करता है#
कनेक्ट होने के बाद हर जेनरेशन में बैकएंड का काम आपके लिए हो जाता है:
- AI ने जो स्कीमा लिखा है उसे लागू करता है (टेबल, इंडेक्स, Row-Level-Security पॉलिसी)।
- अगर ऐप को सीड डेटा चाहिए तो उसे चलाता है।
- अपलोड और इमेज के लिए Storage बकेट बनाता है।
- एज फ़ंक्शन (पेमेंट, ईमेल, वेबहुक) डिप्लॉय करता है और जो नहीं बदले उन्हें छोड़ देता है।
- ऑथ प्रोवाइडर और Site URL सेट करता है।
- सिक्योरिटी गेट और माइग्रेशन गेट चलाता है, फिर TypeScript टाइप्स वापस प्रोजेक्ट में खींच लाता है।
आपके ऐप की टेबल उसकी अपनी स्कीमा में रहती हैं, जिसका नाम appmint_<your app> होता है। यूज़र अकाउंट प्रोजेक्ट के सभी ऐप्स में साझा होते हैं, इसलिए एक बार साइन अप करना हर जगह चलता है।
7जाँचें कि काम हुआ या नहीं#
दो छोटी जाँचें:
- AI Studio में 'Supabase' कार्ड अब 'Connected' दिखाता है, और Settings में प्रोजेक्ट ref दिखता है।
- Settings → 'DIAGNOSTICS' → '⚡ Test Supabase connection' - यह सफलता या ठीक-ठीक त्रुटि बताता है।
ऐप जेनरेट करने के बाद अपना Supabase डैशबोर्ड → Table Editor खोलें और स्कीमा सिलेक्टर को 'public' से बदलकर appmint_<your app> करें, तब AppMint की बनाई टेबल दिखेंगी।
8कौन-सी कुंजी कहाँ सुरक्षित है#
- anon key - जेनरेट किए गए ऐप्स के अंदर सुरक्षित है। साइन इन किया हुआ हर यूज़र क्या पढ़ या लिख सकता है, यह Row-Level Security तय करती है।
- service_role key - इसे ऐप में कभी नहीं डालना है। AppMint इसे सिर्फ़ इसी डिवाइस पर एन्क्रिप्टेड रखता है, और Storage बकेट व सेल्फ़-होस्टेड स्कीमा लागू करने के लिए इस्तेमाल करता है।
- Personal Access Token (sbp_…) - यह भी सिर्फ़ डिवाइस पर रहता है; इससे AppMint Supabase Cloud पर स्कीमा और एज फ़ंक्शन अपने-आप डिप्लॉय कर पाता है। इसे supabase.com/dashboard/account/tokens पर प्रोजेक्ट के read + write स्कोप के साथ बनाएँ।
दोनों वैकल्पिक कुंजियाँ Settings → 'ADVANCED - DEPLOY CREDENTIALS' में रहती हैं।
9इनके लिए ज़रूरी: Google Sign-In, Stripe, Remote Update#
कई फ़ीचर के लिए पहले Supabase कनेक्ट होना ज़रूरी है, और जब तक वह नहीं होता वे आपको यहीं भेजेंगे:
- जेनरेट किए गए ऐप्स में 'Continue with Google'।
- Stripe पेमेंट (चेकआउट आपके प्रोजेक्ट के एज फ़ंक्शन में चलता है)।
- Remote Update - इंस्टॉल किए गए ऐप्स पर आप जो अपडेट भेजते हैं, वे आपके अपने Supabase प्रोजेक्ट में रखे जाते हैं।
एक बार कनेक्ट करने पर तीनों उपलब्ध हो जाते हैं; इसे हर ऐप के लिए दोहराना नहीं पड़ता।
10किसी ऐप का बैकएंड हटाना#
Settings → 'DANGER ZONE' (कनेक्ट होने पर दिखता है):
- '📋 List & delete project tables' - AppMint ने जो भी टेबल बनाई हैं, सब देखें और जो अब नहीं चाहिए उन्हें हटा दें।
- '🗑 Delete this whole app backend' - उस ऐप की स्कीमा हटा देता है, और चाहें तो उसके Storage बकेट और एज फ़ंक्शन भी। पक्का करने के लिए आप DELETE टाइप करते हैं।
अगर पक्का न हों तो 'Data only' चुनें: बकेट और एज फ़ंक्शन पूरे प्रोजेक्ट में साझा होते हैं, हर ऐप के लिए अलग नहीं। आपके यूज़र अकाउंट को कभी छुआ नहीं जाता।
पूरी तरह डिस्कनेक्ट करने के लिए: Settings → 'ONE-TAP OAUTH' → '🔒 Disconnect Supabase OAuth'।
11अगर कुछ काम न करे#
- साइन इन के बाद 'Not connected' → OAuth पूरा हो गया पर अभी कोई प्रोजेक्ट जुड़ा नहीं है। Settings → 'Choose project'।
- चेतावनी कि anon key अपने-आप नहीं मिली → आपकी Supabase OAuth मंज़ूरी में Secrets:Read स्कोप नहीं है। Project Settings → API से anon key कॉपी करें और उसे Settings में चिपकाएँ (चरण 5)।
- प्रोजेक्ट बनाते समय 'Could not list your Supabase organizations' → इसके बजाय Supabase डैशबोर्ड में प्रोजेक्ट बनाएँ, फिर वापस आकर उसे चुनें।
- Remote Update या Stripe में 'Connect Supabase first' → इस अध्याय का चरण 3।
- जेनरेट किए गए ऐप में डेटा पढ़ना/लिखना फ़ेल हो रहा है → पहले '⚡ Test Supabase connection' चलाएँ; अगर वह पास हो जाए तो AI से कहें कि जिस टेबल का नाम बताया गया है उसकी Row-Level-Security पॉलिसी ठीक करे।