Arhitektura
Pregled sistema
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>
Načela
- Ločene javne domene za
app,apiinauth - Postgres je vir resnice
- Odjemalec za iOS je zasnovan za delo brez povezave, z lokalnim SQLite in sinhronizacijo
- Spletna aplikacija, aplikacija za iOS in vmesnik za zunanje agente si delijo isti model delovnega prostora
- Zunanji agenti začnejo pri
GET https://api.nibomo.com/v1/
Podprti odjemalci
- Spletna aplikacija na
app.nibomo.com - Aplikacija za iOS v glavnem repozitoriju z lokalno shrambo SQLite
- Aplikacija za Android v Google Play
- Zunanji odjemalci agentov prek odkrivanja, začetne nastavitve z enkratno kodo in
Authorization: ApiKey
Podatkovni model
workspacesworkspace_membersuser_settingsdevicescardsdecksreview_eventsapplied_operationssync_state
Tok podatkov
Splet
- Brskalnik se prijavi prek
auth.<domain>. - Spletna aplikacija naloži podatke delovnega prostora z
api.<domain>. - Zahteve za klepet z AI potekajo prek
/chat/local-turn. - Oddane ponovitve ob zapisu posodobijo stanje razporejevalnika.
iOS
- Aplikacija za iOS najprej zapisuje lokalno v SQLite.
- Lokalne spremembe se zbirajo v čakalni vrsti za pošiljanje.
- Sinhronizacija pošlje spremembe na strežnik prek
/v1/workspaces/{workspaceId}/sync/push. - Sinhronizacija prenese oddaljene posodobitve prek
/v1/workspaces/{workspaceId}/sync/pull. - Lokalna zbirka podatkov uveljavi spremembe in premakne kazalec sinhronizacije naprej.
Zunanji agenti
- Agenti začnejo z
GET /v1/. - Začetna nastavitev z enkratno kodo poteka na
auth.<domain>. - Agent prejme dolgotrajni ključ API.
- Agent naloži
/v1/agent/me, pridobi seznam delovnih prostorov, po potrebi izbere enega in nato uporablja/v1/agent/sql/queryin/v1/agent/sql/execute.
Razporejanje
Nibomo za razporejanje ponavljanja uporablja FSRS.
Opombe o izvedbi:
- zaledni sistem in iOS imata zrcalni izvedbi FSRS
- spletna aplikacija zrcali podatkovno pogodbo razporejanja, vendar ne vsebuje tretje kopije razporejevalnika
- nastavitve razporejevalnika na ravni delovnega prostora vključujejo želeno stopnjo pomnjenja, korake učenja, korake ponovnega učenja, najdaljši interval in naključni odmik intervalov
- dejanski čas ponovitve se vzame iz
reviewedAtClient
Za podroben opis pogodbe si oglejte logiko razporejanja FSRS v glavnem repozitoriju.
Preverjanje pristnosti
- Enkratna koda po e-pošti prek storitve Cognito
- Sejni piškotki brskalnika v skupni domeni za gostovano spletno aplikacijo
- Začetna nastavitev agenta z enkratno kodo na
auth.<domain>, ki vrne dolgotrajni ApiKey AUTH_MODE=noneza lokalni razvojAUTH_MODE=cognitoza preverjanje pristnosti, podobno produkcijskemu
Oblika namestitve
app.<domain>-> CloudFront + S3api.<domain>-> API Gateway + zaledni sistem v Lambdiauth.<domain>-> API Gateway + storitev za preverjanje pristnosti v Lambdi- Postgres v AWS RDS
Korenska domena lahko ostane na ločenem marketinškem spletnem mestu. Če je med začetno nastavitvijo prosta, jo lahko infrastruktura začasno preusmeri na app.<domain>.