Skip to main content

Microsoft-onboarding tárolási referencia

A Microsoft-onboarding a PostgreSQL-t, az S3-kompatibilis objektumtárolót és a keresési vetítést használja. Először végezd el a Graph-beállítást és a tárolási konfigurációt.

Tulajdonosi identitás​

A providerMailboxUserId a Microsoft Graph felhasználói azonosító, amelyet a MailboxIdentityResolved eseménynél oldunk fel. Az e-mail-címek változhatnak, ezért nem határozzák meg ezeket az objektumútvonalakat. A Better Auth userId és emailAccountId az alkalmazásbeli tulajdonjogot és az onboarding-útválasztást azonosítja. Nem a szolgáltatói objektum-előtag tulajdonosa.

Objektumkulcsok​

users/{providerMailboxUserId}/emails/{emailId}/body.html
users/{providerMailboxUserId}/emails/{emailId}/raw.fts
users/{providerMailboxUserId}/emails/{emailId}/attachments/{emailId}_|_{filename}

Például a GRAPH_USER_ID tulajdonában lévő üzenet ezeket használhatja:

users/GRAPH_USER_ID/emails/MESSAGE_ID/body.html
users/GRAPH_USER_ID/emails/MESSAGE_ID/raw.fts
users/GRAPH_USER_ID/emails/MESSAGE_ID/attachments/MESSAGE_ID_|_invoice.pdf

Az elrendezés tisztítja az útvonal-szegmenseket. A bucket kiválasztása a konfigurációból történik. Az adatbázis-sorok objektumkulcsokat tárolnak, bucket-URL-eket nem.

Törzsek​

A worker a metaadatok olvasása közben tölti fel a HTML-t. A body_s3_key rögzíti a kulcsot. Ezen az útvonalon az SQL-üzenettörzs üres marad. A részletes olvasások előnyben részesítik a tárolt kulcsot. A régi email-bodies/ objektumok kompatibilitási visszaesésként megmaradnak.

Nyers FastTransfer-adatok​

A Graph exportItems nyers FastTransfer-adatot ad vissza. A worker dekódolja és feldolgozza, majd az eredeti bájtokat raw.fts néven tárolja. A msintegrationv2.newMails.raw_fts_s3_key mutat az objektumra. A msintegrationv2.mailbox_item_exports rögzíti az export állapotát.

Mellékletek​

A worker a dekódolt FastTransfer-folyamból kinyeri a fájlokat. Feltölti a bájtjaikat. A msintegrationv2.attachments tárolja az üzenet azonosítóját és a fájlnevet. Tárolja a rendelkezésre álló tartalomtípust és tartalomazonosítót, a méretet, az SHA-256 metaadatot és az objektumkulcsot. A fájlbájtokat nem tárolja abban a metaadat-sorban.

Táblák​

TáblaCél
msintegrationv2.usersPostafiók-felhasználó identitása és alkalmazásmetaadatok
msintegrationv2.mailboxesBelső UUID, szolgáltatói identitás, hitelesítő adatok, szinkronizálási állapot, archiválási szabályzat
msintegrationv2.users_foldersMappafa és szülő-gyermek kapcsolatok
msintegrationv2.folder_delta_tokensTitkosított, átlátszatlan mappa-ellenőrzőpont és állapot
msintegrationv2.message_delta_tokensTitkosított, mappánkénti üzenet-ellenőrzőpont és állapot
msintegrationv2.sync_cyclesWebhook-, periodikus és helyreállítási ciklusok
msintegrationv2.sync_fetch_batchesCsak olvasó lekérési kötegek és végső delta-jelöltek
msintegrationv2.sync_stage_itemsTisztított, törzs nélküli elemek idempotens alkalmazáshoz
msintegrationv2.newMailsÜzenetmetaadatok, törzs- és nyers kulcsok, mellékletállapot és részletek
msintegrationv2.conversationsNormalizált Graph-beszélgetésazonosító
msintegrationv2.categories_linkHiteles beszélgetés-kategória kapcsolatok
msintegrationv2.attachmentsMelléklet-metaadatok és objektumkulcs
msintegrationv2.mailbox_item_exportsExport-állapot, újrapróbálások, hibaosztály és objektumkulcs
kafka.sync_operationsElfogadási, végrehajtási és megerősítési állapot
kafka.mailbox_execution_statePostafiókonkénti sorrend és kizárólagos végrehajtói lease

Inkrementális szinkronizálás​

A TypeScript backend a későbbi metaadat- és törzsváltozásokat ugyanazzal a törzskulcs-elrendezéssel kezeli. Az IndependentQueProcessor csak olvasó Graph-lekéréseket és S3-átmeneti tárolást végez. A QueProcessor a változásokat a postafiók-lease alatt alkalmazza, és lezárja az ellenőrzőpontokat. A nyers FastTransfer-export és a melléklet-kinyerés az onboardinghoz vagy a teljes helyreállításhoz tartozik.

Fejlesztési takarítás határa​

A kifejezett fejlesztési S3-törlő mind az email-bodies/, mind a users/ útvonalat lefedi. Ez a régi és a jelenlegi fejlesztési objektumokat is törli. Ez romboló karbantartás, nem importelőfeltétel és nem normál helyreállítás. Előbb használd a helyreállítási útmutatót.