ಆರ್ಕಿಟೆಕ್ಚರ್
ಸಿಸ್ಟಮ್ನ ಸಮಗ್ರ ನೋಟ
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ನಲ್ಲಿ ವೆಬ್ ಆ್ಯಪ್- ಮುಖ್ಯ ರೆಪೊಸಿಟರಿಯಲ್ಲಿ ಲೋಕಲ್ SQLite ಸ್ಟೋರೇಜ್ ಇರುವ iOS ಆ್ಯಪ್
- 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 ಅನುಷ್ಠಾನಗಳನ್ನು ಇಟ್ಟುಕೊಳ್ಳುತ್ತವೆ
- ವೆಬ್ ಆ್ಯಪ್ ವೇಳಾಪಟ್ಟಿಯ ಡೇಟಾ ಕಾಂಟ್ರ್ಯಾಕ್ಟ್ ಅನ್ನು ಅನುಸರಿಸುತ್ತದೆ, ಆದರೆ ಶೆಡ್ಯೂಲರ್ನ ಮೂರನೇ ಪ್ರತಿಯನ್ನು ಒಳಗೊಂಡಿಲ್ಲ
- ಕಾರ್ಯಸ್ಥಳ ಮಟ್ಟದ ಶೆಡ್ಯೂಲರ್ ಸೆಟ್ಟಿಂಗ್ಗಳಲ್ಲಿ ಬಯಸಿದ ಸ್ಮರಣ ಪ್ರಮಾಣ, ಕಲಿಕೆಯ ಹಂತಗಳು, ಮರುಕಲಿಕೆಯ ಹಂತಗಳು, ಗರಿಷ್ಠ ಅಂತರ ಮತ್ತು ಯಾದೃಚ್ಛಿಕ ವ್ಯತ್ಯಾಸ ಸೇರಿವೆ
- ಪುನರಾವರ್ತನೆಯ ನಿಜವಾದ ಸಮಯಮುದ್ರೆ
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> ಗೆ ರಿಡೈರೆಕ್ಟ್ ಮಾಡಬಹುದು.