Muundo
Muhtasari wa mfumo
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>
Kanuni
- Vikoa tofauti vya umma kwa
app,apinaauth - Postgres ndiyo chanzo rasmi cha data
- Kiteja cha iOS kinatanguliza matumizi bila intaneti, kwa SQLite ya ndani pamoja na usawazishaji
- Programu ya wavuti, programu ya iOS na kiolesura cha mawakala wa nje hutumia muundo mmoja wa nafasi ya kazi
- Mawakala wa nje huanza na
GET https://api.nibomo.com/v1/
Viteja vinavyotumika
- Programu ya wavuti kwenye
app.nibomo.com - Programu ya iOS kwenye hazina kuu, yenye hifadhi ya ndani ya SQLite
- Programu ya Android kwenye Google Play
- Viteja vya mawakala wa nje kupitia ugunduzi, uanzishaji wa OTP na
Authorization: ApiKey
Muundo wa data
workspacesworkspace_membersuser_settingsdevicescardsdecksreview_eventsapplied_operationssync_state
Mtiririko wa data
Wavuti
- Kivinjari huingia kupitia
auth.<domain>. - Programu ya wavuti hupakia data ya nafasi ya kazi kutoka
api.<domain>. - Maombi ya gumzo la AI hupitia
/chat/local-turn. - Marudio yanayowasilishwa husasisha hali ya kipanga ratiba wakati wa kuandika.
iOS
- Programu ya iOS huandika kwanza kwenye SQLite ya ndani.
- Mabadiliko ya ndani huwekwa kwenye foleni ya kusubiri kutumwa.
- Usawazishaji hupakia mabadiliko kupitia
/v1/workspaces/{workspaceId}/sync/push. - Usawazishaji hupakua masasisho ya mbali kupitia
/v1/workspaces/{workspaceId}/sync/pull. - Hifadhidata ya ndani hutekeleza mabadiliko na kusogeza mbele kiashiria cha usawazishaji.
Mawakala wa nje
- Mawakala huanza na
GET /v1/. - Uanzishaji wa OTP hufanyika kwenye
auth.<domain>. - Wakala hupokea ufunguo wa API wa muda mrefu.
- Wakala hupakia
/v1/agent/me, huorodhesha nafasi za kazi, huchagua moja ikihitajika, kisha hutumia/v1/agent/sql/queryna/v1/agent/sql/execute.
Upangaji wa ratiba
Nibomo hutumia FSRS kama kipanga ratiba cha marudio.
Maelezo ya utekelezaji:
- backend na iOS zina utekelezaji wa FSRS unaolingana
- programu ya wavuti hufuata mkataba uleule wa data ya ratiba, lakini haina nakala ya tatu ya kipanga ratiba
- mipangilio ya kipanga ratiba ya kiwango cha nafasi ya kazi inajumuisha kiwango cha kukumbuka kinacholengwa, hatua za kujifunza, hatua za kujifunza upya, muda wa juu kabisa kati ya marudio, na mtawanyiko wa nasibu wa vipindi
- muda halisi wa marudio hutoka kwenye
reviewedAtClient
Kwa mkataba wa kina, angalia mantiki ya upangaji wa ratiba ya FSRS kwenye hazina kuu.
Uthibitishaji
- OTP ya barua pepe kupitia Cognito
- Vidakuzi vya kipindi cha kivinjari vya kikoa cha pamoja kwa programu ya wavuti iliyopangishwa
- Uanzishaji wa OTP wa wakala kwenye
auth.<domain>, unaotoa ApiKey ya muda mrefu AUTH_MODE=nonekwa uendelezaji wa ndaniAUTH_MODE=cognitokwa uthibitishaji unaofanana na wa uzalishaji
Muundo wa usambazaji
app.<domain>-> CloudFront + S3api.<domain>-> API Gateway + backend ya Lambdaauth.<domain>-> API Gateway + huduma ya uthibitishaji ya Lambda- Postgres kwenye AWS RDS
Kikoa kikuu kinaweza kubaki kwenye tovuti tofauti ya masoko. Ikiwa hakitumiki wakati wa usanidi wa awali, miundombinu inaweza kukielekeza kwa muda kwenda app.<domain>.