Αρχιτεκτονική
Επισκόπηση του συστήματος
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
- Εφαρμογή Android στο Google Play
- Εξωτερικά προγράμματα-πελάτες πρακτόρων μέσω ανακάλυψης, αρχικής ρύθμισης με 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 για τον προγραμματισμό των επαναλήψεων.
Σημειώσεις υλοποίησης:
- το backend και το iOS διατηρούν πανομοιότυπες υλοποιήσεις του FSRS
- η εφαρμογή ιστού ακολουθεί το ίδιο συμβόλαιο δεδομένων προγραμματισμού, αλλά δεν περιέχει τρίτο αντίγραφο του χρονοπρογραμματιστή
- οι ρυθμίσεις του χρονοπρογραμματιστή σε επίπεδο χώρου εργασίας περιλαμβάνουν την επιθυμητή διατήρηση, τα βήματα εκμάθησης, τα βήματα επανεκμάθησης, το μέγιστο διάστημα και το fuzz
- η πραγματική χρονοσήμανση της επανάληψης προέρχεται από το
reviewedAtClient
Για το αναλυτικό συμβόλαιο, δείτε τη λογική προγραμματισμού FSRS στο κύριο αποθετήριο.
Ταυτοποίηση
- OTP μέσω email με το Cognito
- Cookies συνεδρίας του προγράμματος περιήγησης σε κοινό τομέα για τη φιλοξενούμενη εφαρμογή ιστού
- Αρχική ρύθμιση πράκτορα με OTP στο
auth.<domain>, που επιστρέφει μακροχρόνιο ApiKey AUTH_MODE=noneγια τοπική ανάπτυξηAUTH_MODE=cognitoγια ταυτοποίηση όπως στην παραγωγή
Μορφή της εγκατάστασης
app.<domain>-> CloudFront + S3api.<domain>-> API Gateway + Lambda backendauth.<domain>-> API Gateway + υπηρεσία ταυτοποίησης σε Lambda- Postgres στο AWS RDS
Ο κύριος τομέας (apex) μπορεί να παραμείνει σε ξεχωριστό ιστότοπο μάρκετινγκ. Αν είναι ελεύθερος κατά την αρχική ρύθμιση, η υποδομή μπορεί να τον ανακατευθύνει προσωρινά στο app.<domain>.