diff --git a/packages/apps/src/app.ts b/packages/apps/src/app.ts index f23174db7..518b4dd4c 100644 --- a/packages/apps/src/app.ts +++ b/packages/apps/src/app.ts @@ -239,6 +239,11 @@ export class App { const tenantId = ('tenantId' in this.options ? this.options.tenantId : undefined) || process.env.TENANT_ID; + if (tenantId) { + this.log.info(`Using tenantId: ${tenantId}. Assuming single-tenant app.`); + } else { + this.log.debug('No tenantId provided. Assuming multi-tenant app.'); + } const token = 'token' in this.options ? this.options.token : undefined; if (clientId && clientSecret) { @@ -400,6 +405,22 @@ export class App { return res; } + /** + * get a tenant specific graph client + * @remarks + * This will use the tenant id to get a token for the graph client. + * @param tenantId the tenant id to get the graph client for + * @returns + */ + getTenantGraph(tenantId: string) { + const getTenantSpecificGraph = async () => { + return this.getOrRefreshTenantToken(tenantId); + }; + return new GraphClient( + this.client.clone({ token: getTenantSpecificGraph }) + ); + } + /** * subscribe to an event * @param name event to subscribe to