فن تعمیر
نظام کا جائزہ
iOS app / agent client -> api.<domain> -> API Gateway -> Lambda backend -> Postgres
Web app -> app.<domain> -> CloudFront -> SPA
Browser and agent auth -> auth.<domain> -> API Gateway -> Auth Lambda -> Cognito
Apex fallback -> <domain> -> CloudFront redirect -> app.<domain>
اصول
app،apiاورauthکے لیے الگ الگ عوامی ڈومینز- Postgres ڈیٹا کا مستند ماخذ ہے
- iOS کلائنٹ آف لائن فرسٹ ہے اور مقامی SQLite کے ساتھ ہم وقت سازی استعمال کرتا ہے
- ویب ایپ، iOS ایپ اور بیرونی ایجنٹس کی سطح ایک ہی ورک اسپیس ماڈل استعمال کرتی ہیں
- بیرونی ایجنٹس
GET https://api.nibomo.com/v1/سے شروع کرتے ہیں
تعاون یافتہ کلائنٹس
app.nibomo.comپر ویب ایپ- مرکزی ریپوزٹری میں iOS ایپ، مقامی SQLite اسٹوریج کے ساتھ
- Google Play پر Android ایپ
- ڈسکوری، OTP کے ذریعے ابتدائی تیاری اور
Authorization: ApiKeyکے ذریعے بیرونی ایجنٹ کلائنٹس
ڈیٹا ماڈل
workspacesworkspace_membersuser_settingsdevicescardsdecksreview_eventsapplied_operationssync_state
ڈیٹا فلو
ویب
- براؤزر
auth.<domain>کے ذریعے سائن اِن کرتا ہے۔ - ویب ایپ ورک اسپیس کا ڈیٹا
api.<domain>سے لوڈ کرتی ہے۔ - AI چیٹ کی درخواستیں
/chat/local-turnسے گزرتی ہیں۔ - دہرائی جمع کرانے پر، ریکارڈ لکھتے وقت ہی شیڈیولر کی حالت اپ ڈیٹ ہو جاتی ہے۔
iOS
- iOS ایپ پہلے مقامی طور پر SQLite میں لکھتی ہے۔
- مقامی تبدیلیاں ایک آؤٹ باکس میں قطار میں رکھی جاتی ہیں۔
- ہم وقت سازی تبدیلیوں کو
/v1/workspaces/{workspaceId}/sync/pushکے ذریعے اپ لوڈ کرتی ہے۔ - ہم وقت سازی ریموٹ اپ ڈیٹس کو
/v1/workspaces/{workspaceId}/sync/pullکے ذریعے ڈاؤن لوڈ کرتی ہے۔ - مقامی ڈیٹا بیس تبدیلیاں لاگو کرتا ہے اور ہم وقت سازی کا کرسر آگے بڑھاتا ہے۔
بیرونی ایجنٹس
- ایجنٹس
GET /v1/سے شروع کرتے ہیں۔ - OTP کے ذریعے ابتدائی تیاری
auth.<domain>پر ہوتی ہے۔ - ایجنٹ کو ایک طویل مدتی API کلید ملتی ہے۔
- ایجنٹ
/v1/agent/meلوڈ کرتا ہے، ورک اسپیسز کی فہرست لیتا ہے، ضرورت ہو تو ایک منتخب کرتا ہے، اور پھر/v1/agent/sql/queryاور/v1/agent/sql/executeاستعمال کرتا ہے۔
شیڈیولنگ
Nibomo دہرائی کے شیڈیولر کے طور پر FSRS استعمال کرتا ہے۔
نفاذ سے متعلق نوٹس:
- بیک اینڈ اور iOS میں FSRS کے ایک جیسے، متوازی نفاذ رکھے جاتے ہیں
- ویب ایپ شیڈیولنگ ڈیٹا کے معاہدے کی پیروی کرتی ہے، لیکن شیڈیولر کی تیسری نقل شامل نہیں کرتی
- ورک اسپیس کی سطح کی شیڈیولر ترتیبات میں یاد رکھنے کا مطلوبہ ہدف، سیکھنے کے مراحل، دوبارہ سیکھنے کے مراحل، زیادہ سے زیادہ وقفہ اور fuzz شامل ہیں
- دہرائی کا اصل ٹائم اسٹیمپ
reviewedAtClientسے آتا ہے
تفصیلی معاہدے کے لیے مرکزی ریپوزٹری میں FSRS شیڈیولنگ کی منطق دیکھیں۔
تصدیق
- Cognito کے ذریعے ای میل OTP
- میزبان ویب ایپ کے لیے مشترکہ ڈومین والی براؤزر سیشن کوکیز
auth.<domain>پر ایجنٹ کی OTP کے ذریعے ابتدائی تیاری، جس کا نتیجہ طویل مدتی ApiKey ہوتا ہے- مقامی ڈیولپمنٹ کے لیے
AUTH_MODE=none - پروڈکشن جیسی تصدیق کے لیے
AUTH_MODE=cognito
تعیناتی کی ساخت
app.<domain>-> CloudFront + S3api.<domain>-> API Gateway + Lambda بیک اینڈauth.<domain>-> API Gateway + Lambda تصدیقی سروس- AWS RDS میں Postgres
روٹ ڈومین الگ مارکیٹنگ سائٹ پر رہ سکتا ہے۔ اگر ابتدائی تیاری کے دوران وہ خالی ہو تو انفراسٹرکچر عارضی طور پر اسے app.<domain> پر ری ڈائریکٹ کر سکتا ہے۔