بکاند و حسابهای کاربری
بکاند Supabase (یک بار متصل کنید)
پروژهٔ رایگان Supabase خودتان را وصل کنید - پایگاه دادهٔ ابری، حسابهای کاربری و ذخیرهسازی برای اپلیکیشنهای ساختهشده با هوش مصنوعی
1اتصال Supabase چه چیزی به شما میدهد#
بهطور پیشفرض اپلیکیشن ساختهشده با هوش مصنوعی دادههایش را فقط روی همان گوشیای نگه میدارد که نصب شده - حالت «Offline». با اتصال Supabase همان اپلیکیشن یک پایگاه دادهٔ ابری واقعی (Postgres)، حسابهای کاربری و ذخیرهسازی فایل میگیرد، پس دادهها بین دستگاهها و کاربران مشترک میشود.
این سرویس «همراهآوردن خودتان» است: اپلیکیشن با پروژهٔ رایگان Supabase خودتان کار میکند. AppMint چیزی برایتان میزبانی نمیکند و بابت آن هزینهٔ اضافهای نمیگیرد.
لازم نیست جدول طراحی کنید یا SQL بنویسید. AppMint schema را از توضیح اپلیکیشن شما درمیآورد، اعمال میکند و در هر ساخت همگام نگه میدارد.
2ابتدا به چه چیزی نیاز دارید#
یک حساب رایگان Supabase - همین و بس. لازم نیست ابتدا پروژه بسازید؛ AppMint میتواند هنگام ورود برایتان بسازد.
نکاتی دربارهٔ طرح رایگان:
- ۲ پروژه برای هر سازمان.
- پروژهها پس از یک هفته بدون ترافیک متوقف میشوند و با درخواست بعدی دوباره بیدار میشوند.
اگر از قبل پروژهای دارید که میخواهید دوباره استفاده کنید، آن هم کار میکند - AppMint هر اپلیکیشن را در schema جداگانهای داخل آن میگذارد، پس چند اپلیکیشن میتوانند از یک پروژه مشترک استفاده کنند.
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». آمادهسازی ۱ تا ۲ دقیقه طول میکشد.
وقتی AppMint پروژه را میسازد، رمز پایگاه داده را فقط یک بار نشان میدهد، چون Supabase فقط هش آن را نگه میدارد. پیش از بستن آن پنجره آن را جایی امن کپی کنید - برای AppMint لازم نیست، اما برای اتصال هر ابزار دیگری لازم میشود.
به سقف طرح رایگان رسیدهاید («Free tier allows 2 projects per organization»)؟ بهجای آن یک پروژهٔ موجود را انتخاب کنید یا در داشبورد Supabase ارتقا دهید.
5یا دستی وصل کنید (self-hosted / بدون OAuth)#
Settings ← «BACKEND - SUPABASE» ← «MANUAL / SELF-HOSTED»:
- Project URL - از داشبورد Supabase، Project Settings ← API. شبیه https://YOUR-PROJECT-REF.supabase.co است
- کلید anon - همان کلید publishable در همان صفحه؛ با «eyJ» شروع میشود. این کلید برای عمومی بودن طراحی شده است: از دادههای شما Row-Level Security محافظت میکند، نه پنهان کردن کلید.
- «Enable Supabase backend for generated apps» را روشن کنید و «Save Supabase config» را بزنید.
اگر Supabase را خودتان اجرا میکنید «Self-hosted instance» را تیک بزنید. حالت دستی نمیتواند schema را روی Cloud خودکار مستقر کند - اگر آن را میخواهید یک Personal Access Token اضافه کنید (مرحلهٔ بعد).
Project URL https://abcdefghijkl.supabase.co
anon key eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...6AppMint در هر ساخت چه میکند#
پس از اتصال، هر بار ساخت، کار بکاند را برایتان انجام میدهد:
- schemaای را که هوش مصنوعی نوشته (جدولها، ایندکسها، سیاستهای Row-Level-Security) اعمال میکند.
- اگر اپلیکیشن به دادههای اولیه نیاز داشته باشد، آنها را اجرا میکند.
- Storage bucket برای بارگذاریها و تصاویر میسازد.
- Edge Functionها (پرداخت، ایمیل، webhook) را مستقر میکند و آنهایی را که تغییر نکردهاند رد میکند.
- ارائهدهندگان احراز هویت و Site URL را تنظیم میکند.
- یک گیت امنیتی و یک گیت migration اجرا میکند، سپس typeهای TypeScript را به پروژه برمیگرداند.
جدولهای اپلیکیشن شما در schema مخصوص خودشان با نام appmint_<your app> قرار دارند. حسابهای کاربری بین همهٔ اپلیکیشنهای پروژه مشترک است، پس یک ثبتنام همهجا کار میکند.
7بررسی اینکه کار کرده است#
دو بررسی سریع:
- کارت «Supabase» در AI Studio اکنون «Connected» را نشان میدهد و Settings شناسهٔ پروژه را نمایش میدهد.
- Settings ← «DIAGNOSTICS» ← «⚡ Test Supabase connection» - موفقیت یا خطای دقیق را گزارش میدهد.
پس از ساخت اپلیکیشن، داشبورد Supabase ← Table Editor را باز کنید و انتخابگر schema را از «public» به appmint_<your app> تغییر دهید تا جدولهایی را که AppMint ساخته ببینید.
8کدام کلید کجا ایمن است#
- کلید anon - داخل اپلیکیشنهای ساختهشده ایمن است. Row-Level Security تعیین میکند هر کاربر واردشده چه چیزی را بخواند یا بنویسد.
- کلید service_role - هرگز داخل اپلیکیشن نمیرود. AppMint آن را فقط رمزگذاریشده روی همین دستگاه ذخیره میکند و برای Storage bucketها و اعمال schema در حالت self-hosted از آن استفاده میکند.
- Personal Access Token (sbp_…) - این هم فقط روی دستگاه میماند؛ به AppMint اجازه میدهد schema و Edge Functionها را روی Supabase Cloud خودکار مستقر کند. آن را در supabase.com/dashboard/account/tokens با دسترسی خواندن + نوشتن پروژه بسازید.
هر دو کلید اختیاری در Settings ← «ADVANCED - DEPLOY CREDENTIALS» هستند.
9باز میکند: Google Sign-In، Stripe، Remote Update#
چند قابلیت ابتدا به اتصال Supabase نیاز دارند و تا وصل نشود شما را به اینجا میفرستند:
- «Continue with Google» در اپلیکیشنهای ساختهشده.
- پرداختهای Stripe (checkout در یک Edge Function داخل پروژهٔ شما اجرا میشود).
- Remote Update - بهروزرسانیهایی که برای اپلیکیشنهای نصبشده منتشر میکنید در پروژهٔ Supabase خودتان ذخیره میشود.
یک بار وصل کنید تا هر سه در دسترس شوند؛ لازم نیست برای هر اپلیکیشن تکرار کنید.
10حذف بکاند یک اپلیکیشن#
Settings ← «DANGER ZONE» (هنگام اتصال دیده میشود):
- «📋 List & delete project tables» - همهٔ جدولهایی را که AppMint ساخته مرور کنید و جدولهای غیرضروری را حذف کنید.
- «🗑 Delete this whole app backend» - schema آن اپلیکیشن و در صورت انتخاب، Storage bucketها و Edge Functionهایش را حذف میکند. برای تأیید باید DELETE را تایپ کنید.
اگر مطمئن نیستید «Data only» را انتخاب کنید: bucketها و Edge Functionها در کل پروژه مشترکاند، نه برای هر اپلیکیشن. حسابهای کاربری شما هرگز دستکاری نمیشود.
برای قطع کامل اتصال: Settings ← «ONE-TAP OAUTH» ← «🔒 Disconnect Supabase OAuth».
11اگر چیزی کار نکرد#
- «Not connected» پس از ورود ← OAuth تمام شد اما هنوز پروژهای متصل نشده است. Settings ← «Choose project».
- هشدار اینکه کلید anon خودکار گرفته نشد ← تأیید OAuth شما در Supabase دامنهٔ Secrets:Read را ندارد. کلید anon را از Project Settings ← API کپی کنید و در Settings جایگذاری کنید (مرحلهٔ ۵).
- هنگام ساخت پروژه «Could not list your Supabase organizations» ← پروژه را بهجای آن در داشبورد Supabase بسازید، سپس برگردید و آن را انتخاب کنید.
- «ابتدا Supabase را وصل کنید» در Remote Update یا Stripe ← همین فصل، مرحلهٔ ۳.
- خواندن/نوشتن داده در اپلیکیشن ساختهشده شکست میخورد ← ابتدا «⚡ Test Supabase connection» را اجرا کنید؛ اگر موفق بود، از هوش مصنوعی بخواهید سیاست Row-Level-Security جدولی را که نام میبرد درست کند.