Skip to main content

GraphOneTimeUserOnboarder

A GraphOneTimeUserOnboarder az éles Microsoft-postafiók-importáló worker. Jogosult Kafka-parancsokat fogyaszt, és előkészíti a postafiók munkaterületét. Kezdd a Microsoft Graph beállítással.

Postafiók-import indítása​

Használd a számozott Egy postafiók csatlakoztatása és előkészítése eljárást. Ehhez elérhető Microsoft-összekötő kell, amelyet előkészített bérlőkapcsolat támaszt alá, és a mail.onboarding actor-jogosultság. Válaszd ki a saját csatlakoztatott fiókodat, mielőtt a Kezdeti beállítás indítása vagy a Postafiók beállítása lehetőséget választod.

Az indítókezelő nem követeli meg a meglévő postafiók-sort vagy mailboxId értéket. A worker ellenőrzi a Graph-felhasználót a jogosult Entra-alannyal szemben, majd létrehozza vagy frissíti a helyi postafiókot. Ez nem azonos az első bérlői kapcsolat létrehozásával, amelyet az összekötő gomb elérhetővé válása előtt kell elvégezni.

Felelősségek​

A worker feloldja a szolgáltatói identitást, létrehozza vagy folytatja az ellenőrzőpontokat, beolvassa a mappákat és a referenciaadatokat, és importálja az üzenetmetaadatokat. Írja a body.html objektumokat, és frissíti a newMails metaadatokat. A Graph exportItems segítségével exportálja a raw.fts fájlt, a mellékleteket az FTS_Parser_Lib segítségével dolgozza fel, és tárolja a fájljaikat és metaadataikat.

Az éles importhoz MailboxItem.Export.All Graph Application-jogosultság és bérlői adminisztrátori hozzájárulás kell. A Mail.Read vagy a Mail.ReadWrite önmagában nem engedélyezi az exportItems műveletet. Az export és a FastTransfer-melléklet-kinyerés kötelező befejezési előfeltételek. Lásd: Graph-exportjogosultság beállítása.

A tárolási és indexelési akadályok teljesülése után a worker stabil Kafka-partíció-tulajdonlást rendel. Felszabadítja a visszatartott munkát, kiadja az életciklus-állapotokat, és sorba állítja a mailbox.onboarding.initializingDone műveletet. Lásd: teljes sorrend.

FüggőségFelhasználás
Microsoft GraphMappa- és üzenet-delta, postafiók-export
KafkaParancsok, életciklus-események, hibák, záró inicializálási művelet
PostgreSQLMetaadatok, ellenőrzőpontok, újrapróbálások és exportállapot
S3Törzsek, nyers exportobjektumok, mellékletfájlok
FTS_Parser_LibMelléklet-kinyerés FastTransfer-bájtokból
DB_LibMegosztott adatbázis-kontextus és modellek

Futtatókörnyezet-kiválasztás​

Az egyesített futtatókörnyezet választja ki ezt a workert. Ehhez a környezethez a támogatott fejlesztési életciklust használd. Ne indíts mellé második, önálló workert.

Önállóan előkészített fejlesztési környezetben a régi indító a mailGen/ECS_MovePST_To_TempSQL mappából fut:

bash scripts/run-onetimedev.sh

A gyökér resetDevServers.sh a teljes kiválasztott példányt törli, nem csak ezt a workert. Csak szándékos teljes adattörléshez használd, a szükséges mentésekkel. Ne futtasd egy másik aktív teljes stack mellett.

Konfigurációs referencia​

A GraphOneTimeUserOnboarder/.env.example az önálló beállításokat sorolja fel, de a Graph-hitelesítő adatok neve elavult. A tényleges worker az alábbi BACKEND_* neveket igényli, az önálló futtatást is beleértve. A gyökér Compose ezeket a neveket változatlanul továbbítja. Tarts meg egy hitelesítő-forrást ehhez a futtatókörnyezethez.

VáltozóJelentés és formátumSzükséges, ha
POSTGRES_CONNECTION_STRINGNpgsql-karakterlánc gazdagéppel, porttal, adatbázissal, felhasználónévvel és jelszóval. Ehhez a példányhoz kiválasztott adatbázist használdMinden futásnál
KAFKA_CLIENT_IDKafka-kliensazonosítóKafka-fogyasztásnál és -közzétételnél
KAFKA_NETWORKKiválasztott lan vagy tailscale hálózatKafka-fogyasztásnál és -közzétételnél
KAFKA_LAN_BOOTSTRAP_SERVERS, KAFKA_TAILSCALE_BOOTSTRAP_SERVERSVesszővel elválasztott host:port broker-lista a kiválasztott hálózathozKafka-fogyasztásnál és -közzétételnél. Minden hirdetett brokernek elérhetőnek kell lennie
KAFKA_SECURITY_PROTOCOL, KAFKA_SASL_MECHANISMProtokoll és hitelesítési mechanizmusKafka-kapcsolatnál
KAFKA_ADMIN_USERNAME, KAFKA_ADMIN_PASSWORD, KAFKA_APP_USERNAME, KAFKA_APP_PASSWORDKülön klaszter-adminisztrátori és alkalmazás-hitelesítő adatHitelesített Kafka-kapcsolatnál
BACKEND_TENANT_ID, BACKEND_CLIENT_ID, BACKEND_CLIENT_SECRETEntra-bérlő, alkalmazásazonosító és alkalmazás-hitelesítő adatMicrosoft-importnál
GRAPH_WEBHOOK_URL, GRAPH_LIFECYCLE_WEBHOOK_URLNyilvános HTTPS WebhookCatcher-callbackekElőfizetés létrehozásánál. Ehhez a deployment saját hosztnevét használd
GRAPH_WEBHOOK_CLIENT_STATEStabil, véletlen ellenőrzési titokGraph-előfizetéseknél
S3_ENDPOINT, S3_REGION, S3_ACCESS_KEY, S3_SECRET_KEY, S3_BUCKET_EMAIL_BODIES, S3_FORCE_PATH_STYLEObjektumtároló endpointja, régiója, hitelesítő adatai, bucketje és címzési módja. Helyi példák: http://127.0.0.1:8333, us-east-1, trueTörzs-, nyers export- és melléklet-írásnál
OPENSEARCH_URL, OPENSEARCH_INDEX, OPENSEARCH_USERNAME, OPENSEARCH_PASSWORDEndpoint, célindex és hitelesítő adatok. Ha a hitelesítés ki van kapcsolva, a hitelesítő adatok hiányozhatnakIndexelésnél
ONBOARDING_RETRY_*Lépésenkénti kísérletek, késleltetések és jitter ezredmásodpercbenOpcionális hangolás. Az egyes beállításokhoz használd a mintafájlt
ONBOARDING_REPLAY_RUN_ID, ONBOARDING_REPLAY_STEPKifejezett futás és ellenőrzőpont az engedélyezett visszajátszáshozCsak tervezett visszajátszásnál. Egyébként hagyd üresen

Implementációs helyek​

Az útvonalak a motherrepo gyökeréhez képest értendők:

ÚtvonalSzerződés
mailGen/ECS_MovePST_To_TempSQL/GraphOneTimeUserOnboarder/Configuration/OnboardingRuntimeOptions.csKötelező futásidejű változónevek
mailGen/ECS_MovePST_To_TempSQL/GraphOneTimeUserOnboarder/Processing/OnboardingPipeline.csEllenőrzőpontok, exportakadály, életciklus-közzététel, záró sorba állított parancs
mailGen/ECS_MovePST_To_TempSQL/GraphOneTimeUserOnboarder/Services/GraphMailboxDumpService.csGraph-metaadat- és exporthívások
mailGen/msmicroservices-architexture/src/services/GraphPullPoller/modules/graph-sync/graph-sync-scheduler.tsKésőbbi Graph-szinkronizálási ütemezés
mailGen/msmicroservices-architexture/src/services/QueProcessor/modules/sync/apply-handler.tsA lekért változások rendezett alkalmazása

Tárolási szerződés​

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

A jelenlegi importok a users/ elrendezést használják. A metaadatokhoz és a kompatibilis olvasásokhoz lásd: tárolási referencia. A worker nem vesz át destruktív indítási takarítást a GraphExportApiTester eszközből. Hiányos munkához használd az import-helyreállítást.