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ég | Felhasználás |
|---|---|
| Microsoft Graph | Mappa- és üzenet-delta, postafiók-export |
| Kafka | Parancsok, életciklus-események, hibák, záró inicializálási művelet |
| PostgreSQL | Metaadatok, ellenőrzőpontok, újrapróbálások és exportállapot |
| S3 | Törzsek, nyers exportobjektumok, mellékletfájlok |
FTS_Parser_Lib | Melléklet-kinyerés FastTransfer-bájtokból |
DB_Lib | Megosztott 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átum | Szükséges, ha |
|---|---|---|
POSTGRES_CONNECTION_STRING | Npgsql-karakterlánc gazdagéppel, porttal, adatbázissal, felhasználónévvel és jelszóval. Ehhez a példányhoz kiválasztott adatbázist használd | Minden futásnál |
KAFKA_CLIENT_ID | Kafka-kliensazonosító | Kafka-fogyasztásnál és -közzétételnél |
KAFKA_NETWORK | Kiválasztott lan vagy tailscale hálózat | Kafka-fogyasztásnál és -közzétételnél |
KAFKA_LAN_BOOTSTRAP_SERVERS, KAFKA_TAILSCALE_BOOTSTRAP_SERVERS | Vesszővel elválasztott host:port broker-lista a kiválasztott hálózathoz | Kafka-fogyasztásnál és -közzétételnél. Minden hirdetett brokernek elérhetőnek kell lennie |
KAFKA_SECURITY_PROTOCOL, KAFKA_SASL_MECHANISM | Protokoll és hitelesítési mechanizmus | Kafka-kapcsolatnál |
KAFKA_ADMIN_USERNAME, KAFKA_ADMIN_PASSWORD, KAFKA_APP_USERNAME, KAFKA_APP_PASSWORD | Külön klaszter-adminisztrátori és alkalmazás-hitelesítő adat | Hitelesített Kafka-kapcsolatnál |
BACKEND_TENANT_ID, BACKEND_CLIENT_ID, BACKEND_CLIENT_SECRET | Entra-bérlő, alkalmazásazonosító és alkalmazás-hitelesítő adat | Microsoft-importnál |
GRAPH_WEBHOOK_URL, GRAPH_LIFECYCLE_WEBHOOK_URL | Nyilvános HTTPS WebhookCatcher-callbackek | Előfizetés létrehozásánál. Ehhez a deployment saját hosztnevét használd |
GRAPH_WEBHOOK_CLIENT_STATE | Stabil, véletlen ellenőrzési titok | Graph-előfizetéseknél |
S3_ENDPOINT, S3_REGION, S3_ACCESS_KEY, S3_SECRET_KEY, S3_BUCKET_EMAIL_BODIES, S3_FORCE_PATH_STYLE | Objektumtá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, true | Törzs-, nyers export- és melléklet-írásnál |
OPENSEARCH_URL, OPENSEARCH_INDEX, OPENSEARCH_USERNAME, OPENSEARCH_PASSWORD | Endpoint, célindex és hitelesítő adatok. Ha a hitelesítés ki van kapcsolva, a hitelesítő adatok hiányozhatnak | Indexelésnél |
ONBOARDING_RETRY_* | Lépésenkénti kísérletek, késleltetések és jitter ezredmásodpercben | Opcionális hangolás. Az egyes beállításokhoz használd a mintafájlt |
ONBOARDING_REPLAY_RUN_ID, ONBOARDING_REPLAY_STEP | Kifejezett futás és ellenőrzőpont az engedélyezett visszajátszáshoz | Csak 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:
| Útvonal | Szerződés |
|---|---|
mailGen/ECS_MovePST_To_TempSQL/GraphOneTimeUserOnboarder/Configuration/OnboardingRuntimeOptions.cs | Kötelező futásidejű változónevek |
mailGen/ECS_MovePST_To_TempSQL/GraphOneTimeUserOnboarder/Processing/OnboardingPipeline.cs | Ellenőrzőpontok, exportakadály, életciklus-közzététel, záró sorba állított parancs |
mailGen/ECS_MovePST_To_TempSQL/GraphOneTimeUserOnboarder/Services/GraphMailboxDumpService.cs | Graph-metaadat- és exporthívások |
mailGen/msmicroservices-architexture/src/services/GraphPullPoller/modules/graph-sync/graph-sync-scheduler.ts | Későbbi Graph-szinkronizálási ütemezés |
mailGen/msmicroservices-architexture/src/services/QueProcessor/modules/sync/apply-handler.ts | A 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.