diff --git a/Composer/packages/server/src/models/connector/interface.ts b/Composer/packages/server/src/models/connector/interface.ts index ced52cdef1..ac57e4c6a6 100644 --- a/Composer/packages/server/src/models/connector/interface.ts +++ b/Composer/packages/server/src/models/connector/interface.ts @@ -8,6 +8,11 @@ export enum BotStatus { export type BotEnvironments = 'production' | 'integration' | 'editing'; +export interface AuthenticatedToken { + accessToken: string; + deocdedToken?: AuthenticatedUser; +} + export interface AuthenticatedUser { [ClaimNames.name]: string; [ClaimNames.upn]: string; @@ -18,7 +23,7 @@ export interface BotConfig { MicrosoftAppPassword: string; luis: ILuisConfig; targetEnvironment?: BotEnvironments; - user?: AuthenticatedUser; + user?: AuthenticatedToken; } export interface IBotConnector { diff --git a/Composer/packages/server/src/models/connector/selfHostConnector.ts b/Composer/packages/server/src/models/connector/selfHostConnector.ts index b3bd1c0347..b01b45451f 100644 --- a/Composer/packages/server/src/models/connector/selfHostConnector.ts +++ b/Composer/packages/server/src/models/connector/selfHostConnector.ts @@ -24,14 +24,17 @@ export class SelfHostBotConnector implements IBotConnector { public sync = async (config: BotConfig) => { const { targetEnvironment: env } = config; - const user = config.user ? config.user[ClaimNames.name] : 'unknown_user'; - const userEmail = config.user ? config.user[ClaimNames.upn] : undefined; + const user = config.user && config.user.deocdedToken ? config.user.deocdedToken[ClaimNames.name] : 'unknown_user'; + const userEmail = config.user && config.user.deocdedToken ? config.user.deocdedToken[ClaimNames.upn] : undefined; + const accessToken = config.user ? config.user.accessToken : undefined; await this.buildAsync({ user, userEmail, //eslint-disable-next-line @typescript-eslint/no-non-null-assertion dest: resolve(process.env.HOME!, 'site/artifacts/bot'), env: env && env !== 'editing' ? env : 'integration', + botId: undefined, + accessToken, }); }; } diff --git a/Composer/packages/server/src/router/absh.ts b/Composer/packages/server/src/router/absh.ts index bceb776b0b..a7bba7231d 100644 --- a/Composer/packages/server/src/router/absh.ts +++ b/Composer/packages/server/src/router/absh.ts @@ -126,7 +126,10 @@ const absh: AuthProviderInit = { return; } - req.user = token; + req.user = { + decodedToken: token, + accessToken: bearer, + }; next(); }); } catch (err) { diff --git a/Composer/packages/server/types/selfHostCommands.d.ts b/Composer/packages/server/types/selfHostCommands.d.ts index 34608109dd..94f349f6b0 100644 --- a/Composer/packages/server/types/selfHostCommands.d.ts +++ b/Composer/packages/server/types/selfHostCommands.d.ts @@ -4,6 +4,8 @@ declare namespace SelfHostCommands { userEmail?: string; env: 'production' | 'integration'; dest: string; + accessToken: string | undefined; + botId: string | undefined; } export interface Build { (argv: ARGV): Promise;