Skip to content

Interface: TeamsPluginConfig

AppKit config accepted by the Teams plugin.

  • BasePluginConfig

[key: string]: unknown

optional agentPlugin?: string

Registered name of the sibling plugin whose agents answer a conversation turn. Defaults to DEFAULT_AGENT_PLUGIN ("mastra"); set it when the Mastra plugin is mounted under a config.name override. Falls back to TEAMS_AGENT_PLUGIN.


optional allowUnauthenticated?: boolean

Serve POST /messages with NO inbound token validation, and reply in the HTTP response instead of through the Connector API.

This exists so the messaging endpoint can be exercised locally - by the in-repo preview chat, a curl, or the Bot Framework Emulator - without an Azure Bot registration. It removes the endpoint’s ONLY trust boundary: any caller that can reach the route can drive the agent and read its answers.

Never enable it on a deployment reachable from the internet. It is ignored unless NODE_ENV is development (see resolveTeamsConfig), so a production build cannot be talked into it by an environment variable alone. Falls back to TEAMS_ALLOW_UNAUTHENTICATED.


optional appId?: string

The bot’s Entra application (client) id from its Azure Bot registration. Required before POST /api/teams/messages will accept a request: it is the audience an inbound Bot Framework token must carry, and the client id used to fetch an outbound Connector token. Falls back to TEAMS_APP_ID / MICROSOFT_APP_ID.


optional appPassword?: string

Client secret for appId. Needed to send replies through the Connector API; without it inbound activities still validate but the bot cannot answer. Falls back to TEAMS_APP_PASSWORD / MICROSOFT_APP_PASSWORD.


optional appTenantId?: string

Tenant id for a SINGLE-tenant bot registration. Leave unset for a multi-tenant bot. Falls back to TEAMS_APP_TENANT_ID / MICROSOFT_APP_TENANT_ID.


optional cardVersion?: string

Adaptive Card schema version the builder targets. Defaults to card.ADAPTIVE_CARD_VERSION ("1.5", what Teams supports). Falls back to TEAMS_CARD_VERSION.


optional host?: string

BasePluginConfig.host


optional name?: string

BasePluginConfig.name


optional telemetry?: TelemetryOptions

BasePluginConfig.telemetry


optional webhookUrl?: string

Optional Teams incoming-webhook URL. When set, the plugin’s postCard export / route posts the compiled card to this channel; when unset, posting is disabled and the plugin only builds cards for the UI to render. Falls back to TEAMS_WEBHOOK_URL.