@exellix/microsoft-365-user-actions
v1.0.0
Published
Delegated Microsoft Graph outbound runtime for one Microsoft 365 user.
Downloads
99
Readme
@exellix/microsoft-365-user-actions
Outbound Microsoft Graph runtime for one delegated Microsoft 365 user.
Services
communicate / microsoft-365-user-mail-senderadd-content / microsoft-365-user-file-writerexecute-action / microsoft-365-user-file-sharer
Environment
EXELLIX_M365_USER_ACTION_PORT=9712
MICROSOFT_GRAPH_REQUEST_TIMEOUT_MS=30000
MICROSOFT_GRAPH_SIMPLE_UPLOAD_MAX_BYTES=262144000
MICROSOFT_GRAPH_UPLOAD_CHUNK_BYTES=3276800
MICROSOFT_GRAPH_ACTION_OPERATION_MAP_PATH=/config/operation-map.json
MICROSOFT_365_ACTION_CREDENTIALS_JSON='{"customer:m365-action":{"role":"action","authMode":"delegated-oauth","accessToken":"...","userPrincipalName":"[email protected]","scopes":["User.Read","Mail.Send","Files.ReadWrite.All"]}}'
MEMORIX_DATA_PLANE_READ_URL=http://memorix-data-plane/read-refs
MEMORIX_DATA_PLANE_WRITE_URL=http://memorix-data-plane/records
MEMORIX_DATA_PLANE_TOKEN=...
# Optional Logxer (disabled unless a Mongo URI is set):
# logxer_mongo_uri=mongodb://localhost:27017
# M365_USER_ACTIONS_LOGS_LEVEL=infoStub / fixture mode
Serve mock/microsoft-365 fixtures instead of calling Graph with "stub": { "enabled": true, "vendor": "microsoft-365" } or M365_USER_ACTIONS_USE_STUBS=1. Optional: M365_USER_ACTIONS_STUB_VENDOR, M365_USER_ACTIONS_STUB_ROOT.
Logging (@x12i/logxer)
Optional. Without a Mongo URI (logxer_mongo_uri / MONGO_URI / related fallbacks), logging is a silent noop. When enabled, use M365_USER_ACTIONS_LOGS_LEVEL (off | error | warn | info | debug | verbose).
Small files use Graph's direct content upload. Larger payloads use an upload session with sequential chunks whose size is a multiple of 320 KiB. Email send returns accepted after Graph responds 202; this does not claim final delivery. A multi-recipient sharing response with HTTP 207 is returned as a logical partial result.
Monorepo
From the exellix-connectors root:
npm run m365-actions:dev